From b4af9dc26048ec817bcb152a550954b673911642 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E9=82=B1=E5=BB=BA=E6=96=8C?= Date: Fri, 19 Oct 2012 10:18:03 +0800 Subject: [PATCH] rt5631: fix hdmi set spk error [ 415.288635] Unable to handle kernel paging request at virtual address ffffffd2 [ 415.295881] pgd = c0404000 [ 415.298737] [ffffffd2] *pgd=8edfe821, *pte=00000000, *ppte=00000000 [ 415.305203] Internal error: Oops: 17 [#1] PREEMPT SMP [ 415.310281] CPU: 0 Tainted: G C (3.0.8+ #6) [ 415.315635] PC is at dapm_seq_check_event+0x78/0x110 [ 415.320622] LR is at dapm_seq_run_coalesced+0x118/0x150 [ 415.325873] pc : [] lr : [] psr: 80000013 [ 415.325891] sp : ee855e30 ip : 00000014 fp : 00000001 [ 415.337382] r10: 00000003 r9 : c0ade668 r8 : ffffffff [ 415.342625] r7 : ee855e98 r6 : 00000002 r5 : c0a33820 r4 : ffffff9e [ 415.349169] r3 : 00000001 r2 : c0ade668 r1 : ffffff9e r0 : ed544cac [ 415.355720] Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel [ 415.363047] Control: 10c53c7d Table: 8d22404a DAC: 00000015 [ 415.368804] [ 415.368813] PC: 0xc07b6d2c: [ 415.373097] 6d2c e8bd4010 ea05c6c1 e2423001 e92d4073 e1a06002 e1a04001 e5902064 e3530007 [ 415.381420] 6d4c 979ff103 ea000010 c07b6da4 c07b6d74 c07b6d98 c07b6d80 c07b6d98 c07b6d98 [ 415.389742] 6d6c c07b6d98 c07b6d8c e3a03001 e59f50a8 ea00000a e3a03000 e59f50a0 ea000007 [ 415.398054] 6d8c e3a03000 e59f5098 ea000004 e59f0094 e3a01d0d ebf5042f e59f508c e3a03001 [ 415.406359] 6dac e5d41034 e2011001 e1510003 1a000018 e5943044 e3530000 0a000015 e1d434b0 [ 415.414674] 6dcc e1160003 0a000012 e58d5000 e5921164 e5943004 e590005c e59f2050 ebffffab [ 415.422996] 6dec e1a00004 e1a02006 e3a01000 e1a0e00f e594f044 e2503000 aa000005 e1a01005 [ 415.431321] 6e0c e5942004 e59f0028 e28dd008 e8bd4070 ea05c1df e28dd008 e8bd8070 c0a33820 --- sound/soc/codecs/rt5631.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sound/soc/codecs/rt5631.c b/sound/soc/codecs/rt5631.c index 03d944d7ac97..e1d59b76ede9 100755 --- a/sound/soc/codecs/rt5631.c +++ b/sound/soc/codecs/rt5631.c @@ -2080,21 +2080,20 @@ void codec_set_spk(bool on) if(!codec) return; - + mutex_lock(&codec->mutex); if(on){ DBG("snd_soc_dapm_enable_pin\n"); snd_soc_dapm_enable_pin(&codec->dapm, "Headphone Jack"); snd_soc_dapm_enable_pin(&codec->dapm, "Ext Spk"); } else{ - DBG("snd_soc_dapm_disable_pin\n"); snd_soc_dapm_disable_pin(&codec->dapm, "Headphone Jack"); snd_soc_dapm_disable_pin(&codec->dapm, "Ext Spk"); } snd_soc_dapm_sync(&codec->dapm); - + mutex_unlock(&codec->mutex); return; } -- 2.34.1