public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* snd-nm256: hard lockup on every second module load after powerup
@ 2006-03-26  5:45 Christian Trefzer
  2006-03-26  6:12 ` Christian Trefzer
  2006-03-27 10:16 ` Takashi Iwai
  0 siblings, 2 replies; 10+ messages in thread
From: Christian Trefzer @ 2006-03-26  5:45 UTC (permalink / raw)
  To: lkml

[-- Attachment #1: Type: text/plain, Size: 2044 bytes --]

Hi folks,

I have this really old Dell Latitude CPiA here containing the dreaded
neomagic combined audio/video chipset, and observe some hard lockup
sometimes, which is not supposed to be anything special wrt. other
people with similar laptops having the same trouble. The only regularity
I noticed was that after completely removing power to the machine, the
sound driver can be loaded without locking the thing hard. Any further
attempt, eg. rmmod and insmod or reboot with alsasound startup script,
will result in a dead machine. Every time. Cut the power, and next time
it will survive - exactly once.

Now this chip is a NM2200 / 256AV, and I already did some reading in the
alsa driver source code, but adding printk()s all over the place just
showed that it does not lock up during init_chip() or poking at the
registers during ac97_reset(), but shortly after the latter, approx.
half a second or so - it might still be a consequence thereof.

My basic idea is, with the device being entirely undocumented (to hell
with all hardware vendors who don't even release specs after the devices
are not even sold anymore, by the way), that the code is missing a
proper device reset, and trying to re-init some parts just kill the
machine. Cutting the power really is not that nice as a workaround. I'd
love to try something along the lines of saving the device's state as a
whole, and before reloading the module, restore that state again. The
difference between before and after should somehow give a clue about the
proper reset procedure - or so I hope.

Unfortunately I failed with my previous attempts to modify the driver
appropriately. Now that it's basically back to formula, I wanted to ask
whether there is a possibility to read and write back whole parts of
memory directly from/to the device, or if I should rather store each and
every register somewhere I can later restore it from, one by one. I'd
even prefer userspace, and am currently experimenting with pcidump.


Any hints would be greatly appreciated! Thanks a bunch,

Chris

[-- Attachment #2: Type: application/pgp-signature, Size: 829 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2006-04-03  9:57 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-26  5:45 snd-nm256: hard lockup on every second module load after powerup Christian Trefzer
2006-03-26  6:12 ` Christian Trefzer
2006-03-26 14:11   ` Christian Trefzer
2006-03-27 10:16 ` Takashi Iwai
2006-03-27 22:59   ` Lee Revell
2006-03-29 14:43     ` Christian Trefzer
2006-03-31 21:12       ` Adrian Bunk
2006-03-31 21:53         ` Lee Revell
2006-04-01  9:21           ` Adrian Bunk
2006-04-03  9:57           ` Takashi Iwai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox