Merge branch 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
[firefly-linux-kernel-4.4.55.git] / drivers / ide / ide-xfer-mode.c
index 46d203ce60cc4ab879be08a85b2f2a8540ddd88e..eb421883c16d0524d6e80de7d49700723183f574 100644 (file)
@@ -1,6 +1,7 @@
 #include <linux/types.h>
 #include <linux/string.h>
 #include <linux/kernel.h>
+#include <linux/export.h>
 #include <linux/interrupt.h>
 #include <linux/ide.h>
 #include <linux/bitops.h>
@@ -58,7 +59,7 @@ EXPORT_SYMBOL(ide_xfer_verbose);
  *     This is used by most chipset support modules when "auto-tuning".
  */
 
-u8 ide_get_best_pio_mode(ide_drive_t *drive, u8 mode_wanted, u8 max_mode)
+static u8 ide_get_best_pio_mode(ide_drive_t *drive, u8 mode_wanted, u8 max_mode)
 {
        u16 *id = drive->id;
        int pio_mode = -1, overridden = 0;
@@ -105,7 +106,6 @@ u8 ide_get_best_pio_mode(ide_drive_t *drive, u8 mode_wanted, u8 max_mode)
 
        return pio_mode;
 }
-EXPORT_SYMBOL_GPL(ide_get_best_pio_mode);
 
 int ide_pio_need_iordy(ide_drive_t *drive, const u8 pio)
 {
@@ -135,17 +135,20 @@ int ide_set_pio_mode(ide_drive_t *drive, const u8 mode)
         * set transfer mode on the device in ->set_pio_mode method...
         */
        if (port_ops->set_dma_mode == NULL) {
-               port_ops->set_pio_mode(drive, mode - XFER_PIO_0);
+               drive->pio_mode = mode;
+               port_ops->set_pio_mode(hwif, drive);
                return 0;
        }
 
        if (hwif->host_flags & IDE_HFLAG_POST_SET_MODE) {
                if (ide_config_drive_speed(drive, mode))
                        return -1;
-               port_ops->set_pio_mode(drive, mode - XFER_PIO_0);
+               drive->pio_mode = mode;
+               port_ops->set_pio_mode(hwif, drive);
                return 0;
        } else {
-               port_ops->set_pio_mode(drive, mode - XFER_PIO_0);
+               drive->pio_mode = mode;
+               port_ops->set_pio_mode(hwif, drive);
                return ide_config_drive_speed(drive, mode);
        }
 }
@@ -164,10 +167,12 @@ int ide_set_dma_mode(ide_drive_t *drive, const u8 mode)
        if (hwif->host_flags & IDE_HFLAG_POST_SET_MODE) {
                if (ide_config_drive_speed(drive, mode))
                        return -1;
-               port_ops->set_dma_mode(drive, mode);
+               drive->dma_mode = mode;
+               port_ops->set_dma_mode(hwif, drive);
                return 0;
        } else {
-               port_ops->set_dma_mode(drive, mode);
+               drive->dma_mode = mode;
+               port_ops->set_dma_mode(hwif, drive);
                return ide_config_drive_speed(drive, mode);
        }
 }