]> err.no Git - linux-2.6/blobdiff - drivers/media/video/bt856.c
V4L/DVB (3569): PATCH: switch cpia2 to mutexes and use ioctl 32 compat lib func
[linux-2.6] / drivers / media / video / bt856.c
index a5d529ccf3ad174fb1aead3cac87e48f03dcebd2..4d47a0a0e974c28b089baa75352fc8f2e49aec6e 100644 (file)
@@ -43,7 +43,6 @@
 #include <asm/pgtable.h>
 #include <asm/page.h>
 #include <linux/sched.h>
-#include <asm/segment.h>
 #include <linux/types.h>
 
 #include <linux/videodev.h>
@@ -54,7 +53,6 @@ MODULE_AUTHOR("Mike Bernson & Dave Perks");
 MODULE_LICENSE("GPL");
 
 #include <linux/i2c.h>
-#include <linux/i2c-dev.h>
 
 #define I2C_NAME(s) (s)->name
 
@@ -72,17 +70,14 @@ MODULE_PARM_DESC(debug, "Debug level (0-1)");
 
 /* ----------------------------------------------------------------------- */
 
-#define REG_OFFSET  0xCE
+#define REG_OFFSET     0xDA
+#define BT856_NR_REG   6
 
 struct bt856 {
-       unsigned char reg[32];
+       unsigned char reg[BT856_NR_REG];
 
        int norm;
        int enable;
-       int bright;
-       int contrast;
-       int hue;
-       int sat;
 };
 
 #define   I2C_BT856        0x88
@@ -121,8 +116,8 @@ bt856_dump (struct i2c_client *client)
        struct bt856 *encoder = i2c_get_clientdata(client);
 
        printk(KERN_INFO "%s: register dump:", I2C_NAME(client));
-       for (i = 0xd6; i <= 0xde; i += 2)
-               printk(" %02x", encoder->reg[i - REG_OFFSET]);
+       for (i = 0; i < BT856_NR_REG; i += 2)
+               printk(" %02x", encoder->reg[i]);
        printk("\n");
 }
 
@@ -295,7 +290,6 @@ static struct i2c_client_address_data addr_data = {
        .normal_i2c             = normal_i2c,
        .probe                  = &ignore,
        .ignore                 = &ignore,
-       .force                  = &ignore,
 };
 
 static struct i2c_driver i2c_driver_bt856;
@@ -318,22 +312,19 @@ bt856_detect_client (struct i2c_adapter *adapter,
        if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA))
                return 0;
 
-       client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL);
+       client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
        if (client == 0)
                return -ENOMEM;
-       memset(client, 0, sizeof(struct i2c_client));
        client->addr = address;
        client->adapter = adapter;
        client->driver = &i2c_driver_bt856;
-       client->flags = I2C_CLIENT_ALLOW_USE;
        strlcpy(I2C_NAME(client), "bt856", sizeof(I2C_NAME(client)));
 
-       encoder = kmalloc(sizeof(struct bt856), GFP_KERNEL);
+       encoder = kzalloc(sizeof(struct bt856), GFP_KERNEL);
        if (encoder == NULL) {
                kfree(client);
                return -ENOMEM;
        }
-       memset(encoder, 0, sizeof(struct bt856));
        encoder->norm = VIDEO_MODE_NTSC;
        encoder->enable = 1;
        i2c_set_clientdata(client, encoder);
@@ -407,11 +398,11 @@ bt856_detach_client (struct i2c_client *client)
 /* ----------------------------------------------------------------------- */
 
 static struct i2c_driver i2c_driver_bt856 = {
-       .owner = THIS_MODULE,
-       .name = "bt856",
+       .driver = {
+               .name = "bt856",
+       },
 
        .id = I2C_DRIVERID_BT856,
-       .flags = I2C_DF_NOTIFY,
 
        .attach_adapter = bt856_attach_adapter,
        .detach_client = bt856_detach_client,