V4L/DVB (10434): cx18: Smarter verification of CX18_AUDIO_ENABLE register writes
authorAndy Walls <awalls@radix.net>
Sat, 31 Jan 2009 01:39:26 +0000 (22:39 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 30 Mar 2009 15:42:38 +0000 (12:42 -0300)
The CX18_AUDIO_ENABLE register usually never reads back what was just written
under normal circumstances.  Perform better checking that a write went to the
register as expected with a specification of what bits to verify.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/cx18/cx18-audio.c
drivers/media/video/cx18/cx18-av-firmware.c

index 57beddf..d19bd77 100644 (file)
@@ -64,8 +64,7 @@ int cx18_audio_set_io(struct cx18 *cx)
        val = cx18_read_reg(cx, CX18_AUDIO_ENABLE) & ~0x30;
        val |= (audio_input > CX18_AV_AUDIO_SERIAL2) ? 0x20 :
                                        (audio_input << 4);
-       cx18_write_reg(cx, val | 0xb00, CX18_AUDIO_ENABLE);
-       cx18_vapi(cx, CX18_APU_RESETAI, 1, 0);
+       cx18_write_reg_expect(cx, val | 0xb00, CX18_AUDIO_ENABLE, val, 0x30);
        return 0;
 }
 
index b374c74..940ea93 100644 (file)
@@ -131,7 +131,8 @@ int cx18_av_loadfw(struct cx18 *cx)
        v = cx18_read_reg(cx, CX18_AUDIO_ENABLE);
        /* If bit 11 is 1, clear bit 10 */
        if (v & 0x800)
-               cx18_write_reg(cx, v & 0xFFFFFBFF, CX18_AUDIO_ENABLE);
+               cx18_write_reg_expect(cx, v & 0xFFFFFBFF, CX18_AUDIO_ENABLE,
+                                     0, 0x400);
 
        /* Enable WW auto audio standard detection */
        v = cx18_av_read4(cx, CXADEC_STD_DET_CTL);