More data on ide-cd "playing music" death

Romano Giannetti (romano@dea.icai.upco.es)
Mon, 30 Nov 1998 16:54:19 +0100


It is time now to resend some report about cd cdplay problem.

Background: Acer ide-cd 32x udma. Kernel 2.1.130, UP on a PII machine.
Problem: when listening an audio cd, after a while (more or less,
half a disk), the player program (tcd in my case) goes in a state D
limb and the syslog gets filled by:

Nov 30 16:04:39 pern kernel: hdc: lost interrupt
Nov 30 16:04:39 pern kernel: hdc: cdrom_pc_intr: The drive appears
confused (ireason = 0x 1)

And I have to reboot. I tried all the combination of boot (hdc=noprobe
hdc=cdrom or hdc=noautotune) and hdparm (masking and unmasking
interrupt) without any luck. I tried to look to ide-cd.c, to add
at the point:

pc->buflen -= thislen;
} else {
printk ("%s: cdrom_pc_intr: The drive "
"appears confused (ireason = 0x%2x)\n",
drive->name, ireason);
pc->stat = 1;
}

Something lke the #ifdef'd 0 in ide_cdrom_reset sequence, but really I
could not find the right struct to point to :(.

Now, sometime, reading a isofs disk, when the disc needs to spin up
(well, APM is disabled in BIOS and not compiled in kernel, but the
cdrom did spin down and I like it, giving the airplane like noise it
does when spinning), I have a "timeout", but then a reset will
automatically restore it in a few seconds.

So, I think that this shuold be hw related, but I think too that
having to reboot the machine is a bit strong. I will like an abrupt
solution too (reset the drive and SIGSEGV all programs waiting for it),
everything is better than having an almost-dead machine. I mean,
something on the line of:

static int being_confused=0;
...
} else {
printk ("%s: cdrom_pc_intr: The drive "
"appears confused (ireason = 0x%2x)\n",
drive->name, ireason);
being_confused++;
if (being_confused>10) {
/* Use _really_ drastic measures to reset drive*/
being_confused=0;
}
pc->stat = 1;
}

Well, not so much help, but I am ready to try patches at your will.
Bye,
Romano

-- 
Romano Giannetti, Professor  -  Univ. Pontificia Comillas (Madrid, Spain)
Electronic Engineer - phone +34 915 422 800 ext 2410  fax +34 915 596 569

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/