diff options
Diffstat (limited to 'drivers/ide/ide-probe.c')
-rw-r--r-- | drivers/ide/ide-probe.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index fa95e79b9505..c446e348e29a 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
@@ -235,9 +235,6 @@ static inline void do_identify (ide_drive_t *drive, u8 cmd) | |||
235 | drive->media = ide_disk; | 235 | drive->media = ide_disk; |
236 | printk("%s DISK drive\n", (id->config == 0x848a) ? "CFA" : "ATA" ); | 236 | printk("%s DISK drive\n", (id->config == 0x848a) ? "CFA" : "ATA" ); |
237 | 237 | ||
238 | if (hwif->quirkproc) | ||
239 | drive->quirk_list = hwif->quirkproc(drive); | ||
240 | |||
241 | return; | 238 | return; |
242 | 239 | ||
243 | err_misc: | 240 | err_misc: |
@@ -676,19 +673,18 @@ out: | |||
676 | 673 | ||
677 | /** | 674 | /** |
678 | * ide_undecoded_slave - look for bad CF adapters | 675 | * ide_undecoded_slave - look for bad CF adapters |
679 | * @hwif: interface | 676 | * @drive1: drive |
680 | * | 677 | * |
681 | * Analyse the drives on the interface and attempt to decide if we | 678 | * Analyse the drives on the interface and attempt to decide if we |
682 | * have the same drive viewed twice. This occurs with crap CF adapters | 679 | * have the same drive viewed twice. This occurs with crap CF adapters |
683 | * and PCMCIA sometimes. | 680 | * and PCMCIA sometimes. |
684 | */ | 681 | */ |
685 | 682 | ||
686 | void ide_undecoded_slave(ide_hwif_t *hwif) | 683 | void ide_undecoded_slave(ide_drive_t *drive1) |
687 | { | 684 | { |
688 | ide_drive_t *drive0 = &hwif->drives[0]; | 685 | ide_drive_t *drive0 = &drive1->hwif->drives[0]; |
689 | ide_drive_t *drive1 = &hwif->drives[1]; | ||
690 | 686 | ||
691 | if (drive0->present == 0 || drive1->present == 0) | 687 | if ((drive1->dn & 1) == 0 || drive0->present == 0) |
692 | return; | 688 | return; |
693 | 689 | ||
694 | /* If the models don't match they are not the same product */ | 690 | /* If the models don't match they are not the same product */ |
@@ -817,8 +813,12 @@ static void probe_hwif(ide_hwif_t *hwif) | |||
817 | return; | 813 | return; |
818 | } | 814 | } |
819 | 815 | ||
820 | if (hwif->fixup) | 816 | for (unit = 0; unit < MAX_DRIVES; unit++) { |
821 | hwif->fixup(hwif); | 817 | ide_drive_t *drive = &hwif->drives[unit]; |
818 | |||
819 | if (drive->present && hwif->quirkproc) | ||
820 | hwif->quirkproc(drive); | ||
821 | } | ||
822 | 822 | ||
823 | for (unit = 0; unit < MAX_DRIVES; ++unit) { | 823 | for (unit = 0; unit < MAX_DRIVES; ++unit) { |
824 | ide_drive_t *drive = &hwif->drives[unit]; | 824 | ide_drive_t *drive = &hwif->drives[unit]; |