Messages in this thread Patch in this message | | | Date | Tue, 25 Jul 2000 22:27:18 -0700 (PDT) | From | Andre Hedrick <> | Subject | Re: [PATCH] PROMISE 20265 support |
| |
On Tue, 25 Jul 2000, ISHIKAWA Mutsumi wrote:
> Hi, Linux IDE guy, > > I've gotten 964D PRO Motherboard. This motherboard have `on board > UDMA100 connect.' It's contorolled by PDC20265. > > But, IDE driver of Linux can't detected this controller, so I wrote > a patch to use it. I'll happy if apply this for next release :-)
I would be happy if I could patches like this in the kernel myself. It lookes valid and I know of the chipset.
Good Look on getting it in because I am cut off for now......
> This patch can apply to kernel 2.4.0-test5-pre4 with > ide.2.4.0-t5-2.all.4c.patch.bz2 > > Thanks. > > -- > ISHIKAWA Mutsumi > <ishikawa@linux.or.jp>, <ishikawa@debian.org>, <ishikawa@redhat.com> > > > > diff -x .config -urN linux.orig/Documentation/Configure.help linux/Documentation/Configure.help > --- linux.orig/Documentation/Configure.help Tue Jul 25 15:31:13 2000 > +++ linux/Documentation/Configure.help Tue Jul 25 16:20:13 2000 > @@ -898,7 +898,7 @@ > CONFIG_BLK_DEV_PDC202XX > Promise Ultra33 or PDC20246 > Promise Ultra66 or PDC20262 > - Promise Ultra100 or PDC20267 > + Promise Ultra100 or PDC20265/PDC20267 > > This driver adds up to 4 more EIDE devices sharing a single > interrupt. This add-on card is a bootable PCI UDMA controller. Since > @@ -918,11 +918,11 @@ > > Special UDMA Feature (EXPERIMENTAL) > CONFIG_PDC202XX_BURST > - For PDC20246, PDC20262 and PDC20267 Ultra DMA chipsets. Designed > - originally for PDC20246/Ultra33 that has BIOS setup failures when > - using 3 or more cards. > + For PDC20246, PDC20262, PDC20265 and PDC20267 Ultra DMA chipsets. > + Designed originally for PDC20246/Ultra33 that has BIOS setup > + failures when using 3 or more cards. > > - Unknown for PDC20267 Ultra DMA 100. > + Unknown for PDC20265/PDC20267 Ultra DMA 100. > > Please read the comments at the top of drivers/ide/pdc202xx.c > > diff -x .config -urN linux.orig/drivers/ide/ide-pci.c linux/drivers/ide/ide-pci.c > --- linux.orig/drivers/ide/ide-pci.c Tue Jun 20 23:52:36 2000 > +++ linux/drivers/ide/ide-pci.c Tue Jul 25 15:50:37 2000 > @@ -39,6 +39,7 @@ > #define DEVID_VP_IDE ((ide_pci_devid_t){PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1}) > #define DEVID_PDC20246 ((ide_pci_devid_t){PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20246}) > #define DEVID_PDC20262 ((ide_pci_devid_t){PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20262}) > +#define DEVID_PDC20265 ((ide_pci_devid_t){PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20265}) > #define DEVID_PDC20267 ((ide_pci_devid_t){PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20267}) > #define DEVID_RZ1000 ((ide_pci_devid_t){PCI_VENDOR_ID_PCTECH, PCI_DEVICE_ID_PCTECH_RZ1000}) > #define DEVID_RZ1001 ((ide_pci_devid_t){PCI_VENDOR_ID_PCTECH, PCI_DEVICE_ID_PCTECH_RZ1001}) > @@ -318,6 +319,7 @@ > {DEVID_VP_IDE, "VP_IDE", PCI_VIA82CXXX, ATA66_VIA82CXXX,INIT_VIA82CXXX, DMA_VIA82CXXX, {{0x40,0x02,0x02}, {0x40,0x01,0x01}}, ON_BOARD, 0 }, > {DEVID_PDC20246,"PDC20246", PCI_PDC202XX, NULL, INIT_PDC202XX, NULL, {{0x50,0x02,0x02}, {0x50,0x04,0x04}}, OFF_BOARD, 16 }, > {DEVID_PDC20262,"PDC20262", PCI_PDC202XX, ATA66_PDC202XX, INIT_PDC202XX, NULL, {{0x50,0x02,0x02}, {0x50,0x04,0x04}}, OFF_BOARD, 48 }, > + {DEVID_PDC20265,"PDC20265", PCI_PDC202XX, ATA66_PDC202XX, INIT_PDC202XX, NULL, {{0x50,0x02,0x02}, {0x50,0x04,0x04}}, OFF_BOARD, 48 }, > {DEVID_PDC20267,"PDC20267", PCI_PDC202XX, ATA66_PDC202XX, INIT_PDC202XX, NULL, {{0x50,0x02,0x02}, {0x50,0x04,0x04}}, OFF_BOARD, 48 }, > {DEVID_RZ1000, "RZ1000", NULL, NULL, INIT_RZ1000, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, > {DEVID_RZ1001, "RZ1001", NULL, NULL, INIT_RZ1000, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, > @@ -362,6 +364,7 @@ > case PCI_DEVICE_ID_TTI_HPT366: > case PCI_DEVICE_ID_PROMISE_20246: > case PCI_DEVICE_ID_PROMISE_20262: > + case PCI_DEVICE_ID_PROMISE_20265: > case PCI_DEVICE_ID_PROMISE_20267: > case PCI_DEVICE_ID_ARTOP_ATP850UF: > case PCI_DEVICE_ID_ARTOP_ATP860: > @@ -633,6 +636,7 @@ > hwif->autodma = 1; > if (IDE_PCI_DEVID_EQ(d->devid, DEVID_PDC20246) || > IDE_PCI_DEVID_EQ(d->devid, DEVID_PDC20262) || > + IDE_PCI_DEVID_EQ(d->devid, DEVID_PDC20265) || > IDE_PCI_DEVID_EQ(d->devid, DEVID_PDC20267) || > IDE_PCI_DEVID_EQ(d->devid, DEVID_AEC6210) || > IDE_PCI_DEVID_EQ(d->devid, DEVID_AEC6260) || > diff -x .config -urN linux.orig/drivers/ide/pdc202xx.c linux/drivers/ide/pdc202xx.c > --- linux.orig/drivers/ide/pdc202xx.c Tue Jul 25 15:30:49 2000 > +++ linux/drivers/ide/pdc202xx.c Tue Jul 25 15:46:53 2000 > @@ -142,6 +142,9 @@ > case PCI_DEVICE_ID_PROMISE_20267: > p += sprintf(p, "\n PDC20267 Chipset.\n"); > break; > + case PCI_DEVICE_ID_PROMISE_20265: > + p += sprintf(p, "\n PDC20265 Chipset.\n"); > + break; > case PCI_DEVICE_ID_PROMISE_20262: > p += sprintf(p, "\n PDC20262 Chipset.\n"); > break; > @@ -516,7 +519,7 @@ > byte CLKSPD = IN_BYTE(high_16 + 0x11); > byte udma_33 = ultra ? (inb(high_16 + 0x001f) & 1) : 0; > byte udma_66 = ((eighty_ninty_three(drive)) && udma_33) ? 1 : 0; > - byte udma_100 = ((dev->device == PCI_DEVICE_ID_PROMISE_20267) && udma_66) ? 1 : 0; > + byte udma_100 = (((dev->device == PCI_DEVICE_ID_PROMISE_20265) || (dev->device == PCI_DEVICE_ID_PROMISE_20267)) && udma_66) ? 1 : 0; > > /* > * Set the control register to use the 66Mhz system > @@ -762,6 +765,7 @@ > byte secondary_mode = inb(high_16 + 0x001b); > > if ((dev->device == PCI_DEVICE_ID_PROMISE_20262) || > + (dev->device == PCI_DEVICE_ID_PROMISE_20265) || > (dev->device == PCI_DEVICE_ID_PROMISE_20267)) { > int i = 0; > /* > @@ -791,7 +795,7 @@ > byte irq = 0, irq2 = 0; > pci_read_config_byte(dev, PCI_INTERRUPT_LINE, &irq); > pci_read_config_byte(dev, (PCI_INTERRUPT_LINE)|0x80, &irq2); /* 0xbc */ > - if ((irq != irq2) && (dev->device != PCI_DEVICE_ID_PROMISE_20267)) { > + if ((irq != irq2) && (dev->device != PCI_DEVICE_ID_PROMISE_20265) && (dev->device != PCI_DEVICE_ID_PROMISE_20267)) { > pci_write_config_byte(dev, (PCI_INTERRUPT_LINE)|0x80, irq); /* 0xbc */ > printk("%s: pci-config space interrupt mirror fixed.\n", name); > } > @@ -855,6 +859,7 @@ > hwif->quirkproc = &pdc202xx_quirkproc; > > if ((hwif->pci_dev->device == PCI_DEVICE_ID_PROMISE_20262) || > + (hwif->pci_dev->device == PCI_DEVICE_ID_PROMISE_20265) || > (hwif->pci_dev->device == PCI_DEVICE_ID_PROMISE_20267)) > hwif->resetproc = &pdc202xx_reset; > > diff -x .config -urN linux.orig/include/linux/pci_ids.h linux/include/linux/pci_ids.h > --- linux.orig/include/linux/pci_ids.h Thu Jul 13 08:24:33 2000 > +++ linux/include/linux/pci_ids.h Tue Jul 25 15:41:24 2000 > @@ -421,6 +421,7 @@ > > #define PCI_VENDOR_ID_PROMISE 0x105a > #define PCI_DEVICE_ID_PROMISE_20267 0x4d30 > +#define PCI_DEVICE_ID_PROMISE_20265 0x0d30 > #define PCI_DEVICE_ID_PROMISE_20246 0x4d33 > #define PCI_DEVICE_ID_PROMISE_20262 0x4d38 > #define PCI_DEVICE_ID_PROMISE_5300 0x5300 >
Andre Hedrick The Linux ATA/IDE guy
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |