[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: Matthew Wilcox <willy@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>

authored by

Matthew Wilcox and committed by
Kyle McMartin
a01c8cb1 e0565a1c

+8 -3
+8 -3
arch/parisc/kernel/drivers.c
··· 515 515 (iodc_data[5] << 8) | iodc_data[6]; 516 516 dev->hpa.name = parisc_pathname(dev); 517 517 dev->hpa.start = hpa; 518 - if (hpa == 0xf4000000 || hpa == 0xf6000000 || 519 - hpa == 0xf8000000 || hpa == 0xfa000000) { 518 + /* This is awkward. The STI spec says that gfx devices may occupy 519 + * 32MB or 64MB. Unfortunately, we don't know how to tell whether 520 + * it's the former or the latter. Assumptions either way can hurt us. 521 + */ 522 + if (hpa == 0xf4000000 || hpa == 0xf8000000) { 523 + dev->hpa.end = hpa + 0x03ffffff; 524 + } else if (hpa == 0xf6000000 || hpa == 0xfa000000) { 520 525 dev->hpa.end = hpa + 0x01ffffff; 521 526 } else { 522 527 dev->hpa.end = hpa + 0xfff; ··· 839 834 840 835 if (dev->num_addrs) { 841 836 int k; 842 - printk(", additional addresses: "); 837 + printk(", additional addresses: "); 843 838 for (k = 0; k < dev->num_addrs; k++) 844 839 printk("0x%lx ", dev->addr[k]); 845 840 }