[PATCH] SATA support for Intel ICH7 - 2.6.10 - repost

From: Jason Gaston (jason.d.gaston_at_intel.com)
Date: 12/30/04

  • Next message: Nick Piggin: "Re: VM fixes [2/4]"
    To: jgarzik@redhat.com
    Date:	Thu, 30 Dec 2004 06:16:11 -0800
    
    

    Reposting patch with word wrap turned off. Please let me know if this is still not formated correctly.

    This patch adds the Intel ICH7 DID's to the ata_piix.c SATA driver, ahci.c SATA AHCI driver and quirks.c for ICH7 SATA support.
    If acceptable, please apply.

    Thanks,

    Jason Gaston

    --- linux-2.6.10/drivers/pci/quirks.c.orig 2004-12-24 13:33:49.000000000 -0800
    +++ linux-2.6.10/drivers/pci/quirks.c 2004-12-30 04:24:21.128072896 -0800
    @@ -1162,6 +1162,10 @@
             case 0x2653:
                     ich = 6;
                     break;
    + case 0x27c0:
    + case 0x27c4:
    + ich = 7;
    + break;
             default:
                     /* we do not handle this PCI device */
                     return;
    @@ -1181,7 +1185,7 @@
                     else
                             return; /* not in combined mode */
             } else {
    - WARN_ON(ich != 6);
    + WARN_ON((ich != 6) && (ich != 7));
                     tmp &= 0x3; /* interesting bits 1:0 */
                     if (tmp & (1 << 0))
                             comb = (1 << 2); /* PATA port 0, SATA port 1 */
    --- linux-2.6.10/drivers/scsi/ata_piix.c.orig 2004-12-24 13:35:50.000000000 -0800
    +++ linux-2.6.10/drivers/scsi/ata_piix.c 2004-12-28 07:07:38.000000000 -0800
    @@ -60,6 +60,7 @@
             piix4_pata = 2,
             ich6_sata = 3,
             ich6_sata_rm = 4,
    + ich7_sata = 5,
     };
     
     static int piix_init_one (struct pci_dev *pdev,
    @@ -90,6 +91,8 @@
             { 0x8086, 0x2651, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata },
             { 0x8086, 0x2652, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_rm },
             { 0x8086, 0x2653, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_rm },
    + { 0x8086, 0x27c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich7_sata },
    + { 0x8086, 0x27c4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich7_sata },
     
             { } /* terminate list */
     };
    @@ -236,6 +239,18 @@
                     .udma_mask = 0x7f, /* udma0-6 */
                     .port_ops = &piix_sata_ops,
             },
    +
    + /* ich7_sata */
    + {
    + .sht = &piix_sht,
    + .host_flags = ATA_FLAG_SATA | ATA_FLAG_SRST |
    + PIIX_FLAG_COMBINED | PIIX_FLAG_CHECKINTR |
    + ATA_FLAG_SLAVE_POSS | PIIX_FLAG_AHCI,
    + .pio_mask = 0x1f, /* pio0-4 */
    + .mwdma_mask = 0x07, /* mwdma0-2 */
    + .udma_mask = 0x7f, /* udma0-6 */
    + .port_ops = &piix_sata_ops,
    + },
     };
     
     static struct pci_bits piix_enable_bits[] = {
    --- linux-2.6.10/drivers/scsi/ahci.c.orig 2004-12-24 13:34:26.000000000 -0800
    +++ linux-2.6.10/drivers/scsi/ahci.c 2004-12-28 07:07:38.000000000 -0800
    @@ -239,9 +239,13 @@
     
     static struct pci_device_id ahci_pci_tbl[] = {
             { PCI_VENDOR_ID_INTEL, 0x2652, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
    - board_ahci },
    + board_ahci }, /* ICH6 */
             { PCI_VENDOR_ID_INTEL, 0x2653, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
    - board_ahci },
    + board_ahci }, /* ICH6M */
    + { PCI_VENDOR_ID_INTEL, 0x27c1, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
    + board_ahci }, /* ICH7 */
    + { PCI_VENDOR_ID_INTEL, 0x27c5, PCI_ANY_ID, PCI_ANY_ID, 0, 0,
    + board_ahci }, /* ICH7M */
             { } /* terminate list */
     };
     
    -
    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/


  • Next message: Nick Piggin: "Re: VM fixes [2/4]"

    Relevant Pages