ide: remove dead/obsolete ->busproc method
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Thu, 17 Apr 2008 22:46:23 +0000 (00:46 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Thu, 17 Apr 2008 22:46:23 +0000 (00:46 +0200)
->busproc method is used by HDIO_SET_BUSSTATE ioctl but it has no chance
of working as intended (in 2.4.x days) because to issue an ioctl there
is a device node needed and:

- for BUSSTATE_TRISTATE+OFF it is too late (devices are already gone)

- for BUSSTATE_TRISTATE+ON it is too early (devices are not registered yet)

Just remove ->busproc method for now (it was only implemented by hpt366,
siimage and tc86c001 host drivers).

Cc: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/ide.c
drivers/ide/pci/hpt366.c
drivers/ide/pci/sgiioc4.c
drivers/ide/pci/siimage.c
drivers/ide/pci/tc86c001.c
include/linux/ide.h

index a8b5b08dd6e2af358806f81acf97d8fa27af1e03..cb18ba8de22d9e55d79f8b800279116940133b39 100644 (file)
@@ -414,7 +414,6 @@ static void ide_hwif_restore(ide_hwif_t *hwif, ide_hwif_t *tmp_hwif)
        hwif->resetproc                 = tmp_hwif->resetproc;
        hwif->maskproc                  = tmp_hwif->maskproc;
        hwif->quirkproc                 = tmp_hwif->quirkproc;
-       hwif->busproc                   = tmp_hwif->busproc;
 
        hwif->ata_input_data            = tmp_hwif->ata_input_data;
        hwif->ata_output_data           = tmp_hwif->ata_output_data;
@@ -1071,8 +1070,6 @@ int generic_ide_ioctl(ide_drive_t *drive, struct file *file, struct block_device
                case HDIO_SET_BUSSTATE:
                        if (!capable(CAP_SYS_ADMIN))
                                return -EACCES;
-                       if (HWIF(drive)->busproc)
-                               return HWIF(drive)->busproc(drive, (int)arg);
                        return -EOPNOTSUPP;
                default:
                        return -EINVAL;
index 6357bb6269ab42bfc14623006e0fef089484ae08..d03a231d965ec40e4dc03a749b47b8c39cd553a0 100644 (file)
@@ -929,64 +929,6 @@ static void hpt3xxn_rw_disk(ide_drive_t *drive, struct request *rq)
        hpt3xxn_set_clock(HWIF(drive), rq_data_dir(rq) ? 0x23 : 0x21);
 }
 
-/* 
- * Set/get power state for a drive.
- * NOTE: affects both drives on each channel.
- *
- * When we turn the power back on, we need to re-initialize things.
- */
-#define TRISTATE_BIT  0x8000
-
-static int hpt3xx_busproc(ide_drive_t *drive, int state)
-{
-       ide_hwif_t *hwif        = HWIF(drive);
-       struct pci_dev *dev     = to_pci_dev(hwif->dev);
-       u8  mcr_addr            = hwif->select_data + 2;
-       u8  resetmask           = hwif->channel ? 0x80 : 0x40;
-       u8  bsr2                = 0;
-       u16 mcr                 = 0;
-
-       hwif->bus_state = state;
-
-       /* Grab the status. */
-       pci_read_config_word(dev, mcr_addr, &mcr);
-       pci_read_config_byte(dev, 0x59, &bsr2);
-
-       /*
-        * Set the state. We don't set it if we don't need to do so.
-        * Make sure that the drive knows that it has failed if it's off.
-        */
-       switch (state) {
-       case BUSSTATE_ON:
-               if (!(bsr2 & resetmask))
-                       return 0;
-               hwif->drives[0].failures = hwif->drives[1].failures = 0;
-
-               pci_write_config_byte(dev, 0x59, bsr2 & ~resetmask);
-               pci_write_config_word(dev, mcr_addr, mcr & ~TRISTATE_BIT);
-               return 0;
-       case BUSSTATE_OFF:
-               if ((bsr2 & resetmask) && !(mcr & TRISTATE_BIT))
-                       return 0;
-               mcr &= ~TRISTATE_BIT;
-               break;
-       case BUSSTATE_TRISTATE:
-               if ((bsr2 & resetmask) &&  (mcr & TRISTATE_BIT))
-                       return 0;
-               mcr |= TRISTATE_BIT;
-               break;
-       default:
-               return -EINVAL;
-       }
-
-       hwif->drives[0].failures = hwif->drives[0].max_failures + 1;
-       hwif->drives[1].failures = hwif->drives[1].max_failures + 1;
-
-       pci_write_config_word(dev, mcr_addr, mcr);
-       pci_write_config_byte(dev, 0x59, bsr2 | resetmask);
-       return 0;
-}
-
 /**
  *     hpt37x_calibrate_dpll   -       calibrate the DPLL
  *     @dev: PCI device
@@ -1334,7 +1276,6 @@ static void __devinit init_hwif_hpt366(ide_hwif_t *hwif)
 
        hwif->quirkproc         = &hpt3xx_quirkproc;
        hwif->maskproc          = &hpt3xx_maskproc;
-       hwif->busproc           = &hpt3xx_busproc;
 
        hwif->udma_filter       = &hpt3xx_udma_filter;
        hwif->mdma_filter       = &hpt3xx_mdma_filter;
index 054626497be49405cd5e9ae95952196040564689..9046a69117ffce96c7814e80b06699c8d72c96bc 100644 (file)
@@ -562,7 +562,6 @@ ide_init_sgiioc4(ide_hwif_t * hwif)
                                                clear interrupts */
        hwif->maskproc = &sgiioc4_maskproc;     /* Mask on/off NIEN register */
        hwif->quirkproc = NULL;
-       hwif->busproc = NULL;
 
        hwif->INB = &sgiioc4_INB;
 
index 8d624afe8529995988f328770ac3cc266e9e14d4..b6be1b45f3294c27bc358a5d30574461cdf211ef 100644 (file)
@@ -369,48 +369,6 @@ static int siimage_mmio_ide_dma_test_irq (ide_drive_t *drive)
        return 0;
 }
 
-/**
- *     sil_sata_busproc        -       bus isolation IOCTL
- *     @drive: drive to isolate/restore
- *     @state: bus state to set
- *
- *     Used by the SII3112 to handle bus isolation. As this is a 
- *     SATA controller the work required is quite limited, we 
- *     just have to clean up the statistics
- */
-
-static int sil_sata_busproc(ide_drive_t * drive, int state)
-{
-       ide_hwif_t *hwif        = HWIF(drive);
-       struct pci_dev *dev     = to_pci_dev(hwif->dev);
-       u32 stat_config         = 0;
-       unsigned long addr      = siimage_selreg(hwif, 0);
-
-       if (hwif->mmio)
-               stat_config = readl((void __iomem *)addr);
-       else
-               pci_read_config_dword(dev, addr, &stat_config);
-
-       switch (state) {
-               case BUSSTATE_ON:
-                       hwif->drives[0].failures = 0;
-                       hwif->drives[1].failures = 0;
-                       break;
-               case BUSSTATE_OFF:
-                       hwif->drives[0].failures = hwif->drives[0].max_failures + 1;
-                       hwif->drives[1].failures = hwif->drives[1].max_failures + 1;
-                       break;
-               case BUSSTATE_TRISTATE:
-                       hwif->drives[0].failures = hwif->drives[0].max_failures + 1;
-                       hwif->drives[1].failures = hwif->drives[1].max_failures + 1;
-                       break;
-               default:
-                       return -EINVAL;
-       }
-       hwif->bus_state = state;
-       return 0;
-}
-
 /**
  *     sil_sata_reset_poll     -       wait for SATA reset
  *     @drive: drive we are resetting
@@ -818,7 +776,6 @@ static void __devinit init_hwif_siimage(ide_hwif_t *hwif)
        if (sata) {
                static int first = 1;
 
-               hwif->busproc = &sil_sata_busproc;
                hwif->reset_poll = &sil_sata_reset_poll;
                hwif->pre_reset = &sil_sata_pre_reset;
                hwif->udma_filter = &sil_sata_udma_filter;
index 2ef2ed2f2b32a9e0ba45d263963edf97efeccda5..1e4a6262bcef60733695c06797814f94972eba1c 100644 (file)
@@ -126,40 +126,6 @@ static void tc86c001_dma_start(ide_drive_t *drive)
        ide_dma_start(drive);
 }
 
-static int tc86c001_busproc(ide_drive_t *drive, int state)
-{
-       ide_hwif_t *hwif        = HWIF(drive);
-       unsigned long sc_base   = hwif->config_data;
-       u16 scr1;
-
-       /* System Control 1 Register bit 11 (ATA Hard Reset) read */
-       scr1 = inw(sc_base + 0x00);
-
-       switch (state) {
-               case BUSSTATE_ON:
-                       if (!(scr1 & 0x0800))
-                               return 0;
-                       scr1 &= ~0x0800;
-
-                       hwif->drives[0].failures = hwif->drives[1].failures = 0;
-                       break;
-               case BUSSTATE_OFF:
-                       if (scr1 & 0x0800)
-                               return 0;
-                       scr1 |= 0x0800;
-
-                       hwif->drives[0].failures = hwif->drives[0].max_failures + 1;
-                       hwif->drives[1].failures = hwif->drives[1].max_failures + 1;
-                       break;
-               default:
-                       return -EINVAL;
-       }
-
-       /* System Control 1 Register bit 11 (ATA Hard Reset) write */
-       outw(scr1, sc_base + 0x00);
-       return 0;
-}
-
 static u8 __devinit tc86c001_cable_detect(ide_hwif_t *hwif)
 {
        struct pci_dev *dev = to_pci_dev(hwif->dev);
@@ -194,8 +160,6 @@ static void __devinit init_hwif_tc86c001(ide_hwif_t *hwif)
        hwif->set_pio_mode = &tc86c001_set_pio_mode;
        hwif->set_dma_mode = &tc86c001_set_mode;
 
-       hwif->busproc   = &tc86c001_busproc;
-
        hwif->cable_detect = tc86c001_cable_detect;
 
        if (!hwif->dma_base)
index 9aaad7e705936be4b8faa661947202330440ddd1..e43570a19200d434f065c1935c081b20444c8fe7 100644 (file)
@@ -502,8 +502,6 @@ typedef struct hwif_s {
        void    (*maskproc)(ide_drive_t *, int);
        /* check host's drive quirk list */
        void    (*quirkproc)(ide_drive_t *);
-       /* driver soft-power interface */
-       int     (*busproc)(ide_drive_t *, int);
 #endif
        u8 (*mdma_filter)(ide_drive_t *);
        u8 (*udma_filter)(ide_drive_t *);