Commit 6c566fb7 authored by Vitaly Wool's avatar Vitaly Wool Committed by Jean Delvare

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: default avatarVitaly Wool <vitalywool@gmail.com>
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
parent a7ec3f52
...@@ -564,13 +564,4 @@ config I2C_PNX ...@@ -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) ...@@ -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>"); ...@@ -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);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment