[libata] atapi_enabled problem

From: Emmanuel Fleury
Date: Thu Apr 20 2006 - 08:25:00 EST


Hi,

I'm a bit puzzled, I have a Fujistu-Siemens P7120 (see: http://www.labri.fr/perso/fleury/index.php?page=p7120) and the DVD-ROM wasn't detected at all at boot time.

After googling a bit I found this page: http://www.thinkwiki.org/wiki/Problems_with_SATA_and_Linux

So, I tried to compile the kernel with built-in ATAPI and S-ATA support (not as modules but embedded in the kernel) and I tried to pass libata.atapi_enabled=1 at boot time through kernel options. The DVD-drive was recognized at boot but generate tons of errors:

ata1: translated ATA stat/err 0x51/20 to SCSI SK/ASC/ASCQ 0x3/11/04
ata1: no sense translation for error 0x20
ata1: no sense translation for status: 0x51
ata1: translated ATA stat/err 0x51/20 to SCSI SK/ASC/ASCQ 0x3/11/04
sr0: CDROM (ioctl) error, command: <6>Test Unit Ready 00 00 00 00 00 00
sr: Current [descriptor]: sense key: Medium Error
Additional sense: Unrecovered read error - auto reallocate failed
ata1: no sense translation for error 0x20
ata1: no sense translation for status: 0x51
ata1: translated ATA stat/err 0x51/20 to SCSI SK/ASC/ASCQ 0x3/11/04
ata1: no sense translation for error 0x20
ata1: no sense translation for status: 0x51
ata1: translated ATA stat/err 0x51/20 to SCSI SK/ASC/ASCQ 0x3/11/04
ata1: no sense translation for error 0x20
ata1: no sense translation for status: 0x51
ata1: translated ATA stat/err 0x51/20 to SCSI SK/ASC/ASCQ 0x3/11/04
ata1: no sense translation for error 0x20
ata1: no sense translation for status: 0x51
ata1: translated ATA stat/err 0x51/20 to SCSI SK/ASC/ASCQ 0x3/11/04
ata1: no sense translation for error 0x20
ata1: no sense translation for status: 0x51
ata1: translated ATA stat/err 0x51/20 to SCSI SK/ASC/ASCQ 0x3/11/04
ata1: no sense translation for error 0x20
ata1: no sense translation for status: 0x51
ata1: translated ATA stat/err 0x51/20 to SCSI SK/ASC/ASCQ 0x3/11/04
ata1: no sense translation for error 0x20
ata1: no sense translation for status: 0x51

Then I decided to just modify drivers/scsi/libata-core.c changing the line "atapi_enabled = 0" into "atapi_enabled = 1". Then everything worked as a charm.

I have no explanation yet for this behaviour (passing kernel options should behave the same than changing the code the way I did I suppose).

Does anyone has an idea ?

Regards
--
Emmanuel Fleury
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/