diff options
Diffstat (limited to 'linux/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c')
-rw-r--r-- | linux/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/linux/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c b/linux/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c index 232dea53f..4f1f4b000 100644 --- a/linux/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c +++ b/linux/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c @@ -234,6 +234,10 @@ static int i2c_hack_cx25840(struct pvr2_hdw *hdw, return 0; } + if (state == 3) { + return pvr2_i2c_basic_op(hdw,i2c_addr,wdata,wlen,rdata,rlen); + } + /* We're looking for the exact pattern where the revision register is being read. The cx25840 module will always look at the revision register first. Any other pattern of access therefore @@ -283,11 +287,9 @@ static int i2c_hack_cx25840(struct pvr2_hdw *hdw, goto fail; } - /* Success! Now let's just step out of the way and let the cx25840 - module do its work normally from now on... */ - pvr2_trace(PVR2_TRACE_INIT,"cx25840 appears to be OK," - " dropping its I2C filter"); - hdw->i2c_func[0x44] = pvr2_i2c_basic_op; + /* Success! */ + pvr2_trace(PVR2_TRACE_CHIPS,"cx25840 appears to be OK."); + state = 3; success: hdw->i2c_cx25840_hack_state = state; |