git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
drivers
/
i2c
/
busses
/
i2c-mpc.c
diff --git
a/drivers/i2c/busses/i2c-mpc.c
b/drivers/i2c/busses/i2c-mpc.c
index
5ccd338
..
ee65aa1
100644
(file)
--- a/
drivers/i2c/busses/i2c-mpc.c
+++ b/
drivers/i2c/busses/i2c-mpc.c
@@
-13,7
+13,6
@@
* warranty of any kind, whether express or implied.
*/
* warranty of any kind, whether express or implied.
*/
-#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/sched.h>
@@
-64,7
+63,7
@@
static __inline__ void writeccr(struct mpc_i2c *i2c, u32 x)
writeb(x, i2c->base + MPC_I2C_CR);
}
writeb(x, i2c->base + MPC_I2C_CR);
}
-static irqreturn_t mpc_i2c_isr(int irq, void *dev_id
, struct pt_regs *regs
)
+static irqreturn_t mpc_i2c_isr(int irq, void *dev_id)
{
struct mpc_i2c *i2c = dev_id;
if (readb(i2c->base + MPC_I2C_SR) & CSR_MIF) {
{
struct mpc_i2c *i2c = dev_id;
if (readb(i2c->base + MPC_I2C_SR) & CSR_MIF) {
@@
-273,7
+272,7
@@
static u32 mpc_functionality(struct i2c_adapter *adap)
return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL;
}
return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL;
}
-static struct i2c_algorithm mpc_algo = {
+static
const
struct i2c_algorithm mpc_algo = {
.master_xfer = mpc_xfer,
.functionality = mpc_functionality,
};
.master_xfer = mpc_xfer,
.functionality = mpc_functionality,
};
@@
-302,6
+301,10
@@
static int fsl_i2c_probe(struct platform_device *pdev)
}
i2c->irq = platform_get_irq(pdev, 0);
}
i2c->irq = platform_get_irq(pdev, 0);
+ if (i2c->irq < 0) {
+ result = -ENXIO;
+ goto fail_get_irq;
+ }
i2c->flags = pdata->device_flags;
init_waitqueue_head(&i2c->queue);
i2c->flags = pdata->device_flags;
init_waitqueue_head(&i2c->queue);
@@
-315,7
+318,7
@@
static int fsl_i2c_probe(struct platform_device *pdev)
if (i2c->irq != 0)
if ((result = request_irq(i2c->irq, mpc_i2c_isr,
if (i2c->irq != 0)
if ((result = request_irq(i2c->irq, mpc_i2c_isr,
-
SA_SHIRQ
, "i2c-mpc", i2c)) < 0) {
+
IRQF_SHARED
, "i2c-mpc", i2c)) < 0) {
printk(KERN_ERR
"i2c-mpc - failed to attach interrupt\n");
goto fail_irq;
printk(KERN_ERR
"i2c-mpc - failed to attach interrupt\n");
goto fail_irq;
@@
-340,6
+343,7
@@
static int fsl_i2c_probe(struct platform_device *pdev)
fail_irq:
iounmap(i2c->base);
fail_map:
fail_irq:
iounmap(i2c->base);
fail_map:
+ fail_get_irq:
kfree(i2c);
return result;
};
kfree(i2c);
return result;
};