Commit 072e6183 authored by Andy Walls's avatar Andy Walls Committed by Mauro Carvalho Chehab

V4L/DVB (10434): cx18: Smarter verification of CX18_AUDIO_ENABLE register writes

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: default avatarAndy Walls <awalls@radix.net>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent e474200d
...@@ -64,8 +64,7 @@ int cx18_audio_set_io(struct cx18 *cx) ...@@ -64,8 +64,7 @@ int cx18_audio_set_io(struct cx18 *cx)
val = cx18_read_reg(cx, CX18_AUDIO_ENABLE) & ~0x30; val = cx18_read_reg(cx, CX18_AUDIO_ENABLE) & ~0x30;
val |= (audio_input > CX18_AV_AUDIO_SERIAL2) ? 0x20 : val |= (audio_input > CX18_AV_AUDIO_SERIAL2) ? 0x20 :
(audio_input << 4); (audio_input << 4);
cx18_write_reg(cx, val | 0xb00, CX18_AUDIO_ENABLE); cx18_write_reg_expect(cx, val | 0xb00, CX18_AUDIO_ENABLE, val, 0x30);
cx18_vapi(cx, CX18_APU_RESETAI, 1, 0);
return 0; return 0;
} }
......
...@@ -131,7 +131,8 @@ int cx18_av_loadfw(struct cx18 *cx) ...@@ -131,7 +131,8 @@ int cx18_av_loadfw(struct cx18 *cx)
v = cx18_read_reg(cx, CX18_AUDIO_ENABLE); v = cx18_read_reg(cx, CX18_AUDIO_ENABLE);
/* If bit 11 is 1, clear bit 10 */ /* If bit 11 is 1, clear bit 10 */
if (v & 0x800) 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 */ /* Enable WW auto audio standard detection */
v = cx18_av_read4(cx, CXADEC_STD_DET_CTL); v = cx18_av_read4(cx, CXADEC_STD_DET_CTL);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment