[PPC,SOUND] Fix audio gpio state detection

Benjamin Herrenschmidt benh at kernel.crashing.org
Mon Feb 13 09:35:37 EST 2006


On Sat, 2006-02-11 at 17:10 +0100, Andreas Schwab wrote:
> When booting with line out or headphone plugged, you won't hear anything.
> The problem is that after reset all channels are muted, but the actual
> value of the gpio port doesn't exactly match the active_val settings as
> expected by check_audio_gpio.  For example, the line_mute port is set to
> 7, but check_audio_gpio would expect 0xd or 0xf, thus its return value
> indicates that it is not active, even though it is.  AFAICS only looking
> at the low bit is enough to determine whether the port is active.
> 
> Signed-off-by: Andreas Schwab <schwab at suse.de>
> 
> Index: linux-2.6.16-rc2/sound/ppc/tumbler.c
> ===================================================================
> --- linux-2.6.16-rc2.orig/sound/ppc/tumbler.c	2006-02-03 19:43:50.000000000 +0100
> +++ linux-2.6.16-rc2/sound/ppc/tumbler.c	2006-02-11 03:46:30.000000000 +0100
> @@ -207,7 +207,7 @@ static int check_audio_gpio(struct pmac_
>  
>  	ret = do_gpio_read(gp);
>  
> -	return (ret & 0xd) == (gp->active_val & 0xd);
> +	return (ret & 0x1) == (gp->active_val & 0x1);
>  }
>  
>  static int read_audio_gpio(struct pmac_gpio *gp)

Can you sync with the patches Ben Collins is doing on this as well ?

Ben, what is your status ? Are you feeding those through upstream the
alsa folks ? Or waiting for me to do something ? :)

The above, if it appear to works well enough might be worth merging
now ...

Ben.




More information about the Linuxppc-dev mailing list