diff options
Diffstat (limited to 'drivers/media/pci/ivtv/ivtv-i2c.c')
-rw-r--r-- | drivers/media/pci/ivtv/ivtv-i2c.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/drivers/media/pci/ivtv/ivtv-i2c.c b/drivers/media/pci/ivtv/ivtv-i2c.c index 46e262becb67..ceed2d87abfd 100644 --- a/drivers/media/pci/ivtv/ivtv-i2c.c +++ b/drivers/media/pci/ivtv/ivtv-i2c.c | |||
@@ -267,8 +267,6 @@ int ivtv_i2c_register(struct ivtv *itv, unsigned idx) | |||
267 | const char *type = hw_devicenames[idx]; | 267 | const char *type = hw_devicenames[idx]; |
268 | u32 hw = 1 << idx; | 268 | u32 hw = 1 << idx; |
269 | 269 | ||
270 | if (idx >= ARRAY_SIZE(hw_addrs)) | ||
271 | return -1; | ||
272 | if (hw == IVTV_HW_TUNER) { | 270 | if (hw == IVTV_HW_TUNER) { |
273 | /* special tuner handling */ | 271 | /* special tuner handling */ |
274 | sd = v4l2_i2c_new_subdev(&itv->v4l2_dev, adap, type, 0, | 272 | sd = v4l2_i2c_new_subdev(&itv->v4l2_dev, adap, type, 0, |
@@ -719,13 +717,10 @@ int init_ivtv_i2c(struct ivtv *itv) | |||
719 | return -ENODEV; | 717 | return -ENODEV; |
720 | } | 718 | } |
721 | if (itv->options.newi2c > 0) { | 719 | if (itv->options.newi2c > 0) { |
722 | memcpy(&itv->i2c_adap, &ivtv_i2c_adap_hw_template, | 720 | itv->i2c_adap = ivtv_i2c_adap_hw_template; |
723 | sizeof(struct i2c_adapter)); | ||
724 | } else { | 721 | } else { |
725 | memcpy(&itv->i2c_adap, &ivtv_i2c_adap_template, | 722 | itv->i2c_adap = ivtv_i2c_adap_template; |
726 | sizeof(struct i2c_adapter)); | 723 | itv->i2c_algo = ivtv_i2c_algo_template; |
727 | memcpy(&itv->i2c_algo, &ivtv_i2c_algo_template, | ||
728 | sizeof(struct i2c_algo_bit_data)); | ||
729 | } | 724 | } |
730 | itv->i2c_algo.udelay = itv->options.i2c_clock_period / 2; | 725 | itv->i2c_algo.udelay = itv->options.i2c_clock_period / 2; |
731 | itv->i2c_algo.data = itv; | 726 | itv->i2c_algo.data = itv; |
@@ -735,8 +730,7 @@ int init_ivtv_i2c(struct ivtv *itv) | |||
735 | itv->instance); | 730 | itv->instance); |
736 | i2c_set_adapdata(&itv->i2c_adap, &itv->v4l2_dev); | 731 | i2c_set_adapdata(&itv->i2c_adap, &itv->v4l2_dev); |
737 | 732 | ||
738 | memcpy(&itv->i2c_client, &ivtv_i2c_client_template, | 733 | itv->i2c_client = ivtv_i2c_client_template; |
739 | sizeof(struct i2c_client)); | ||
740 | itv->i2c_client.adapter = &itv->i2c_adap; | 734 | itv->i2c_client.adapter = &itv->i2c_adap; |
741 | itv->i2c_adap.dev.parent = &itv->pdev->dev; | 735 | itv->i2c_adap.dev.parent = &itv->pdev->dev; |
742 | 736 | ||