Merge with Linus' kernel.
[powerpc.git] / drivers / media / video / saa7127.c
index 3428e1e..bca6ed0 100644 (file)
@@ -69,7 +69,8 @@ MODULE_PARM_DESC(test_image, "test_image (0-1)");
 #define saa7127_dbg(fmt, arg...) \
        do { \
                if (debug >= 1) \
-                       printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \
+                       printk(KERN_INFO "%s debug %d-%04x: " fmt, \
+                              client->driver->driver.name, \
                               i2c_adapter_id(client->adapter), client->addr , ## arg); \
        } while (0)
 
@@ -77,15 +78,16 @@ MODULE_PARM_DESC(test_image, "test_image (0-1)");
 #define saa7127_dbg_highvol(fmt, arg...) \
        do { \
                if (debug == 2) \
-                       printk(KERN_INFO "%s debug %d-%04x: " fmt, client->driver->name, \
+                       printk(KERN_INFO "%s debug %d-%04x: " fmt, \
+                              client->driver->driver.name, \
                               i2c_adapter_id(client->adapter), client->addr , ## arg); \
        } while (0)
 
 #define saa7127_err(fmt, arg...) do { \
-       printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->name, \
+       printk(KERN_ERR "%s %d-%04x: " fmt, client->driver->driver.name, \
               i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
 #define saa7127_info(fmt, arg...) do { \
-       printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->name, \
+       printk(KERN_INFO "%s %d-%04x: " fmt, client->driver->driver.name, \
               i2c_adapter_id(client->adapter), client->addr , ## arg); } while (0)
 
 static unsigned short normal_i2c[] = { 0x88 >> 1, I2C_CLIENT_END };
@@ -389,7 +391,7 @@ static int saa7127_set_vps(struct i2c_client *client, struct v4l2_sliced_vbi_dat
 static int saa7127_set_cc(struct i2c_client *client, struct v4l2_sliced_vbi_data *data)
 {
        struct saa7127_state *state = i2c_get_clientdata(client);
-       u16 cc = data->data[0] << 8 | data->data[1];
+       u16 cc = data->data[1] << 8 | data->data[0];
        int enable = (data->line != 0);
 
        if (enable && (data->field != 0 || data->line != 21))
@@ -397,7 +399,7 @@ static int saa7127_set_cc(struct i2c_client *client, struct v4l2_sliced_vbi_data
        if (state->cc_enable != enable) {
                saa7127_dbg("Turn CC %s\n", enable ? "on" : "off");
                saa7127_write(client, SAA7127_REG_CLOSED_CAPTION,
-                               (enable << 6) | 0x11);
+                               (state->xds_enable << 7) | (enable << 6) | 0x11);
                state->cc_enable = enable;
        }
        if (!enable)
@@ -423,7 +425,7 @@ static int saa7127_set_xds(struct i2c_client *client, struct v4l2_sliced_vbi_dat
        if (state->xds_enable != enable) {
                saa7127_dbg("Turn XDS %s\n", enable ? "on" : "off");
                saa7127_write(client, SAA7127_REG_CLOSED_CAPTION,
-                               (enable << 7) | 0x11);
+                               (enable << 7) | (state->cc_enable << 6) | 0x11);
                state->xds_enable = enable;
        }
        if (!enable)
@@ -719,7 +721,6 @@ static int saa7127_attach(struct i2c_adapter *adapter, int address, int kind)
        client->addr = address;
        client->adapter = adapter;
        client->driver = &i2c_driver_saa7127;
-       client->flags = I2C_CLIENT_ALLOW_USE;
        snprintf(client->name, sizeof(client->name) - 1, "saa7127");
 
        saa7127_dbg("detecting saa7127 client on address 0x%x\n", address << 1);
@@ -819,13 +820,13 @@ static int saa7127_detach(struct i2c_client *client)
 /* ----------------------------------------------------------------------- */
 
 static struct i2c_driver i2c_driver_saa7127 = {
-       .name = "saa7127",
+       .driver = {
+               .name = "saa7127",
+       },
        .id = I2C_DRIVERID_SAA7127,
-       .flags = I2C_DF_NOTIFY,
        .attach_adapter = saa7127_probe,
        .detach_client = saa7127_detach,
        .command = saa7127_command,
-       .owner = THIS_MODULE,
 };