> +struct sch_80 { > + u16 device; > +}; That seems somewhat overkill > + /* Check for specials - Intel SCH chipset */ > + while (sch->device) { > + if (sch->device == pdev->device) > + return ATA_CBL_PATA80; > + sch++; PATA_80 means "controller *knows* we are 80 wire". PATA_UNK means "controller can't do detect." > + /* Check for specials - Intel SCH chipset */ > + while (sch->device) { > + if (sch->device == pdev->device) { > + skip_check = 1; > + break; > + } > + sch++; This is horrible. If you just defined a new set of methods for your new controller (remembering we now have inheritance anyway) you'd just use the ata_sff_prereset and remove all the special casing code. At the very least write the routine once only;) > + } > + if (!skip_check) > + if (!pci_test_config_bits(pdev, &piix_enable_bits[ap->port_no])) > + return -ENOENT; > return ata_sff_prereset(link, deadline); > } > -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html