summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/msp3400-driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/video/msp3400-driver.c')
-rw-r--r--linux/drivers/media/video/msp3400-driver.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/linux/drivers/media/video/msp3400-driver.c b/linux/drivers/media/video/msp3400-driver.c
index 0e21a5b57..d6364b01f 100644
--- a/linux/drivers/media/video/msp3400-driver.c
+++ b/linux/drivers/media/video/msp3400-driver.c
@@ -829,7 +829,11 @@ static int msp_command(struct i2c_client *client, unsigned int cmd, void *arg)
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,14)
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,20)
+static int msp_suspend(struct i2c_client *client, pm_message_t state)
+#else
static int msp_suspend(struct device * dev, pm_message_t state)
+#endif
#else
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13)
static int msp_suspend(struct device * dev, pm_message_t state, u32 level)
@@ -838,7 +842,9 @@ static int msp_suspend(struct device * dev, u32 state, u32 level)
#endif
#endif
{
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,20)
struct i2c_client *client = container_of(dev, struct i2c_client, dev);
+#endif
v4l_dbg(1, msp_debug, client, "suspend\n");
msp_reset(client);
@@ -846,12 +852,18 @@ static int msp_suspend(struct device * dev, u32 state, u32 level)
}
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,14)
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,20)
+static int msp_resume(struct i2c_client *client)
+#else
static int msp_resume(struct device * dev)
+#endif
#else
static int msp_resume(struct device * dev, u32 level)
#endif
{
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,20)
struct i2c_client *client = container_of(dev, struct i2c_client, dev);
+#endif
v4l_dbg(1, msp_debug, client, "resume\n");
msp_wake_thread(client);
@@ -894,7 +906,7 @@ static int msp_attach(struct i2c_adapter *adapter, int address, int kind)
if (msp_reset(client) == -1) {
v4l_dbg(1, msp_debug, client, "msp3400 not found\n");
kfree(client);
- return -1;
+ return 0;
}
state = kmalloc(sizeof(*state), GFP_KERNEL);
@@ -928,7 +940,7 @@ static int msp_attach(struct i2c_adapter *adapter, int address, int kind)
v4l_dbg(1, msp_debug, client, "not an msp3400 (cannot read chip version)\n");
kfree(state);
kfree(client);
- return -1;
+ return 0;
}
#if 0
@@ -1110,14 +1122,20 @@ static struct i2c_driver i2c_driver = {
.id = I2C_DRIVERID_MSP3400,
.attach_adapter = msp_probe,
.detach_client = msp_detach,
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,20)
+ .suspend = msp_suspend,
+ .resume = msp_resume,
+#endif
.command = msp_command,
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
.driver = {
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,15)
.name = "msp3400",
#endif
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,20)
.suspend = msp_suspend,
.resume = msp_resume,
+#endif
},
#endif
};