| Summary: | ide/atapi/cdrom bugs | ||
|---|---|---|---|
| Product: | Base System | Reporter: | tuomov <tuomov> |
| Component: | kern | Assignee: | Søren Schmidt <sos> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | 4.0-RELEASE | ||
| Hardware: | Any | ||
| OS: | Any | ||
Responsible Changed From-To: freebsd-bugs->sos Soren's territory. 8) State Changed From-To: open->closed I'm not really sure what this is, it looks strange, please upgrade to 4.2 and contact me if you are still having problems. |
1. Detection of ATAPI device by some magic signature (ata-all.c, row 818->) does not seem to work on my cdrom ("noname" 12x). I managed to fix this by a simple identify patch. 2. After this it still complains "NO DRIVER". I managed to track the problem to acd_mode_sense() failure in acdattach() but I didn't start trying to fix that too. Fix: 1. Always try atapi identify if ata identify fails. Below is a quick and dirty patch to ata-all.c 109a110,120 > #define TRY_IDENT(scp, SM) \ > if (scp->devices & (ATA_ATA_##SM|ATA_ATAPI_##SM)){ \ > if (ata_getparam(scp, ATA_##SM, ATA_C_ATA_IDENTIFY)) { \ > scp->devices &= ~ATA_ATA_##SM; \ > if (ata_getparam(scp, ATA_##SM, ATA_C_ATAPI_IDENTIFY)) \ > scp->devices &= ~ATA_ATAPI_##SM; \ > else \ > scp->devices |= ATA_ATAPI_##SM; \ > } \ > } > 884a896,899 > #if 1 > TRY_IDENT(scp, SLAVE); > TRY_IDENT(scp, MASTER); > #else 896a912,913 > #endif > 1028a1046,1050 > > #if 1 > TRY_IDENT(scp, SLAVE); > TRY_IDENT(scp, MASTER); > #else 1040a1063 > #endif How-To-Repeat: Another broken noname cdrom drive?