ata: libata-core: remove ata_bus_probe()
authorNiklas Cassel <niklas.cassel@wdc.com>
Mon, 31 Jul 2023 14:34:20 +0000 (16:34 +0200)
committerDamien Le Moal <dlemoal@kernel.org>
Wed, 2 Aug 2023 08:45:36 +0000 (17:45 +0900)
Remove ata_bus_probe() as it is unused.

Also, remove references to ata_bus_probe and port_disable in
Documentation/driver-api/libata.rst, as neither exist anymore.

Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Reviewed-by: John Garry <john.g.garry@oracle.com>
Reviewed-by: Jason Yan <yanaijie@huawei.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Documentation/driver-api/libata.rst
drivers/ata/libata-core.c
drivers/ata/libata.h
include/linux/libata.h

index 311af51..eecb8b8 100644 (file)
@@ -32,22 +32,6 @@ register blocks.
 :c:type:`struct ata_port_operations <ata_port_operations>`
 ----------------------------------------------------------
 
-Disable ATA port
-~~~~~~~~~~~~~~~~
-
-::
-
-    void (*port_disable) (struct ata_port *);
-
-
-Called from :c:func:`ata_bus_probe` error path, as well as when unregistering
-from the SCSI module (rmmod, hot unplug). This function should do
-whatever needs to be done to take the port out of use. In most cases,
-:c:func:`ata_port_disable` can be used as this hook.
-
-Called from :c:func:`ata_bus_probe` on a failed probe. Called from
-:c:func:`ata_scsi_release`.
-
 Post-IDENTIFY device configuration
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
index fdd4804..988d1fc 100644 (file)
@@ -3058,144 +3058,6 @@ int ata_cable_sata(struct ata_port *ap)
 EXPORT_SYMBOL_GPL(ata_cable_sata);
 
 /**
- *     ata_bus_probe - Reset and probe ATA bus
- *     @ap: Bus to probe
- *
- *     Master ATA bus probing function.  Initiates a hardware-dependent
- *     bus reset, then attempts to identify any devices found on
- *     the bus.
- *
- *     LOCKING:
- *     PCI/etc. bus probe sem.
- *
- *     RETURNS:
- *     Zero on success, negative errno otherwise.
- */
-
-int ata_bus_probe(struct ata_port *ap)
-{
-       unsigned int classes[ATA_MAX_DEVICES];
-       int tries[ATA_MAX_DEVICES];
-       int rc;
-       struct ata_device *dev;
-
-       ata_for_each_dev(dev, &ap->link, ALL)
-               tries[dev->devno] = ATA_PROBE_MAX_TRIES;
-
- retry:
-       ata_for_each_dev(dev, &ap->link, ALL) {
-               /* If we issue an SRST then an ATA drive (not ATAPI)
-                * may change configuration and be in PIO0 timing. If
-                * we do a hard reset (or are coming from power on)
-                * this is true for ATA or ATAPI. Until we've set a
-                * suitable controller mode we should not touch the
-                * bus as we may be talking too fast.
-                */
-               dev->pio_mode = XFER_PIO_0;
-               dev->dma_mode = 0xff;
-
-               /* If the controller has a pio mode setup function
-                * then use it to set the chipset to rights. Don't
-                * touch the DMA setup as that will be dealt with when
-                * configuring devices.
-                */
-               if (ap->ops->set_piomode)
-                       ap->ops->set_piomode(ap, dev);
-       }
-
-       /* reset and determine device classes */
-       ap->ops->phy_reset(ap);
-
-       ata_for_each_dev(dev, &ap->link, ALL) {
-               if (dev->class != ATA_DEV_UNKNOWN)
-                       classes[dev->devno] = dev->class;
-               else
-                       classes[dev->devno] = ATA_DEV_NONE;
-
-               dev->class = ATA_DEV_UNKNOWN;
-       }
-
-       /* read IDENTIFY page and configure devices. We have to do the identify
-          specific sequence bass-ackwards so that PDIAG- is released by
-          the slave device */
-
-       ata_for_each_dev(dev, &ap->link, ALL_REVERSE) {
-               if (tries[dev->devno])
-                       dev->class = classes[dev->devno];
-
-               if (!ata_dev_enabled(dev))
-                       continue;
-
-               rc = ata_dev_read_id(dev, &dev->class, ATA_READID_POSTRESET,
-                                    dev->id);
-               if (rc)
-                       goto fail;
-       }
-
-       /* Now ask for the cable type as PDIAG- should have been released */
-       if (ap->ops->cable_detect)
-               ap->cbl = ap->ops->cable_detect(ap);
-
-       /* We may have SATA bridge glue hiding here irrespective of
-        * the reported cable types and sensed types.  When SATA
-        * drives indicate we have a bridge, we don't know which end
-        * of the link the bridge is which is a problem.
-        */
-       ata_for_each_dev(dev, &ap->link, ENABLED)
-               if (ata_id_is_sata(dev->id))
-                       ap->cbl = ATA_CBL_SATA;
-
-       /* After the identify sequence we can now set up the devices. We do
-          this in the normal order so that the user doesn't get confused */
-
-       ata_for_each_dev(dev, &ap->link, ENABLED) {
-               ap->link.eh_context.i.flags |= ATA_EHI_PRINTINFO;
-               rc = ata_dev_configure(dev);
-               ap->link.eh_context.i.flags &= ~ATA_EHI_PRINTINFO;
-               if (rc)
-                       goto fail;
-       }
-
-       /* configure transfer mode */
-       rc = ata_set_mode(&ap->link, &dev);
-       if (rc)
-               goto fail;
-
-       ata_for_each_dev(dev, &ap->link, ENABLED)
-               return 0;
-
-       return -ENODEV;
-
- fail:
-       tries[dev->devno]--;
-
-       switch (rc) {
-       case -EINVAL:
-               /* eeek, something went very wrong, give up */
-               tries[dev->devno] = 0;
-               break;
-
-       case -ENODEV:
-               /* give it just one more chance */
-               tries[dev->devno] = min(tries[dev->devno], 1);
-               fallthrough;
-       case -EIO:
-               if (tries[dev->devno] == 1) {
-                       /* This is the last chance, better to slow
-                        * down than lose it.
-                        */
-                       sata_down_spd_limit(&ap->link, 0);
-                       ata_down_xfermask_limit(dev, ATA_DNXFER_PIO);
-               }
-       }
-
-       if (!tries[dev->devno])
-               ata_dev_disable(dev);
-
-       goto retry;
-}
-
-/**
  *     sata_print_link_status - Print SATA link status
  *     @link: SATA link to printk link status about
  *
index 1ec9b44..6e7d352 100644 (file)
@@ -122,7 +122,6 @@ extern void ata_scsi_media_change_notify(struct ata_device *dev);
 extern void ata_scsi_hotplug(struct work_struct *work);
 extern void ata_schedule_scsi_eh(struct Scsi_Host *shost);
 extern void ata_scsi_dev_rescan(struct work_struct *work);
-extern int ata_bus_probe(struct ata_port *ap);
 extern int ata_scsi_user_scan(struct Scsi_Host *shost, unsigned int channel,
                              unsigned int id, u64 lun);
 void ata_scsi_sdev_config(struct scsi_device *sdev);
index 0980992..e176d83 100644 (file)
@@ -344,7 +344,6 @@ enum {
        ATA_LINK_RESUME_TRIES   = 5,
 
        /* how hard are we gonna try to probe/recover devices */
-       ATA_PROBE_MAX_TRIES     = 3,
        ATA_EH_DEV_TRIES        = 3,
        ATA_EH_PMP_TRIES        = 5,
        ATA_EH_PMP_LINK_TRIES   = 3,