Hi !
This patch fixes a couple more issues with the management of the GPIOs
dealing with headphone and line out mute on the G5. It should fix the
remaining problems of people not getting any sound out of the headphone
jack.
Signed-off-by: Benjamin Herrenschmidt <[email protected]>
Index: linux-work/sound/ppc/tumbler.c
===================================================================
--- linux-work.orig/sound/ppc/tumbler.c 2005-04-12 18:07:50.000000000 +1000
+++ linux-work/sound/ppc/tumbler.c 2005-04-13 18:02:26.000000000 +1000
@@ -177,11 +177,22 @@
if (! gp->addr)
return;
active = active ? gp->active_val : gp->inactive_val;
-
do_gpio_write(gp, active);
DBG("(I) gpio %x write %d\n", gp->addr, active);
}
+static int check_audio_gpio(pmac_gpio_t *gp)
+{
+ int ret;
+
+ if (! gp->addr)
+ return 0;
+
+ ret = do_gpio_read(gp);
+
+ return (ret & 0xd) == (gp->active_val & 0xd);
+}
+
static int read_audio_gpio(pmac_gpio_t *gp)
{
int ret;
@@ -683,7 +694,7 @@
}
if (gp == NULL)
return -EINVAL;
- ucontrol->value.integer.value[0] = ! read_audio_gpio(gp);
+ ucontrol->value.integer.value[0] = !check_audio_gpio(gp);
return 0;
}
@@ -711,7 +722,7 @@
}
if (gp == NULL)
return -EINVAL;
- val = ! read_audio_gpio(gp);
+ val = ! check_audio_gpio(gp);
if (val != ucontrol->value.integer.value[0]) {
write_audio_gpio(gp, ! ucontrol->value.integer.value[0]);
return 1;
@@ -897,11 +908,11 @@
static void check_mute(pmac_t *chip, pmac_gpio_t *gp, int val, int do_notify, snd_kcontrol_t *sw)
{
- //pmac_tumbler_t *mix = chip->mixer_data;
- if (val != read_audio_gpio(gp)) {
+ if (check_audio_gpio(gp) != val) {
write_audio_gpio(gp, val);
if (do_notify)
- snd_ctl_notify(chip->card, SNDRV_CTL_EVENT_MASK_VALUE, &sw->id);
+ snd_ctl_notify(chip->card, SNDRV_CTL_EVENT_MASK_VALUE,
+ &sw->id);
}
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]