[alsa-devel] Fw: [Bug 1155202] [Intel DZ77SL-50K, Intel PantherPoint HDMI, Digital Out, HDMI] No sound at all

Takashi Iwai tiwai at suse.de
Mon Feb 10 10:01:17 CET 2014


At Mon, 10 Feb 2014 11:35:41 +0530,
niraj kulkarni wrote:
> 
> Removing these 3 usleep ranges is working now. Although I have a doubt for
> applying this patch on all chips. There have been a number of boards
> released after this particular board, but nobody else is facing this
> problem. Since spec does not specify a max on deasserting RST, some boards
> might actually take more than 100uS to reset. Will this patch work for
> those boards?
> 
> @@ -1149,7 +1149,7 @@
>         timeout = jiffies + msecs_to_jiffies(100);
>         while ((azx_readb(chip, GCTL) & ICH6_GCTL_RESET) &&
>                         time_before(jiffies, timeout))
> -               usleep_range(500, 1000);
> +               cpu_relax();
>  }
> 
>  /* exit link reset */
> @@ -1162,7 +1162,7 @@
>         timeout = jiffies + msecs_to_jiffies(100);
>         while (!azx_readb(chip, GCTL) &&
>                         time_before(jiffies, timeout))
> -               usleep_range(500, 1000);
> +               cpu_relax();
>  }
> 
>  /* reset codec link */
> @@ -1180,7 +1180,7 @@
>         /* delay for >= 100us for codec PLL to settle per spec
>          * Rev 0.9 section 5.5.1
>          */
> -       usleep_range(500, 1000);
> +       //usleep_range(500, 1000);

Why didn't you change as I suggested?  In my patch, I placed udelay(2)
since the spec tells so.  Didn't it interfere?

Replacing usleep_range() with cpu_relax() should make still working on
other boards because it doesn't change the length of the timeout
itself.  The timeout is set to very long (100ms).  The only drawback
would be a higher CPU usage at probing, but the impact should be
negligible.


Takashi


More information about the Alsa-devel mailing list