mirror of https://gitee.com/openkylin/linux.git
ide: classify device type in do_probe()
Defer classifying device type from do_identify() to do_probe(). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
552d3a99bd
commit
1bd4c1f4fe
|
@ -233,16 +233,6 @@ static void do_identify(ide_drive_t *drive, u8 cmd)
|
|||
drive->dev_flags |= IDE_DFLAG_PRESENT;
|
||||
drive->dev_flags &= ~IDE_DFLAG_DEAD;
|
||||
|
||||
/*
|
||||
* Check for an ATAPI device
|
||||
*/
|
||||
if (cmd == ATA_CMD_ID_ATAPI)
|
||||
ide_classify_atapi_dev(drive);
|
||||
else
|
||||
/*
|
||||
* Not an ATAPI device: looks like a "regular" hard disk
|
||||
*/
|
||||
ide_classify_ata_dev(drive);
|
||||
return;
|
||||
err_misc:
|
||||
kfree(id);
|
||||
|
@ -480,6 +470,8 @@ static int do_probe (ide_drive_t *drive, u8 cmd)
|
|||
static u8 probe_for_drive(ide_drive_t *drive)
|
||||
{
|
||||
char *m;
|
||||
int rc;
|
||||
u8 cmd;
|
||||
|
||||
/*
|
||||
* In order to keep things simple we have an id
|
||||
|
@ -504,9 +496,13 @@ static u8 probe_for_drive(ide_drive_t *drive)
|
|||
/* skip probing? */
|
||||
if ((drive->dev_flags & IDE_DFLAG_NOPROBE) == 0) {
|
||||
/* if !(success||timed-out) */
|
||||
if (do_probe(drive, ATA_CMD_ID_ATA) >= 2)
|
||||
cmd = ATA_CMD_ID_ATA;
|
||||
rc = do_probe(drive, cmd);
|
||||
if (rc >= 2) {
|
||||
/* look for ATAPI device */
|
||||
(void)do_probe(drive, ATA_CMD_ID_ATAPI);
|
||||
cmd = ATA_CMD_ID_ATAPI;
|
||||
rc = do_probe(drive, cmd);
|
||||
}
|
||||
|
||||
if ((drive->dev_flags & IDE_DFLAG_PRESENT) == 0)
|
||||
/* drive not found */
|
||||
|
@ -525,8 +521,12 @@ static u8 probe_for_drive(ide_drive_t *drive)
|
|||
printk(KERN_WARNING "%s: Unknown device on bus refused identification. Ignoring.\n", drive->name);
|
||||
drive->dev_flags &= ~IDE_DFLAG_PRESENT;
|
||||
}
|
||||
} else {
|
||||
if (cmd == ATA_CMD_ID_ATAPI)
|
||||
ide_classify_atapi_dev(drive);
|
||||
else
|
||||
ide_classify_ata_dev(drive);
|
||||
}
|
||||
/* drive was found */
|
||||
}
|
||||
|
||||
if ((drive->dev_flags & IDE_DFLAG_PRESENT) == 0)
|
||||
|
|
Loading…
Reference in New Issue