lkml.org 
[lkml]   [2006]   [Jul]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [2.6.18-rc2-mm1] libata ate one PATA channel
    On Mon, Jul 31, 2006 at 05:31:29PM +0100, Alan Cox wrote:
    > Ar Maw, 2006-08-01 am 01:00 +0900, ysgrifennodd Tejun Heo:
    > > These are patches #110-112. Andrew, can you drop those patches for the
    > > time being? I'm working on integrating those into libata #upstream now.
    >
    > If you drop the host_set and tuning patches please drop all the PATA
    > stuff and my other patches out. I don't have time to field a second
    > batch of hundreds of "why has my drive stopped working, why is the speed
    > wrong" emails.

    Didn't realize pata stuff relies on it.

    > It'll be easier just to work outside the -mm tree with all this
    > continued in/out random breakage if people are just going to say "drop
    > xyz patch" rather than actually specifying *what is actually wrong* and
    > getting me to fix the merge (Tejun that last one sentence is a hint ;))

    Okay, took the hint. Magallon, can you please try the following
    patch?

    Index: work/drivers/scsi/libata-bmdma.c
    ===================================================================
    --- work.orig/drivers/scsi/libata-bmdma.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/libata-bmdma.c 2006-08-01 01:46:57.000000000 +0900
    @@ -905,8 +905,6 @@ static struct ata_probe_ent *ata_pci_ini
    return NULL;

    probe_ent->legacy_mode = 1;
    - probe_ent->n_ports = 1;
    - probe_ent->hard_port_no = 0;
    probe_ent->private_data = port[0]->private_data;

    if (port_mask & ATA_PORT_PRIMARY) {
    @@ -928,12 +926,10 @@ static struct ata_probe_ent *ata_pci_ini
    else {
    /* Secondary only. IRQ 15 only and "first" port is port 1 */
    probe_ent->irq = 15;
    - probe_ent->hard_port_no = 1;
    }
    probe_ent->port[port_num].cmd_addr = ATA_SECONDARY_CMD;
    probe_ent->port[port_num].altstatus_addr =
    probe_ent->port[port_num].ctl_addr = ATA_SECONDARY_CTL;
    - port_num ++;
    if (bmdma) {
    probe_ent->port[port_num].bmdma_addr = bmdma + 8;
    if (inb(bmdma + 10) & 0x80)
    @@ -942,6 +938,9 @@ static struct ata_probe_ent *ata_pci_ini
    ata_std_ports(&probe_ent->port[port_num]);
    port_num ++;
    }
    +
    + probe_ent->n_ports = port_num;
    +
    return probe_ent;
    }

    Index: work/drivers/scsi/ata_jmicron.c
    ===================================================================
    --- work.orig/drivers/scsi/ata_jmicron.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/ata_jmicron.c 2006-08-01 01:46:57.000000000 +0900
    @@ -44,8 +44,8 @@ static int jmicron_pre_reset(struct ata_
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    u32 control;
    u32 control5;
    - int port_mask = 1<< (4 * ap->hard_port_no);
    - int port = ap->hard_port_no;
    + int port_mask = 1<< (4 * ap->port_no);
    + int port = ap->port_no;
    port_type port_map[2];

    /* Check if our port is enabled */
    Index: work/drivers/scsi/ata_piix.c
    ===================================================================
    --- work.orig/drivers/scsi/ata_piix.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/ata_piix.c 2006-08-01 01:46:57.000000000 +0900
    @@ -581,7 +581,7 @@ static void ich_pata_cbl_detect(struct a
    goto cbl40;

    /* check BIOS cable detect results */
    - mask = ap->hard_port_no == 0 ? PIIX_80C_PRI : PIIX_80C_SEC;
    + mask = ap->port_no == 0 ? PIIX_80C_PRI : PIIX_80C_SEC;
    pci_read_config_byte(pdev, PIIX_IOCFG, &tmp);
    if ((tmp & mask) == 0)
    goto cbl40;
    @@ -605,7 +605,7 @@ static int piix_pata_prereset(struct ata
    {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);

    - if (!pci_test_config_bits(pdev, &piix_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &piix_enable_bits[ap->port_no])) {
    ata_port_printk(ap, KERN_INFO, "port disabled. ignoring.\n");
    ap->eh_context.i.action &= ~ATA_EH_RESET_MASK;
    return 0;
    @@ -633,7 +633,7 @@ static int ich_pata_prereset(struct ata_
    {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);

    - if (!pci_test_config_bits(pdev, &piix_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &piix_enable_bits[ap->port_no])) {
    ata_port_printk(ap, KERN_INFO, "port disabled. ignoring.\n");
    ap->eh_context.i.action &= ~ATA_EH_RESET_MASK;
    return 0;
    @@ -670,7 +670,7 @@ static int piix_sata_prereset(struct ata
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    struct piix_host_priv *hpriv = ap->host_set->private_data;
    const unsigned int *map = hpriv->map;
    - int base = 2 * ap->hard_port_no;
    + int base = 2 * ap->port_no;
    unsigned int present = 0;
    int port, i;
    u16 pcs;
    @@ -721,7 +721,7 @@ static void piix_set_piomode (struct ata
    unsigned int pio = adev->pio_mode - XFER_PIO_0;
    struct pci_dev *dev = to_pci_dev(ap->host_set->dev);
    unsigned int is_slave = (adev->devno != 0);
    - unsigned int master_port= ap->hard_port_no ? 0x42 : 0x40;
    + unsigned int master_port= ap->port_no ? 0x42 : 0x40;
    unsigned int slave_port = 0x44;
    u16 master_data;
    u8 slave_data;
    @@ -756,9 +756,9 @@ static void piix_set_piomode (struct ata
    /* enable PPE1, IE1 and TIME1 as needed */
    master_data |= (control << 4);
    pci_read_config_byte(dev, slave_port, &slave_data);
    - slave_data &= (ap->hard_port_no ? 0x0f : 0xf0);
    + slave_data &= (ap->port_no ? 0x0f : 0xf0);
    /* Load the timing nibble for this slave */
    - slave_data |= ((timings[pio][0] << 2) | timings[pio][1]) << (ap->hard_port_no ? 4 : 0);
    + slave_data |= ((timings[pio][0] << 2) | timings[pio][1]) << (ap->port_no ? 4 : 0);
    } else {
    /* Master keeps the bits in a different format */
    master_data &= 0xccf8;
    @@ -777,7 +777,7 @@ static void piix_set_piomode (struct ata

    if (ap->udma_mask) {
    pci_read_config_byte(dev, 0x48, &udma_enable);
    - udma_enable &= ~(1 << (2 * ap->hard_port_no + adev->devno));
    + udma_enable &= ~(1 << (2 * ap->port_no + adev->devno));
    pci_write_config_byte(dev, 0x48, udma_enable);
    }
    }
    @@ -798,10 +798,10 @@ static void piix_set_piomode (struct ata
    static void do_pata_set_dmamode (struct ata_port *ap, struct ata_device *adev, int isich)
    {
    struct pci_dev *dev = to_pci_dev(ap->host_set->dev);
    - u8 master_port = ap->hard_port_no ? 0x42 : 0x40;
    + u8 master_port = ap->port_no ? 0x42 : 0x40;
    u16 master_data;
    u8 speed = adev->dma_mode;
    - int devid = adev->devno + 2 * ap->hard_port_no;
    + int devid = adev->devno + 2 * ap->port_no;
    u8 udma_enable;

    static const /* ISP RTC */
    @@ -879,9 +879,9 @@ static void do_pata_set_dmamode (struct
    master_data &= 0xFF4F; /* Mask out IORDY|TIME1|DMAONLY */
    master_data |= control << 4;
    pci_read_config_byte(dev, 0x44, &slave_data);
    - slave_data &= (0x0F + 0xE1 * ap->hard_port_no);
    + slave_data &= (0x0F + 0xE1 * ap->port_no);
    /* Load the matching timing */
    - slave_data |= ((timings[pio][0] << 2) | timings[pio][1]) << (ap->hard_port_no ? 4 : 0);
    + slave_data |= ((timings[pio][0] << 2) | timings[pio][1]) << (ap->port_no ? 4 : 0);
    pci_write_config_byte(dev, 0x44, slave_data);
    } else { /* Master */
    master_data &= 0xCCF4; /* Mask out IORDY|TIME1|DMAONLY
    Index: work/drivers/scsi/libata-core.c
    ===================================================================
    --- work.orig/drivers/scsi/libata-core.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/libata-core.c 2006-08-01 01:46:57.000000000 +0900
    @@ -5265,8 +5265,6 @@ static void ata_host_init(struct ata_por
    ap->dev = ent->dev;
    ap->port_no = port_no;

    - ap->hard_port_no =
    - ent->legacy_mode ? ent->hard_port_no : port_no;
    ap->pio_mask = ent->pio_mask;
    ap->mwdma_mask = ent->mwdma_mask;
    ap->udma_mask = ent->udma_mask;
    Index: work/drivers/scsi/pata_ali.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_ali.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_ali.c 2006-08-01 01:46:57.000000000 +0900
    @@ -83,7 +83,7 @@ static int ali_c2_cable_detect(struct at
    /* Host view cable detect 0x4A bit 0 primary bit 1 secondary
    Bit set for 40 pin */
    pci_read_config_byte(pdev, 0x4A, &ata66);
    - if (ata66 & (1 << ap->hard_port_no))
    + if (ata66 & (1 << ap->port_no))
    return ATA_CBL_PATA40;
    else
    return ATA_CBL_PATA80;
    @@ -177,7 +177,7 @@ static unsigned long ali_20_filter(const
    static void ali_fifo_control(struct ata_port *ap, struct ata_device *adev, int on)
    {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int pio_fifo = 0x54 + ap->hard_port_no;
    + int pio_fifo = 0x54 + ap->port_no;
    u8 fifo;
    int shift = 4 * adev->devno;

    @@ -208,10 +208,10 @@ static void ali_fifo_control(struct ata_
    static void ali_program_modes(struct ata_port *ap, struct ata_device *adev, struct ata_timing *t, u8 ultra)
    {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int cas = 0x58 + 4 * ap->hard_port_no; /* Command timing */
    - int cbt = 0x59 + 4 * ap->hard_port_no; /* Command timing */
    - int drwt = 0x5A + 4 * ap->hard_port_no + adev->devno; /* R/W timing */
    - int udmat = 0x56 + ap->hard_port_no; /* UDMA timing */
    + int cas = 0x58 + 4 * ap->port_no; /* Command timing */
    + int cbt = 0x59 + 4 * ap->port_no; /* Command timing */
    + int drwt = 0x5A + 4 * ap->port_no + adev->devno; /* R/W timing */
    + int udmat = 0x56 + ap->port_no; /* UDMA timing */
    int shift = 4 * adev->devno;
    u8 udma;

    Index: work/drivers/scsi/pata_amd.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_amd.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_amd.c 2006-08-01 01:46:57.000000000 +0900
    @@ -49,7 +49,7 @@ static void timing_setup(struct ata_port

    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    struct ata_device *peer = ata_dev_pair(adev);
    - int dn = ap->hard_port_no * 2 + adev->devno;
    + int dn = ap->port_no * 2 + adev->devno;
    struct ata_timing at, apeer;
    int T, UT;
    const int amd_clock = 33333; /* KHz. */
    @@ -137,14 +137,14 @@ static int amd_pre_reset(struct ata_port
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    u8 ata66;

    - if (!pci_test_config_bits(pdev, &amd_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &amd_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    }

    pci_read_config_byte(pdev, 0x42, &ata66);
    - if (ata66 & bitmask[ap->hard_port_no])
    + if (ata66 & bitmask[ap->port_no])
    ap->cbl = ATA_CBL_PATA80;
    else
    ap->cbl = ATA_CBL_PATA40;
    @@ -167,7 +167,7 @@ static int amd_early_pre_reset(struct at
    { 0x40, 1, 0x01, 0x01 }
    };

    - if (!pci_test_config_bits(pdev, &amd_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &amd_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    @@ -259,7 +259,7 @@ static int nv_pre_reset(struct ata_port
    u16 udma;

    pci_read_config_byte(pdev, 0x52, &ata66);
    - if (ata66 & bitmask[ap->hard_port_no])
    + if (ata66 & bitmask[ap->port_no])
    ap->cbl = ATA_CBL_PATA80;
    else
    ap->cbl = ATA_CBL_PATA40;
    @@ -267,7 +267,7 @@ static int nv_pre_reset(struct ata_port
    /* We now have to double check because the Nvidia boxes BIOS
    doesn't always set the cable bits but does set mode bits */

    - pci_read_config_word(pdev, 0x62 - 2 * ap->hard_port_no, &udma);
    + pci_read_config_word(pdev, 0x62 - 2 * ap->port_no, &udma);
    if ((udma & 0xC4) == 0xC4 || (udma & 0xC400) == 0xC400)
    ap->cbl = ATA_CBL_PATA80;
    return ata_std_prereset(ap);
    Index: work/drivers/scsi/pata_artop.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_artop.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_artop.c 2006-08-01 01:46:57.000000000 +0900
    @@ -47,7 +47,7 @@ static int artop6210_pre_reset(struct at
    { 0x4AU, 1U, 0x04UL, 0x04UL }, /* port 1 */
    };

    - if (!pci_test_config_bits(pdev, &artop_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &artop_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    @@ -90,13 +90,13 @@ static int artop6260_pre_reset(struct at
    u8 tmp;

    /* Odd numbered device ids are the units with enable bits (the -R cards) */
    - if (pdev->device % 1 && !pci_test_config_bits(pdev, &artop_enable_bits[ap->hard_port_no])) {
    + if (pdev->device % 1 && !pci_test_config_bits(pdev, &artop_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    }
    pci_read_config_byte(pdev, 0x49, &tmp);
    - if (tmp & (1 >> ap->hard_port_no))
    + if (tmp & (1 >> ap->port_no))
    ap->cbl = ATA_CBL_PATA40;
    else
    ap->cbl = ATA_CBL_PATA80;
    @@ -135,7 +135,7 @@ static void artop6260_error_handler(stru
    static void artop6210_load_piomode(struct ata_port *ap, struct ata_device *adev, unsigned int pio)
    {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int dn = adev->devno + 2 * ap->hard_port_no;
    + int dn = adev->devno + 2 * ap->port_no;
    const u16 timing[2][5] = {
    { 0x0000, 0x000A, 0x0008, 0x0303, 0x0301 },
    { 0x0700, 0x070A, 0x0708, 0x0403, 0x0401 }
    @@ -162,7 +162,7 @@ static void artop6210_load_piomode(struc
    static void artop6210_set_piomode(struct ata_port *ap, struct ata_device *adev)
    {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int dn = adev->devno + 2 * ap->hard_port_no;
    + int dn = adev->devno + 2 * ap->port_no;
    u8 ultra;

    artop6210_load_piomode(ap, adev, adev->pio_mode - XFER_PIO_0);
    @@ -189,7 +189,7 @@ static void artop6210_set_piomode(struct
    static void artop6260_load_piomode (struct ata_port *ap, struct ata_device *adev, unsigned int pio)
    {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int dn = adev->devno + 2 * ap->hard_port_no;
    + int dn = adev->devno + 2 * ap->port_no;
    const u8 timing[2][5] = {
    { 0x00, 0x0A, 0x08, 0x33, 0x31 },
    { 0x70, 0x7A, 0x78, 0x43, 0x41 }
    @@ -221,9 +221,9 @@ static void artop6260_set_piomode(struct
    artop6260_load_piomode(ap, adev, adev->pio_mode - XFER_PIO_0);

    /* Clear the UDMA mode bits (set_dmamode will redo this if needed) */
    - pci_read_config_byte(pdev, 0x44 + ap->hard_port_no, &ultra);
    + pci_read_config_byte(pdev, 0x44 + ap->port_no, &ultra);
    ultra &= ~(7 << (4 * adev->devno)); /* One nibble per drive */
    - pci_write_config_byte(pdev, 0x44 + ap->hard_port_no, ultra);
    + pci_write_config_byte(pdev, 0x44 + ap->port_no, ultra);
    }

    /**
    @@ -241,7 +241,7 @@ static void artop6210_set_dmamode (struc
    {
    unsigned int pio;
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int dn = adev->devno + 2 * ap->hard_port_no;
    + int dn = adev->devno + 2 * ap->port_no;
    u8 ultra;

    if (adev->dma_mode == XFER_MW_DMA_0)
    @@ -292,7 +292,7 @@ static void artop6260_set_dmamode (struc
    artop6260_load_piomode(ap, adev, pio);

    /* Add ultra DMA bits if in UDMA mode */
    - pci_read_config_byte(pdev, 0x44 + ap->hard_port_no, &ultra);
    + pci_read_config_byte(pdev, 0x44 + ap->port_no, &ultra);
    ultra &= ~(7 << (4 * adev->devno)); /* One nibble per drive */
    if (adev->dma_mode >= XFER_UDMA_0) {
    u8 mode = adev->dma_mode - XFER_UDMA_0 + 1 - clock;
    @@ -300,7 +300,7 @@ static void artop6260_set_dmamode (struc
    mode = 1;
    ultra |= (mode << (4 * adev->devno));
    }
    - pci_write_config_byte(pdev, 0x44 + ap->hard_port_no, ultra);
    + pci_write_config_byte(pdev, 0x44 + ap->port_no, ultra);
    }

    static struct scsi_host_template artop_sht = {
    Index: work/drivers/scsi/pata_atiixp.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_atiixp.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_atiixp.c 2006-08-01 01:46:57.000000000 +0900
    @@ -41,7 +41,7 @@ static int atiixp_pre_reset(struct ata_p
    { 0x48, 1, 0x08, 0x00 }
    };

    - if (!pci_test_config_bits(pdev, &atiixp_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &atiixp_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    @@ -70,10 +70,10 @@ static void atiixp_set_pio_timing(struct
    static u8 pio_timings[5] = { 0x5D, 0x47, 0x34, 0x22, 0x20 };

    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int dn = 2 * ap->hard_port_no + adev->devno;
    + int dn = 2 * ap->port_no + adev->devno;

    /* Check this is correct - the order is odd in both drivers */
    - int timing_shift = (16 * ap->hard_port_no) + 8 * (adev->devno ^ 1);
    + int timing_shift = (16 * ap->port_no) + 8 * (adev->devno ^ 1);
    u16 pio_mode_data, pio_timing_data;

    pci_read_config_word(pdev, ATIIXP_IDE_PIO_MODE, &pio_mode_data);
    @@ -116,7 +116,7 @@ static void atiixp_set_dmamode(struct at

    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    int dma = adev->dma_mode;
    - int dn = 2 * ap->hard_port_no + adev->devno;
    + int dn = 2 * ap->port_no + adev->devno;
    int wanted_pio;

    if (adev->dma_mode >= XFER_UDMA_0) {
    @@ -131,7 +131,7 @@ static void atiixp_set_dmamode(struct at
    } else {
    u16 mwdma_timing_data;
    /* Check this is correct - the order is odd in both drivers */
    - int timing_shift = (16 * ap->hard_port_no) + 8 * (adev->devno ^ 1);
    + int timing_shift = (16 * ap->port_no) + 8 * (adev->devno ^ 1);

    dma -= XFER_MW_DMA_0;

    @@ -170,7 +170,7 @@ static void atiixp_bmdma_start(struct at
    struct ata_device *adev = qc->dev;

    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int dn = (2 * ap->hard_port_no) + adev->devno;
    + int dn = (2 * ap->port_no) + adev->devno;
    u16 tmp16;

    pci_read_config_word(pdev, ATIIXP_IDE_UDMA_CONTROL, &tmp16);
    @@ -194,7 +194,7 @@ static void atiixp_bmdma_stop(struct ata
    {
    struct ata_port *ap = qc->ap;
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int dn = (2 * ap->hard_port_no) + qc->dev->devno;
    + int dn = (2 * ap->port_no) + qc->dev->devno;
    u16 tmp16;

    pci_read_config_word(pdev, ATIIXP_IDE_UDMA_CONTROL, &tmp16);
    Index: work/drivers/scsi/pata_cmd64x.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_cmd64x.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_cmd64x.c 2006-08-01 01:46:57.000000000 +0900
    @@ -88,7 +88,7 @@ static int cmd648_pre_reset(struct ata_p

    /* Check cable detect bits */
    pci_read_config_byte(pdev, BMIDECSR, &r);
    - if (r & (1 << ap->hard_port_no))
    + if (r & (1 << ap->port_no))
    ap->cbl = ATA_CBL_PATA80;
    else
    ap->cbl = ATA_CBL_PATA40;
    @@ -133,15 +133,15 @@ static void cmd64x_set_piomode(struct at
    { DRWTIM2, DRWTIM3 }
    };

    - int arttim = arttim_port[ap->hard_port_no][adev->devno];
    - int drwtim = drwtim_port[ap->hard_port_no][adev->devno];
    + int arttim = arttim_port[ap->port_no][adev->devno];
    + int drwtim = drwtim_port[ap->port_no][adev->devno];


    if (ata_timing_compute(adev, adev->pio_mode, &t, T, 0) < 0) {
    printk(KERN_ERR DRV_NAME ": mode computation failed.\n");
    return;
    }
    - if (ap->hard_port_no) {
    + if (ap->port_no) {
    /* Slave has shared address setup */
    struct ata_device *pair = ata_dev_pair(adev);

    @@ -206,8 +206,8 @@ static void cmd64x_set_dmamode(struct at
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    u8 regU, regD;

    - int pciU = UDIDETCR0 + 8 * ap->hard_port_no;
    - int pciD = BMIDESR0 + 8 * ap->hard_port_no;
    + int pciU = UDIDETCR0 + 8 * ap->port_no;
    + int pciD = BMIDESR0 + 8 * ap->port_no;
    int shift = 2 * adev->devno;

    pci_read_config_byte(pdev, pciD, &regD);
    @@ -239,8 +239,8 @@ static void cmd648_bmdma_stop(struct ata
    struct ata_port *ap = qc->ap;
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    u8 dma_intr;
    - int dma_reg = ap->hard_port_no ? ARTTIM23_INTR_CH1 : CFR_INTR_CH0;
    - int dma_mask = ap->hard_port_no ? ARTTIM2 : CFR;
    + int dma_reg = ap->port_no ? ARTTIM23_INTR_CH1 : CFR_INTR_CH0;
    + int dma_mask = ap->port_no ? ARTTIM2 : CFR;

    ata_bmdma_stop(qc);

    Index: work/drivers/scsi/pata_cs5520.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_cs5520.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_cs5520.c 2006-08-01 01:46:57.000000000 +0900
    @@ -75,16 +75,16 @@ static void cs5520_set_timings(struct at
    pio -= XFER_PIO_0;

    /* Channel command timing */
    - pci_write_config_byte(pdev, 0x62 + ap->hard_port_no,
    + pci_write_config_byte(pdev, 0x62 + ap->port_no,
    (cs5520_pio_clocks[pio].recovery << 4) |
    (cs5520_pio_clocks[pio].assert));
    /* FIXME: should these use address ? */
    /* Read command timing */
    - pci_write_config_byte(pdev, 0x64 + 4*ap->hard_port_no + slave,
    + pci_write_config_byte(pdev, 0x64 + 4*ap->port_no + slave,
    (cs5520_pio_clocks[pio].recovery << 4) |
    (cs5520_pio_clocks[pio].assert));
    /* Write command timing */
    - pci_write_config_byte(pdev, 0x66 + 4*ap->hard_port_no + slave,
    + pci_write_config_byte(pdev, 0x66 + 4*ap->port_no + slave,
    (cs5520_pio_clocks[pio].recovery << 4) |
    (cs5520_pio_clocks[pio].assert));
    }
    @@ -261,7 +261,6 @@ static int __devinit cs5520_init_one(str
    probe[1] = probe[0];
    INIT_LIST_HEAD(&probe[1].node);
    probe[1].irq = 15;
    - probe[1].hard_port_no = 1;
    probe[1].port[0].cmd_addr = 0x170;
    probe[1].port[0].ctl_addr = 0x376;
    probe[1].port[0].altstatus_addr = 0x376;
    Index: work/drivers/scsi/pata_cs5530.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_cs5530.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_cs5530.c 2006-08-01 01:46:57.000000000 +0900
    @@ -52,7 +52,7 @@ static void cs5530_set_piomode(struct at
    {0x00009172, 0x00012171, 0x00020080, 0x00032010, 0x00040010},
    {0xd1329172, 0x71212171, 0x30200080, 0x20102010, 0x00100010}
    };
    - unsigned long base = ( ap->ioaddr.bmdma_addr & ~0x0F) + 0x20 + 0x10 * ap->hard_port_no;
    + unsigned long base = ( ap->ioaddr.bmdma_addr & ~0x0F) + 0x20 + 0x10 * ap->port_no;
    u32 tuning;
    int format;

    @@ -79,7 +79,7 @@ static void cs5530_set_piomode(struct at

    static void cs5530_set_dmamode(struct ata_port *ap, struct ata_device *adev)
    {
    - unsigned long base = ( ap->ioaddr.bmdma_addr & ~0x0F) + 0x20 + 0x10 * ap->hard_port_no;
    + unsigned long base = ( ap->ioaddr.bmdma_addr & ~0x0F) + 0x20 + 0x10 * ap->port_no;
    u32 tuning, timing = 0;
    u8 reg;

    Index: work/drivers/scsi/pata_cypress.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_cypress.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_cypress.c 2006-08-01 01:46:57.000000000 +0900
    @@ -109,7 +109,7 @@ static void cy82c693_set_piomode(struct

    static void cy82c693_set_dmamode(struct ata_port *ap, struct ata_device *adev)
    {
    - int reg = CY82_INDEX_CHANNEL0 + ap->hard_port_no;
    + int reg = CY82_INDEX_CHANNEL0 + ap->port_no;

    /* Be afraid, be very afraid. Magic registers in low I/O space */
    outb(reg, 0x22);
    Index: work/drivers/scsi/pata_efar.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_efar.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_efar.c 2006-08-01 01:46:57.000000000 +0900
    @@ -42,13 +42,13 @@ static int efar_pre_reset(struct ata_por
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    u8 tmp;

    - if (!pci_test_config_bits(pdev, &efar_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &efar_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    }
    pci_read_config_byte(pdev, 0x47, &tmp);
    - if (tmp & (2 >> ap->hard_port_no))
    + if (tmp & (2 >> ap->port_no))
    ap->cbl = ATA_CBL_PATA40;
    else
    ap->cbl = ATA_CBL_PATA80;
    @@ -83,7 +83,7 @@ static void efar_set_piomode (struct ata
    {
    unsigned int pio = adev->pio_mode - XFER_PIO_0;
    struct pci_dev *dev = to_pci_dev(ap->host_set->dev);
    - unsigned int idetm_port= ap->hard_port_no ? 0x42 : 0x40;
    + unsigned int idetm_port= ap->port_no ? 0x42 : 0x40;
    u16 idetm_data;
    int control = 0;

    @@ -117,7 +117,7 @@ static void efar_set_piomode (struct ata
    idetm_data |= (timings[pio][0] << 12) |
    (timings[pio][1] << 8);
    } else {
    - int shift = 4 * ap->hard_port_no;
    + int shift = 4 * ap->port_no;
    u8 slave_data;

    idetm_data &= 0xCC0F;
    @@ -148,10 +148,10 @@ static void efar_set_piomode (struct ata
    static void efar_set_dmamode (struct ata_port *ap, struct ata_device *adev)
    {
    struct pci_dev *dev = to_pci_dev(ap->host_set->dev);
    - u8 master_port = ap->hard_port_no ? 0x42 : 0x40;
    + u8 master_port = ap->port_no ? 0x42 : 0x40;
    u16 master_data;
    u8 speed = adev->dma_mode;
    - int devid = adev->devno + 2 * ap->hard_port_no;
    + int devid = adev->devno + 2 * ap->port_no;
    u8 udma_enable;

    static const /* ISP RTC */
    @@ -202,9 +202,9 @@ static void efar_set_dmamode (struct ata
    master_data &= 0xFF4F; /* Mask out IORDY|TIME1|DMAONLY */
    master_data |= control << 4;
    pci_read_config_byte(dev, 0x44, &slave_data);
    - slave_data &= (0x0F + 0xE1 * ap->hard_port_no);
    + slave_data &= (0x0F + 0xE1 * ap->port_no);
    /* Load the matching timing */
    - slave_data |= ((timings[pio][0] << 2) | timings[pio][1]) << (ap->hard_port_no ? 4 : 0);
    + slave_data |= ((timings[pio][0] << 2) | timings[pio][1]) << (ap->port_no ? 4 : 0);
    pci_write_config_byte(dev, 0x44, slave_data);
    } else { /* Master */
    master_data &= 0xCCF4; /* Mask out IORDY|TIME1|DMAONLY
    Index: work/drivers/scsi/pata_hpt366.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_hpt366.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_hpt366.c 2006-08-01 01:46:57.000000000 +0900
    @@ -226,7 +226,7 @@ static int hpt36x_pre_reset(struct ata_p
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);

    pci_read_config_byte(pdev, 0x5A, &ata66);
    - if (ata66 & (1 << ap->hard_port_no))
    + if (ata66 & (1 << ap->port_no))
    ap->cbl = ATA_CBL_PATA40;
    else
    ap->cbl = ATA_CBL_PATA80;
    @@ -261,8 +261,8 @@ static void hpt366_set_piomode(struct at
    u32 mode;
    u8 fast;

    - addr1 = 0x40 + 4 * (adev->devno + 2 * ap->hard_port_no);
    - addr2 = 0x51 + 4 * ap->hard_port_no;
    + addr1 = 0x40 + 4 * (adev->devno + 2 * ap->port_no);
    + addr2 = 0x51 + 4 * ap->port_no;

    /* Fast interrupt prediction disable, hold off interrupt disable */
    pci_read_config_byte(pdev, addr2, &fast);
    @@ -296,8 +296,8 @@ static void hpt366_set_dmamode(struct at
    u32 mode;
    u8 fast;

    - addr1 = 0x40 + 4 * (adev->devno + 2 * ap->hard_port_no);
    - addr2 = 0x51 + 4 * ap->hard_port_no;
    + addr1 = 0x40 + 4 * (adev->devno + 2 * ap->port_no);
    + addr2 = 0x51 + 4 * ap->port_no;

    /* Fast interrupt prediction disable, hold off interrupt disable */
    pci_read_config_byte(pdev, addr2, &fast);
    Index: work/drivers/scsi/pata_hpt37x.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_hpt37x.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_hpt37x.c 2006-08-01 01:46:57.000000000 +0900
    @@ -461,7 +461,7 @@ static int hpt37x_pre_reset(struct ata_p
    /* Restore state */
    pci_write_config_byte(pdev, 0x5B, scr2);

    - if (ata66 & (1 << ap->hard_port_no))
    + if (ata66 & (1 << ap->port_no))
    ap->cbl = ATA_CBL_PATA40;
    else
    ap->cbl = ATA_CBL_PATA80;
    @@ -505,7 +505,7 @@ static int hpt374_pre_reset(struct ata_p
    pci_write_config_word(pdev, 0x52, mcr3);
    pci_write_config_word(pdev, 0x56, mcr6);

    - if (ata66 & (1 << ap->hard_port_no))
    + if (ata66 & (1 << ap->port_no))
    ap->cbl = ATA_CBL_PATA40;
    else
    ap->cbl = ATA_CBL_PATA80;
    @@ -553,8 +553,8 @@ static void hpt370_set_piomode(struct at
    u32 mode;
    u8 fast;

    - addr1 = 0x40 + 4 * (adev->devno + 2 * ap->hard_port_no);
    - addr2 = 0x51 + 4 * ap->hard_port_no;
    + addr1 = 0x40 + 4 * (adev->devno + 2 * ap->port_no);
    + addr2 = 0x51 + 4 * ap->port_no;

    /* Fast interrupt prediction disable, hold off interrupt disable */
    pci_read_config_byte(pdev, addr2, &fast);
    @@ -587,8 +587,8 @@ static void hpt370_set_dmamode(struct at
    u32 mode;
    u8 fast;

    - addr1 = 0x40 + 4 * (adev->devno + 2 * ap->hard_port_no);
    - addr2 = 0x51 + 4 * ap->hard_port_no;
    + addr1 = 0x40 + 4 * (adev->devno + 2 * ap->port_no);
    + addr2 = 0x51 + 4 * ap->port_no;

    /* Fast interrupt prediction disable, hold off interrupt disable */
    pci_read_config_byte(pdev, addr2, &fast);
    @@ -616,7 +616,7 @@ static void hpt370_bmdma_start(struct at
    {
    struct ata_port *ap = qc->ap;
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - pci_write_config_byte(pdev, 0x50 + 4 * ap->hard_port_no, 0x37);
    + pci_write_config_byte(pdev, 0x50 + 4 * ap->port_no, 0x37);
    udelay(10);
    ata_bmdma_start(qc);
    }
    @@ -642,7 +642,7 @@ static void hpt370_bmdma_stop(struct ata
    }
    if (dma_stat & 0x01) {
    /* Clear the engine */
    - pci_write_config_byte(pdev, 0x50 + 4 * ap->hard_port_no, 0x37);
    + pci_write_config_byte(pdev, 0x50 + 4 * ap->port_no, 0x37);
    udelay(10);
    /* Stop DMA */
    dma_cmd = inb(bmdma );
    @@ -651,7 +651,7 @@ static void hpt370_bmdma_stop(struct ata
    dma_stat = inb(bmdma + 2);
    outb(dma_stat | 0x06 , bmdma + 2);
    /* Clear the engine */
    - pci_write_config_byte(pdev, 0x50 + 4 * ap->hard_port_no, 0x37);
    + pci_write_config_byte(pdev, 0x50 + 4 * ap->port_no, 0x37);
    udelay(10);
    }
    ata_bmdma_stop(qc);
    @@ -673,8 +673,8 @@ static void hpt372_set_piomode(struct at
    u32 mode;
    u8 fast;

    - addr1 = 0x40 + 4 * (adev->devno + 2 * ap->hard_port_no);
    - addr2 = 0x51 + 4 * ap->hard_port_no;
    + addr1 = 0x40 + 4 * (adev->devno + 2 * ap->port_no);
    + addr2 = 0x51 + 4 * ap->port_no;

    /* Fast interrupt prediction disable, hold off interrupt disable */
    pci_read_config_byte(pdev, addr2, &fast);
    @@ -708,8 +708,8 @@ static void hpt372_set_dmamode(struct at
    u32 mode;
    u8 fast;

    - addr1 = 0x40 + 4 * (adev->devno + 2 * ap->hard_port_no);
    - addr2 = 0x51 + 4 * ap->hard_port_no;
    + addr1 = 0x40 + 4 * (adev->devno + 2 * ap->port_no);
    + addr2 = 0x51 + 4 * ap->port_no;

    /* Fast interrupt prediction disable, hold off interrupt disable */
    pci_read_config_byte(pdev, addr2, &fast);
    @@ -736,12 +736,12 @@ static void hpt37x_bmdma_stop(struct ata
    {
    struct ata_port *ap = qc->ap;
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int mscreg = 0x50 + 2 * ap->hard_port_no;
    + int mscreg = 0x50 + 2 * ap->port_no;
    u8 bwsr_stat, msc_stat;

    pci_read_config_byte(pdev, 0x6A, &bwsr_stat);
    pci_read_config_byte(pdev, mscreg, &msc_stat);
    - if (bwsr_stat & (1 << ap->hard_port_no))
    + if (bwsr_stat & (1 << ap->port_no))
    pci_write_config_byte(pdev, mscreg, msc_stat | 0x30);
    ata_bmdma_stop(qc);
    }
    Index: work/drivers/scsi/pata_hpt3x2n.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_hpt3x2n.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_hpt3x2n.c 2006-08-01 01:46:57.000000000 +0900
    @@ -134,7 +134,7 @@ static int hpt3xn_pre_reset(struct ata_p
    /* Restore state */
    pci_write_config_byte(pdev, 0x5B, scr2);

    - if (ata66 & (1 << ap->hard_port_no))
    + if (ata66 & (1 << ap->port_no))
    ap->cbl = ATA_CBL_PATA40;
    else
    ap->cbl = ATA_CBL_PATA80;
    @@ -175,8 +175,8 @@ static void hpt3x2n_set_piomode(struct a
    u32 mode;
    u8 fast;

    - addr1 = 0x40 + 4 * (adev->devno + 2 * ap->hard_port_no);
    - addr2 = 0x51 + 4 * ap->hard_port_no;
    + addr1 = 0x40 + 4 * (adev->devno + 2 * ap->port_no);
    + addr2 = 0x51 + 4 * ap->port_no;

    /* Fast interrupt prediction disable, hold off interrupt disable */
    pci_read_config_byte(pdev, addr2, &fast);
    @@ -208,8 +208,8 @@ static void hpt3x2n_set_dmamode(struct a
    u32 mode;
    u8 fast;

    - addr1 = 0x40 + 4 * (adev->devno + 2 * ap->hard_port_no);
    - addr2 = 0x51 + 4 * ap->hard_port_no;
    + addr1 = 0x40 + 4 * (adev->devno + 2 * ap->port_no);
    + addr2 = 0x51 + 4 * ap->port_no;

    /* Fast interrupt prediction disable, hold off interrupt disable */
    pci_read_config_byte(pdev, addr2, &fast);
    @@ -235,12 +235,12 @@ static void hpt3x2n_bmdma_stop(struct at
    {
    struct ata_port *ap = qc->ap;
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int mscreg = 0x50 + 2 * ap->hard_port_no;
    + int mscreg = 0x50 + 2 * ap->port_no;
    u8 bwsr_stat, msc_stat;

    pci_read_config_byte(pdev, 0x6A, &bwsr_stat);
    pci_read_config_byte(pdev, mscreg, &msc_stat);
    - if (bwsr_stat & (1 << ap->hard_port_no))
    + if (bwsr_stat & (1 << ap->port_no))
    pci_write_config_byte(pdev, mscreg, msc_stat | 0x30);
    ata_bmdma_stop(qc);
    }
    @@ -290,7 +290,7 @@ static void hpt3x2n_set_clock(struct ata
    static int hpt3x2n_pair_idle(struct ata_port *ap)
    {
    struct ata_host_set *host = ap->host_set;
    - struct ata_port *pair = host->ports[ap->hard_port_no ^ 1];
    + struct ata_port *pair = host->ports[ap->port_no ^ 1];

    if (pair->hsm_task_state == HSM_ST_IDLE)
    return 1;
    Index: work/drivers/scsi/pata_hpt3x3.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_hpt3x3.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_hpt3x3.c 2006-08-01 01:46:57.000000000 +0900
    @@ -58,7 +58,7 @@ static void hpt3x3_set_piomode(struct at
    {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    u32 r1, r2;
    - int dn = 2 * ap->hard_port_no + adev->devno;
    + int dn = 2 * ap->port_no + adev->devno;

    pci_read_config_dword(pdev, 0x44, &r1);
    pci_read_config_dword(pdev, 0x48, &r2);
    @@ -84,7 +84,7 @@ static void hpt3x3_set_dmamode(struct at
    {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    u32 r1, r2;
    - int dn = 2 * ap->hard_port_no + adev->devno;
    + int dn = 2 * ap->port_no + adev->devno;
    int mode_num = adev->dma_mode & 0x0F;

    pci_read_config_dword(pdev, 0x44, &r1);
    Index: work/drivers/scsi/pata_it8172.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_it8172.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_it8172.c 2006-08-01 01:46:57.000000000 +0900
    @@ -59,7 +59,7 @@ static int it8172_pre_reset(struct ata_p

    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);

    - if (ap->hard_port_no && !pci_test_config_bits(pdev, &it8172_enable_bits[ap->hard_port_no])) {
    + if (ap->port_no && !pci_test_config_bits(pdev, &it8172_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    @@ -146,7 +146,7 @@ static void it8172_set_piomode(struct at
    static void it8172_set_dmamode(struct ata_port *ap, struct ata_device *adev)
    {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int dn = (2 * ap->hard_port_no) + adev->devno;
    + int dn = (2 * ap->port_no) + adev->devno;
    u8 reg48, reg4a;
    int pio;

    Index: work/drivers/scsi/pata_it821x.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_it821x.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_it821x.c 2006-08-01 01:46:57.000000000 +0900
    @@ -152,7 +152,7 @@ static void it821x_program(struct ata_po
    {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    struct it821x_dev *itdev = ap->private_data;
    - int channel = ap->hard_port_no;
    + int channel = ap->port_no;
    u8 conf;

    /* Program PIO/MWDMA timing bits */
    @@ -180,7 +180,7 @@ static void it821x_program_udma(struct a
    {
    struct it821x_dev *itdev = ap->private_data;
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int channel = ap->hard_port_no;
    + int channel = ap->port_no;
    int unit = adev->devno;
    u8 conf;

    @@ -246,8 +246,8 @@ static void it821x_clock_strategy(struct
    sel = 1;
    }
    pci_read_config_byte(pdev, 0x50, &v);
    - v &= ~(1 << (1 + ap->hard_port_no));
    - v |= sel << (1 + ap->hard_port_no);
    + v &= ~(1 << (1 + ap->port_no));
    + v |= sel << (1 + ap->port_no);
    pci_write_config_byte(pdev, 0x50, v);

    /*
    @@ -316,7 +316,7 @@ static void it821x_passthru_set_dmamode(

    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    struct it821x_dev *itdev = ap->private_data;
    - int channel = ap->hard_port_no;
    + int channel = ap->port_no;
    int unit = adev->devno;
    u8 conf;

    @@ -624,7 +624,7 @@ static int it821x_port_start(struct ata_
    /* No ATAPI DMA in this mode either */
    }
    /* Pull the current clocks from 0x50 */
    - if (conf & (1 << (1 + ap->hard_port_no)))
    + if (conf & (1 << (1 + ap->port_no)))
    itdev->clock_mode = ATA_50;
    else
    itdev->clock_mode = ATA_66;
    Index: work/drivers/scsi/pata_mpiix.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_mpiix.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_mpiix.c 2006-08-01 01:46:57.000000000 +0900
    @@ -54,7 +54,7 @@ static int mpiix_pre_reset(struct ata_po
    { 0x6F, 1, 0x80, 0x80 }
    };

    - if (!pci_test_config_bits(pdev, &mpiix_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &mpiix_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    @@ -233,7 +233,6 @@ static int mpiix_init_one(struct pci_dev
    probe[0].irq_flags = SA_SHIRQ;
    probe[0].host_flags = ATA_FLAG_SLAVE_POSS | ATA_FLAG_SRST;
    probe[0].legacy_mode = 1;
    - probe[0].hard_port_no = 0;
    probe[0].n_ports = 1;
    probe[0].port[0].cmd_addr = 0x1F0;
    probe[0].port[0].ctl_addr = 0x3F6;
    @@ -245,7 +244,6 @@ static int mpiix_init_one(struct pci_dev
    INIT_LIST_HEAD(&probe[1].node);
    probe[1] = probe[0];
    probe[1].irq = 15;
    - probe[1].hard_port_no = 1;
    probe[1].port[0].cmd_addr = 0x170;
    probe[1].port[0].ctl_addr = 0x376;
    probe[1].port[0].altstatus_addr = 0x376;
    Index: work/drivers/scsi/pata_ns87410.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_ns87410.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_ns87410.c 2006-08-01 01:46:57.000000000 +0900
    @@ -45,7 +45,7 @@ static int ns87410_pre_reset(struct ata_
    { 0x47, 1, 0x08, 0x08 }
    };

    - if (!pci_test_config_bits(pdev, &ns87410_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &ns87410_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    @@ -80,7 +80,7 @@ static void ns87410_error_handler(struct
    static void ns87410_set_piomode(struct ata_port *ap, struct ata_device *adev)
    {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int port = 0x40 + 4 * ap->hard_port_no;
    + int port = 0x40 + 4 * ap->port_no;
    u8 idetcr, idefr;
    struct ata_timing at;

    Index: work/drivers/scsi/pata_oldpiix.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_oldpiix.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_oldpiix.c 2006-08-01 01:46:57.000000000 +0900
    @@ -42,7 +42,7 @@ static int oldpiix_pre_reset(struct ata_
    { 0x43U, 1U, 0x80UL, 0x80UL }, /* port 1 */
    };

    - if (!pci_test_config_bits(pdev, &oldpiix_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &oldpiix_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    @@ -80,7 +80,7 @@ static void oldpiix_set_piomode (struct
    {
    unsigned int pio = adev->pio_mode - XFER_PIO_0;
    struct pci_dev *dev = to_pci_dev(ap->host_set->dev);
    - unsigned int idetm_port= ap->hard_port_no ? 0x42 : 0x40;
    + unsigned int idetm_port= ap->port_no ? 0x42 : 0x40;
    u16 idetm_data;
    int control = 0;

    @@ -140,7 +140,7 @@ static void oldpiix_set_piomode (struct
    static void oldpiix_set_dmamode (struct ata_port *ap, struct ata_device *adev)
    {
    struct pci_dev *dev = to_pci_dev(ap->host_set->dev);
    - u8 idetm_port = ap->hard_port_no ? 0x42 : 0x40;
    + u8 idetm_port = ap->port_no ? 0x42 : 0x40;
    u16 idetm_data;

    static const /* ISP RTC */
    Index: work/drivers/scsi/pata_opti.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_opti.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_opti.c 2006-08-01 01:46:57.000000000 +0900
    @@ -59,7 +59,7 @@ static int opti_pre_reset(struct ata_por
    { 0x40, 1, 0x08, 0x00 }
    };

    - if (!pci_test_config_bits(pdev, &opti_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &opti_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    Index: work/drivers/scsi/pata_optidma.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_optidma.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_optidma.c 2006-08-01 01:46:57.000000000 +0900
    @@ -59,7 +59,7 @@ static int optidma_pre_reset(struct ata_
    0x40, 1, 0x08, 0x00
    };

    - if (ap->hard_port_no && !pci_test_config_bits(pdev, &optidma_enable_bits)) {
    + if (ap->port_no && !pci_test_config_bits(pdev, &optidma_enable_bits)) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    @@ -221,7 +221,7 @@ static void optiplus_set_mode(struct ata
    u8 udcfg;
    u8 udslave;
    int dev2 = 2 * adev->devno;
    - int unit = 2 * ap->hard_port_no + adev->devno;
    + int unit = 2 * ap->port_no + adev->devno;
    int udma = mode - XFER_UDMA_0;

    pci_read_config_byte(pdev, 0x44, &udcfg);
    @@ -230,7 +230,7 @@ static void optiplus_set_mode(struct ata
    optidma_set_mode(ap, adev, adev->dma_mode);
    } else {
    udcfg |= (1 << unit);
    - if (ap->hard_port_no) {
    + if (ap->port_no) {
    pci_read_config_byte(pdev, 0x45, &udslave);
    udslave &= ~(0x03 << dev2);
    udslave |= (udma << dev2);
    @@ -334,7 +334,7 @@ static u8 optidma_make_bits43(struct ata
    static void optidma_post_set_mode(struct ata_port *ap)
    {
    u8 r;
    - int nybble = 4 * ap->hard_port_no;
    + int nybble = 4 * ap->port_no;
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);

    pci_read_config_byte(pdev, 0x43, &r);
    Index: work/drivers/scsi/pata_pdc202xx_old.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_pdc202xx_old.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_pdc202xx_old.c 2006-08-01 01:46:57.000000000 +0900
    @@ -49,7 +49,7 @@ static int pdc2026x_pre_reset(struct ata
    u16 cis;

    pci_read_config_word(pdev, 0x50, &cis);
    - if (cis & (1 << (10 + ap->hard_port_no)))
    + if (cis & (1 << (10 + ap->port_no)))
    ap->cbl = ATA_CBL_PATA80;
    else
    ap->cbl = ATA_CBL_PATA40;
    @@ -76,7 +76,7 @@ static void pdc2026x_error_handler(struc
    static void pdc_configure_piomode(struct ata_port *ap, struct ata_device *adev, int pio)
    {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int port = 0x60 + 4 * ap->hard_port_no + 2 * adev->devno;
    + int port = 0x60 + 4 * ap->port_no + 2 * adev->devno;
    static u16 pio_timing[5] = {
    0x0913, 0x050C , 0x0308, 0x0206, 0x0104
    };
    @@ -123,7 +123,7 @@ static void pdc_set_piomode(struct ata_p
    static void pdc_set_dmamode(struct ata_port *ap, struct ata_device *adev)
    {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - int port = 0x60 + 4 * ap->hard_port_no + 2 * adev->devno;
    + int port = 0x60 + 4 * ap->port_no + 2 * adev->devno;
    static u8 udma_timing[6][2] = {
    { 0x60, 0x03 }, /* 33 Mhz Clock */
    { 0x40, 0x02 },
    @@ -168,11 +168,11 @@ static void pdc2026x_bmdma_start(struct
    struct ata_port *ap = qc->ap;
    struct ata_device *adev = qc->dev;
    struct ata_taskfile *tf = &qc->tf;
    - int sel66 = ap->hard_port_no ? 0x08: 0x02;
    + int sel66 = ap->port_no ? 0x08: 0x02;

    unsigned long master = ap->host_set->ports[0]->ioaddr.bmdma_addr;
    unsigned long clock = master + 0x11;
    - unsigned long atapi_reg = master + 0x20 + (4 * ap->hard_port_no);
    + unsigned long atapi_reg = master + 0x20 + (4 * ap->port_no);

    u32 len;

    @@ -220,11 +220,11 @@ static void pdc2026x_bmdma_stop(struct a
    struct ata_device *adev = qc->dev;
    struct ata_taskfile *tf = &qc->tf;

    - int sel66 = ap->hard_port_no ? 0x08: 0x02;
    + int sel66 = ap->port_no ? 0x08: 0x02;
    /* The clock bits are in the same register for both channels */
    unsigned long master = ap->host_set->ports[0]->ioaddr.bmdma_addr;
    unsigned long clock = master + 0x11;
    - unsigned long atapi_reg = master + 0x20 + (4 * ap->hard_port_no);
    + unsigned long atapi_reg = master + 0x20 + (4 * ap->port_no);

    /* Cases the state machine will not complete correctly */
    if (tf->protocol == ATA_PROT_ATAPI_DMA || ( tf->flags & ATA_TFLAG_LBA48)) {
    Index: work/drivers/scsi/pata_sc1200.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_sc1200.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_sc1200.c 2006-08-01 01:46:57.000000000 +0900
    @@ -95,7 +95,7 @@ static void sc1200_set_piomode(struct at

    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    u32 format;
    - unsigned int reg = 0x40 + 0x10 * ap->hard_port_no;
    + unsigned int reg = 0x40 + 0x10 * ap->port_no;
    int mode = adev->pio_mode - XFER_PIO_0;

    pci_read_config_dword(pdev, reg + 4, &format);
    @@ -130,7 +130,7 @@ static void sc1200_set_dmamode(struct at

    int clock = sc1200_clock();
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    - unsigned int reg = 0x40 + 0x10 * ap->hard_port_no;
    + unsigned int reg = 0x40 + 0x10 * ap->port_no;
    int mode = adev->dma_mode;
    u32 format;

    Index: work/drivers/scsi/pata_serverworks.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_serverworks.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_serverworks.c 2006-08-01 01:46:57.000000000 +0900
    @@ -68,7 +68,7 @@ static const char *csb_bad_ata100[] = {
    static int dell_cable(struct ata_port *ap) {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);

    - if (pdev->subsystem_device & (1 << (ap->hard_port_no + 14)))
    + if (pdev->subsystem_device & (1 << (ap->port_no + 14)))
    return ATA_CBL_PATA80;
    return ATA_CBL_PATA40;
    }
    @@ -85,7 +85,7 @@ static int dell_cable(struct ata_port *a
    static int sun_cable(struct ata_port *ap) {
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);

    - if (pdev->subsystem_device & (1 << (ap->hard_port_no + 14)))
    + if (pdev->subsystem_device & (1 << (ap->port_no + 14)))
    return ATA_CBL_PATA80;
    return ATA_CBL_PATA40;
    }
    @@ -254,8 +254,8 @@ static unsigned long serverworks_csb_fil
    static void serverworks_set_piomode(struct ata_port *ap, struct ata_device *adev)
    {
    static const u8 pio_mode[] = { 0x5d, 0x47, 0x34, 0x22, 0x20 };
    - int offset = 1 + (2 * ap->hard_port_no) - adev->devno;
    - int devbits = (2 * ap->hard_port_no + adev->devno) * 4;
    + int offset = 1 + (2 * ap->port_no) - adev->devno;
    + int devbits = (2 * ap->port_no + adev->devno) * 4;
    u16 csb5_pio;
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    int pio = adev->pio_mode - XFER_PIO_0;
    @@ -284,8 +284,8 @@ static void serverworks_set_piomode(stru
    static void serverworks_set_dmamode(struct ata_port *ap, struct ata_device *adev)
    {
    static const u8 dma_mode[] = { 0x77, 0x21, 0x20 };
    - int offset = 1 + 2 * ap->hard_port_no - adev->devno;
    - int devbits = (2 * ap->hard_port_no + adev->devno);
    + int offset = 1 + 2 * ap->port_no - adev->devno;
    + int devbits = (2 * ap->port_no + adev->devno);
    u8 ultra;
    u8 ultra_cfg;
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    @@ -295,11 +295,11 @@ static void serverworks_set_dmamode(stru
    if (adev->dma_mode >= XFER_UDMA_0) {
    pci_write_config_byte(pdev, 0x44 + offset, 0x20);

    - pci_read_config_byte(pdev, 0x56 + ap->hard_port_no, &ultra);
    - ultra &= ~(0x0F << (ap->hard_port_no * 4));
    + pci_read_config_byte(pdev, 0x56 + ap->port_no, &ultra);
    + ultra &= ~(0x0F << (ap->port_no * 4));
    ultra |= (adev->dma_mode - XFER_UDMA_0)
    - << (ap->hard_port_no * 4);
    - pci_write_config_byte(pdev, 0x56 + ap->hard_port_no, ultra);
    + << (ap->port_no * 4);
    + pci_write_config_byte(pdev, 0x56 + ap->port_no, ultra);

    ultra_cfg |= (1 << devbits);
    } else {
    Index: work/drivers/scsi/pata_sil680.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_sil680.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_sil680.c 2006-08-01 01:46:57.000000000 +0900
    @@ -49,7 +49,7 @@
    static unsigned long sil680_selreg(struct ata_port *ap, int r)
    {
    unsigned long base = 0xA0 + r;
    - base += (ap->hard_port_no << 4);
    + base += (ap->port_no << 4);
    return base;
    }

    @@ -66,7 +66,7 @@ static unsigned long sil680_selreg(struc
    static unsigned long sil680_seldev(struct ata_port *ap, struct ata_device *adev, int r)
    {
    unsigned long base = 0xA0 + r;
    - base += (ap->hard_port_no << 4);
    + base += (ap->port_no << 4);
    base |= adev->devno ? 2 : 0;
    return base;
    }
    @@ -180,7 +180,7 @@ static void sil680_set_dmamode(struct at
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    unsigned long ma = sil680_seldev(ap, adev, 0x08);
    unsigned long ua = sil680_seldev(ap, adev, 0x0C);
    - unsigned long addr_mask = 0x80 + 4 * ap->hard_port_no;
    + unsigned long addr_mask = 0x80 + 4 * ap->port_no;
    int port_shift = adev->devno * 4;
    u8 scsc, mode;
    u16 multi, ultra;
    Index: work/drivers/scsi/pata_sis.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_sis.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_sis.c 2006-08-01 01:46:57.000000000 +0900
    @@ -53,7 +53,7 @@ struct sis_chipset {

    static int sis_port_base(struct ata_device *adev)
    {
    - return 0x40 + (4 * adev->ap->hard_port_no) + (2 * adev->devno);
    + return 0x40 + (4 * adev->ap->port_no) + (2 * adev->devno);
    }

    /**
    @@ -74,13 +74,13 @@ static int sis_133_pre_reset(struct ata_
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    u16 tmp;

    - if (!pci_test_config_bits(pdev, &sis_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &sis_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    }
    /* The top bit of this register is the cable detect bit */
    - pci_read_config_word(pdev, 0x50 + 2 * ap->hard_port_no, &tmp);
    + pci_read_config_word(pdev, 0x50 + 2 * ap->port_no, &tmp);
    if (tmp & 0x8000)
    ap->cbl = ATA_CBL_PATA40;
    else
    @@ -121,14 +121,14 @@ static int sis_66_pre_reset(struct ata_p
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    u8 tmp;

    - if (!pci_test_config_bits(pdev, &sis_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &sis_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    }
    /* Older chips keep cable detect in bits 4/5 of reg 0x48 */
    pci_read_config_byte(pdev, 0x48, &tmp);
    - tmp >>= ap->hard_port_no;
    + tmp >>= ap->port_no;
    if (tmp & 0x10)
    ap->cbl = ATA_CBL_PATA40;
    else
    @@ -167,7 +167,7 @@ static int sis_old_pre_reset(struct ata_

    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);

    - if (!pci_test_config_bits(pdev, &sis_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &sis_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    @@ -206,7 +206,7 @@ static void sis_set_fifo(struct ata_port
    u8 fifoctrl;
    u8 mask = 0x11;

    - mask <<= (2 * ap->hard_port_no);
    + mask <<= (2 * ap->port_no);
    mask <<= adev->devno;

    /* This holds various bits including the FIFO control */
    @@ -323,7 +323,7 @@ static void sis_133_set_piomode (struct
    pci_read_config_dword(pdev, 0x54, &reg54);
    if (reg54 & 0x40000000)
    port = 0x70;
    - port += 8 * ap->hard_port_no + 4 * adev->devno;
    + port += 8 * ap->port_no + 4 * adev->devno;

    pci_read_config_dword(pdev, port, &t1);
    t1 &= 0xC0C00FFF; /* Mask out timing */
    @@ -511,7 +511,7 @@ static void sis_133_set_dmamode (struct
    pci_read_config_dword(pdev, 0x54, &reg54);
    if (reg54 & 0x40000000)
    port = 0x70;
    - port += (8 * ap->hard_port_no) + (4 * adev->devno);
    + port += (8 * ap->port_no) + (4 * adev->devno);

    pci_read_config_dword(pdev, port, &t1);

    Index: work/drivers/scsi/pata_sl82c105.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_sl82c105.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_sl82c105.c 2006-08-01 01:46:57.000000000 +0900
    @@ -49,7 +49,7 @@ static int sl82c105_pre_reset(struct ata
    };
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);

    - if (ap->hard_port_no && !pci_test_config_bits(pdev, &sl82c105_enable_bits[ap->hard_port_no])) {
    + if (ap->port_no && !pci_test_config_bits(pdev, &sl82c105_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    dev_printk(KERN_INFO, &pdev->dev, "port disabled. ignoring.\n");
    return 0;
    @@ -83,7 +83,7 @@ static void sl82c105_configure_piomode(s
    0x50D, 0x407, 0x304, 0x242, 0x240
    };
    u16 dummy;
    - int timing = 0x44 + (8 * ap->hard_port_no) + (4 * adev->devno);
    + int timing = 0x44 + (8 * ap->port_no) + (4 * adev->devno);

    pci_write_config_word(pdev, timing, pio_timing[pio]);
    /* Can we lose this oddity of the old driver */
    @@ -120,7 +120,7 @@ static void sl82c105_configure_dmamode(s
    0x707, 0x201, 0x200
    };
    u16 dummy;
    - int timing = 0x44 + (8 * ap->hard_port_no) + (4 * adev->devno);
    + int timing = 0x44 + (8 * ap->port_no) + (4 * adev->devno);
    int dma = adev->dma_mode - XFER_MW_DMA_0;

    pci_write_config_word(pdev, timing, dma_timing[dma]);
    Index: work/drivers/scsi/pata_triflex.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_triflex.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_triflex.c 2006-08-01 01:46:57.000000000 +0900
    @@ -61,7 +61,7 @@ static int triflex_probe_init(struct ata

    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);

    - if (!pci_test_config_bits(pdev, &triflex_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &triflex_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    @@ -94,7 +94,7 @@ static void triflex_load_timing(struct a
    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);
    u32 timing = 0;
    u32 triflex_timing, old_triflex_timing;
    - int channel_offset = ap->hard_port_no ? 0x74: 0x70;
    + int channel_offset = ap->port_no ? 0x74: 0x70;
    unsigned int is_slave = (adev->devno != 0);


    Index: work/drivers/scsi/pata_via.c
    ===================================================================
    --- work.orig/drivers/scsi/pata_via.c 2006-08-01 01:46:56.000000000 +0900
    +++ work/drivers/scsi/pata_via.c 2006-08-01 01:46:57.000000000 +0900
    @@ -137,7 +137,7 @@ static int via_cable_detect(struct ata_p
    pci_read_config_dword(pdev, 0x50, &ata66);
    /* Check both the drive cable reporting bits, we might not have
    two drives */
    - if (ata66 & (0x10100000 >> (16 * ap->hard_port_no)))
    + if (ata66 & (0x10100000 >> (16 * ap->port_no)))
    return ATA_CBL_PATA80;
    else
    return ATA_CBL_PATA40;
    @@ -155,7 +155,7 @@ static int via_pre_reset(struct ata_port

    struct pci_dev *pdev = to_pci_dev(ap->host_set->dev);

    - if (!pci_test_config_bits(pdev, &via_enable_bits[ap->hard_port_no])) {
    + if (!pci_test_config_bits(pdev, &via_enable_bits[ap->port_no])) {
    ata_port_disable(ap);
    printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id);
    return 0;
    @@ -207,7 +207,7 @@ static void via_do_set_mode(struct ata_p
    unsigned long T = 1000000000 / via_clock;
    unsigned long UT = T/tdiv;
    int ut;
    - int offset = 3 - (2*ap->hard_port_no) - adev->devno;
    + int offset = 3 - (2*ap->port_no) - adev->devno;


    /* Calculate the timing values we require */
    @@ -233,7 +233,7 @@ static void via_do_set_mode(struct ata_p
    }

    /* Load the PIO mode bits */
    - pci_write_config_byte(pdev, 0x4F - ap->hard_port_no,
    + pci_write_config_byte(pdev, 0x4F - ap->port_no,
    ((FIT(t.act8b, 1, 16) - 1) << 4) | (FIT(t.rec8b, 1, 16) - 1));
    pci_write_config_byte(pdev, 0x48 + offset,
    ((FIT(t.active, 1, 16) - 1) << 4) | (FIT(t.recover, 1, 16) - 1));
    Index: work/include/linux/libata.h
    ===================================================================
    --- work.orig/include/linux/libata.h 2006-08-01 01:46:56.000000000 +0900
    +++ work/include/linux/libata.h 2006-08-01 01:46:57.000000000 +0900
    @@ -350,7 +350,6 @@ struct ata_probe_ent {
    struct scsi_host_template *sht;
    struct ata_ioports port[ATA_MAX_PORTS];
    unsigned int n_ports;
    - unsigned int hard_port_no;
    unsigned int pio_mask;
    unsigned int mwdma_mask;
    unsigned int udma_mask;
    @@ -507,7 +506,6 @@ struct ata_port {
    unsigned int pflags; /* ATA_PFLAG_xxx */
    unsigned int id; /* unique id req'd by scsi midlyr */
    unsigned int port_no; /* unique port #; from zero */
    - unsigned int hard_port_no; /* hardware port #; from zero */

    struct ata_prd *prd; /* our SG list */
    dma_addr_t prd_dma; /* and its DMA mapping */
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2006-07-31 18:53    [W:0.124 / U:29.028 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site