aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wilcox <willy@parisc-linux.org>2005-10-21 22:36:40 -0400
committerKyle McMartin <kyle@parisc-linux.org>2005-10-21 22:36:40 -0400
commit53f01bba49938f115237fe43a261c31ac13ae5c6 (patch)
treedf2a5fa9d95c7e69447ac0c89d6e149888c9bd1c
parentbdad1f836ab1ca2b18a625222f63f630cfd14e41 (diff)
[PARISC] Convert parisc_device to use struct resource for hpa
Convert pa_dev->hpa from an unsigned long to a struct resource. Signed-off-by: Matthew Wilcox <willy@parisc-linux.org> Fix up users of ->hpa to use ->hpa.start instead. Signed-off-by: Matthew Wilcox <willy@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
-rw-r--r--arch/parisc/kernel/perf.c12
-rw-r--r--arch/parisc/kernel/processor.c8
-rw-r--r--drivers/input/keyboard/hilkbd.c4
-rw-r--r--drivers/input/serio/gscps2.c2
-rw-r--r--drivers/input/serio/hp_sdc.c6
-rw-r--r--drivers/net/lasi_82596.c7
-rw-r--r--drivers/parisc/asp.c4
-rw-r--r--drivers/parisc/ccio-dma.c4
-rw-r--r--drivers/parisc/ccio-rm-dma.c2
-rw-r--r--drivers/parisc/dino.c6
-rw-r--r--drivers/parisc/eisa.c2
-rw-r--r--drivers/parisc/hppb.c8
-rw-r--r--drivers/parisc/lasi.c2
-rw-r--r--drivers/parisc/lba_pci.c14
-rw-r--r--drivers/parisc/sba_iommu.c6
-rw-r--r--drivers/parisc/wax.c2
-rw-r--r--drivers/parport/parport_gsc.c5
-rw-r--r--drivers/scsi/lasi700.c2
-rw-r--r--drivers/scsi/zalon.c4
-rw-r--r--drivers/serial/8250_gsc.c5
-rw-r--r--drivers/serial/mux.c2
-rw-r--r--include/asm-parisc/parisc-device.h2
-rw-r--r--sound/parisc/harmony.c6
23 files changed, 60 insertions, 55 deletions
diff --git a/arch/parisc/kernel/perf.c b/arch/parisc/kernel/perf.c
index b3ad0a505b87..44670d6e06f4 100644
--- a/arch/parisc/kernel/perf.c
+++ b/arch/parisc/kernel/perf.c
@@ -746,7 +746,8 @@ static int perf_write_image(uint64_t *memaddr)
746 uint64_t *bptr; 746 uint64_t *bptr;
747 uint32_t dwords; 747 uint32_t dwords;
748 uint32_t *intrigue_rdr; 748 uint32_t *intrigue_rdr;
749 uint64_t *intrigue_bitmask, tmp64, proc_hpa; 749 uint64_t *intrigue_bitmask, tmp64;
750 void __iomem *runway;
750 struct rdr_tbl_ent *tentry; 751 struct rdr_tbl_ent *tentry;
751 int i; 752 int i;
752 753
@@ -798,15 +799,16 @@ static int perf_write_image(uint64_t *memaddr)
798 return -1; 799 return -1;
799 } 800 }
800 801
801 proc_hpa = cpu_device->hpa; 802 runway = ioremap(cpu_device->hpa.start, 4096);
802 803
803 /* Merge intrigue bits into Runway STATUS 0 */ 804 /* Merge intrigue bits into Runway STATUS 0 */
804 tmp64 = __raw_readq(proc_hpa + RUNWAY_STATUS) & 0xffecfffffffffffful; 805 tmp64 = __raw_readq(runway + RUNWAY_STATUS) & 0xffecfffffffffffful;
805 __raw_writeq(tmp64 | (*memaddr++ & 0x0013000000000000ul), proc_hpa + RUNWAY_STATUS); 806 __raw_writeq(tmp64 | (*memaddr++ & 0x0013000000000000ul),
807 runway + RUNWAY_STATUS);
806 808
807 /* Write RUNWAY DEBUG registers */ 809 /* Write RUNWAY DEBUG registers */
808 for (i = 0; i < 8; i++) { 810 for (i = 0; i < 8; i++) {
809 __raw_writeq(*memaddr++, proc_hpa + RUNWAY_DEBUG + i); 811 __raw_writeq(*memaddr++, runway + RUNWAY_DEBUG);
810 } 812 }
811 813
812 return 0; 814 return 0;
diff --git a/arch/parisc/kernel/processor.c b/arch/parisc/kernel/processor.c
index 13b721cb9f55..4f5bbcf1f5a4 100644
--- a/arch/parisc/kernel/processor.c
+++ b/arch/parisc/kernel/processor.c
@@ -92,7 +92,7 @@ static int __init processor_probe(struct parisc_device *dev)
92 * May get overwritten by PAT code. 92 * May get overwritten by PAT code.
93 */ 93 */
94 cpuid = boot_cpu_data.cpu_count; 94 cpuid = boot_cpu_data.cpu_count;
95 txn_addr = dev->hpa; /* for legacy PDC */ 95 txn_addr = dev->hpa.start; /* for legacy PDC */
96 96
97#ifdef __LP64__ 97#ifdef __LP64__
98 if (is_pdc_pat()) { 98 if (is_pdc_pat()) {
@@ -122,7 +122,7 @@ static int __init processor_probe(struct parisc_device *dev)
122 * boot time (ie shutdown a CPU from an OS perspective). 122 * boot time (ie shutdown a CPU from an OS perspective).
123 */ 123 */
124 /* get the cpu number */ 124 /* get the cpu number */
125 status = pdc_pat_cpu_get_number(&cpu_info, dev->hpa); 125 status = pdc_pat_cpu_get_number(&cpu_info, dev->hpa.start);
126 126
127 BUG_ON(PDC_OK != status); 127 BUG_ON(PDC_OK != status);
128 128
@@ -130,7 +130,7 @@ static int __init processor_probe(struct parisc_device *dev)
130 printk(KERN_WARNING "IGNORING CPU at 0x%x," 130 printk(KERN_WARNING "IGNORING CPU at 0x%x,"
131 " cpu_slot_id > NR_CPUS" 131 " cpu_slot_id > NR_CPUS"
132 " (%ld > %d)\n", 132 " (%ld > %d)\n",
133 dev->hpa, cpu_info.cpu_num, NR_CPUS); 133 dev->hpa.start, cpu_info.cpu_num, NR_CPUS);
134 /* Ignore CPU since it will only crash */ 134 /* Ignore CPU since it will only crash */
135 boot_cpu_data.cpu_count--; 135 boot_cpu_data.cpu_count--;
136 return 1; 136 return 1;
@@ -149,7 +149,7 @@ static int __init processor_probe(struct parisc_device *dev)
149 149
150 p->loops_per_jiffy = loops_per_jiffy; 150 p->loops_per_jiffy = loops_per_jiffy;
151 p->dev = dev; /* Save IODC data in case we need it */ 151 p->dev = dev; /* Save IODC data in case we need it */
152 p->hpa = dev->hpa; /* save CPU hpa */ 152 p->hpa = dev->hpa.start; /* save CPU hpa */
153 p->cpuid = cpuid; /* save CPU id */ 153 p->cpuid = cpuid; /* save CPU id */
154 p->txn_addr = txn_addr; /* save CPU IRQ address */ 154 p->txn_addr = txn_addr; /* save CPU IRQ address */
155#ifdef CONFIG_SMP 155#ifdef CONFIG_SMP
diff --git a/drivers/input/keyboard/hilkbd.c b/drivers/input/keyboard/hilkbd.c
index 8aa81c9ac2f7..e7a1e14f8b0c 100644
--- a/drivers/input/keyboard/hilkbd.c
+++ b/drivers/input/keyboard/hilkbd.c
@@ -278,11 +278,11 @@ static int __init
278hil_init_chip(struct parisc_device *dev) 278hil_init_chip(struct parisc_device *dev)
279{ 279{
280 if (!dev->irq) { 280 if (!dev->irq) {
281 printk(KERN_WARNING "HIL: IRQ not found for HIL bus at 0x%08lx\n", dev->hpa); 281 printk(KERN_WARNING "HIL: IRQ not found for HIL bus at 0x%08lx\n", dev->hpa.start);
282 return -ENODEV; 282 return -ENODEV;
283 } 283 }
284 284
285 hil_base = dev->hpa; 285 hil_base = dev->hpa.start;
286 hil_irq = dev->irq; 286 hil_irq = dev->irq;
287 hil_dev.dev_id = dev; 287 hil_dev.dev_id = dev;
288 288
diff --git a/drivers/input/serio/gscps2.c b/drivers/input/serio/gscps2.c
index 4bad2810190c..9790d7169a53 100644
--- a/drivers/input/serio/gscps2.c
+++ b/drivers/input/serio/gscps2.c
@@ -331,7 +331,7 @@ static int __init gscps2_probe(struct parisc_device *dev)
331{ 331{
332 struct gscps2port *ps2port; 332 struct gscps2port *ps2port;
333 struct serio *serio; 333 struct serio *serio;
334 unsigned long hpa = dev->hpa; 334 unsigned long hpa = dev->hpa.start;
335 int ret; 335 int ret;
336 336
337 if (!dev->irq) 337 if (!dev->irq)
diff --git a/drivers/input/serio/hp_sdc.c b/drivers/input/serio/hp_sdc.c
index 045b9a7a9dbb..a10348bb25e9 100644
--- a/drivers/input/serio/hp_sdc.c
+++ b/drivers/input/serio/hp_sdc.c
@@ -875,9 +875,9 @@ static int __init hp_sdc_init_hppa(struct parisc_device *d)
875 hp_sdc.dev = d; 875 hp_sdc.dev = d;
876 hp_sdc.irq = d->irq; 876 hp_sdc.irq = d->irq;
877 hp_sdc.nmi = d->aux_irq; 877 hp_sdc.nmi = d->aux_irq;
878 hp_sdc.base_io = d->hpa; 878 hp_sdc.base_io = d->hpa.start;
879 hp_sdc.data_io = d->hpa + 0x800; 879 hp_sdc.data_io = d->hpa.start + 0x800;
880 hp_sdc.status_io = d->hpa + 0x801; 880 hp_sdc.status_io = d->hpa.start + 0x801;
881 881
882 return hp_sdc_init(); 882 return hp_sdc_init();
883} 883}
diff --git a/drivers/net/lasi_82596.c b/drivers/net/lasi_82596.c
index 180e526a2049..a63d8a317d9e 100644
--- a/drivers/net/lasi_82596.c
+++ b/drivers/net/lasi_82596.c
@@ -1528,17 +1528,18 @@ lan_init_chip(struct parisc_device *dev)
1528 1528
1529 if (!dev->irq) { 1529 if (!dev->irq) {
1530 printk(KERN_ERR "%s: IRQ not found for i82596 at 0x%lx\n", 1530 printk(KERN_ERR "%s: IRQ not found for i82596 at 0x%lx\n",
1531 __FILE__, dev->hpa); 1531 __FILE__, dev->hpa.start);
1532 return -ENODEV; 1532 return -ENODEV;
1533 } 1533 }
1534 1534
1535 printk(KERN_INFO "Found i82596 at 0x%lx, IRQ %d\n", dev->hpa, dev->irq); 1535 printk(KERN_INFO "Found i82596 at 0x%lx, IRQ %d\n", dev->hpa.start,
1536 dev->irq);
1536 1537
1537 netdevice = alloc_etherdev(0); 1538 netdevice = alloc_etherdev(0);
1538 if (!netdevice) 1539 if (!netdevice)
1539 return -ENOMEM; 1540 return -ENOMEM;
1540 1541
1541 netdevice->base_addr = dev->hpa; 1542 netdevice->base_addr = dev->hpa.start;
1542 netdevice->irq = dev->irq; 1543 netdevice->irq = dev->irq;
1543 1544
1544 retval = i82596_probe(netdevice, &dev->dev); 1545 retval = i82596_probe(netdevice, &dev->dev);
diff --git a/drivers/parisc/asp.c b/drivers/parisc/asp.c
index 52f37b424318..558420bc9f88 100644
--- a/drivers/parisc/asp.c
+++ b/drivers/parisc/asp.c
@@ -77,12 +77,12 @@ asp_init_chip(struct parisc_device *dev)
77 struct gsc_irq gsc_irq; 77 struct gsc_irq gsc_irq;
78 int ret; 78 int ret;
79 79
80 asp.version = gsc_readb(dev->hpa + ASP_VER_OFFSET) & 0xf; 80 asp.version = gsc_readb(dev->hpa.start + ASP_VER_OFFSET) & 0xf;
81 asp.name = (asp.version == 1) ? "Asp" : "Cutoff"; 81 asp.name = (asp.version == 1) ? "Asp" : "Cutoff";
82 asp.hpa = ASP_INTERRUPT_ADDR; 82 asp.hpa = ASP_INTERRUPT_ADDR;
83 83
84 printk(KERN_INFO "%s version %d at 0x%lx found.\n", 84 printk(KERN_INFO "%s version %d at 0x%lx found.\n",
85 asp.name, asp.version, dev->hpa); 85 asp.name, asp.version, dev->hpa.start);
86 86
87 /* the IRQ ASP should use */ 87 /* the IRQ ASP should use */
88 ret = -EBUSY; 88 ret = -EBUSY;
diff --git a/drivers/parisc/ccio-dma.c b/drivers/parisc/ccio-dma.c
index 2bb1889c4c4f..80d0927dc8a4 100644
--- a/drivers/parisc/ccio-dma.c
+++ b/drivers/parisc/ccio-dma.c
@@ -1546,7 +1546,7 @@ static int ccio_probe(struct parisc_device *dev)
1546 1546
1547 ioc->name = dev->id.hversion == U2_IOA_RUNWAY ? "U2" : "UTurn"; 1547 ioc->name = dev->id.hversion == U2_IOA_RUNWAY ? "U2" : "UTurn";
1548 1548
1549 printk(KERN_INFO "Found %s at 0x%lx\n", ioc->name, dev->hpa); 1549 printk(KERN_INFO "Found %s at 0x%lx\n", ioc->name, dev->hpa.start);
1550 1550
1551 for (i = 0; i < ioc_count; i++) { 1551 for (i = 0; i < ioc_count; i++) {
1552 ioc_p = &(*ioc_p)->next; 1552 ioc_p = &(*ioc_p)->next;
@@ -1554,7 +1554,7 @@ static int ccio_probe(struct parisc_device *dev)
1554 *ioc_p = ioc; 1554 *ioc_p = ioc;
1555 1555
1556 ioc->hw_path = dev->hw_path; 1556 ioc->hw_path = dev->hw_path;
1557 ioc->ioc_hpa = (struct ioa_registers *)dev->hpa; 1557 ioc->ioc_regs = ioremap(dev->hpa.start, 4096);
1558 ccio_ioc_init(ioc); 1558 ccio_ioc_init(ioc);
1559 ccio_init_resources(ioc); 1559 ccio_init_resources(ioc);
1560 hppa_dma_ops = &ccio_ops; 1560 hppa_dma_ops = &ccio_ops;
diff --git a/drivers/parisc/ccio-rm-dma.c b/drivers/parisc/ccio-rm-dma.c
index 57e6385976e2..356b8357bccc 100644
--- a/drivers/parisc/ccio-rm-dma.c
+++ b/drivers/parisc/ccio-rm-dma.c
@@ -167,7 +167,7 @@ ccio_probe(struct parisc_device *dev)
167{ 167{
168 printk(KERN_INFO "%s found %s at 0x%lx\n", MODULE_NAME, 168 printk(KERN_INFO "%s found %s at 0x%lx\n", MODULE_NAME,
169 dev->id.hversion == U2_BC_GSC ? "U2" : "UTurn", 169 dev->id.hversion == U2_BC_GSC ? "U2" : "UTurn",
170 dev->hpa); 170 dev->hpa.start);
171 171
172/* 172/*
173** FIXME - should check U2 registers to verify it's really running 173** FIXME - should check U2 registers to verify it's really running
diff --git a/drivers/parisc/dino.c b/drivers/parisc/dino.c
index 8c61705e67a5..37820b0ae5ee 100644
--- a/drivers/parisc/dino.c
+++ b/drivers/parisc/dino.c
@@ -902,15 +902,15 @@ void ccio_cujo20_fixup(struct parisc_device *dev, u32 iovp);
902** If so, initialize the chip appropriately (card-mode vs bridge mode). 902** If so, initialize the chip appropriately (card-mode vs bridge mode).
903** Much of the initialization is common though. 903** Much of the initialization is common though.
904*/ 904*/
905static int __init 905static int __init dino_probe(struct parisc_device *dev)
906dino_driver_callback(struct parisc_device *dev)
907{ 906{
908 struct dino_device *dino_dev; // Dino specific control struct 907 struct dino_device *dino_dev; // Dino specific control struct
909 const char *version = "unknown"; 908 const char *version = "unknown";
910 char *name; 909 char *name;
911 int is_cujo = 0; 910 int is_cujo = 0;
912 struct pci_bus *bus; 911 struct pci_bus *bus;
913 912 unsigned long hpa = dev->hpa.start;
913
914 name = "Dino"; 914 name = "Dino";
915 if (is_card_dino(&dev->id)) { 915 if (is_card_dino(&dev->id)) {
916 version = "3.x (card mode)"; 916 version = "3.x (card mode)";
diff --git a/drivers/parisc/eisa.c b/drivers/parisc/eisa.c
index 0afeedddf535..6362bf99eff6 100644
--- a/drivers/parisc/eisa.c
+++ b/drivers/parisc/eisa.c
@@ -315,7 +315,7 @@ static int __devinit eisa_probe(struct parisc_device *dev)
315 char *name = is_mongoose(dev) ? "Mongoose" : "Wax"; 315 char *name = is_mongoose(dev) ? "Mongoose" : "Wax";
316 316
317 printk(KERN_INFO "%s EISA Adapter found at 0x%08lx\n", 317 printk(KERN_INFO "%s EISA Adapter found at 0x%08lx\n",
318 name, dev->hpa); 318 name, dev->hpa.start);
319 319
320 eisa_dev.hba.dev = dev; 320 eisa_dev.hba.dev = dev;
321 eisa_dev.hba.iommu = ccio_get_iommu(dev); 321 eisa_dev.hba.iommu = ccio_get_iommu(dev);
diff --git a/drivers/parisc/hppb.c b/drivers/parisc/hppb.c
index a6eae3e7c0cd..5edf93f80757 100644
--- a/drivers/parisc/hppb.c
+++ b/drivers/parisc/hppb.c
@@ -68,14 +68,14 @@ static int hppb_probe(struct parisc_device *dev)
68 memset(card->next, '\0', sizeof(struct hppb_card)); 68 memset(card->next, '\0', sizeof(struct hppb_card));
69 card = card->next; 69 card = card->next;
70 } 70 }
71 printk(KERN_INFO "Found GeckoBoa at 0x%lx\n", dev->hpa); 71 printk(KERN_INFO "Found GeckoBoa at 0x%lx\n", dev->hpa.start);
72 72
73 card->hpa = dev->hpa; 73 card->hpa = dev->hpa.start;
74 card->mmio_region.name = "HP-PB Bus"; 74 card->mmio_region.name = "HP-PB Bus";
75 card->mmio_region.flags = IORESOURCE_MEM; 75 card->mmio_region.flags = IORESOURCE_MEM;
76 76
77 card->mmio_region.start = __raw_readl(dev->hpa + IO_IO_LOW); 77 card->mmio_region.start = gsc_readl(dev->hpa.start + IO_IO_LOW);
78 card->mmio_region.end = __raw_readl(dev->hpa + IO_IO_HIGH) - 1; 78 card->mmio_region.end = gsc_readl(dev->hpa.start + IO_IO_HIGH) - 1;
79 79
80 status = ccio_request_resource(dev, &card->mmio_region); 80 status = ccio_request_resource(dev, &card->mmio_region);
81 if(status < 0) { 81 if(status < 0) {
diff --git a/drivers/parisc/lasi.c b/drivers/parisc/lasi.c
index c776c372ae4e..a8c20396ffbe 100644
--- a/drivers/parisc/lasi.c
+++ b/drivers/parisc/lasi.c
@@ -175,7 +175,7 @@ lasi_init_chip(struct parisc_device *dev)
175 return -ENOMEM; 175 return -ENOMEM;
176 176
177 lasi->name = "Lasi"; 177 lasi->name = "Lasi";
178 lasi->hpa = dev->hpa; 178 lasi->hpa = dev->hpa.start;
179 179
180 /* Check the 4-bit (yes, only 4) version register */ 180 /* Check the 4-bit (yes, only 4) version register */
181 lasi->version = gsc_readl(lasi->hpa + LASI_VER) & 0xf; 181 lasi->version = gsc_readl(lasi->hpa + LASI_VER) & 0xf;
diff --git a/drivers/parisc/lba_pci.c b/drivers/parisc/lba_pci.c
index 7fdd80b7eb47..5e495dcbc58a 100644
--- a/drivers/parisc/lba_pci.c
+++ b/drivers/parisc/lba_pci.c
@@ -1288,7 +1288,7 @@ lba_legacy_resources(struct parisc_device *pa_dev, struct lba_device *lba_dev)
1288 ** Adjust "window" for this rope. 1288 ** Adjust "window" for this rope.
1289 */ 1289 */
1290 rsize /= ROPES_PER_IOC; 1290 rsize /= ROPES_PER_IOC;
1291 r->start += (rsize + 1) * LBA_NUM(pa_dev->hpa); 1291 r->start += (rsize + 1) * LBA_NUM(pa_dev->hpa.start);
1292 r->end = r->start + rsize; 1292 r->end = r->start + rsize;
1293 } else { 1293 } else {
1294 r->end = r->start = 0; /* Not enabled. */ 1294 r->end = r->start = 0; /* Not enabled. */
@@ -1458,7 +1458,7 @@ lba_driver_probe(struct parisc_device *dev)
1458 u32 func_class; 1458 u32 func_class;
1459 void *tmp_obj; 1459 void *tmp_obj;
1460 char *version; 1460 char *version;
1461 void __iomem *addr = ioremap(dev->hpa, 4096); 1461 void __iomem *addr = ioremap(dev->hpa.start, 4096);
1462 1462
1463 /* Read HW Rev First */ 1463 /* Read HW Rev First */
1464 func_class = READ_REG32(addr + LBA_FCLASS); 1464 func_class = READ_REG32(addr + LBA_FCLASS);
@@ -1476,7 +1476,7 @@ lba_driver_probe(struct parisc_device *dev)
1476 } 1476 }
1477 1477
1478 printk(KERN_INFO "%s version %s (0x%x) found at 0x%lx\n", 1478 printk(KERN_INFO "%s version %s (0x%x) found at 0x%lx\n",
1479 MODULE_NAME, version, func_class & 0xf, dev->hpa); 1479 MODULE_NAME, version, func_class & 0xf, dev->hpa.start);
1480 1480
1481 if (func_class < 2) { 1481 if (func_class < 2) {
1482 printk(KERN_WARNING "Can't support LBA older than " 1482 printk(KERN_WARNING "Can't support LBA older than "
@@ -1503,17 +1503,17 @@ lba_driver_probe(struct parisc_device *dev)
1503 * but for the mask for func_class. 1503 * but for the mask for func_class.
1504 */ 1504 */
1505 printk(KERN_INFO "%s version %s (0x%x) found at 0x%lx\n", 1505 printk(KERN_INFO "%s version %s (0x%x) found at 0x%lx\n",
1506 MODULE_NAME, version, func_class & 0xff, dev->hpa); 1506 MODULE_NAME, version, func_class & 0xff, dev->hpa.start);
1507 cfg_ops = &mercury_cfg_ops; 1507 cfg_ops = &mercury_cfg_ops;
1508 } else { 1508 } else {
1509 printk(KERN_ERR "Unknown LBA found at 0x%lx\n", dev->hpa); 1509 printk(KERN_ERR "Unknown LBA found at 0x%lx\n", dev->hpa.start);
1510 return -ENODEV; 1510 return -ENODEV;
1511 } 1511 }
1512 1512
1513 /* 1513 /*
1514 ** Tell I/O SAPIC driver we have a IRQ handler/region. 1514 ** Tell I/O SAPIC driver we have a IRQ handler/region.
1515 */ 1515 */
1516 tmp_obj = iosapic_register(dev->hpa + LBA_IOSAPIC_BASE); 1516 tmp_obj = iosapic_register(dev->hpa.start + LBA_IOSAPIC_BASE);
1517 1517
1518 /* NOTE: PCI devices (e.g. 103c:1005 graphics card) which don't 1518 /* NOTE: PCI devices (e.g. 103c:1005 graphics card) which don't
1519 ** have an IRT entry will get NULL back from iosapic code. 1519 ** have an IRT entry will get NULL back from iosapic code.
@@ -1635,7 +1635,7 @@ void __init lba_init(void)
1635*/ 1635*/
1636void lba_set_iregs(struct parisc_device *lba, u32 ibase, u32 imask) 1636void lba_set_iregs(struct parisc_device *lba, u32 ibase, u32 imask)
1637{ 1637{
1638 void __iomem * base_addr = ioremap(lba->hpa, 4096); 1638 void __iomem * base_addr = ioremap(lba->hpa.start, 4096);
1639 1639
1640 imask <<= 2; /* adjust for hints - 2 more bits */ 1640 imask <<= 2; /* adjust for hints - 2 more bits */
1641 1641
diff --git a/drivers/parisc/sba_iommu.c b/drivers/parisc/sba_iommu.c
index a8405f05fb5f..6256ad365d0b 100644
--- a/drivers/parisc/sba_iommu.c
+++ b/drivers/parisc/sba_iommu.c
@@ -1600,7 +1600,7 @@ sba_ioc_init(struct parisc_device *sba, struct ioc *ioc, int ioc_num)
1600 1600
1601static void __iomem *ioc_remap(struct sba_device *sba_dev, int offset) 1601static void __iomem *ioc_remap(struct sba_device *sba_dev, int offset)
1602{ 1602{
1603 return ioremap(sba_dev->dev->hpa + offset, SBA_FUNC_SIZE); 1603 return ioremap(sba_dev->dev->hpa.start + offset, SBA_FUNC_SIZE);
1604} 1604}
1605 1605
1606static void sba_hw_init(struct sba_device *sba_dev) 1606static void sba_hw_init(struct sba_device *sba_dev)
@@ -1978,7 +1978,7 @@ sba_driver_callback(struct parisc_device *dev)
1978 u32 func_class; 1978 u32 func_class;
1979 int i; 1979 int i;
1980 char *version; 1980 char *version;
1981 void __iomem *sba_addr = ioremap(dev->hpa, SBA_FUNC_SIZE); 1981 void __iomem *sba_addr = ioremap(dev->hpa.start, SBA_FUNC_SIZE);
1982 1982
1983 sba_dump_ranges(sba_addr); 1983 sba_dump_ranges(sba_addr);
1984 1984
@@ -2020,7 +2020,7 @@ sba_driver_callback(struct parisc_device *dev)
2020 } 2020 }
2021 2021
2022 printk(KERN_INFO "%s found %s at 0x%lx\n", 2022 printk(KERN_INFO "%s found %s at 0x%lx\n",
2023 MODULE_NAME, version, dev->hpa); 2023 MODULE_NAME, version, dev->hpa.start);
2024 2024
2025 sba_dev = kmalloc(sizeof(struct sba_device), GFP_KERNEL); 2025 sba_dev = kmalloc(sizeof(struct sba_device), GFP_KERNEL);
2026 if (!sba_dev) { 2026 if (!sba_dev) {
diff --git a/drivers/parisc/wax.c b/drivers/parisc/wax.c
index e547d7d024d8..17dce2adf7fe 100644
--- a/drivers/parisc/wax.c
+++ b/drivers/parisc/wax.c
@@ -81,7 +81,7 @@ wax_init_chip(struct parisc_device *dev)
81 return -ENOMEM; 81 return -ENOMEM;
82 82
83 wax->name = "wax"; 83 wax->name = "wax";
84 wax->hpa = dev->hpa; 84 wax->hpa = dev->hpa.start;
85 85
86 wax->version = 0; /* gsc_readb(wax->hpa+WAX_VER); */ 86 wax->version = 0; /* gsc_readb(wax->hpa+WAX_VER); */
87 printk(KERN_INFO "%s at 0x%lx found.\n", wax->name, wax->hpa); 87 printk(KERN_INFO "%s at 0x%lx found.\n", wax->name, wax->hpa);
diff --git a/drivers/parport/parport_gsc.c b/drivers/parport/parport_gsc.c
index 02d72acd1c89..fde29a75f888 100644
--- a/drivers/parport/parport_gsc.c
+++ b/drivers/parport/parport_gsc.c
@@ -359,11 +359,12 @@ static int __devinit parport_init_chip(struct parisc_device *dev)
359 unsigned long port; 359 unsigned long port;
360 360
361 if (!dev->irq) { 361 if (!dev->irq) {
362 printk("IRQ not found for parallel device at 0x%lx\n", dev->hpa); 362 printk(KERN_WARNING "IRQ not found for parallel device at 0x%lx\n",
363 dev->hpa.start);
363 return -ENODEV; 364 return -ENODEV;
364 } 365 }
365 366
366 port = dev->hpa + PARPORT_GSC_OFFSET; 367 port = dev->hpa.start + PARPORT_GSC_OFFSET;
367 368
368 /* some older machines with ASP-chip don't support 369 /* some older machines with ASP-chip don't support
369 * the enhanced parport modes. 370 * the enhanced parport modes.
diff --git a/drivers/scsi/lasi700.c b/drivers/scsi/lasi700.c
index 123f4933d8f5..8028418b3ad6 100644
--- a/drivers/scsi/lasi700.c
+++ b/drivers/scsi/lasi700.c
@@ -98,7 +98,7 @@ MODULE_DEVICE_TABLE(parisc, lasi700_ids);
98static int __init 98static int __init
99lasi700_probe(struct parisc_device *dev) 99lasi700_probe(struct parisc_device *dev)
100{ 100{
101 unsigned long base = dev->hpa + LASI_SCSI_CORE_OFFSET; 101 unsigned long base = dev->hpa.start + LASI_SCSI_CORE_OFFSET;
102 struct NCR_700_Host_Parameters *hostdata; 102 struct NCR_700_Host_Parameters *hostdata;
103 struct Scsi_Host *host; 103 struct Scsi_Host *host;
104 104
diff --git a/drivers/scsi/zalon.c b/drivers/scsi/zalon.c
index 5a51051e31f0..b131432c677d 100644
--- a/drivers/scsi/zalon.c
+++ b/drivers/scsi/zalon.c
@@ -88,7 +88,7 @@ zalon_probe(struct parisc_device *dev)
88 struct gsc_irq gsc_irq; 88 struct gsc_irq gsc_irq;
89 u32 zalon_vers; 89 u32 zalon_vers;
90 int error = -ENODEV; 90 int error = -ENODEV;
91 void __iomem *zalon = ioremap(dev->hpa, 4096); 91 void __iomem *zalon = ioremap(dev->hpa.start, 4096);
92 void __iomem *io_port = zalon + GSC_SCSI_ZALON_OFFSET; 92 void __iomem *io_port = zalon + GSC_SCSI_ZALON_OFFSET;
93 static int unit = 0; 93 static int unit = 0;
94 struct Scsi_Host *host; 94 struct Scsi_Host *host;
@@ -127,7 +127,7 @@ zalon_probe(struct parisc_device *dev)
127 device.chip = zalon720_chip; 127 device.chip = zalon720_chip;
128 device.host_id = 7; 128 device.host_id = 7;
129 device.dev = &dev->dev; 129 device.dev = &dev->dev;
130 device.slot.base = dev->hpa + GSC_SCSI_ZALON_OFFSET; 130 device.slot.base = dev->hpa.start + GSC_SCSI_ZALON_OFFSET;
131 device.slot.base_v = io_port; 131 device.slot.base_v = io_port;
132 device.slot.irq = dev->irq; 132 device.slot.irq = dev->irq;
133 device.differential = 2; 133 device.differential = 2;
diff --git a/drivers/serial/8250_gsc.c b/drivers/serial/8250_gsc.c
index 431aa5761a7a..abc5a0cfe243 100644
--- a/drivers/serial/8250_gsc.c
+++ b/drivers/serial/8250_gsc.c
@@ -42,12 +42,13 @@ serial_init_chip(struct parisc_device *dev)
42 */ 42 */
43 if (parisc_parent(dev)->id.hw_type != HPHW_IOA) { 43 if (parisc_parent(dev)->id.hw_type != HPHW_IOA) {
44 printk(KERN_INFO "Serial: device 0x%lx not configured.\n" 44 printk(KERN_INFO "Serial: device 0x%lx not configured.\n"
45 "Enable support for Wax, Lasi, Asp or Dino.\n", dev->hpa); 45 "Enable support for Wax, Lasi, Asp or Dino.\n",
46 dev->hpa.start);
46 } 47 }
47 return -ENODEV; 48 return -ENODEV;
48 } 49 }
49 50
50 address = dev->hpa; 51 address = dev->hpa.start;
51 if (dev->id.sversion != 0x8d) { 52 if (dev->id.sversion != 0x8d) {
52 address += 0x800; 53 address += 0x800;
53 } 54 }
diff --git a/drivers/serial/mux.c b/drivers/serial/mux.c
index a12005b08bca..009ce83c8ef5 100644
--- a/drivers/serial/mux.c
+++ b/drivers/serial/mux.c
@@ -444,7 +444,7 @@ static int __init mux_probe(struct parisc_device *dev)
444 unsigned long bytecnt; 444 unsigned long bytecnt;
445 struct uart_port *port; 445 struct uart_port *port;
446 446
447 status = pdc_iodc_read(&bytecnt, dev->hpa, 0, iodc_data, 32); 447 status = pdc_iodc_read(&bytecnt, dev->hpa.start, 0, iodc_data, 32);
448 if(status != PDC_OK) { 448 if(status != PDC_OK) {
449 printk(KERN_ERR "Serial mux: Unable to read IODC.\n"); 449 printk(KERN_ERR "Serial mux: Unable to read IODC.\n");
450 return 1; 450 return 1;
diff --git a/include/asm-parisc/parisc-device.h b/include/asm-parisc/parisc-device.h
index cbde8b41c84b..1d247e32a608 100644
--- a/include/asm-parisc/parisc-device.h
+++ b/include/asm-parisc/parisc-device.h
@@ -1,7 +1,7 @@
1#include <linux/device.h> 1#include <linux/device.h>
2 2
3struct parisc_device { 3struct parisc_device {
4 unsigned long hpa; /* Hard Physical Address */ 4 struct resource hpa; /* Hard Physical Address */
5 struct parisc_device_id id; 5 struct parisc_device_id id;
6 struct parisc_driver *driver; /* Driver for this device */ 6 struct parisc_driver *driver; /* Driver for this device */
7 char name[80]; /* The hardware description */ 7 char name[80]; /* The hardware description */
diff --git a/sound/parisc/harmony.c b/sound/parisc/harmony.c
index f560dd8cdb90..8b3ea26469ad 100644
--- a/sound/parisc/harmony.c
+++ b/sound/parisc/harmony.c
@@ -852,14 +852,14 @@ snd_harmony_create(snd_card_t *card,
852 memset(&h->pbuf, 0, sizeof(h->pbuf)); 852 memset(&h->pbuf, 0, sizeof(h->pbuf));
853 memset(&h->cbuf, 0, sizeof(h->cbuf)); 853 memset(&h->cbuf, 0, sizeof(h->cbuf));
854 854
855 h->hpa = padev->hpa; 855 h->hpa = padev->hpa.start;
856 h->card = card; 856 h->card = card;
857 h->dev = padev; 857 h->dev = padev;
858 h->irq = padev->irq; 858 h->irq = padev->irq;
859 h->iobase = ioremap_nocache(padev->hpa, HARMONY_SIZE); 859 h->iobase = ioremap_nocache(padev->hpa.start, HARMONY_SIZE);
860 if (h->iobase == NULL) { 860 if (h->iobase == NULL) {
861 printk(KERN_ERR PFX "unable to remap hpa 0x%lx\n", 861 printk(KERN_ERR PFX "unable to remap hpa 0x%lx\n",
862 padev->hpa); 862 padev->hpa.start);
863 err = -EBUSY; 863 err = -EBUSY;
864 goto free_and_ret; 864 goto free_and_ret;
865 } 865 }