i2c-pnx: Fix interrupt handler, get rid of EARLY config option
This fixes two issues raised by David Brownell on the i2c list: << Someone needs to update i2c-pnx.c to handle the IRQ handler doesn't expect pt_regs (gone now for a while), and so it doesn't try to reference "mudule_init()" if I2C isn't initialized "early". For that matter, to get rid of that _option_ to initialize then, and always init that driver with subsystem_init() ... it's common with embedded systems to need I2C access to tweak a GPIO expander or do some other work when bringing up drivers, that's not specific to USB stacks. >> Signed-off-by: Vitaly Wool <vitalywool@gmail.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
This commit is contained in:
parent
a7ec3f5289
commit
6c566fb7b3
@ -564,13 +564,4 @@ config I2C_PNX
|
|||||||
This driver can also be built as a module. If so, the module
|
This driver can also be built as a module. If so, the module
|
||||||
will be called i2c-pnx.
|
will be called i2c-pnx.
|
||||||
|
|
||||||
config I2C_PNX_EARLY
|
|
||||||
bool "Early initialization for I2C on PNXxxxx"
|
|
||||||
depends on I2C_PNX=y
|
|
||||||
help
|
|
||||||
Under certain circumstances one may need to make sure I2C on PNXxxxx
|
|
||||||
is initialized earlier than some other driver that depends on it
|
|
||||||
(for instance, that might be USB in case of PNX4008). With this
|
|
||||||
option turned on you can guarantee that.
|
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
@ -305,8 +305,7 @@ static int i2c_pnx_master_rcv(struct i2c_adapter *adap)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static irqreturn_t
|
static irqreturn_t i2c_pnx_interrupt(int irq, void *dev_id)
|
||||||
i2c_pnx_interrupt(int irq, void *dev_id, struct pt_regs *regs)
|
|
||||||
{
|
{
|
||||||
u32 stat, ctl;
|
u32 stat, ctl;
|
||||||
struct i2c_adapter *adap = dev_id;
|
struct i2c_adapter *adap = dev_id;
|
||||||
@ -699,10 +698,6 @@ MODULE_AUTHOR("Vitaly Wool, Dennis Kovalev <source@mvista.com>");
|
|||||||
MODULE_DESCRIPTION("I2C driver for Philips IP3204-based I2C busses");
|
MODULE_DESCRIPTION("I2C driver for Philips IP3204-based I2C busses");
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
|
|
||||||
#ifdef CONFIG_I2C_PNX_EARLY
|
|
||||||
/* We need to make sure I2C is initialized before USB */
|
/* We need to make sure I2C is initialized before USB */
|
||||||
subsys_initcall(i2c_adap_pnx_init);
|
subsys_initcall(i2c_adap_pnx_init);
|
||||||
#else
|
|
||||||
mudule_init(i2c_adap_pnx_init);
|
|
||||||
#endif
|
|
||||||
module_exit(i2c_adap_pnx_exit);
|
module_exit(i2c_adap_pnx_exit);
|
||||||
|
Loading…
Reference in New Issue
Block a user