[PARISC] Fix Dino reporting on J2240
authorMatthew Wilcox <willy@parisc-linux.org>
Wed, 11 Jan 2006 01:48:06 +0000 (20:48 -0500)
committerKyle McMartin <kyle@duet.int.mcmartin.ca>
Wed, 11 Jan 2006 02:53:14 +0000 (21:53 -0500)
Fix Dino reporting on J2240. This particular machine thought it
had a Cujo. Also add J2240 Dino chip to the hp_hardware_list.

Signed-off-by: Matthew Wilcox <willy@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
arch/parisc/kernel/hardware.c
drivers/parisc/dino.c

index 2071b5b..3058bff 100644 (file)
@@ -551,6 +551,7 @@ static struct hp_hardware hp_hardware_list[] __initdata = {
        {HPHW_BCPORT, 0x804, 0x0000C, 0x10, "REO I/O BC Merced Port"}, 
        {HPHW_BCPORT, 0x782, 0x0000C, 0x00, "REO I/O BC Ropes Port"}, 
        {HPHW_BCPORT, 0x784, 0x0000C, 0x00, "Pluto I/O BC Ropes Port"}, 
+       {HPHW_BRIDGE, 0x05D, 0x0000A, 0x00, "SummitHawk Dino PCI Bridge"}, 
        {HPHW_BRIDGE, 0x680, 0x0000A, 0x00, "Dino PCI Bridge"}, 
        {HPHW_BRIDGE, 0x682, 0x0000A, 0x00, "Cujo PCI Bridge"}, 
        {HPHW_BRIDGE, 0x782, 0x0000A, 0x00, "Elroy PCI Bridge"}, 
index 45a1a49..216d1d8 100644 (file)
@@ -83,7 +83,8 @@
 ** bus number for each dino.
 */
 
-#define is_card_dino(id) ((id)->hw_type == HPHW_A_DMA)
+#define is_card_dino(id)       ((id)->hw_type == HPHW_A_DMA)
+#define is_cujo(id)            ((id)->hversion == 0x682)
 
 #define DINO_IAR0              0x004
 #define DINO_IODC_ADDR         0x008
@@ -682,7 +683,6 @@ dino_fixup_bus(struct pci_bus *bus)
                        printk(KERN_WARNING "Device %s has unassigned IRQ\n", pci_name(dev));
 #endif
                } else {
-
                        /* Adjust INT_LINE for that busses region */
                        dino_assign_irq(dino_dev, dev->irq, &dev->irq);
                }
@@ -888,7 +888,7 @@ static int __init dino_common_init(struct parisc_device *dev,
 
        /* allocate I/O Port resource region */
        res = &dino_dev->hba.io_space;
-       if (dev->id.hversion == 0x680 || is_card_dino(&dev->id)) {
+       if (!is_cujo(&dev->id)) {
                res->name = "Dino I/O Port";
        } else {
                res->name = "Cujo I/O Port";
@@ -943,7 +943,7 @@ static int __init dino_probe(struct parisc_device *dev)
        if (is_card_dino(&dev->id)) {
                version = "3.x (card mode)";
        } else {
-               if(dev->id.hversion == 0x680) {
+               if (!is_cujo(&dev->id)) {
                        if (dev->id.hversion_rev < 4) {
                                version = dino_vers[dev->id.hversion_rev];
                        }