From: Guido Guenther Date: Tue, 15 Nov 2005 06:28:05 +0000 (+1100) Subject: [PATCH] PowerBook 6,1: headphone not detected after suspend X-Git-Tag: v2.6.15-rc2~74^2~6 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c0ce5c5228dd17d4e3dd1d15b8d52714262cab70;p=linux-2.6 [PATCH] PowerBook 6,1: headphone not detected after suspend ever since suspend to disk works I had the problem that headphone (un)plugging doesn't get detected properly anymore after the first resume. Reloading the module worked around this ever since, however the real cause of the problem was that after a resume the driver only got interrupts on "unplug" not on "plug". Reactivating the headphone status interrupt in tumbler_resume fixes this. This shouldn't cause any trouble with software suspend, but it would be nice if somebody could confirm this: Signed-off-by: Guido Guenther Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras --- diff --git a/sound/ppc/tumbler.c b/sound/ppc/tumbler.c index 65384afcfc..d74bfabe53 100644 --- a/sound/ppc/tumbler.c +++ b/sound/ppc/tumbler.c @@ -1194,8 +1194,14 @@ static void tumbler_resume(pmac_t *chip) tumbler_set_master_volume(mix); if (chip->update_automute) chip->update_automute(chip, 0); - if (mix->headphone_irq >= 0) + if (mix->headphone_irq >= 0) { + unsigned char val; + enable_irq(mix->headphone_irq); + /* activate headphone status interrupts */ + val = do_gpio_read(&mix->hp_detect); + do_gpio_write(&mix->hp_detect, val | 0x80); + } if (mix->lineout_irq >= 0) enable_irq(mix->lineout_irq); }