lkml.org 
[lkml]   [2009]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 21/43] libata: pata_via: support VX855, future chips whose IDE controller use 0x0571
    2.6.28-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: JosephChan@via.com.tw <JosephChan@via.com.tw>

    commit e4d866cdea24543ee16ce6d07d80c513e86ba983 upstream.

    It supports VX855 and future chips whose IDE controller uses PCI ID 0x0571.

    Signed-off-by: Joseph Chan <josephchan@via.com.tw>
    Acked-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/ata/pata_via.c | 22 +++++++++++++++++-----
    include/linux/pci_ids.h | 4 ++++
    2 files changed, 21 insertions(+), 5 deletions(-)

    --- a/drivers/ata/pata_via.c
    +++ b/drivers/ata/pata_via.c
    @@ -86,6 +86,10 @@ enum {
    VIA_SATA_PATA = 0x800, /* SATA/PATA combined configuration */
    };

    +enum {
    + VIA_IDFLAG_SINGLE = (1 << 0), /* single channel controller) */
    +};
    +
    /*
    * VIA SouthBridge chips.
    */
    @@ -97,8 +101,12 @@ static const struct via_isa_bridge {
    u8 rev_max;
    u16 flags;
    } via_isa_bridges[] = {
    + { "vx855", PCI_DEVICE_ID_VIA_VX855, 0x00, 0x2f,
    + VIA_UDMA_133 | VIA_BAD_AST | VIA_SATA_PATA },
    { "vx800", PCI_DEVICE_ID_VIA_VX800, 0x00, 0x2f, VIA_UDMA_133 |
    VIA_BAD_AST | VIA_SATA_PATA },
    + { "vt8261", PCI_DEVICE_ID_VIA_8261, 0x00, 0x2f,
    + VIA_UDMA_133 | VIA_BAD_AST },
    { "vt8237s", PCI_DEVICE_ID_VIA_8237S, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
    { "vt8251", PCI_DEVICE_ID_VIA_8251, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
    { "cx700", PCI_DEVICE_ID_VIA_CX700, 0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST | VIA_SATA_PATA },
    @@ -122,6 +130,8 @@ static const struct via_isa_bridge {
    { "vt82c586", PCI_DEVICE_ID_VIA_82C586_0, 0x00, 0x0f, VIA_UDMA_NONE | VIA_SET_FIFO },
    { "vt82c576", PCI_DEVICE_ID_VIA_82C576, 0x00, 0x2f, VIA_UDMA_NONE | VIA_SET_FIFO | VIA_NO_UNMASK },
    { "vt82c576", PCI_DEVICE_ID_VIA_82C576, 0x00, 0x2f, VIA_UDMA_NONE | VIA_SET_FIFO | VIA_NO_UNMASK | VIA_BAD_ID },
    + { "vtxxxx", PCI_DEVICE_ID_VIA_ANON, 0x00, 0x2f,
    + VIA_UDMA_133 | VIA_BAD_AST },
    { NULL }
    };

    @@ -460,6 +470,7 @@ static int via_init_one(struct pci_dev *
    static int printed_version;
    u8 enable;
    u32 timing;
    + unsigned long flags = id->driver_data;
    int rc;

    if (!printed_version++)
    @@ -469,9 +480,13 @@ static int via_init_one(struct pci_dev *
    if (rc)
    return rc;

    + if (flags & VIA_IDFLAG_SINGLE)
    + ppi[1] = &ata_dummy_port_info;
    +
    /* To find out how the IDE will behave and what features we
    actually have to look at the bridge not the IDE controller */
    - for (config = via_isa_bridges; config->id; config++)
    + for (config = via_isa_bridges; config->id != PCI_DEVICE_ID_VIA_ANON;
    + config++)
    if ((isa = pci_get_device(PCI_VENDOR_ID_VIA +
    !!(config->flags & VIA_BAD_ID),
    config->id, NULL))) {
    @@ -482,10 +497,6 @@ static int via_init_one(struct pci_dev *
    pci_dev_put(isa);
    }

    - if (!config->id) {
    - printk(KERN_WARNING "via: Unknown VIA SouthBridge, disabling.\n");
    - return -ENODEV;
    - }
    pci_dev_put(isa);

    if (!(config->flags & VIA_NO_ENABLES)) {
    @@ -587,6 +598,7 @@ static const struct pci_device_id via[]
    { PCI_VDEVICE(VIA, 0x1571), },
    { PCI_VDEVICE(VIA, 0x3164), },
    { PCI_VDEVICE(VIA, 0x5324), },
    + { PCI_VDEVICE(VIA, 0xC409), VIA_IDFLAG_SINGLE },

    { },
    };
    --- a/include/linux/pci_ids.h
    +++ b/include/linux/pci_ids.h
    @@ -1357,6 +1357,7 @@
    #define PCI_DEVICE_ID_VIA_8783_0 0x3208
    #define PCI_DEVICE_ID_VIA_8237 0x3227
    #define PCI_DEVICE_ID_VIA_8251 0x3287
    +#define PCI_DEVICE_ID_VIA_8261 0x3402
    #define PCI_DEVICE_ID_VIA_8237A 0x3337
    #define PCI_DEVICE_ID_VIA_8237S 0x3372
    #define PCI_DEVICE_ID_VIA_SATA_EIDE 0x5324
    @@ -1366,10 +1367,13 @@
    #define PCI_DEVICE_ID_VIA_CX700 0x8324
    #define PCI_DEVICE_ID_VIA_CX700_IDE 0x0581
    #define PCI_DEVICE_ID_VIA_VX800 0x8353
    +#define PCI_DEVICE_ID_VIA_VX855 0x8409
    #define PCI_DEVICE_ID_VIA_8371_1 0x8391
    #define PCI_DEVICE_ID_VIA_82C598_1 0x8598
    #define PCI_DEVICE_ID_VIA_838X_1 0xB188
    #define PCI_DEVICE_ID_VIA_83_87XX_1 0xB198
    +#define PCI_DEVICE_ID_VIA_C409_IDE 0XC409
    +#define PCI_DEVICE_ID_VIA_ANON 0xFFFF

    #define PCI_VENDOR_ID_SIEMENS 0x110A
    #define PCI_DEVICE_ID_SIEMENS_DSCC4 0x2102


    \
     
     \ /
      Last update: 2009-01-31 04:09    [W:0.025 / U:63.144 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site