On Saturday 08 September 2007, Sergei Shtylyov wrote: > Bartlomiej Zolnierkiewicz wrote: > > > * Split off hpt{374,371,366}_init() helper from init_setup_hpt{374,371,366}(). > > > * Merge init_setup_{374,372n,371,372a,302,366}() into hpt366_init_one(). > > > While at it: > > > * Use "HPT36x" name for HPT366/HPT368 chipsets. > > > * Add .chip_name to struct hpt_info and use it to set set d->name. > > > * Convert .max_ultra in struct hpt_info to .udma_mask and use it to set > > d->udma_mask. > > > * Fix hpt302 to use HPT302_ALLOW_ATA133_6 define. > > I haven't found that change... static struct hpt_info hpt302 __devinitdata = { + .chip_name = "HPT302", .chip_type = HPT302, - .max_ultra = HPT372_ALLOW_ATA133_6 ? 6 : 5, + .udma_mask = HPT302_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5, .dpll_clk = 66, .settings = hpt37x_settings }; > > * Change HPT366/HPT374 interrupt fixup message from KERN_WARNING to KERN_INFO. > > > * Use the second hpt366_chipsets[] entry for HPT37x chipsets using HPT36x PCI > > device ID and fix .enablebits/.host_flags for HPT36x hpt366_chipsets[] entry. > > Well, if you're ruining my nearly perfect desigh... I was just adjusting hpt366 for ->init_setup removal, the other changes happened by the way... 8) > > * Bump driver version. > > ... it's worth to label it 1.20. :-) updated > > + d = hpt366_chipsets[idx]; > > + > > + d.name = /info->chip_name; > > + d.udma_mask = info->udma_mask; > > + > > + pci_set_drvdata(dev, info); > > + > > + if (info == &hpt36x || info == &hpt374) > > + dev2 = pci_get_slot(dev->bus, dev->devfn + 1); > > + > > + if (dev2) { > > + int ret; > > + > > + pci_set_drvdata(dev2, info); > > + > > + if (info == &hpt374) > > + hpt374_init(dev, dev2); > > + else { > > + if (hpt36x_init(dev, dev2)) > > + d.host_flags |= IDE_HFLAG_BOOTABLE; > > + } > > + > > + ret = ide_setup_pci_devices(dev, dev2, &d); > > + if (ret < 0) > > + pci_dev_put(dev2); > > + return ret; > > + } > > > > - return d.init_setup(dev, &d); > > + return ide_setup_pci_device(dev, &d); > > } > > NAK the patch because it's breaking the HPT374 code. Those chips are > *signle* function, and sit in perfect copule (and why I alsway mistype in this > word :o) on 2 DEVSELs behind i960. Please explain - there shouldn't be any behavior change for HPT374 caused by this patch. Could it be that HPT374 code was already buggy +static void __devinit hpt374_init(struct pci_dev *dev, struct pci_dev *dev2) { - struct pci_dev *dev2; - - if (PCI_FUNC(dev->devfn) & 1) - return -ENODEV; - - pci_set_drvdata(dev, &hpt374); - - if ((dev2 = pci_get_slot(dev->bus, dev->devfn + 1)) != NULL) { - int ret; - ? Bart - 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