2 days ago I bought a P7P55 LX motherboard because my old one broke, and
the only thing that was still missing till a few minutes ago was sound.
For some reason, when doing 'soundon' the system hanged completely and I
had to do a hard reset.
I'm using ArchLinux (64 bit) (kernel 2.6.32)
My brother is using gentoo (also with kernel 2.6.32) and has a P7P55 D.
He had the very same problem.
I tried enabling and disabling the different drivers, and found that it
hanged in oss_hdaudio.
More specifically, after adding debug prints and using netconsole to
debug what happens, I found that the problem was
kernel/drv/oss_hdaudio/oss_hdaudio.c line 1091:
devc->codecmask = PCI_READL (devc->osdev, devc->azbar + HDA_STATESTS);
This line was the one where all my debug prints stopped.
I cross-compared the function to the ALSA equivalend and found that they
were using different sizes in their read and write operations and
thought I'd give it a try and change PCI_READL to PCI_READW.
With this change the problem was gone, and sound actually works now.
Although the dmesg output complains about an unknown codec :P
oss_hdaudio 0000:00:1b.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
oss_hdaudio: HDA codec 0x11060397 not known yet
oss_hdaudio: HDA codec 0x11060397 not known yet
usbcore: registered new interface driver oss_usb
I'm attaching a diff, and the output of device's output `lspci -vv`
Bye,
Blub
--- original-oss-v4.2-build2002-src-gpl/kernel/drv/oss_hdaudio/oss_hdaudio.c 2009-11-13 16:23:23.000000000 +0100
+++ oss-v4.2-build2002-src-gpl/kernel/drv/oss_hdaudio/oss_hdaudio.c 2010-02-27 15:16:06.000000000 +0100
@@ -1091,7 +1091,7 @@ reset_controller (hda_devc_t * devc)
if (!devc->codecmask)
{
- devc->codecmask = PCI_READL (devc->osdev, devc->azbar + HDA_STATESTS);
+ devc->codecmask = PCI_READW (devc->osdev, devc->azbar + HDA_STATESTS);
DDB (cmn_err (CE_CONT, "Codec mask %x\n", devc->codecmask));
}
00:1b.0 Audio device: Intel Corporation Ibex Peak High Definition Audio (rev 05)
Subsystem: ASUSTeK Computer Inc. Device 836c
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 22
Region 0: Memory at fbaf8000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA
PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [60] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns,
L1 <1us
ExtTag- RBE- FLReset+
DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
TransPend-
LnkCap: Port #0, Speed unknown, Width x0, ASPM unknown, Latency
L0 <64ns, L1 <1us
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed unknown, Width x0, TrErr- Train- SlotClk-
DLActive- BWMgmt- ABWMgmt-
Capabilities: [100] Virtual Channel <?>
Capabilities: [130] Root Complex Link <?>
Kernel driver in use: oss_hdaudio
Kernel modules: snd-hda-intel
_______________________________________________
oss-devel mailing list
oss-devel@mailman.opensound.com
http://mailman.opensound.com/mailman/listinfo/oss-devel