Merge branch 'upstream' from master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev

+54 -34
-1
drivers/scsi/ata_piix.c
··· 442 442 * piix_set_piomode - Initialize host controller PATA PIO timings 443 443 * @ap: Port whose timings we are configuring 444 444 * @adev: um 445 - * @pio: PIO mode, 0 - 4 446 445 * 447 446 * Set PIO mode for device, in host controller PCI config space. 448 447 *
+49 -32
drivers/scsi/libata-core.c
··· 4132 4132 } 4133 4133 4134 4134 /** 4135 + * ata_host_set_remove - PCI layer callback for device removal 4136 + * @host_set: ATA host set that was removed 4137 + * 4138 + * Unregister all objects associated with this host set. Free those 4139 + * objects. 4140 + * 4141 + * LOCKING: 4142 + * Inherited from calling layer (may sleep). 4143 + */ 4144 + 4145 + 4146 + void ata_host_set_remove(struct ata_host_set *host_set) 4147 + { 4148 + struct ata_port *ap; 4149 + unsigned int i; 4150 + 4151 + for (i = 0; i < host_set->n_ports; i++) { 4152 + ap = host_set->ports[i]; 4153 + scsi_remove_host(ap->host); 4154 + } 4155 + 4156 + free_irq(host_set->irq, host_set); 4157 + 4158 + for (i = 0; i < host_set->n_ports; i++) { 4159 + ap = host_set->ports[i]; 4160 + 4161 + ata_scsi_release(ap->host); 4162 + 4163 + if ((ap->flags & ATA_FLAG_NO_LEGACY) == 0) { 4164 + struct ata_ioports *ioaddr = &ap->ioaddr; 4165 + 4166 + if (ioaddr->cmd_addr == 0x1f0) 4167 + release_region(0x1f0, 8); 4168 + else if (ioaddr->cmd_addr == 0x170) 4169 + release_region(0x170, 8); 4170 + } 4171 + 4172 + scsi_host_put(ap->host); 4173 + } 4174 + 4175 + if (host_set->ops->host_stop) 4176 + host_set->ops->host_stop(host_set); 4177 + 4178 + kfree(host_set); 4179 + } 4180 + 4181 + /** 4135 4182 * ata_scsi_release - SCSI layer callback hook for host unload 4136 4183 * @host: libata host to be unloaded 4137 4184 * ··· 4518 4471 { 4519 4472 struct device *dev = pci_dev_to_dev(pdev); 4520 4473 struct ata_host_set *host_set = dev_get_drvdata(dev); 4521 - struct ata_port *ap; 4522 - unsigned int i; 4523 4474 4524 - for (i = 0; i < host_set->n_ports; i++) { 4525 - ap = host_set->ports[i]; 4526 - 4527 - scsi_remove_host(ap->host); 4528 - } 4529 - 4530 - free_irq(host_set->irq, host_set); 4531 - 4532 - for (i = 0; i < host_set->n_ports; i++) { 4533 - ap = host_set->ports[i]; 4534 - 4535 - ata_scsi_release(ap->host); 4536 - 4537 - if ((ap->flags & ATA_FLAG_NO_LEGACY) == 0) { 4538 - struct ata_ioports *ioaddr = &ap->ioaddr; 4539 - 4540 - if (ioaddr->cmd_addr == 0x1f0) 4541 - release_region(0x1f0, 8); 4542 - else if (ioaddr->cmd_addr == 0x170) 4543 - release_region(0x170, 8); 4544 - } 4545 - 4546 - scsi_host_put(ap->host); 4547 - } 4548 - 4549 - if (host_set->ops->host_stop) 4550 - host_set->ops->host_stop(host_set); 4551 - 4552 - kfree(host_set); 4553 - 4475 + ata_host_set_remove(host_set); 4554 4476 pci_release_regions(pdev); 4555 4477 pci_disable_device(pdev); 4556 4478 dev_set_drvdata(dev, NULL); ··· 4589 4573 EXPORT_SYMBOL_GPL(ata_std_bios_param); 4590 4574 EXPORT_SYMBOL_GPL(ata_std_ports); 4591 4575 EXPORT_SYMBOL_GPL(ata_device_add); 4576 + EXPORT_SYMBOL_GPL(ata_host_set_remove); 4592 4577 EXPORT_SYMBOL_GPL(ata_sg_init); 4593 4578 EXPORT_SYMBOL_GPL(ata_sg_init_one); 4594 4579 EXPORT_SYMBOL_GPL(ata_qc_complete);
+2
drivers/scsi/sata_nv.c
··· 158 158 PCI_ANY_ID, PCI_ANY_ID, 0, 0, MCP51 }, 159 159 { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA, 160 160 PCI_ANY_ID, PCI_ANY_ID, 0, 0, MCP55 }, 161 + { PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2, 162 + PCI_ANY_ID, PCI_ANY_ID, 0, 0, MCP55 }, 161 163 { PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID, 162 164 PCI_ANY_ID, PCI_ANY_ID, 163 165 PCI_CLASS_STORAGE_IDE<<8, 0xffff00, GENERIC },
+1
include/linux/libata.h
··· 393 393 extern void ata_pci_remove_one (struct pci_dev *pdev); 394 394 #endif /* CONFIG_PCI */ 395 395 extern int ata_device_add(struct ata_probe_ent *ent); 396 + extern void ata_host_set_remove(struct ata_host_set *host_set); 396 397 extern int ata_scsi_detect(Scsi_Host_Template *sht); 397 398 extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); 398 399 extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *));
+2 -1
include/linux/pci_ids.h
··· 1268 1268 #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA 0x0266 1269 1269 #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA2 0x0267 1270 1270 #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_IDE 0x036E 1271 - #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA 0x036F 1271 + #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA 0x037E 1272 + #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2 0x037F 1272 1273 #define PCI_DEVICE_ID_NVIDIA_NVENET_12 0x0268 1273 1274 #define PCI_DEVICE_ID_NVIDIA_NVENET_13 0x0269 1274 1275 #define PCI_DEVICE_ID_NVIDIA_MCP51_AUDIO 0x026B