lkml.org 
[lkml]   [2009]   [Nov]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 84/86] libata: add ata_mwdma_to_pio() inline helper
    From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    Subject: [PATCH] libata: add ata_mwdma_to_pio() inline helper

    Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    ---
    drivers/ata/ata_piix.c | 11 ++---------
    drivers/ata/pata_efar.c | 8 +-------
    drivers/ata/pata_it8213.c | 8 +-------
    drivers/ata/pata_oldpiix.c | 9 +--------
    drivers/ata/pata_radisys.c | 12 +++---------
    drivers/ata/pata_rdc.c | 11 ++---------
    include/linux/ata.h | 11 +++++++++++
    7 files changed, 21 insertions(+), 49 deletions(-)

    Index: b/drivers/ata/ata_piix.c
    ===================================================================
    --- a/drivers/ata/ata_piix.c
    +++ b/drivers/ata/ata_piix.c
    @@ -831,16 +831,9 @@ static void do_pata_set_dmamode(struct a
    pci_write_config_byte(dev, 0x48, udma_enable);

    spin_unlock_irqrestore(&piix_lock, flags);
    - } else {
    + } else
    /* MWDMA is driven by the PIO timings. */
    - unsigned int mwdma = speed - XFER_MW_DMA_0;
    - const unsigned int needed_pio[3] = {
    - XFER_PIO_0, XFER_PIO_3, XFER_PIO_4
    - };
    - int pio = needed_pio[mwdma] - XFER_PIO_0;
    -
    - piix_set_timings(ap, adev, pio, 1);
    - }
    + piix_set_timings(ap, adev, ata_mwdma_to_pio(speed), 1);
    }

    /**
    Index: b/drivers/ata/pata_efar.c
    ===================================================================
    --- a/drivers/ata/pata_efar.c
    +++ b/drivers/ata/pata_efar.c
    @@ -176,13 +176,7 @@ static void efar_set_dmamode (struct ata
    pci_write_config_word(dev, 0x4A, udma_timing);
    } else {
    /* MWDMA is driven by the PIO timings. */
    - unsigned int mwdma = speed - XFER_MW_DMA_0;
    - const unsigned int needed_pio[3] = {
    - XFER_PIO_0, XFER_PIO_3, XFER_PIO_4
    - };
    - int pio = needed_pio[mwdma] - XFER_PIO_0;
    -
    - efar_set_timings(ap, adev, pio, 1);
    + efar_set_timings(ap, adev, ata_mwdma_to_pio(speed), 1);

    udma_enable &= ~(1 << devid);
    }
    Index: b/drivers/ata/pata_it8213.c
    ===================================================================
    --- a/drivers/ata/pata_it8213.c
    +++ b/drivers/ata/pata_it8213.c
    @@ -186,13 +186,7 @@ static void it8213_set_dmamode (struct a
    pci_write_config_word(dev, 0x54, ideconf);
    } else {
    /* MWDMA is driven by the PIO timings. */
    - unsigned int mwdma = speed - XFER_MW_DMA_0;
    - static const unsigned int needed_pio[3] = {
    - XFER_PIO_0, XFER_PIO_3, XFER_PIO_4
    - };
    - int pio = needed_pio[mwdma] - XFER_PIO_0;
    -
    - it8213_set_timings(ap, adev, pio, 1);
    + it8213_set_timings(ap, adev, ata_mwdma_to_pio(speed), 1);

    udma_enable &= ~(1 << devid);
    }
    Index: b/drivers/ata/pata_oldpiix.c
    ===================================================================
    --- a/drivers/ata/pata_oldpiix.c
    +++ b/drivers/ata/pata_oldpiix.c
    @@ -135,14 +135,7 @@ static void oldpiix_set_piomode(struct a
    static void oldpiix_set_dmamode (struct ata_port *ap, struct ata_device *adev)
    {
    /* MWDMA is driven by the PIO timings. */
    -
    - unsigned int mwdma = adev->dma_mode - XFER_MW_DMA_0;
    - const unsigned int needed_pio[3] = {
    - XFER_PIO_0, XFER_PIO_3, XFER_PIO_4
    - };
    - int pio = needed_pio[mwdma] - XFER_PIO_0;
    -
    - oldpiix_set_timings(ap, adev, pio, 1);
    + oldpiix_set_timings(ap, adev, ata_mwdma_to_pio(adev->dma_mode), 1);
    }

    /**
    Index: b/drivers/ata/pata_radisys.c
    ===================================================================
    --- a/drivers/ata/pata_radisys.c
    +++ b/drivers/ata/pata_radisys.c
    @@ -102,18 +102,12 @@ static void radisys_set_dmamode (struct
    struct pci_dev *dev = to_pci_dev(ap->host->dev);
    u8 udma_enable;

    - /* MWDMA is driven by the PIO timings. */
    -
    pci_read_config_byte(dev, 0x48, &udma_enable);

    if (adev->dma_mode < XFER_UDMA_0) {
    - unsigned int mwdma = adev->dma_mode - XFER_MW_DMA_0;
    - const unsigned int needed_pio[3] = {
    - XFER_PIO_0, XFER_PIO_3, XFER_PIO_4
    - };
    - int pio = needed_pio[mwdma] - XFER_PIO_0;
    -
    - radisys_set_timings(ap, adev, pio, 1);
    + /* MWDMA is driven by the PIO timings. */
    + radisys_set_timings(ap, adev,
    + ata_mwdma_to_pio(adev->dma_mode), 1);

    udma_enable &= ~(1 << adev->devno);
    } else {
    Index: b/drivers/ata/pata_rdc.c
    ===================================================================
    --- a/drivers/ata/pata_rdc.c
    +++ b/drivers/ata/pata_rdc.c
    @@ -227,16 +227,9 @@ static void rdc_set_dmamode(struct ata_p
    pci_write_config_word(dev, 0x54, ideconf);

    pci_write_config_byte(dev, 0x48, udma_enable);
    - } else {
    + } else
    /* MWDMA is driven by the PIO timings. */
    - unsigned int mwdma = speed - XFER_MW_DMA_0;
    - const unsigned int needed_pio[3] = {
    - XFER_PIO_0, XFER_PIO_3, XFER_PIO_4
    - };
    - int pio = needed_pio[mwdma] - XFER_PIO_0;
    -
    - rdc_set_timings(ap, adev, pio, 1);
    - }
    + rdc_set_timings(ap, adev, ata_mwdma_to_pio(speed), 1);
    }

    static struct ata_port_operations rdc_pata_ops = {
    Index: b/include/linux/ata.h
    ===================================================================
    --- a/include/linux/ata.h
    +++ b/include/linux/ata.h
    @@ -1012,4 +1012,15 @@ static inline int lba_48_ok(u64 block, u
    #define sata_pmp_gscr_rev(gscr) (((gscr)[SATA_PMP_GSCR_REV] >> 8) & 0xff)
    #define sata_pmp_gscr_ports(gscr) ((gscr)[SATA_PMP_GSCR_PORT_INFO] & 0xf)

    +/* returns PIO number matching given MWDMA mode */
    +static inline u8 ata_mwdma_to_pio(u8 mwdma_mode)
    +{
    + unsigned int mwdma = mwdma_mode - XFER_MW_DMA_0;
    + const unsigned int needed_pio[3] = {
    + XFER_PIO_0, XFER_PIO_3, XFER_PIO_4
    + };
    +
    + return needed_pio[mwdma] - XFER_PIO_0;
    +}
    +
    #endif /* __LINUX_ATA_H__ */

    \
     
     \ /
      Last update: 2009-11-25 18:25    [W:4.119 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site