diff -urN a/drivers/media/video/upd64031a.c b/drivers/media/video/upd64031a.c --- a/drivers/media/video/upd64031a.c 2008-07-14 06:51:29.000000000 +0900 +++ b/drivers/media/video/upd64031a.c 2008-07-16 20:55:44.692759552 +0900 @@ -207,7 +207,7 @@ v4l_info(client, "chip found @ 0x%x (%s)\n", client->addr << 1, client->adapter->name); - state = kmalloc(sizeof(struct upd64031a_state), GFP_KERNEL); + state = kzalloc(sizeof(struct upd64031a_state), GFP_KERNEL); // Fix 20080716 if (state == NULL) return -ENOMEM; i2c_set_clientdata(client, state); @@ -239,6 +239,7 @@ .driverid = I2C_DRIVERID_UPD64031A, .command = upd64031a_command, .probe = upd64031a_probe, - .remove = upd64031a_remove, + .legacy_class = I2C_CLASS_TV_ANALOG | I2C_CLASS_TV_DIGITAL , // Add 20080716 + .remove = upd64031a_remove, .id_table = upd64031a_id, };