Commit a01c8cb1 authored by Matthew Wilcox's avatar Matthew Wilcox Committed by Kyle McMartin

[PARISC] Fix GSC graphics cards with 64MB regions

Make knapps work with its 64MB gfx card.  I probably just broke another
machine in the process, but assuming 64MB when 64MB aligned is probably
safer than assuming 32MB all the time.
Signed-off-by: default avatarMatthew Wilcox <willy@parisc-linux.org>
Signed-off-by: default avatarKyle McMartin <kyle@parisc-linux.org>
parent e0565a1c
...@@ -515,8 +515,13 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path) ...@@ -515,8 +515,13 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path)
(iodc_data[5] << 8) | iodc_data[6]; (iodc_data[5] << 8) | iodc_data[6];
dev->hpa.name = parisc_pathname(dev); dev->hpa.name = parisc_pathname(dev);
dev->hpa.start = hpa; dev->hpa.start = hpa;
if (hpa == 0xf4000000 || hpa == 0xf6000000 || /* This is awkward. The STI spec says that gfx devices may occupy
hpa == 0xf8000000 || hpa == 0xfa000000) { * 32MB or 64MB. Unfortunately, we don't know how to tell whether
* it's the former or the latter. Assumptions either way can hurt us.
*/
if (hpa == 0xf4000000 || hpa == 0xf8000000) {
dev->hpa.end = hpa + 0x03ffffff;
} else if (hpa == 0xf6000000 || hpa == 0xfa000000) {
dev->hpa.end = hpa + 0x01ffffff; dev->hpa.end = hpa + 0x01ffffff;
} else { } else {
dev->hpa.end = hpa + 0xfff; dev->hpa.end = hpa + 0xfff;
...@@ -834,7 +839,7 @@ static void print_parisc_device(struct parisc_device *dev) ...@@ -834,7 +839,7 @@ static void print_parisc_device(struct parisc_device *dev)
if (dev->num_addrs) { if (dev->num_addrs) {
int k; int k;
printk(", additional addresses: "); printk(", additional addresses: ");
for (k = 0; k < dev->num_addrs; k++) for (k = 0; k < dev->num_addrs; k++)
printk("0x%lx ", dev->addr[k]); printk("0x%lx ", dev->addr[k]);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment