aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wilcox <willy@parisc-linux.org>2006-01-10 20:48:06 -0500
committerKyle McMartin <kyle@duet.int.mcmartin.ca>2006-01-10 21:53:14 -0500
commitf45adcf977ac3c5512c17fd97b073bda99c81232 (patch)
treeb6dedae336721d6f55836b17b27115ca66874352
parent4d62ce5d2a85976a2e6f2732980e59b21b2aa8d2 (diff)
[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>
-rw-r--r--arch/parisc/kernel/hardware.c1
-rw-r--r--drivers/parisc/dino.c8
2 files changed, 5 insertions, 4 deletions
diff --git a/arch/parisc/kernel/hardware.c b/arch/parisc/kernel/hardware.c
index 2071b5bba15c..3058bffd8a2c 100644
--- a/arch/parisc/kernel/hardware.c
+++ b/arch/parisc/kernel/hardware.c
@@ -551,6 +551,7 @@ static struct hp_hardware hp_hardware_list[] __initdata = {
551 {HPHW_BCPORT, 0x804, 0x0000C, 0x10, "REO I/O BC Merced Port"}, 551 {HPHW_BCPORT, 0x804, 0x0000C, 0x10, "REO I/O BC Merced Port"},
552 {HPHW_BCPORT, 0x782, 0x0000C, 0x00, "REO I/O BC Ropes 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"}, 553 {HPHW_BCPORT, 0x784, 0x0000C, 0x00, "Pluto I/O BC Ropes Port"},
554 {HPHW_BRIDGE, 0x05D, 0x0000A, 0x00, "SummitHawk Dino PCI Bridge"},
554 {HPHW_BRIDGE, 0x680, 0x0000A, 0x00, "Dino PCI Bridge"}, 555 {HPHW_BRIDGE, 0x680, 0x0000A, 0x00, "Dino PCI Bridge"},
555 {HPHW_BRIDGE, 0x682, 0x0000A, 0x00, "Cujo PCI Bridge"}, 556 {HPHW_BRIDGE, 0x682, 0x0000A, 0x00, "Cujo PCI Bridge"},
556 {HPHW_BRIDGE, 0x782, 0x0000A, 0x00, "Elroy PCI Bridge"}, 557 {HPHW_BRIDGE, 0x782, 0x0000A, 0x00, "Elroy PCI Bridge"},
diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c
index 45a1a494c1cc..216d1d859326 100644
--- a/drivers/parisc/dino.c
+++ b/drivers/parisc/dino.c
@@ -83,7 +83,8 @@
83** bus number for each dino. 83** bus number for each dino.
84*/ 84*/
85 85
86#define is_card_dino(id) ((id)->hw_type == HPHW_A_DMA) 86#define is_card_dino(id) ((id)->hw_type == HPHW_A_DMA)
87#define is_cujo(id) ((id)->hversion == 0x682)
87 88
88#define DINO_IAR0 0x004 89#define DINO_IAR0 0x004
89#define DINO_IODC_ADDR 0x008 90#define DINO_IODC_ADDR 0x008
@@ -682,7 +683,6 @@ dino_fixup_bus(struct pci_bus *bus)
682 printk(KERN_WARNING "Device %s has unassigned IRQ\n", pci_name(dev)); 683 printk(KERN_WARNING "Device %s has unassigned IRQ\n", pci_name(dev));
683#endif 684#endif
684 } else { 685 } else {
685
686 /* Adjust INT_LINE for that busses region */ 686 /* Adjust INT_LINE for that busses region */
687 dino_assign_irq(dino_dev, dev->irq, &dev->irq); 687 dino_assign_irq(dino_dev, dev->irq, &dev->irq);
688 } 688 }
@@ -888,7 +888,7 @@ static int __init dino_common_init(struct parisc_device *dev,
888 888
889 /* allocate I/O Port resource region */ 889 /* allocate I/O Port resource region */
890 res = &dino_dev->hba.io_space; 890 res = &dino_dev->hba.io_space;
891 if (dev->id.hversion == 0x680 || is_card_dino(&dev->id)) { 891 if (!is_cujo(&dev->id)) {
892 res->name = "Dino I/O Port"; 892 res->name = "Dino I/O Port";
893 } else { 893 } else {
894 res->name = "Cujo I/O Port"; 894 res->name = "Cujo I/O Port";
@@ -943,7 +943,7 @@ static int __init dino_probe(struct parisc_device *dev)
943 if (is_card_dino(&dev->id)) { 943 if (is_card_dino(&dev->id)) {
944 version = "3.x (card mode)"; 944 version = "3.x (card mode)";
945 } else { 945 } else {
946 if(dev->id.hversion == 0x680) { 946 if (!is_cujo(&dev->id)) {
947 if (dev->id.hversion_rev < 4) { 947 if (dev->id.hversion_rev < 4) {
948 version = dino_vers[dev->id.hversion_rev]; 948 version = dino_vers[dev->id.hversion_rev];
949 } 949 }