[PARISC] Fix Dino reporting on J2240

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>

authored by

Matthew Wilcox and committed by
Kyle McMartin
f45adcf9 4d62ce5d

+5 -4
+1
arch/parisc/kernel/hardware.c
··· 551 {HPHW_BCPORT, 0x804, 0x0000C, 0x10, "REO I/O BC Merced Port"}, 552 {HPHW_BCPORT, 0x782, 0x0000C, 0x00, "REO I/O BC Ropes Port"}, 553 {HPHW_BCPORT, 0x784, 0x0000C, 0x00, "Pluto I/O BC Ropes Port"}, 554 {HPHW_BRIDGE, 0x680, 0x0000A, 0x00, "Dino PCI Bridge"}, 555 {HPHW_BRIDGE, 0x682, 0x0000A, 0x00, "Cujo PCI Bridge"}, 556 {HPHW_BRIDGE, 0x782, 0x0000A, 0x00, "Elroy PCI Bridge"},
··· 551 {HPHW_BCPORT, 0x804, 0x0000C, 0x10, "REO I/O BC Merced Port"}, 552 {HPHW_BCPORT, 0x782, 0x0000C, 0x00, "REO I/O BC Ropes Port"}, 553 {HPHW_BCPORT, 0x784, 0x0000C, 0x00, "Pluto I/O BC Ropes Port"}, 554 + {HPHW_BRIDGE, 0x05D, 0x0000A, 0x00, "SummitHawk Dino PCI Bridge"}, 555 {HPHW_BRIDGE, 0x680, 0x0000A, 0x00, "Dino PCI Bridge"}, 556 {HPHW_BRIDGE, 0x682, 0x0000A, 0x00, "Cujo PCI Bridge"}, 557 {HPHW_BRIDGE, 0x782, 0x0000A, 0x00, "Elroy PCI Bridge"},
+4 -4
drivers/parisc/dino.c
··· 83 ** bus number for each dino. 84 */ 85 86 - #define is_card_dino(id) ((id)->hw_type == HPHW_A_DMA) 87 88 #define DINO_IAR0 0x004 89 #define DINO_IODC_ADDR 0x008 ··· 683 printk(KERN_WARNING "Device %s has unassigned IRQ\n", pci_name(dev)); 684 #endif 685 } else { 686 - 687 /* Adjust INT_LINE for that busses region */ 688 dino_assign_irq(dino_dev, dev->irq, &dev->irq); 689 } ··· 888 889 /* allocate I/O Port resource region */ 890 res = &dino_dev->hba.io_space; 891 - if (dev->id.hversion == 0x680 || is_card_dino(&dev->id)) { 892 res->name = "Dino I/O Port"; 893 } else { 894 res->name = "Cujo I/O Port"; ··· 943 if (is_card_dino(&dev->id)) { 944 version = "3.x (card mode)"; 945 } else { 946 - if(dev->id.hversion == 0x680) { 947 if (dev->id.hversion_rev < 4) { 948 version = dino_vers[dev->id.hversion_rev]; 949 }
··· 83 ** bus number for each dino. 84 */ 85 86 + #define is_card_dino(id) ((id)->hw_type == HPHW_A_DMA) 87 + #define is_cujo(id) ((id)->hversion == 0x682) 88 89 #define DINO_IAR0 0x004 90 #define DINO_IODC_ADDR 0x008 ··· 682 printk(KERN_WARNING "Device %s has unassigned IRQ\n", pci_name(dev)); 683 #endif 684 } else { 685 /* Adjust INT_LINE for that busses region */ 686 dino_assign_irq(dino_dev, dev->irq, &dev->irq); 687 } ··· 888 889 /* allocate I/O Port resource region */ 890 res = &dino_dev->hba.io_space; 891 + if (!is_cujo(&dev->id)) { 892 res->name = "Dino I/O Port"; 893 } else { 894 res->name = "Cujo I/O Port"; ··· 943 if (is_card_dino(&dev->id)) { 944 version = "3.x (card mode)"; 945 } else { 946 + if (!is_cujo(&dev->id)) { 947 if (dev->id.hversion_rev < 4) { 948 version = dino_vers[dev->id.hversion_rev]; 949 }