The tps65010.c driver in the main tree never got updated with build fixes since the last batch of I2C driver changes; and the genirq trigger flags were updated wierdly too. Signed-off-by: David Brownell Index: o26/drivers/i2c/chips/tps65010.c =================================================================== --- o26.orig/drivers/i2c/chips/tps65010.c 2006-07-30 22:09:03.000000000 -0700 +++ o26/drivers/i2c/chips/tps65010.c 2006-07-31 04:56:47.000000000 -0700 @@ -43,13 +43,12 @@ /*-------------------------------------------------------------------------*/ #define DRIVER_VERSION "2 May 2005" -#define DRIVER_NAME (tps65010_driver.name) +#define DRIVER_NAME (tps65010_driver.driver.name) MODULE_DESCRIPTION("TPS6501x Power Management Driver"); MODULE_LICENSE("GPL"); static unsigned short normal_i2c[] = { 0x48, /* 0x49, */ I2C_CLIENT_END }; -static unsigned short normal_i2c_range[] = { I2C_CLIENT_END }; I2C_CLIENT_INSMOD; @@ -520,15 +519,16 @@ tps65010_probe(struct i2c_adapter *bus, goto fail1; } + /* IRQ is active low, but some gpio lines can't support that */ + irqflags = IRQF_SAMPLE_RANDOM; #ifdef CONFIG_ARM - irqflags = IRQF_SAMPLE_RANDOM | IRQF_TRIGGER_LOW; if (machine_is_omap_h2()) { tps->model = TPS65010; omap_cfg_reg(W4_GPIO58); tps->irq = OMAP_GPIO_IRQ(58); omap_request_gpio(58); omap_set_gpio_direction(58, 1); - irqflags |= IRQF_TRIGGER_FALLING; + irqflags |= IRQF_TRIGGER_LOW; } if (machine_is_omap_osk()) { tps->model = TPS65010; @@ -543,8 +543,6 @@ tps65010_probe(struct i2c_adapter *bus, // FIXME set up this board's IRQ ... } -#else - irqflags = IRQF_SAMPLE_RANDOM; #endif if (tps->irq > 0) {