Openmoko Bug #2478: linux 2.6.39: alsa state not correctly restored in resume

Openmoko Public Trac bugs at docs.openmoko.org
Sat Feb 11 22:59:09 CET 2012


#2478: linux 2.6.39: alsa state not correctly restored in resume
---------------------+------------------------------------------------------
 Reporter:  lindi    |          Owner:  openmoko-kernel                        
     Type:  defect   |         Status:  new                                    
 Priority:  high     |      Milestone:                                         
Component:  kernel   |        Version:                                         
 Severity:  blocker  |       Keywords:  kernel alsa suspend resume linux 2.6.39
 Haspatch:  0        |      Blockedby:                                         
Estimated:           |    Patchreview:                                         
 Blocking:           |   Reproducible:  always                                 
---------------------+------------------------------------------------------

Comment(by GNUtoo):

 The fix doesn't work for me:
 On serial console(with apm -s in the middle):
 {{{
 root at om-gta02:~# speaker-test -t sine

 speaker-test 1.0.24.2

 Playback device is default
 Stream parameters are 48000Hz, S16_LE, 1 channels
 Sine wave rate is 440.0000Hz
 Rate set to 48000Hz (requested 48000Hz)
 Buffer size range from 2048 to 16384
 Period size range from 1024 to 1024
 Using max buffer size 16384
 Periods = 4
 was set period_size = 1024
 was set buffer_size = 16384
  0 - Front Left
 Time per period = 2.845838
  0 - Front Left
 T[   96.155000] soc-audio soc-audio: resume work item may be lost
 Write error: -86,Streams pipe error
 [   96.260000] dma2: channel has nothing loaded
 }}}

 I applied that patch to meta-smartphone:
 {{{
 diff --git a/meta-openmoko/recipes-kernel/linux/linux-2.6.39/shr.patch b
 /meta-openmoko/recipes-kernel/linux/linux-2.6.39/shr.patch
 index 65d087c..efa59e7 100644
 --- a/meta-openmoko/recipes-kernel/linux/linux-2.6.39/shr.patch
 +++ b/meta-openmoko/recipes-kernel/linux/linux-2.6.39/shr.patch
 @@ -3,6 +3,7 @@ rebased on top of openmoko kernel repository
 (om-2.6.39-stable)

  https://gitorious.org/shr/linux/commits/shr-2.6.39-nodrm

 +31bdfe1: ASOC: samsung: neo1973_wm8753.c: fix openmoko bug #2478
  b851f9f: glamo-mci: disable glamo_mci_pre_request &
 glamo_mci_post_request
  6e1d25a: shr-create-patch.sh: utility used to generate shr.patch for
 meta-smartphone
  352f236: wm8753: Workaround toolchain bug:
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48783
 @@ -2401,7 +2402,7 @@ index 8275a2f..8e3e56e 100644
   #endif /* __GLAMO_CORE_H */
  diff --git a/shr-create-patch.sh b/shr-create-patch.sh
  new file mode 100755
 -index 0000000..b251946
 +index 0000000..a09d4c2
  --- /dev/null
  +++ b/shr-create-patch.sh
  @@ -0,0 +1,12 @@
 @@ -2413,9 +2414,9 @@ index 0000000..b251946
  +
  +https://gitorious.org/shr/linux/commits/shr-2.6.39-nodrm
  +
 -+$(git log --pretty=format:"%h: %s" gitorious/om-2.6.39-stable..)
 ++$(git log --pretty=format:"%h: %s"
 d09e21824bacd5f9ac0285c14c6ddc2d79b96608..)
  +
 -+$(git diff om-2.6.39-stable)
 ++$(git diff d09e21824bacd5f9ac0285c14c6ddc2d79b96608)
  +EOF
  diff --git a/sound/soc/codecs/wm8753.c b/sound/soc/codecs/wm8753.c
  index ffa2ffe..69c499a 100644
 @@ -2441,7 +2442,7 @@ index ffa2ffe..69c499a 100644
   {
         u64 Kpart;
  diff --git a/sound/soc/samsung/neo1973_wm8753.c
 b/sound/soc/samsung/neo1973_wm8753.c
 -index 4f845fe..a3a1cc8 100644
 +index 4f845fe..a7095d9 100644
  --- a/sound/soc/samsung/neo1973_wm8753.c
  +++ b/sound/soc/samsung/neo1973_wm8753.c
  @@ -19,6 +19,7 @@
 @@ -2507,7 +2508,20 @@ index 4f845fe..a3a1cc8 100644
         return 0;
   }

 -@@ -527,6 +569,7 @@ module_init(neo1973_init);
 +@@ -358,12 +400,6 @@ static int neo1973_wm8753_init(struct
 snd_soc_pcm_runtime *rtd)
 +       snd_soc_dapm_disable_pin(dapm, "Headset Mic");
 +       snd_soc_dapm_disable_pin(dapm, "Handset Mic");
 +
 +-      /* allow audio paths from the GSM modem to run during suspend */
 +-      snd_soc_dapm_ignore_suspend(dapm, "GSM Line Out");
 +-      snd_soc_dapm_ignore_suspend(dapm, "GSM Line In");
 +-      snd_soc_dapm_ignore_suspend(dapm, "Headset Mic");
 +-      snd_soc_dapm_ignore_suspend(dapm, "Handset Mic");
 +-
 +       if (machine_is_neo1973_gta02()) {
 +               ret = neo1973_gta02_wm8753_init(codec);
 +               if (ret)
 +@@ -527,6 +563,7 @@ module_init(neo1973_init);

   static void __exit neo1973_exit(void)
   {
 diff --git a/meta-openmoko/recipes-kernel/linux/linux_2.6.39.bb b/meta-
 openmoko/recipes-kernel/linux/linux_2.6.39.bb
 index beebcec..0ff4433 100644
 --- a/meta-openmoko/recipes-kernel/linux/linux_2.6.39.bb
 +++ b/meta-openmoko/recipes-kernel/linux/linux_2.6.39.bb
 @@ -1,6 +1,6 @@
  require linux.inc

 -PR = "r6"
 +PR = "r7"

  # Mark archs/machines that this kernel supports
  DEFAULT_PREFERENCE = "-1"
 }}}
 And build fso2-console-image and did the test mentioned above.

-- 
Ticket URL: <https://docs.openmoko.org/trac/ticket/2478#comment:11>
docs.openmoko.org <http://docs.openmoko.org/trac/>
openmoko trac


More information about the openmoko-kernel mailing list