ide: update ide_unregister() documentation
PATCH 1/9 ide: update ide_unregister() documentation
From: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] ide: update ide_unregister() documentation
---
just a couple of cleanups, should be applied on a top of Sunday's patchset [ http://marc.info/?l=linux-kernel&m=122921159918716&w=2 ]
drivers/ide/ide.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-)
drivers/ide/ide.c +5 -13
@@ -155,22 +155,14 @@ EXPORT_SYMBOL_GPL(ide_port_unregister_de* ide_unregister - free an IDE interface * @hwif: IDE interface * -* Perform the final unregister of an IDE interface. At the moment -* we don't refcount interfaces so this will also get split up. +* Perform the final unregister of an IDE interface. * * Locking: -* The caller must not hold the IDE locks -* The drive present/vanishing is not yet properly locked -* Take care with the callbacks. These have been split to avoid -* deadlocking the IDE layer. The shutdown callback is called -* before we take the lock and free resources. It is up to the -* caller to be sure there is no pending I/O here, and that -* the interface will not be reopened (present/vanishing locking -* isn't yet done BTW). After we commit to the final kill we -* call the cleanup callback with the ide locks held. +* The caller must not hold the IDE locks. * -* Unregister restores the hwif structures to the default state. -* This is raving bonkers. +* It is up to the caller to be sure there is no pending I/O here, +* and that the interface will not be reopened (present/vanishing +* locking isn't yet done BTW). */ void ide_unregister (ide_hwif_t *hwif)
PATCH 2/9 ide: move ide_init_port_data() and friends to ide-probe.c
From: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] ide: move ide_init_port_data() and friends to ide-probe.c
* Move IDE_DEFAULT_MAX_FAILURES to <linux/ide.h>.
* Move ide_cfg_mtx, ide_hwif_to_major[], ide_port_init_devices_data(), ide_init_port_data(), ide_init_port_hw() and ide_unregister() to ide-probe.c from ide.c.
* Make ide_unregister(), ide_init_port_data(), ide_init_port_hw() and ide_cfg_mtx static.
While at it:
* Remove stale ide_init_port_data() documentation and ide_lock extern.
--- drivers/ide/ide-probe.c | 135 ++++++++++++++++++++++++++++++++++++++++++++ drivers/ide/ide.c | 146 ------------------------------------------------ include/linux/ide.h | 9 -- 3 files changed, 136 insertions(+), 154 deletions(-)
drivers/ide/ide-probe.c +135 -0
@@ -918,6 +918,8 @@ static int ide_init_queue(ide_drive_t *dreturn 0 ; } +static DEFINE_MUTEX (ide_cfg_mtx); +/* * For any present drive: * - allocate the block device queue
@@ -1273,6 +1275,69 @@ static void ide_port_cable_detect(ide_hw } } +static const u8 ide_hwif_to_major[] = + {IDE0_MAJOR ,IDE1_MAJOR ,IDE2_MAJOR ,IDE3_MAJOR ,IDE4_MAJOR , +IDE5_MAJOR ,IDE6_MAJOR ,IDE7_MAJOR ,IDE8_MAJOR ,IDE9_MAJOR }; + +static void ide_port_init_devices_data (ide_hwif_t *hwif) +{ +int unit; + +for (unit =0 ; unit <MAX_DRIVES ; ++unit) { +ide_drive_t *drive = &hwif->drives[unit]; +u8 j = (hwif->index *MAX_DRIVES ) + unit; + +memset (drive,0 ,sizeof (*drive)); + + drive->media = ide_disk; + drive->select = (unit <<4 ) |ATA_DEVICE_OBS ; + drive->hwif = hwif; + drive->ready_stat =ATA_DRDY ; + drive->bad_wstat =BAD_W_STAT ; + drive->special.b.recalibrate =1 ; + drive->special.b.set_geometry =1 ; + drive->name[0 ] ='h' ; + drive->name[1 ] ='d' ; + drive->name[2 ] ='a' + j; + drive->max_failures =IDE_DEFAULT_MAX_FAILURES ; + +INIT_LIST_HEAD (&drive->list); +init_completion (&drive->gendev_rel_comp); + } +} + +static void ide_init_port_data (ide_hwif_t *hwif,unsigned int index) +{ +/* bulk initialize hwif & drive info with zeros */ +memset (hwif,0 ,sizeof (ide_hwif_t)); + +/* fill in any non-zero initial values */ + hwif->index = index; + hwif->major = ide_hwif_to_major[index]; + + hwif->name[0 ] ='i' ; + hwif->name[1 ] ='d' ; + hwif->name[2 ] ='e' ; + hwif->name[3 ] ='0' + index; + +init_completion (&hwif->gendev_rel_comp); + + hwif->tp_ops = &default_tp_ops; + +ide_port_init_devices_data (hwif); +} + +static void ide_init_port_hw (ide_hwif_t *hwif,hw_regs_t *hw) +{ +memcpy (&hwif->io_ports, &hw->io_ports,sizeof (hwif->io_ports)); + hwif->irq = hw->irq; + hwif->chipset = hw->chipset; + hwif->dev = hw->dev; + hwif->gendev.parent = hw->parent ? hw->parent : hw->dev; + hwif->ack_intr = hw->ack_intr; + hwif->config_data = hw->config; +} +static unsigned int ide_indexes;/**
@@ -1503,6 +1568,76 @@ int ide_host_add(const struct ide_port_i }EXPORT_SYMBOL_GPL (ide_host_add); +static void __ide_port_unregister_devices (ide_hwif_t *hwif) +{ +int i; + +for (i =0 ; i <MAX_DRIVES ; i++) { +ide_drive_t *drive = &hwif->drives[i]; + +if (drive->dev_flags &IDE_DFLAG_PRESENT ) { +device_unregister (&drive->gendev); +wait_for_completion (&drive->gendev_rel_comp); + } + } +} + +void ide_port_unregister_devices (ide_hwif_t *hwif) +{ +mutex_lock (&ide_cfg_mtx); +__ide_port_unregister_devices (hwif); + hwif->present =0 ; +ide_port_init_devices_data (hwif); +mutex_unlock (&ide_cfg_mtx); +} +EXPORT_SYMBOL_GPL (ide_port_unregister_devices); + +/** +* ide_unregister - free an IDE interface +* @hwif: IDE interface +* +* Perform the final unregister of an IDE interface. +* +* Locking: +* The caller must not hold the IDE locks. +* +* It is up to the caller to be sure there is no pending I/O here, +* and that the interface will not be reopened (present/vanishing +* locking isn't yet done BTW). +*/ + +static void ide_unregister (ide_hwif_t *hwif) +{ +BUG_ON (in_interrupt ()); +BUG_ON (irqs_disabled ()); + +mutex_lock (&ide_cfg_mtx); + +if (hwif->present) { +__ide_port_unregister_devices (hwif); + hwif->present =0 ; + } + +ide_proc_unregister_port (hwif); + +free_irq (hwif->irq, hwif); + +device_unregister (hwif->portdev); +device_unregister (&hwif->gendev); +wait_for_completion (&hwif->gendev_rel_comp); + +/* +* Remove us from the kernel's knowledge +*/ +blk_unregister_region (MKDEV (hwif->major,0 ),MAX_DRIVES <<PARTN_BITS ); +kfree (hwif->sg_table); +unregister_blkdev (hwif->major, hwif->name); + +ide_release_dma_engine (hwif); + +mutex_unlock (&ide_cfg_mtx); +} +void ide_host_free (struct ide_host *host) {ide_hwif_t *hwif;
drivers/ide/ide.c +0 -146
154 lines not on this page · raw message
include/linux/ide.h +1 -8
@@ -37,6 +37,7 @@ typedef unsigned char byte; /* used ever/* * Probably not wise to fiddle with these */ +#define IDE_DEFAULT_MAX_FAILURES 1#define ERROR_MAX 8/* Max read/write errors per sector */ #define ERROR_RESET 3/* Reset controller every 4th retry */ #define ERROR_RECAL 1/* Recalibrate every 2nd retry */
@@ -184,9 +185,6 @@ typedef struct hw_regs_s {unsigned long config; } hw_regs_t; -void ide_init_port_data (struct hwif_s *,unsigned int ); -void ide_init_port_hw (struct hwif_s *,hw_regs_t *); -static inline void ide_std_init_ports (hw_regs_t *hw,unsigned long io_addr,unsigned long ctl_addr)
@@ -1505,8 +1503,6 @@ static inline void ide_acpi_port_init_destatic inline void ide_acpi_set_state (ide_hwif_t *hwif,int on) {}#endif -void ide_unregister (ide_hwif_t *); -void ide_register_region (struct gendisk *);void ide_unregister_region (struct gendisk *);
@@ -1591,9 +1587,6 @@ static inline void ide_set_max_pio(ide_dide_set_pio (drive,255 ); } -extern spinlock_t ide_lock; -extern struct mutex ide_cfg_mtx; -#define local_irq_set (flags) do { local_save_flags((flags)); local_irq_enable_in_hardirq(); } while (0)char *ide_media_string (ide_drive_t *);
PATCH 3/9 ide: remove HWIF() macro
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] ide: remove HWIF() macro
--- drivers/ide/aec62xx.c | 4 ++-- drivers/ide/alim15x3.c | 4 ++-- drivers/ide/au1xxx-ide.c | 4 ++-- drivers/ide/cmd64x.c | 14 +++++++------- drivers/ide/cs5520.c | 2 +- drivers/ide/cy82c693.c | 2 +- drivers/ide/hpt366.c | 18 +++++++++--------- drivers/ide/icside.c | 10 +++++----- drivers/ide/ide-acpi.c | 4 ++-- drivers/ide/ide-disk.c | 4 ++-- drivers/ide/ide-io.c | 8 ++++---- drivers/ide/ide-iops.c | 4 ++-- drivers/ide/ide-pm.c | 4 ++-- drivers/ide/ide-probe.c | 12 ++++++------ drivers/ide/ide-taskfile.c | 2 +- drivers/ide/it8213.c | 4 ++-- drivers/ide/ns87415.c | 6 +++--- drivers/ide/pdc202xx_new.c | 4 ++-- drivers/ide/pdc202xx_old.c | 10 +++++----- drivers/ide/piix.c | 6 +++--- drivers/ide/pmac.c | 4 ++-- drivers/ide/qd65xx.c | 7 ++++--- drivers/ide/sc1200.c | 6 +++--- drivers/ide/scc_pata.c | 8 ++++---- drivers/ide/serverworks.c | 2 +- drivers/ide/sgiioc4.c | 12 ++++++------ drivers/ide/siimage.c | 10 +++++----- drivers/ide/sis5513.c | 2 +- drivers/ide/sl82c105.c | 4 ++-- drivers/ide/slc90e66.c | 4 ++-- drivers/ide/tc86c001.c | 6 +++--- drivers/ide/triflex.c | 2 +- drivers/ide/trm290.c | 8 ++++---- drivers/ide/via82cxxx.c | 2 +- include/linux/ide.h | 2 -- 35 files changed, 102 insertions(+), 103 deletions(-)
drivers/ide/aec62xx.c +2 -2
@@ -83,7 +83,7 @@ static u8 pci_bus_clock_list_ultra (u8 sstatic void aec6210_set_mode (ide_drive_t *drive,const u8 speed) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);struct ide_host *host =pci_get_drvdata (dev);struct chipset_bus_clock_list_entry *bus_clock = host->host_priv;
@@ -111,7 +111,7 @@ static void aec6210_set_mode(ide_drive_tstatic void aec6260_set_mode (ide_drive_t *drive,const u8 speed) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);struct ide_host *host =pci_get_drvdata (dev);struct chipset_bus_clock_list_entry *bus_clock = host->host_priv;
drivers/ide/alim15x3.c +2 -2
@@ -68,7 +68,7 @@ static struct pci_dev *isa_dev;static void ali_set_pio_mode (ide_drive_t *drive,const u8 pio) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);struct ide_timing *t =ide_timing_find_mode (XFER_PIO_0 + pio);int s_time = t->setup, a_time = t->active, c_time = t->cycle;
@@ -150,7 +150,7 @@ static u8 ali_udma_filter(ide_drive_t *dstatic void ali_set_dma_mode (ide_drive_t *drive,const u8 speed) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);u8 speed1 = speed;u8 unit = drive->dn &1 ;
drivers/ide/au1xxx-ide.c +2 -2
@@ -212,7 +212,7 @@ static void auide_set_dma_mode(ide_drivestatic int auide_build_dmatable (ide_drive_t *drive) {int i, iswrite, count =0 ; -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct request *rq = hwif->rq;_auide_hwif *ahwif = &auide_hwif;struct scatterlist *sg;
@@ -286,7 +286,7 @@ static int auide_build_dmatable(ide_drivstatic int auide_dma_end (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;if (hwif->sg_nents) {ide_destroy_dmatable (drive);
drivers/ide/cmd64x.c +7 -7
@@ -115,7 +115,7 @@ static void program_cycle_times (ide_dri*/ static void cmd64x_tune_pio (ide_drive_t *drive,const u8 pio) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);struct ide_timing *t =ide_timing_find_mode (XFER_PIO_0 + pio);unsigned int cycle_time;
@@ -180,7 +180,7 @@ static void cmd64x_set_pio_mode(ide_drivstatic void cmd64x_set_dma_mode (ide_drive_t *drive,const u8 speed) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);u8 unit = drive->dn &0x01 ;u8 regU =0 , pciU = hwif->channel ?UDIDETCR1 :UDIDETCR0 ;
@@ -226,7 +226,7 @@ static void cmd64x_set_dma_mode(ide_drivstatic int cmd648_dma_end (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;unsigned long base = hwif->dma_base - (hwif->channel *8 );int err =ide_dma_end (drive); u8 irq_mask = hwif->channel ? MRDMODE_INTR_CH1 :
@@ -242,7 +242,7 @@ static int cmd648_dma_end(ide_drive_t *dstatic int cmd64x_dma_end (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);int irq_reg = hwif->channel ?ARTTIM23 :CFR ; u8 irq_mask = hwif->channel ? ARTTIM23_INTR_CH1 :
@@ -259,7 +259,7 @@ static int cmd64x_dma_end(ide_drive_t *dstatic int cmd648_dma_test_irq (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;unsigned long base = hwif->dma_base - (hwif->channel *8 );u8 irq_mask = hwif->channel ?MRDMODE_INTR_CH1 :MRDMODE_INTR_CH0 ;
@@ -282,7 +282,7 @@ static int cmd648_dma_test_irq(ide_drivestatic int cmd64x_dma_test_irq (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);int irq_reg = hwif->channel ?ARTTIM23 :CFR ; u8 irq_mask = hwif->channel ? ARTTIM23_INTR_CH1 :
@@ -313,7 +313,7 @@ static int cmd64x_dma_test_irq(ide_drivestatic int cmd646_1_dma_end (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;u8 dma_stat =0 , dma_cmd =0 ; drive->waiting_for_dma =0 ;
drivers/ide/cs5520.c +1 -1
@@ -59,7 +59,7 @@ static struct pio_clocks cs5520_pio_clocstatic void cs5520_set_pio_mode (ide_drive_t *drive,const u8 pio) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *pdev =to_pci_dev (hwif->dev);int controller = drive->dn >1 ?1 :0 ;
drivers/ide/cy82c693.c +1 -1
@@ -203,7 +203,7 @@ static void cy82c693_set_dma_mode(ide_drstatic void cy82c693_set_pio_mode (ide_drive_t *drive,const u8 pio) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);pio_clocks_t pclk;unsigned int addrCtrl;
drivers/ide/hpt366.c +9 -9
@@ -626,7 +626,7 @@ static struct hpt_info *hpt3xx_get_info(static u8 hpt3xx_udma_filter (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct hpt_info *info =hpt3xx_get_info (hwif->dev);u8 mask = hwif->ultra_mask;
@@ -665,7 +665,7 @@ static u8 hpt3xx_udma_filter(ide_drive_tstatic u8 hpt3xx_mdma_filter (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct hpt_info *info =hpt3xx_get_info (hwif->dev);switch (info->chip_type) {
@@ -743,7 +743,7 @@ static void hpt3xx_quirkproc(ide_drive_tstatic void hpt3xx_maskproc (ide_drive_t *drive,int mask) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);struct hpt_info *info =hpt3xx_get_info (hwif->dev);
@@ -788,7 +788,7 @@ static void hpt366_dma_lost_irq(ide_drivstatic void hpt370_clear_engine (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);pci_write_config_byte (dev, hwif->select_data,0x37 );
@@ -797,7 +797,7 @@ static void hpt370_clear_engine(ide_drivstatic void hpt370_irq_timeout (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);u16 bfifo =0 ;u8 dma_cmd;
@@ -822,7 +822,7 @@ static void hpt370_dma_start(ide_drive_tstatic int hpt370_dma_end (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;u8 dma_stat =inb (hwif->dma_base +ATA_DMA_STATUS );if (dma_stat &0x01 ) {
@@ -844,7 +844,7 @@ static void hpt370_dma_timeout(ide_drive/* returns 1 if DMA IRQ issued, 0 otherwise */ static int hpt374_dma_test_irq (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);u16 bfifo =0 ;u8 dma_stat;
@@ -865,7 +865,7 @@ static int hpt374_dma_test_irq(ide_drivestatic int hpt374_dma_end (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);u8 mcr =0 , mcr_addr = hwif->select_data;u8 bwsr =0 , mask = hwif->channel ?0x02 :0x01 ;
@@ -927,7 +927,7 @@ static void hpt3xxn_set_clock(ide_hwif_tstatic void hpt3xxn_rw_disk (ide_drive_t *drive,struct request *rq) { -hpt3xxn_set_clock (HWIF (drive),rq_data_dir (rq) ?0x23 :0x21 ); +hpt3xxn_set_clock (drive->hwif,rq_data_dir (rq) ?0x23 :0x21 ); }/**
drivers/ide/icside.c +5 -5
@@ -166,7 +166,7 @@ static const expansioncard_ops_t icside_*/ static void icside_maskproc (ide_drive_t *drive,int mask) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct expansion_card *ec =ECARD_DEV (hwif->dev);struct icside_state *state =ecard_get_drvdata (ec);unsigned long flags;
@@ -284,7 +284,7 @@ static void icside_dma_host_set(ide_drivstatic int icside_dma_end (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct expansion_card *ec =ECARD_DEV (hwif->dev); drive->waiting_for_dma =0 ;
@@ -299,7 +299,7 @@ static int icside_dma_end(ide_drive_t *dstatic void icside_dma_start (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct expansion_card *ec =ECARD_DEV (hwif->dev);/* We can not enable DMA on both channels simultaneously. */
@@ -309,7 +309,7 @@ static void icside_dma_start(ide_drive_tstatic int icside_dma_setup (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct expansion_card *ec =ECARD_DEV (hwif->dev);struct icside_state *state =ecard_get_drvdata (ec);struct request *rq = hwif->rq;
@@ -362,7 +362,7 @@ static void icside_dma_exec_cmd(ide_drivstatic int icside_dma_test_irq (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct expansion_card *ec =ECARD_DEV (hwif->dev);struct icside_state *state =ecard_get_drvdata (ec);
drivers/ide/ide-acpi.c +2 -2
@@ -218,7 +218,7 @@ static acpi_handle ide_acpi_hwif_get_han*/ static acpi_handle ide_acpi_drive_get_handle (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;int port;acpi_handle drive_handle;
@@ -263,7 +263,7 @@ static int do_drive_get_GTF(ide_drive_tacpi_status status;struct acpi_buffer output;union acpi_object *out_obj; -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct device *dev = hwif->gendev.parent;int err = -ENODEV ;int port;
drivers/ide/ide-disk.c +2 -2
@@ -89,7 +89,7 @@ static void ide_tf_set_cmd(ide_drive_t *static ide_startstop_t __ide_do_rw_disk (ide_drive_t *drive,struct request *rq,sector_t block) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;u16 nsectors = (u16 )rq->nr_sectors;u8 lba48 = !!(drive->dev_flags &IDE_DFLAG_LBA48 );u8 dma = !!(drive->dev_flags &IDE_DFLAG_USING_DMA );
@@ -187,7 +187,7 @@ static ide_startstop_t __ide_do_rw_disk(static ide_startstop_t ide_do_rw_disk (ide_drive_t *drive,struct request *rq,sector_t block) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;BUG_ON (drive->dev_flags &IDE_DFLAG_BLOCKED );
drivers/ide/ide-io.c +4 -4
@@ -463,7 +463,7 @@ EXPORT_SYMBOL_GPL(ide_init_sg_cmd);static ide_startstop_t execute_drive_cmd (ide_drive_t *drive,struct request *rq) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;ide_task_t *task = rq->special;if (task) {
@@ -587,7 +587,7 @@ static ide_startstop_t start_request (id#ifdef DEBUG printk ("%s: start_request: current=0x%08lx\n" , -HWIF (drive)->name, (unsigned long ) rq); + drive->hwif->name, (unsigned long ) rq);#endif /* bail early if we've exceeded max_failures */
@@ -813,7 +813,7 @@ plug_device_2:*/ static ide_startstop_t ide_dma_timeout_retry (ide_drive_t *drive,int error) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct request *rq;ide_startstop_t ret = ide_stopped;
@@ -935,7 +935,7 @@ void ide_timer_expiry (unsigned long dat* globally mask the specific IRQ: */ spin_unlock (&hwif->lock); - hwif =HWIF (drive); + hwif = drive->hwif;/* disable_irq_nosync ?? */ disable_irq (hwif->irq);/* local CPU only,
drivers/ide/ide-iops.c +2 -2
@@ -451,7 +451,7 @@ EXPORT_SYMBOL(ide_fixstring);*/ int drive_is_ready (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;u8 stat =0 ;if (drive->waiting_for_dma)
@@ -965,7 +965,7 @@ static void ide_reset_report_error(ide_h*/ static ide_startstop_t reset_pollfunc (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;const struct ide_port_ops *port_ops = hwif->port_ops;u8 tmp;int err =0 ;
drivers/ide/ide-pm.c +2 -2
@@ -5,7 +5,7 @@int generic_ide_suspend (struct device *dev,pm_message_t mesg) {ide_drive_t *drive = dev->driver_data, *pair =ide_get_pair_dev (drive); -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct request *rq;struct request_pm_state rqpm;ide_task_t args;
@@ -39,7 +39,7 @@ int generic_ide_suspend(struct device *dint generic_ide_resume (struct device *dev) {ide_drive_t *drive = dev->driver_data, *pair =ide_get_pair_dev (drive); -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct request *rq;struct request_pm_state rqpm;ide_task_t args;
drivers/ide/ide-probe.c +6 -6
@@ -189,7 +189,7 @@ static void ide_classify_atapi_dev(ide_dstatic void do_identify (ide_drive_t *drive,u8 cmd) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;u16 *id = drive->id;char *m = (char *)&id[ATA_ID_PROD ];unsigned long flags;
@@ -266,7 +266,7 @@ err_misc:static int actual_try_to_identify (ide_drive_t *drive,u8 cmd) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct ide_io_ports *io_ports = &hwif->io_ports;const struct ide_tp_ops *tp_ops = hwif->tp_ops;int use_altstatus =0 , rc;
@@ -341,7 +341,7 @@ static int actual_try_to_identify (ide_dstatic int try_to_identify (ide_drive_t *drive,u8 cmd) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;const struct ide_tp_ops *tp_ops = hwif->tp_ops;int retval;int autoprobe =0 ;
@@ -438,7 +438,7 @@ static u8 ide_read_device(ide_drive_t *dstatic int do_probe (ide_drive_t *drive,u8 cmd) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;const struct ide_tp_ops *tp_ops = hwif->tp_ops;int rc;u8 present = !!(drive->dev_flags &IDE_DFLAG_PRESENT ), stat;
@@ -522,7 +522,7 @@ static int do_probe (ide_drive_t *drive,*/ static void enable_nest (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;const struct ide_tp_ops *tp_ops = hwif->tp_ops;u8 stat;
@@ -869,7 +869,7 @@ static void ide_port_tune_devices(ide_hwstatic int ide_init_queue (ide_drive_t *drive) {struct request_queue *q; -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;int max_sectors =256 ;int max_sg_entries =PRD_ENTRIES ;
drivers/ide/ide-taskfile.c +1 -1
@@ -58,7 +58,7 @@ static ide_startstop_t task_in_intr(ide_ide_startstop_t do_rw_taskfile (ide_drive_t *drive,ide_task_t *task) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct ide_taskfile *tf = &task->tf;ide_handler_t *handler =NULL ;const struct ide_tp_ops *tp_ops = hwif->tp_ops;
drivers/ide/it8213.c +2 -2
@@ -25,7 +25,7 @@static void it8213_set_pio_mode (ide_drive_t *drive,const u8 pio) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);int is_slave = drive->dn &1 ;int master_port =0x40 ;
@@ -82,7 +82,7 @@ static void it8213_set_pio_mode(ide_drivstatic void it8213_set_dma_mode (ide_drive_t *drive,const u8 speed) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);u8 maslave =0x40 ;int a_speed =3 << (drive->dn *4 );
drivers/ide/ns87415.c +3 -3
@@ -138,12 +138,12 @@ static unsigned int ns87415_count = 0, n/* * This routine either enables/disables (according to IDE_DFLAG_PRESENT) -* the IRQ associated with the port (HWIF(drive)), +* the IRQ associated with the port, * and selects either PIO or DMA handshaking for the next I/O operation. */ static void ns87415_prepare_drive (ide_drive_t *drive,unsigned int use_dma) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);unsigned int bit, other, new, *old = (unsigned int *) hwif->select_data;unsigned long flags;
@@ -197,7 +197,7 @@ static void ns87415_selectproc (ide_drivstatic int ns87415_dma_end (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;u8 dma_stat =0 , dma_cmd =0 ; drive->waiting_for_dma =0 ;
drivers/ide/pdc202xx_new.c +2 -2
@@ -143,7 +143,7 @@ static struct udma_timing {static void pdcnew_set_dma_mode (ide_drive_t *drive,const u8 speed) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);u8 adj = (drive->dn &1 ) ?0x08 :0x00 ;
@@ -219,7 +219,7 @@ static void pdcnew_reset(ide_drive_t *dr* Deleted this because it is redundant from the caller. */ printk (KERN_WARNING "pdc202xx_new: %s channel reset.\n" , -HWIF (drive)->channel ?"Secondary" :"Primary" ); + drive->hwif->channel ?"Secondary" :"Primary" ); }/**
drivers/ide/pdc202xx_old.c +5 -5
@@ -39,7 +39,7 @@ static void pdc_old_disable_66MHz_clock(static void pdc202xx_set_mode (ide_drive_t *drive,const u8 speed) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);u8 drive_pci =0x60 + (drive->dn <<2 );
@@ -169,7 +169,7 @@ static void pdc202xx_dma_start(ide_driveif (drive->current_speed >XFER_UDMA_2 )pdc_old_enable_66MHz_clock (drive->hwif);if (drive->media != ide_disk || (drive->dev_flags &IDE_DFLAG_LBA48 )) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct request *rq = hwif->rq;unsigned long high_16 = hwif->extra_base -16 ;unsigned long atapi_reg = high_16 + (hwif->channel ?0x24 :0x20 );
@@ -189,7 +189,7 @@ static void pdc202xx_dma_start(ide_drivestatic int pdc202xx_dma_end (ide_drive_t *drive) {if (drive->media != ide_disk || (drive->dev_flags &IDE_DFLAG_LBA48 )) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;unsigned long high_16 = hwif->extra_base -16 ;unsigned long atapi_reg = high_16 + (hwif->channel ?0x24 :0x20 );u8 clock =0 ;
@@ -205,7 +205,7 @@ static int pdc202xx_dma_end(ide_drive_tstatic int pdc202xx_dma_test_irq (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;unsigned long high_16 = hwif->extra_base -16 ;u8 dma_stat =inb (hwif->dma_base +ATA_DMA_STATUS );u8 sc1d =inb (high_16 +0x001d );
@@ -243,7 +243,7 @@ static void pdc202xx_reset_host (ide_hwistatic void pdc202xx_reset (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;ide_hwif_t *mate = hwif->mate;pdc202xx_reset_host (hwif);
drivers/ide/piix.c +3 -3
@@ -67,7 +67,7 @@ static int no_piix_dma;static void piix_set_pio_mode (ide_drive_t *drive,const u8 pio) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);int is_slave = drive->dn &1 ;int master_port = hwif->channel ?0x42 :0x40 ;
@@ -136,7 +136,7 @@ static void piix_set_pio_mode(ide_drive_static void piix_set_dma_mode (ide_drive_t *drive,const u8 speed) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);u8 maslave = hwif->channel ?0x42 :0x40 ;int a_speed =3 << (drive->dn *4 );
@@ -224,7 +224,7 @@ static unsigned int init_chipset_ich(str*/ static void ich_clear_irq (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;u8 dma_stat;/*
drivers/ide/pmac.c +2 -2
@@ -1513,7 +1513,7 @@ use_pio_instead:static int pmac_ide_dma_setup (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;pmac_ide_hwif_t *pmif = (pmac_ide_hwif_t *)dev_get_drvdata (hwif->gendev.parent);struct request *rq = hwif->rq;
@@ -1637,7 +1637,7 @@ pmac_ide_dma_test_irq (ide_drive_t *drivbreak ;if (++timeout >100 ) {printk (KERN_WARNING "ide%d, ide_dma_test_irq \ -timeout flushing channel\n" ,HWIF (drive)->index); +timeout flushing channel\n" , hwif->index);break ; } }
drivers/ide/qd65xx.c +4 -3
@@ -202,7 +202,8 @@ static void qd6500_set_pio_mode(ide_driv recovery_time = drive->id[ATA_ID_EIDE_PIO ] -120 ; } -qd_set_timing (drive,qd6500_compute_timing (HWIF (drive), active_time, recovery_time)); +qd_set_timing (drive,qd6500_compute_timing (drive->hwif, + active_time, recovery_time)); }static void qd6580_set_pio_mode (ide_drive_t *drive,const u8 pio)
@@ -245,11 +246,11 @@ static void qd6580_set_pio_mode(ide_drivprintk (KERN_INFO "%s: PIO mode%d\n" , drive->name,pio); } -if (!HWIF (drive)->channel && drive->media != ide_disk) { +if (!hwif->channel && drive->media != ide_disk) {outb (0x5f ,QD_CONTROL_PORT );printk (KERN_WARNING "%s: ATAPI: disabled read-ahead FIFO " "and post-write buffer on %s.\n" , - drive->name,HWIF (drive)->name); + drive->name, hwif->name); }qd_set_timing (drive,qd6580_compute_timing (active_time, recovery_time));
drivers/ide/sc1200.c +3 -3
@@ -124,7 +124,7 @@ out:static void sc1200_set_dma_mode (ide_drive_t *drive,const u8 mode) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);unsigned int reg, timings;unsigned short pci_clock;
@@ -169,7 +169,7 @@ static void sc1200_set_dma_mode(ide_driv*/ static int sc1200_dma_end (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;unsigned long dma_base = hwif->dma_base;byte dma_stat;
@@ -198,7 +198,7 @@ static int sc1200_dma_end(ide_drive_t *dstatic void sc1200_set_pio_mode (ide_drive_t *drive,const u8 pio) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;int mode =-1 ;/*
drivers/ide/scc_pata.c +4 -4
@@ -217,7 +217,7 @@ scc_ide_outsl(unsigned long port, void *static void scc_set_pio_mode (ide_drive_t *drive,const u8 pio) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct scc_ports *ports =ide_get_hwifdata (hwif);unsigned long ctl_base = ports->ctl;unsigned long cckctrl_port = ctl_base +0xff0 ;
@@ -249,7 +249,7 @@ static void scc_set_pio_mode(ide_drive_tstatic void scc_set_dma_mode (ide_drive_t *drive,const u8 speed) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct scc_ports *ports =ide_get_hwifdata (hwif);unsigned long ctl_base = ports->ctl;unsigned long cckctrl_port = ctl_base +0xff0 ;
@@ -387,7 +387,7 @@ static int __scc_dma_end(ide_drive_t *drstatic int scc_dma_end (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;void __iomem *dma_base = (void __iomem *)hwif->dma_base;unsigned long intsts_port = hwif->dma_base +0x014 ;u32 reg;
@@ -496,7 +496,7 @@ static int scc_dma_end(ide_drive_t *driv/* returns 1 if dma irq issued, 0 otherwise */ static int scc_dma_test_irq (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;u32 int_stat =in_be32 ((void __iomem *)hwif->dma_base +0x014 );/* SCC errata A252,A308 workaround: Step4 */
drivers/ide/serverworks.c +1 -1
@@ -151,7 +151,7 @@ static void svwks_set_dma_mode(ide_drivestatic const u8 dma_modes[] = {0x77 ,0x21 ,0x20 };static const u8 drive_pci2[] = {0x45 ,0x44 ,0x47 ,0x46 }; -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);u8 unit = drive->dn &1 ;
drivers/ide/sgiioc4.c +6 -6
@@ -123,7 +123,7 @@ static int sgiioc4_clearirq(ide_drive_t * drive) {u32 intr_reg; -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct ide_io_ports *io_ports = &hwif->io_ports;unsigned long other_ir = io_ports->irq_addr + (IOC4_INTR_REG <<2 );
@@ -181,7 +181,7 @@ sgiioc4_clearirq(ide_drive_t * drive)static void sgiioc4_dma_start (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;unsigned long ioc4_dma_addr = hwif->dma_base +IOC4_DMA_CTRL *4 ;unsigned int reg =readl ((void __iomem *)ioc4_dma_addr);unsigned int temp_reg = reg |IOC4_S_DMA_START ;
@@ -209,7 +209,7 @@ sgiioc4_ide_dma_stop(ide_hwif_t *hwif, ustatic int sgiioc4_dma_end (ide_drive_t *drive) {u32 ioc4_dma, bc_dev, bc_mem, num, valid =0 , cnt =0 ; -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;unsigned long dma_base = hwif->dma_base;int dma_stat =0 ;unsigned long *ending_dma =ide_get_hwifdata (hwif);
@@ -271,7 +271,7 @@ static void sgiioc4_set_dma_mode(ide_dri/* returns 1 if dma irq issued, 0 otherwise */ static int sgiioc4_dma_test_irq (ide_drive_t *drive) { -return sgiioc4_checkirq (HWIF (drive)); +return sgiioc4_checkirq (drive->hwif); }static void sgiioc4_dma_host_set (ide_drive_t *drive,int on)
@@ -367,7 +367,7 @@ static void sgiioc4_configure_for_dma(int dma_direction, ide_drive_t * drive) { u32 ioc4_dma; -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;unsigned long dma_base = hwif->dma_base;unsigned long ioc4_dma_addr = dma_base +IOC4_DMA_CTRL *4 ;u32 dma_addr, ending_dma_addr;
@@ -427,7 +427,7 @@ sgiioc4_configure_for_dma(int dma_directstatic unsigned int sgiioc4_build_dma_table (ide_drive_t * drive,struct request *rq,int ddir) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;unsigned int *table = hwif->dmatable_cpu;unsigned int count =0 , i =1 ;struct scatterlist *sg;
drivers/ide/siimage.c +5 -5
@@ -114,7 +114,7 @@ static unsigned long siimage_selreg(ide_static inline unsigned long siimage_seldev (ide_drive_t *drive,int r) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;unsigned long base = (unsigned long )hwif->hwif_data;u8 unit = drive->dn &1 ;
@@ -243,7 +243,7 @@ static void sil_set_pio_mode(ide_drive_tstatic const u16 tf_speed[] = {0x328a ,0x2283 ,0x1281 ,0x10c3 ,0x10c1 };static const u16 data_speed[] = {0x328a ,0x2283 ,0x1104 ,0x10c3 ,0x10c1 }; -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);ide_drive_t *pair =ide_get_pair_dev (drive);u32 speedt =0 ;
@@ -300,7 +300,7 @@ static void sil_set_dma_mode(ide_drive_tstatic const u8 ultra5[] = {0x0C ,0x07 ,0x05 ,0x04 ,0x02 ,0x01 };static const u16 dma[] = {0x2208 ,0x10C2 ,0x10C1 }; -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);unsigned long base = (unsigned long )hwif->hwif_data;u16 ultra =0 , multi =0 ;
@@ -340,7 +340,7 @@ static void sil_set_dma_mode(ide_drive_t/* returns 1 if dma irq issued, 0 otherwise */ static int siimage_io_dma_test_irq (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);u8 dma_altstat =0 ;unsigned long addr =siimage_selreg (hwif,1 );
@@ -367,7 +367,7 @@ static int siimage_io_dma_test_irq(ide_dstatic int siimage_mmio_dma_test_irq (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;unsigned long addr =siimage_selreg (hwif,0x1 );void __iomem *sata_error_addr = (void __iomem *)hwif->sata_scr[SATA_ERROR_OFFSET ];
drivers/ide/sis5513.c +1 -1
@@ -274,7 +274,7 @@ static void sis_program_timings(ide_drivstatic void config_drive_art_rwp (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);u8 reg4bh =0 ;u8 rw_prefetch =0 ;
drivers/ide/sl82c105.c +2 -2
@@ -140,7 +140,7 @@ static inline void sl82c105_reset_host(s*/ static void sl82c105_dma_lost_irq (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);u32 val, mask = hwif->channel ?CTRL_IDE_IRQB :CTRL_IDE_IRQA ;u8 dma_cmd;
@@ -177,7 +177,7 @@ static void sl82c105_dma_lost_irq(ide_dr*/ static void sl82c105_dma_start (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);int reg =0x44 + drive->dn *4 ;
drivers/ide/slc90e66.c +2 -2
@@ -20,7 +20,7 @@ static DEFINE_SPINLOCK(slc90e66_lock);static void slc90e66_set_pio_mode (ide_drive_t *drive,const u8 pio) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);int is_slave = drive->dn &1 ;int master_port = hwif->channel ?0x42 :0x40 ;
@@ -73,7 +73,7 @@ static void slc90e66_set_pio_mode(ide_drstatic void slc90e66_set_dma_mode (ide_drive_t *drive,const u8 speed) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);u8 maslave = hwif->channel ?0x42 :0x40 ;int sitre =0 , a_speed =7 << (drive->dn *4 );
drivers/ide/tc86c001.c +3 -3
@@ -15,7 +15,7 @@static void tc86c001_set_mode (ide_drive_t *drive,const u8 speed) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;unsigned long scr_port = hwif->config_data + (drive->dn ?0x02 :0x00 );u16 mode, scr =inw (scr_port);
@@ -62,7 +62,7 @@ static void tc86c001_set_pio_mode(ide_dr*/ static int tc86c001_timer_expiry (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;ide_expiry_t *expiry =ide_get_hwifdata (hwif);u8 dma_stat =inb (hwif->dma_base +ATA_DMA_STATUS );
@@ -109,7 +109,7 @@ static int tc86c001_timer_expiry(ide_dristatic void tc86c001_dma_start (ide_drive_t *drive) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;unsigned long sc_base = hwif->config_data;unsigned long twcr_port = sc_base + (drive->dn ?0x06 :0x04 );unsigned long nsectors = hwif->rq->nr_sectors;
drivers/ide/triflex.c +1 -1
@@ -36,7 +36,7 @@static void triflex_set_mode (ide_drive_t *drive,const u8 speed) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);u32 triflex_timings =0 ;u16 timing =0 ;
drivers/ide/trm290.c +4 -4
@@ -144,7 +144,7 @@static void trm290_prepare_drive (ide_drive_t *drive,unsigned int use_dma) { -ide_hwif_t *hwif =HWIF (drive); +ide_hwif_t *hwif = drive->hwif;u16 reg =0 ;unsigned long flags;
@@ -222,15 +222,15 @@ static int trm290_dma_end(ide_drive_t *d drive->waiting_for_dma =0 ;/* purge DMA mappings */ ide_destroy_dmatable (drive); - status =inw (HWIF (drive)->dma_base +2 ); + status =inw (drive->hwif->dma_base +2 ); +return status !=0x00ff ; }static int trm290_dma_test_irq (ide_drive_t *drive) { -u16 status; +u16 status =inw (drive->hwif->dma_base +2 ); - status =inw (HWIF (drive)->dma_base +2 );return status ==0x00ff ; }
drivers/ide/via82cxxx.c +1 -1
@@ -178,7 +178,7 @@ static void via_set_drive(ide_drive_t *dide_timing_merge (&p, &t, &t,IDE_TIMING_8BIT ); } -via_set_speed (HWIF (drive), drive->dn, &t); +via_set_speed (hwif, drive->dn, &t); }/**
include/linux/ide.h +0 -2
@@ -41,8 +41,6 @@ typedef unsigned char byte; /* used ever#define ERROR_RESET 3/* Reset controller every 4th retry */ #define ERROR_RECAL 1/* Recalibrate every 2nd retry */ -#define HWIF (drive) ((ide_hwif_t *)((drive)->hwif)) -/* * Definitions for accessing IDE controller registers */
PATCH 4/9 ide: remove local_irq_set() macro
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] ide: remove local_irq_set() macro
--- drivers/ide/ide-iops.c | 3 ++- drivers/ide/ide-probe.c | 3 ++- include/linux/ide.h | 2 -- 3 files changed, 4 insertions(+), 4 deletions(-)
drivers/ide/ide-iops.c +2 -1
@@ -503,7 +503,8 @@ static int __ide_wait_stat(ide_drive_t * stat = tp_ops->read_status (hwif);if (stat &ATA_BUSY ) { -local_irq_set (flags); +local_irq_save (flags); +local_irq_enable_in_hardirq (); timeout += jiffies;while ((stat = tp_ops->read_status (hwif)) &ATA_BUSY ) {if (time_after (jiffies, timeout)) {
drivers/ide/ide-probe.c +2 -1
@@ -796,7 +796,8 @@ static int ide_probe_port(ide_hwif_t *hwif (irqd)disable_irq (hwif->irq); -local_irq_set (flags); +local_irq_save (flags); +local_irq_enable_in_hardirq ();if (ide_port_wait_ready (hwif) == -EBUSY )printk (KERN_DEBUG "%s: Wait for ready failed before probe !\n" , hwif->name);
include/linux/ide.h +0 -2
@@ -1585,8 +1585,6 @@ static inline void ide_set_max_pio(ide_dide_set_pio (drive,255 ); } -#define local_irq_set (flags) do { local_save_flags((flags)); local_irq_enable_in_hardirq(); } while (0) -char *ide_media_string (ide_drive_t *);extern struct device_attribute ide_dev_attrs[];
PATCH 5/9 ide: remove ide_pci_enablebit_t typedef
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] ide: remove ide_pci_enablebit_t typedef
Remove needless parens while at it.
--- drivers/ide/setup-pci.c | 2 +- include/linux/ide.h | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-)
drivers/ide/setup-pci.c +1 -1
@@ -471,7 +471,7 @@ void ide_pci_setup_ports(struct pci_dev*/ for (port =0 ; port < channels; ++port) { -const ide_pci_enablebit_t *e = &(d->enablebits[port]); +const struct ide_pci_enablebit *e = &d->enablebits[port];if (e->reg && (pci_read_config_byte (dev, e->reg, &tmp) || (tmp & e->mask) != e->val)) {
include/linux/ide.h +4 -3
@@ -1301,11 +1301,11 @@ static inline int ide_hwif_setup_dma(ide }#endif -typedef struct ide_pci_enablebit_s { +struct ide_pci_enablebit {u8 reg;/* byte pci reg holding the enable-bit */ u8 mask;/* mask to isolate the enable-bit */ u8 val;/* value of masked reg when "enabled" */ -}ide_pci_enablebit_t ; +};enum {/* Uses ISA control ports not PCI ones. */
@@ -1394,7 +1394,8 @@ struct ide_port_info {const struct ide_port_ops *port_ops;const struct ide_dma_ops *dma_ops; -ide_pci_enablebit_t enablebits[2 ]; +struct ide_pci_enablebit enablebits[2 ]; +hwif_chipset_t chipset;u16 max_sectors;/* if < than the default one */
Re: [PATCH 5/9] ide: remove ide_pci_enablebit_t typedef
Quoted 7 lines · Bartlomiej Zolnierkiewicz
From: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] ide: removeide_pci_enablebit_ttypedefRemove needless parens while at it.
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
MBR, Sergei
PATCH 6/9 ide: remove 'byte' typedef
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] ide: remove 'byte' typedef
Just use u8 instead, also s/__u8/u8/ in ide-cd.h while at it.
--- drivers/ide/ide-cd.h | 26 +++++++++++++------------- drivers/ide/it821x.c | 4 ++-- drivers/ide/qd65xx.h | 4 ++-- drivers/ide/sc1200.c | 2 +- include/linux/ide.h | 4 +--- 5 files changed, 19 insertions(+), 21 deletions(-)
drivers/ide/ide-cd.h +13 -13
@@ -33,33 +33,33 @@/* Structure of a MSF cdrom address. */ struct atapi_msf { -byte reserved; -byte minute; -byte second; -byte frame; +u8 reserved; +u8 minute; +u8 second; +u8 frame; };/* Space to hold the disk TOC. */ #define MAX_TRACKS 99struct atapi_toc_header {unsigned short toc_length; -byte first_track; -byte last_track; +u8 first_track; +u8 last_track; };struct atapi_toc_entry { -byte reserved1; +u8 reserved1;#if defined(__BIG_ENDIAN_BITFIELD) -__u8 adr :4 ; -__u8 control :4 ; +u8 adr :4 ; +u8 control :4 ;#elif defined(__LITTLE_ENDIAN_BITFIELD) -__u8 control :4 ; -__u8 adr :4 ; +u8 control :4 ; +u8 adr :4 ;#else #error "Please fix <asm/byteorder.h>"#endif -byte track; -byte reserved2; +u8 track; +u8 reserved2;union {unsigned lba;struct atapi_msf msf;
drivers/ide/it821x.c +2 -2
@@ -279,7 +279,7 @@ static void it821x_set_pio_mode(ide_driv* the shared MWDMA/PIO timing register. */ -static void it821x_tune_mwdma (ide_drive_t *drive,byte mode_wanted) +static void it821x_tune_mwdma (ide_drive_t *drive,u8 mode_wanted) {ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);
@@ -316,7 +316,7 @@ static void it821x_tune_mwdma (ide_drive* controller when doing UDMA modes in pass through. */ -static void it821x_tune_udma (ide_drive_t *drive,byte mode_wanted) +static void it821x_tune_udma (ide_drive_t *drive,u8 mode_wanted) {ide_hwif_t *hwif = drive->hwif;struct pci_dev *dev =to_pci_dev (hwif->dev);
drivers/ide/qd65xx.h +2 -2
@@ -31,8 +31,8 @@#define QD_CONFIG (hwif) ((hwif)->config_data & 0x00ff) -#define QD_TIMING (drive) (byte)(((drive)->drive_data) & 0x00ff) -#define QD_TIMREG (drive) (byte)((((drive)->drive_data) & 0xff00) >> 8) +#define QD_TIMING (drive) (u8)(((drive)->drive_data) & 0x00ff) +#define QD_TIMREG (drive) (u8)((((drive)->drive_data) & 0xff00) >> 8)#define QD6500_DEF_DATA ((QD_TIM1_PORT<<8) | (QD_ID3 ? 0x0c : 0x08))#define QD6580_DEF_DATA ((QD_TIM1_PORT<<8) | (QD_ID3 ? 0x0a : 0x00))
drivers/ide/sc1200.c +1 -1
@@ -171,7 +171,7 @@ static int sc1200_dma_end(ide_drive_t *d {ide_hwif_t *hwif = drive->hwif;unsigned long dma_base = hwif->dma_base; -byte dma_stat; +u8 dma_stat; dma_stat =inb (dma_base+2 );/* get DMA status */
include/linux/ide.h +1 -3
@@ -32,8 +32,6 @@# define SUPPORT_VLB_SYNC 1#endif -typedef unsigned char byte ;/* used everywhere */ -/* * Probably not wise to fiddle with these */
@@ -1162,7 +1160,7 @@ void ide_pad_transfer(ide_drive_t *, intide_startstop_t __ide_error (ide_drive_t *,struct request *,u8 ,u8 ); -ide_startstop_t ide_error (ide_drive_t *drive,const char *msg,byte stat); +ide_startstop_t ide_error (ide_drive_t *,const char *,u8 );void ide_fix_driveid (u16 *);
Re: [PATCH 6/9] ide: remove 'byte' typedef
Hello.
Quoted 4 lines · Bartlomiej Zolnierkiewicz
Just use u8 instead, also s/__u8/u8/ in
ide-cd.hwhile at it.Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
drivers/ide/qd65xx.h line 36
Quoted 13 lines
Index:
b/drivers/ide/qd65xx.h
===================================================================drivers/ide/qd65xx.h +2
-2@@ -31,8 +31,8 @@#define QD_CONFIG (hwif) ((hwif)->config_data & 0x00ff) -#define QD_TIMING (drive) (byte)(((drive)->drive_data) & 0x00ff) -#define QD_TIMREG (drive) (byte)((((drive)->drive_data) & 0xff00) >> 8) +#define QD_TIMING (drive) (u8)(((drive)->drive_data) & 0x00ff) +#define QD_TIMREG (drive) (u8)((((drive)->drive_data) & 0xff00) >> 8)
Could you drop the pointless parens around (drive)->drive_data, while
at it?
MBR, Sergei
PATCH 7/9 ide: remove ide_driver_t typedef
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] ide: remove ide_driver_t typedef
While at it:
- s/struct ide_driver_s/struct ide_driver/
- use to_ide_driver() macro in ide-proc.c
--- drivers/ide/ide-cd.c | 2 +- drivers/ide/ide-cd.h | 8 ++++---- drivers/ide/ide-gd.c | 2 +- drivers/ide/ide-gd.h | 10 +++++----- drivers/ide/ide-io.c | 12 ++++++------ drivers/ide/ide-pm.c | 2 +- drivers/ide/ide-proc.c | 16 ++++++++-------- drivers/ide/ide-tape.c | 10 +++++----- drivers/ide/ide-taskfile.c | 8 ++++---- drivers/ide/ide.c | 6 +++--- include/linux/ide.h | 18 +++++++++--------- 11 files changed, 47 insertions(+), 47 deletions(-)
drivers/ide/ide-cd.c +1 -1
@@ -1941,7 +1941,7 @@ static void ide_cd_release(struct kref *static int ide_cd_probe (ide_drive_t *); -static ide_driver_t ide_cdrom_driver = { +static struct ide_driver ide_cdrom_driver = { .gen_driver = { .owner =THIS_MODULE , .name ="ide-cdrom" ,
drivers/ide/ide-cd.h +4 -4
@@ -77,10 +77,10 @@ struct atapi_toc {/* Extra per-device info for cdrom drives. */ struct cdrom_info { -ide_drive_t *drive; -ide_driver_t *driver; -struct gendisk *disk; -struct kref kref; +ide_drive_t *drive; +struct ide_driver *driver; +struct gendisk *disk; +struct kref kref;/* Buffer for table of contents. NULL if we haven't allocated a TOC buffer for this device yet. */
drivers/ide/ide-gd.c +1 -1
@@ -149,7 +149,7 @@ static int ide_gd_end_request(ide_drive_return drive->disk_ops->end_request (drive, uptodate, nrsecs); } -static ide_driver_t ide_gd_driver = { +static struct ide_driver ide_gd_driver = { .gen_driver = { .owner =THIS_MODULE , .name ="ide-gd" ,
drivers/ide/ide-gd.h +5 -5
@@ -14,11 +14,11 @@#endif struct ide_disk_obj { -ide_drive_t *drive; -ide_driver_t *driver; -struct gendisk *disk; -struct kref kref; -unsigned int openers;/* protected by BKL for now */ +ide_drive_t *drive; +struct ide_driver *driver; +struct gendisk *disk; +struct kref kref; +unsigned int openers;/* protected by BKL for now */ /* Last failed packet command */ struct ide_atapi_pc *failed_pc;
drivers/ide/ide-io.c +6 -6
@@ -199,9 +199,9 @@ EXPORT_SYMBOL(ide_end_drive_cmd);static void ide_kill_rq (ide_drive_t *drive,struct request *rq) {if (rq->rq_disk) { -ide_driver_t *drv; +struct ide_driver *drv; - drv = *(ide_driver_t **)rq->rq_disk->private_data; + drv = *(struct ide_driver **)rq->rq_disk->private_data; drv->end_request (drive,0 ,0 ); }else ide_end_request (drive,0 ,0 );
@@ -333,9 +333,9 @@ ide_startstop_t ide_error (ide_drive_t * }if (rq->rq_disk) { -ide_driver_t *drv; +struct ide_driver *drv; - drv = *(ide_driver_t **)rq->rq_disk->private_data; + drv = *(struct ide_driver **)rq->rq_disk->private_data;return drv->error (drive, rq, stat, err); }else return __ide_error (drive, rq, stat, err);
@@ -606,7 +606,7 @@ static ide_startstop_t start_request (idreturn startstop; }if (!drive->special.all) { -ide_driver_t *drv; +struct ide_driver *drv;/* * We reset the drive so we need to issue a SETFEATURES.
@@ -639,7 +639,7 @@ static ide_startstop_t start_request (id*/ return ide_special_rq (drive, rq); - drv = *(ide_driver_t **)rq->rq_disk->private_data; + drv = *(struct ide_driver **)rq->rq_disk->private_data;return drv->do_request (drive, rq, rq->sector); }
drivers/ide/ide-pm.c +1 -1
@@ -67,7 +67,7 @@ int generic_ide_resume(struct device *deblk_put_request (rq);if (err ==0 && dev->driver) { -ide_driver_t *drv =to_ide_driver (dev->driver); +struct ide_driver *drv =to_ide_driver (dev->driver);if (drv->resume) drv->resume (drive);
drivers/ide/ide-proc.c +8 -8
@@ -439,13 +439,13 @@ static int proc_ide_read_dmodelstatic int proc_ide_read_driver (char *page,char **start,off_t off,int count,int *eof,void *data) { -ide_drive_t *drive = (ide_drive_t *) data; -struct device *dev = &drive->gendev; -ide_driver_t *ide_drv; -int len; +ide_drive_t *drive = (ide_drive_t *)data; +struct device *dev = &drive->gendev; +struct ide_driver *ide_drv; +int len;if (dev->driver) { - ide_drv =container_of (dev->driver, ide_driver_t, gen_driver); + ide_drv =to_ide_driver (dev->driver); len =sprintf (page,"%s version %s\n" , dev->driver->name, ide_drv->version); }else
@@ -555,7 +555,7 @@ static void ide_remove_proc_entries(stru } } -void ide_proc_register_driver (ide_drive_t *drive,ide_driver_t *driver) +void ide_proc_register_driver (ide_drive_t *drive,struct ide_driver *driver) {mutex_lock (&ide_setting_mtx); drive->settings = driver->proc_devsets (drive);
@@ -577,7 +577,7 @@ EXPORT_SYMBOL(ide_proc_register_driver);* Takes ide_setting_mtx. */ -void ide_proc_unregister_driver (ide_drive_t *drive,ide_driver_t *driver) +void ide_proc_unregister_driver (ide_drive_t *drive,struct ide_driver *driver) {ide_remove_proc_entries (drive->proc, driver->proc_entries (drive));
@@ -653,7 +653,7 @@ void ide_proc_unregister_port(ide_hwif_tstatic int proc_print_driver (struct device_driver *drv,void *data) { -ide_driver_t *ide_drv =container_of (drv, ide_driver_t, gen_driver); +struct ide_driver *ide_drv =to_ide_driver (drv);struct seq_file *s = data;seq_printf (s,"%s version %s\n" , drv->name, ide_drv->version);
drivers/ide/ide-tape.c +5 -5
@@ -166,10 +166,10 @@ struct idetape_bh {* to an interrupt or a timer event is stored in the struct defined below. */ typedef struct ide_tape_obj { - ide_drive_t *drive; - ide_driver_t *driver; - struct gendisk *disk; - struct kref kref; + ide_drive_t *drive; + struct ide_driver *driver; + struct gendisk *disk; + struct kref kref; /* * failed_pc points to the last failed packet command, or contains
@@ -2313,7 +2313,7 @@ static const struct ide_proc_devset *idestatic int ide_tape_probe (ide_drive_t *); -static ide_driver_t idetape_driver = { +static struct ide_driver idetape_driver = { .gen_driver = { .owner =THIS_MODULE , .name ="ide-tape" ,
drivers/ide/ide-taskfile.c +4 -4
@@ -309,9 +309,9 @@ static ide_startstop_t task_error(ide_dr }if (sectors >0 ) { -ide_driver_t *drv; +struct ide_driver *drv; - drv = *(ide_driver_t **)rq->rq_disk->private_data; + drv = *(struct ide_driver **)rq->rq_disk->private_data; drv->end_request (drive,1 , sectors); } }
@@ -328,9 +328,9 @@ void task_end_request(ide_drive_t *drive }if (rq->rq_disk) { -ide_driver_t *drv; +struct ide_driver *drv; - drv = *(ide_driver_t **)rq->rq_disk->private_data;; + drv = *(struct ide_driver **)rq->rq_disk->private_data;; drv->end_request (drive,1 , rq->nr_sectors); }else ide_end_request (drive,1 , rq->nr_sectors);
drivers/ide/ide.c +3 -3
@@ -435,7 +435,7 @@ static int ide_uevent(struct device *devstatic int generic_ide_probe (struct device *dev) {ide_drive_t *drive =to_ide_device (dev); -ide_driver_t *drv =to_ide_driver (dev->driver); +struct ide_driver *drv =to_ide_driver (dev->driver);return drv->probe ? drv->probe (drive) : -ENODEV ; }
@@ -443,7 +443,7 @@ static int generic_ide_probe(struct devistatic int generic_ide_remove (struct device *dev) {ide_drive_t *drive =to_ide_device (dev); -ide_driver_t *drv =to_ide_driver (dev->driver); +struct ide_driver *drv =to_ide_driver (dev->driver);if (drv->remove) drv->remove (drive);
@@ -454,7 +454,7 @@ static int generic_ide_remove(struct devstatic void generic_ide_shutdown (struct device *dev) {ide_drive_t *drive =to_ide_device (dev); -ide_driver_t *drv =to_ide_driver (dev->driver); +struct ide_driver *drv =to_ide_driver (dev->driver);if (dev->driver && drv->shutdown) drv->shutdown (drive);
include/linux/ide.h +9 -9
@@ -439,7 +439,7 @@ struct ide_atapi_pc { };struct ide_devset ; -struct ide_driver_s ; +struct ide_driver ;#ifdef CONFIG_BLK_DEV_IDEACPI struct ide_acpi_drive_link ;
@@ -885,8 +885,6 @@ typedef int (ide_expiry_t)(ide_drive_t */* used by ide-cd, ide-floppy, etc. */ typedef void (xfer_func_t )(ide_drive_t *,struct request *rq,void *,unsigned ); -typedef struct ide_driver_s ide_driver_t ; -extern struct mutex ide_setting_mtx;/*
@@ -1012,8 +1010,8 @@ void ide_proc_register_port(ide_hwif_t *void ide_proc_port_register_devices (ide_hwif_t *);void ide_proc_unregister_device (ide_drive_t *);void ide_proc_unregister_port (ide_hwif_t *); -void ide_proc_register_driver (ide_drive_t *,ide_driver_t *); -void ide_proc_unregister_driver (ide_drive_t *,ide_driver_t *); +void ide_proc_register_driver (ide_drive_t *,struct ide_driver *); +void ide_proc_unregister_driver (ide_drive_t *,struct ide_driver *);read_proc_t proc_ide_read_capacity;read_proc_t proc_ide_read_geometry;
@@ -1040,8 +1038,10 @@ static inline void ide_proc_register_porstatic inline void ide_proc_port_register_devices (ide_hwif_t *hwif) { ; }static inline void ide_proc_unregister_device (ide_drive_t *drive) { ; }static inline void ide_proc_unregister_port (ide_hwif_t *hwif) { ; } -static inline void ide_proc_register_driver (ide_drive_t *drive,ide_driver_t *driver) { ; } -static inline void ide_proc_unregister_driver (ide_drive_t *drive,ide_driver_t *driver) { ; } +static inline void ide_proc_register_driver (ide_drive_t *drive, +struct ide_driver *driver) { ; } +static inline void ide_proc_unregister_driver (ide_drive_t *drive, +struct ide_driver *driver) { ; }#define PROC_IDE_READ_RETURN (page,start,off,count,eof,len) return 0;#endif
@@ -1110,7 +1110,7 @@ void ide_check_pm_state(ide_drive_t *, s* The gendriver.owner field should be set to the module owner of this driver. * The gendriver.name field should be set to the name of this driver */ -struct ide_driver_s { +struct ide_driver {const char *version;ide_startstop_t (*do_request)(ide_drive_t *,struct request *,sector_t );int (*end_request)(ide_drive_t *,int ,int );
@@ -1126,7 +1126,7 @@ struct ide_driver_s {#endif }; -#define to_ide_driver (drv) container_of(drv, ide_driver_t, gen_driver) +#define to_ide_driver (drv) container_of(drv, struct ide_driver, gen_driver)int ide_device_get (ide_drive_t *);void ide_device_put (ide_drive_t *);
PATCH 8/9 ide: unexport ide_wait_not_busy()
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] ide: unexport ide_wait_not_busy()
--- drivers/ide/ide-iops.c | 3 --- 1 file changed, 3 deletions(-)
drivers/ide/ide-iops.c +0 -3
@@ -1216,6 +1216,3 @@ int ide_wait_not_busy(ide_hwif_t *hwif, }return -EBUSY ; } - -EXPORT_SYMBOL_GPL (ide_wait_not_busy); -
PATCH 9/9 ide: remove ->error method from struct ide_driver
In reply to Bartlomiej ZolnierkiewiczFrom: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH] ide: remove ->error method from struct ide_driver
* Remove (now superfluous) ->error method from struct ide_driver.
* Unexport __ide_error() and make it static.
--- drivers/ide/ide-cd.c | 1 - drivers/ide/ide-gd.c | 1 - drivers/ide/ide-io.c | 13 ++----------- drivers/ide/ide-tape.c | 1 - include/linux/ide.h | 3 --- 5 files changed, 2 insertions(+), 17 deletions(-)
drivers/ide/ide-cd.c +0 -1
@@ -1952,7 +1952,6 @@ static struct ide_driver ide_cdrom_drive .version = IDECD_VERSION, .do_request = ide_cd_do_request, .end_request = ide_end_request, - .error = __ide_error, #ifdef CONFIG_IDE_PROC_FS .proc_entries = ide_cd_proc_entries, .proc_devsets = ide_cd_proc_devsets,
drivers/ide/ide-gd.c +0 -1
@@ -162,7 +162,6 @@ static struct ide_driver ide_gd_driver = .version = IDE_GD_VERSION, .do_request = ide_gd_do_request, .end_request = ide_gd_end_request, - .error = __ide_error, #ifdef CONFIG_IDE_PROC_FS .proc_entries = ide_disk_proc_entries, .proc_devsets = ide_disk_proc_devsets,
drivers/ide/ide-io.c +2 -11
@@ -291,7 +291,7 @@ static ide_startstop_t ide_atapi_error(ireturn ide_stopped; } -ide_startstop_t +static ide_startstop_t __ide_error (ide_drive_t *drive,struct request *rq,u8 stat,u8 err) {if (drive->media == ide_disk)
@@ -299,8 +299,6 @@ __ide_error(ide_drive_t *drive, struct rreturn ide_atapi_error (drive, rq, stat, err); } -EXPORT_SYMBOL_GPL (__ide_error); -/** * ide_error - handle an error on the IDE * @drive: drive the error occurred on
@@ -332,15 +330,8 @@ ide_startstop_t ide_error (ide_drive_t *return ide_stopped; } -if (rq->rq_disk) { -struct ide_driver *drv; - - drv = *(struct ide_driver **)rq->rq_disk->private_data; -return drv->error (drive, rq, stat, err); - }else -return __ide_error (drive, rq, stat, err); +return __ide_error (drive, rq, stat, err); } -EXPORT_SYMBOL_GPL (ide_error);static void ide_tf_set_specify_cmd (ide_drive_t *drive,struct ide_taskfile *tf)
drivers/ide/ide-tape.c +0 -1
@@ -2324,7 +2324,6 @@ static struct ide_driver idetape_driver .version = IDETAPE_VERSION, .do_request = idetape_do_request, .end_request = idetape_end_request, - .error = __ide_error, #ifdef CONFIG_IDE_PROC_FS .proc_entries = ide_tape_proc_entries, .proc_devsets = ide_tape_proc_devsets,
include/linux/ide.h +0 -3
@@ -1112,7 +1112,6 @@ struct ide_driver {const char *version;ide_startstop_t (*do_request)(ide_drive_t *,struct request *,sector_t );int (*end_request)(ide_drive_t *,int ,int ); -ide_startstop_t (*error)(ide_drive_t *,struct request *rq,u8 ,u8 );struct device_driver gen_driver;int (*probe)(ide_drive_t *);void (*remove)(ide_drive_t *);
@@ -1156,8 +1155,6 @@ void ide_execute_pkt_cmd(ide_drive_t *);void ide_pad_transfer (ide_drive_t *,int ,int ); -ide_startstop_t __ide_error (ide_drive_t *,struct request *,u8 ,u8 ); -ide_startstop_t ide_error (ide_drive_t *,const char *,u8 );void ide_fix_driveid (u16 *);