lkml.org 
[lkml]   [2007]   [Oct]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] sata_nv: add the wildcard support for ahci legacy mode
    Add the wildcard support to sata_nv driver for those new ahci controllers being configured
    as IDE/RAID mode and also their DIDs haven't been added into ahci driver.

    The patch base on kernel 2.6.23-rc9

    Signed-off-by: Peer Chen <peerchen@gmail.com>
    ---
    --- linux-2.6.23-rc9/drivers/ata/sata_nv.c.orig 2007-10-08 10:32:52.000000000 -0400
    +++ linux-2.6.23-rc9/drivers/ata/sata_nv.c 2007-10-08 10:33:04.000000000 -0400
    @@ -266,6 +266,7 @@ static void nv_adma_tf_read(struct ata_p
    enum nv_host_type
    {
    GENERIC,
    + AHCI_LEG,
    NFORCE2,
    NFORCE3 = NFORCE2, /* NF2 == NF3 as far as sata_nv is concerned */
    CK804,
    @@ -287,6 +288,12 @@ static const struct pci_device_id nv_pci
    { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA), GENERIC },
    { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA2), GENERIC },
    { PCI_VDEVICE(NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP61_SATA3), GENERIC },
    + { PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID,
    + PCI_ANY_ID, PCI_ANY_ID,
    + PCI_CLASS_STORAGE_RAID<<8, 0xffff00, AHCI_LEG },
    + { PCI_VENDOR_ID_NVIDIA, PCI_ANY_ID,
    + PCI_ANY_ID, PCI_ANY_ID,
    + PCI_CLASS_STORAGE_IDE<<8, 0xffff00, AHCI_LEG },

    { } /* terminate list */
    };
    @@ -365,6 +372,30 @@ static const struct ata_port_operations
    .port_start = ata_port_start,
    };

    +static const struct ata_port_operations nv_ahci_leg_ops = {
    + .port_disable = ata_port_disable,
    + .tf_load = ata_tf_load,
    + .tf_read = ata_tf_read,
    + .exec_command = ata_exec_command,
    + .check_status = ata_check_status,
    + .dev_select = ata_std_dev_select,
    + .bmdma_setup = ata_bmdma_setup,
    + .bmdma_start = ata_bmdma_start,
    + .bmdma_stop = ata_bmdma_stop,
    + .bmdma_status = ata_bmdma_status,
    + .qc_prep = ata_qc_prep,
    + .qc_issue = ata_qc_issue_prot,
    + .freeze = ata_bmdma_freeze,
    + .thaw = ata_bmdma_thaw,
    + .error_handler = nv_error_handler,
    + .post_internal_cmd = ata_bmdma_post_internal_cmd,
    + .data_xfer = ata_data_xfer,
    + .irq_clear = ata_bmdma_irq_clear,
    + .irq_on = ata_irq_on,
    + .irq_ack = ata_irq_ack,
    + .port_start = ata_port_start,
    +};
    +
    static const struct ata_port_operations nv_nf2_ops = {
    .port_disable = ata_port_disable,
    .tf_load = ata_tf_load,
    @@ -463,6 +494,17 @@ static const struct ata_port_info nv_por
    .port_ops = &nv_generic_ops,
    .irq_handler = nv_generic_interrupt,
    },
    + /* ahci legacy */
    + {
    + .sht = &nv_sht,
    + .flags = ATA_FLAG_SATA | ATA_FLAG_SLAVE_POSS |
    + ATA_FLAG_HRST_TO_RESUME,
    + .pio_mask = NV_PIO_MASK,
    + .mwdma_mask = NV_MWDMA_MASK,
    + .udma_mask = NV_UDMA_MASK,
    + .port_ops = &nv_ahci_leg_ops,
    + .irq_handler = nv_generic_interrupt,
    + },
    /* nforce2/3 */
    {
    .sht = &nv_sht,
    -
    -
    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: 2007-10-08 18:15    [W:0.035 / U:272.552 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site