kernel_optimize_test/arch/ppc/platforms
Benjamin Herrenschmidt 7bbd827750 [PATCH] ppc64: very basic desktop g5 sound support
This patch hacks the current PowerMac Alsa driver to add some basic support
of analog sound output to some desktop G5s.  It has severe limitations
though:

 - Only 44100Khz 16 bits
 - Only work on G5 models using a TAS3004 analog code, that is early
   single CPU desktops and all dual CPU desktops at this date, but none
   of the more recent ones like iMac G5.
 - It does analog only, no digital/SPDIF support at all, no native
   AC3 support

Better support would require a complete rewrite of the driver (which I am
working on, but don't hold your breath), to properly support the diversity
of apple sound HW setup, including dual codecs, several i2s busses, all the
new codecs used in the new machines, proper clock switching with digital,
etc etc etc...

This patch applies on top of the other PowerMac sound patches I posted in
the past couple of days (new powerbook support and sleep fixes).  

Note: This is a FAQ entry for PowerMac sound support with TI codecs: They
have a feature called "DRC" which is automatically enabled for the internal
speaker (at least when auto mute control is enabled) which will cause your
sound to fade out to nothing after half a second of playback if you don't
set a proper "DRC Range" in the mixer.  So if you have a problem like that,
check alsamixer and raise your DRC Range to something reasonable.

Note2: This patch will also add auto-mute of the speaker when line-out jack
is used on some earlier desktop G4s (and on the G5) in addition to the
headphone jack.  If that behaviour isn't what you want, just disable
auto-muting and use the manual mute controls in alsamixer.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-04-16 15:24:32 -07:00
..
4xx Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
83xx Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
85xx Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
adir_pci.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
adir_pic.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
adir_setup.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
adir.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
apus_pci.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
apus_pci.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
apus_setup.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bseip.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ccm.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
chestnut.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
chestnut.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
chrp_pci.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
chrp_pegasos_eth.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
chrp_setup.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
chrp_smp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
chrp_time.c [PATCH] ppc32: Fix a problem with NTP on !(chrp||gemini) 2005-04-16 15:24:24 -07:00
cpci690.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cpci690.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
est8260.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ev64260.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ev64260.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fads.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gemini_pci.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gemini_prom.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gemini_serial.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gemini_setup.c [PATCH] ppc32: Fix a problem with NTP on !(chrp||gemini) 2005-04-16 15:24:24 -07:00
gemini.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hdpu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hdpu.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hermes.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ip860.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ivms8.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
k2.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
k2.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
katana.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
katana.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
lantec.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
lite5200.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
lite5200.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
lopec.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
lopec.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
lwmon.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mbx.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mcpn765.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mcpn765.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mpc5200.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mvme5100.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mvme5100.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pal4_pci.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pal4_serial.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pal4_setup.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pal4.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pcore.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pcore.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pcu_e.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmac_backlight.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmac_cache.S [PATCH] ppc32: Fix building 32bit kernel for 64bit machines 2005-04-16 15:24:25 -07:00
pmac_cpufreq.c [PATCH] ppc32: Fix cpufreq problems 2005-04-16 15:24:18 -07:00
pmac_feature.c [PATCH] ppc64: very basic desktop g5 sound support 2005-04-16 15:24:32 -07:00
pmac_low_i2c.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmac_nvram.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmac_pci.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmac_pic.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmac_pic.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmac_setup.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmac_sleep.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmac_smp.c [PATCH] ppc32: improve timebase sync for SMP 2005-04-16 15:24:16 -07:00
pmac_time.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
powerpmc250.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
powerpmc250.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pplus.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pplus.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pq2ads.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pq2ads.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
prep_pci.c [PATCH] ppc32: Make the Powerstack II Pro4000 boot again 2005-04-16 15:24:26 -07:00
prep_setup.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
prpmc750.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
prpmc750.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
prpmc800.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
prpmc800.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
radstone_ppc7d.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
radstone_ppc7d.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
residual.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rpx8260.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rpxclassic.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rpxhiox.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rpxlite.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sandpoint.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sandpoint.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sbc82xx.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sbc82xx.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sbs8260.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
spd8xx.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
spruce.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
spruce.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tqm8xx.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tqm8260_setup.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tqm8260.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00