aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ata/libata-core.c81
-rw-r--r--include/linux/libata.h4
2 files changed, 6 insertions, 79 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 20b2409a0d20..b3091de894c2 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -5506,31 +5506,6 @@ int ata_port_start(struct ata_port *ap)
5506} 5506}
5507 5507
5508/** 5508/**
5509 * ata_port_stop - Undo ata_port_start()
5510 * @ap: Port to shut down
5511 *
5512 * Frees the PRD table.
5513 *
5514 * May be used as the port_stop() entry in ata_port_operations.
5515 *
5516 * LOCKING:
5517 * Inherited from caller.
5518 */
5519void ata_port_stop (struct ata_port *ap)
5520{
5521 struct device *dev = ap->dev;
5522
5523 dmam_free_coherent(dev, ATA_PRD_TBL_SZ, ap->prd, ap->prd_dma);
5524 ata_pad_free(ap, dev);
5525}
5526
5527void ata_host_stop (struct ata_host *host)
5528{
5529 if (host->mmio_base)
5530 iounmap(host->mmio_base);
5531}
5532
5533/**
5534 * ata_dev_init - Initialize an ata_device structure 5509 * ata_dev_init - Initialize an ata_device structure
5535 * @dev: Device structure to initialize 5510 * @dev: Device structure to initialize
5536 * 5511 *
@@ -5869,7 +5844,7 @@ int ata_device_add(const struct ata_probe_ent *ent)
5869 } 5844 }
5870 5845
5871 /* resource acquisition complete */ 5846 /* resource acquisition complete */
5872 devres_close_group(dev, ata_device_add); 5847 devres_remove_group(dev, ata_device_add);
5873 5848
5874 /* perform each probe synchronously */ 5849 /* perform each probe synchronously */
5875 DPRINTK("probe begin\n"); 5850 DPRINTK("probe begin\n");
@@ -6024,22 +5999,6 @@ void ata_host_detach(struct ata_host *host)
6024 ata_port_detach(host->ports[i]); 5999 ata_port_detach(host->ports[i]);
6025} 6000}
6026 6001
6027/**
6028 * ata_host_remove - PCI layer callback for device removal
6029 * @host: ATA host set that was removed
6030 *
6031 * Unregister all objects associated with this host set. Free those
6032 * objects.
6033 *
6034 * LOCKING:
6035 * Inherited from calling layer (may sleep).
6036 */
6037void ata_host_remove(struct ata_host *host)
6038{
6039 ata_host_detach(host);
6040 devres_release_group(host->dev, ata_device_add);
6041}
6042
6043struct ata_probe_ent * 6002struct ata_probe_ent *
6044ata_probe_ent_alloc(struct device *dev, const struct ata_port_info *port) 6003ata_probe_ent_alloc(struct device *dev, const struct ata_port_info *port)
6045{ 6004{
@@ -6099,26 +6058,13 @@ void ata_std_ports(struct ata_ioports *ioaddr)
6099 6058
6100#ifdef CONFIG_PCI 6059#ifdef CONFIG_PCI
6101 6060
6102void ata_pci_host_stop (struct ata_host *host)
6103{
6104 struct pci_dev *pdev = to_pci_dev(host->dev);
6105
6106 /* XXX - the following if can go away once all LLDs are managed */
6107 if (!list_empty(&host->dev->devres_head))
6108 pcim_iounmap(pdev, host->mmio_base);
6109 else
6110 pci_iounmap(pdev, host->mmio_base);
6111}
6112
6113/** 6061/**
6114 * ata_pci_remove_one - PCI layer callback for device removal 6062 * ata_pci_remove_one - PCI layer callback for device removal
6115 * @pdev: PCI device that was removed 6063 * @pdev: PCI device that was removed
6116 * 6064 *
6117 * PCI layer indicates to libata via this hook that 6065 * PCI layer indicates to libata via this hook that hot-unplug or
6118 * hot-unplug or module unload event has occurred. 6066 * module unload event has occurred. Detach all ports. Resource
6119 * Handle this by unregistering all objects associated 6067 * release is handled via devres.
6120 * with this PCI device. Free those objects. Then finally
6121 * release PCI resources and disable device.
6122 * 6068 *
6123 * LOCKING: 6069 * LOCKING:
6124 * Inherited from PCI layer (may sleep). 6070 * Inherited from PCI layer (may sleep).
@@ -6128,14 +6074,7 @@ void ata_pci_remove_one(struct pci_dev *pdev)
6128 struct device *dev = pci_dev_to_dev(pdev); 6074 struct device *dev = pci_dev_to_dev(pdev);
6129 struct ata_host *host = dev_get_drvdata(dev); 6075 struct ata_host *host = dev_get_drvdata(dev);
6130 6076
6131 /* XXX - the following if can go away once all LLDs are managed */ 6077 ata_host_detach(host);
6132 if (!list_empty(&host->dev->devres_head)) {
6133 ata_host_remove(host);
6134 pci_release_regions(pdev);
6135 pci_disable_device(pdev);
6136 dev_set_drvdata(dev, NULL);
6137 } else
6138 ata_host_detach(host);
6139} 6078}
6140 6079
6141/* move to PCI subsystem */ 6080/* move to PCI subsystem */
@@ -6189,11 +6128,7 @@ int ata_pci_device_do_resume(struct pci_dev *pdev)
6189 pci_set_power_state(pdev, PCI_D0); 6128 pci_set_power_state(pdev, PCI_D0);
6190 pci_restore_state(pdev); 6129 pci_restore_state(pdev);
6191 6130
6192 /* XXX - the following if can go away once all LLDs are managed */ 6131 rc = pcim_enable_device(pdev);
6193 if (!list_empty(&pdev->dev.devres_head))
6194 rc = pcim_enable_device(pdev);
6195 else
6196 rc = pci_enable_device(pdev);
6197 if (rc) { 6132 if (rc) {
6198 dev_printk(KERN_ERR, &pdev->dev, 6133 dev_printk(KERN_ERR, &pdev->dev,
6199 "failed to enable device after resume (%d)\n", rc); 6134 "failed to enable device after resume (%d)\n", rc);
@@ -6373,7 +6308,6 @@ EXPORT_SYMBOL_GPL(ata_std_ports);
6373EXPORT_SYMBOL_GPL(ata_host_init); 6308EXPORT_SYMBOL_GPL(ata_host_init);
6374EXPORT_SYMBOL_GPL(ata_device_add); 6309EXPORT_SYMBOL_GPL(ata_device_add);
6375EXPORT_SYMBOL_GPL(ata_host_detach); 6310EXPORT_SYMBOL_GPL(ata_host_detach);
6376EXPORT_SYMBOL_GPL(ata_host_remove);
6377EXPORT_SYMBOL_GPL(ata_sg_init); 6311EXPORT_SYMBOL_GPL(ata_sg_init);
6378EXPORT_SYMBOL_GPL(ata_sg_init_one); 6312EXPORT_SYMBOL_GPL(ata_sg_init_one);
6379EXPORT_SYMBOL_GPL(ata_hsm_move); 6313EXPORT_SYMBOL_GPL(ata_hsm_move);
@@ -6390,8 +6324,6 @@ EXPORT_SYMBOL_GPL(ata_check_status);
6390EXPORT_SYMBOL_GPL(ata_altstatus); 6324EXPORT_SYMBOL_GPL(ata_altstatus);
6391EXPORT_SYMBOL_GPL(ata_exec_command); 6325EXPORT_SYMBOL_GPL(ata_exec_command);
6392EXPORT_SYMBOL_GPL(ata_port_start); 6326EXPORT_SYMBOL_GPL(ata_port_start);
6393EXPORT_SYMBOL_GPL(ata_port_stop);
6394EXPORT_SYMBOL_GPL(ata_host_stop);
6395EXPORT_SYMBOL_GPL(ata_interrupt); 6327EXPORT_SYMBOL_GPL(ata_interrupt);
6396EXPORT_SYMBOL_GPL(ata_mmio_data_xfer); 6328EXPORT_SYMBOL_GPL(ata_mmio_data_xfer);
6397EXPORT_SYMBOL_GPL(ata_pio_data_xfer); 6329EXPORT_SYMBOL_GPL(ata_pio_data_xfer);
@@ -6452,7 +6384,6 @@ EXPORT_SYMBOL_GPL(ata_timing_merge);
6452 6384
6453#ifdef CONFIG_PCI 6385#ifdef CONFIG_PCI
6454EXPORT_SYMBOL_GPL(pci_test_config_bits); 6386EXPORT_SYMBOL_GPL(pci_test_config_bits);
6455EXPORT_SYMBOL_GPL(ata_pci_host_stop);
6456EXPORT_SYMBOL_GPL(ata_pci_init_native_mode); 6387EXPORT_SYMBOL_GPL(ata_pci_init_native_mode);
6457EXPORT_SYMBOL_GPL(ata_pci_init_one); 6388EXPORT_SYMBOL_GPL(ata_pci_init_one);
6458EXPORT_SYMBOL_GPL(ata_pci_remove_one); 6389EXPORT_SYMBOL_GPL(ata_pci_remove_one);
diff --git a/include/linux/libata.h b/include/linux/libata.h
index f96277ed184f..cebbcc8d45fd 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -722,7 +722,6 @@ extern int ata_device_add(const struct ata_probe_ent *ent);
722extern void ata_host_detach(struct ata_host *host); 722extern void ata_host_detach(struct ata_host *host);
723extern void ata_host_init(struct ata_host *, struct device *, 723extern void ata_host_init(struct ata_host *, struct device *,
724 unsigned long, const struct ata_port_operations *); 724 unsigned long, const struct ata_port_operations *);
725extern void ata_host_remove(struct ata_host *host);
726extern int ata_scsi_detect(struct scsi_host_template *sht); 725extern int ata_scsi_detect(struct scsi_host_template *sht);
727extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); 726extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg);
728extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)); 727extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *));
@@ -768,8 +767,6 @@ extern u8 ata_check_status(struct ata_port *ap);
768extern u8 ata_altstatus(struct ata_port *ap); 767extern u8 ata_altstatus(struct ata_port *ap);
769extern void ata_exec_command(struct ata_port *ap, const struct ata_taskfile *tf); 768extern void ata_exec_command(struct ata_port *ap, const struct ata_taskfile *tf);
770extern int ata_port_start (struct ata_port *ap); 769extern int ata_port_start (struct ata_port *ap);
771extern void ata_port_stop (struct ata_port *ap);
772extern void ata_host_stop (struct ata_host *host);
773extern irqreturn_t ata_interrupt (int irq, void *dev_instance); 770extern irqreturn_t ata_interrupt (int irq, void *dev_instance);
774extern void ata_mmio_data_xfer(struct ata_device *adev, unsigned char *buf, 771extern void ata_mmio_data_xfer(struct ata_device *adev, unsigned char *buf,
775 unsigned int buflen, int write_data); 772 unsigned int buflen, int write_data);
@@ -856,7 +853,6 @@ struct pci_bits {
856 unsigned long val; 853 unsigned long val;
857}; 854};
858 855
859extern void ata_pci_host_stop (struct ata_host *host);
860extern struct ata_probe_ent * 856extern struct ata_probe_ent *
861ata_pci_init_native_mode(struct pci_dev *pdev, struct ata_port_info **port, int portmask); 857ata_pci_init_native_mode(struct pci_dev *pdev, struct ata_port_info **port, int portmask);
862extern int pci_test_config_bits(struct pci_dev *pdev, const struct pci_bits *bits); 858extern int pci_test_config_bits(struct pci_dev *pdev, const struct pci_bits *bits);