*/
if(scr->mmio)
return;
- if(p = pcimatch(nil, 0x102C, 0)){
- switch(p->did){
- case 0x00C0: /* 69000 HiQVideo */
- vmsize = 2*1024*1024;
+ p = scr->pci;
+ if(p == nil || p->vid != 0x102C)
+ return;
+ switch(p->did){
+ case 0x00C0: /* 69000 HiQVideo */
+ vmsize = 2*1024*1024;
+ break;
+ case 0x00E0: /* 65550 HiQV32 */
+ case 0x00E4: /* 65554 HiQV32 */
+ case 0x00E5: /* 65555 HiQV32 */
+ switch((hiqvideoxi(Xrx, 0x43)>>1) & 0x03){
+ default:
+ case 0:
+ vmsize = 1*1024*1024;
break;
- case 0x00E0: /* 65550 HiQV32 */
- case 0x00E4: /* 65554 HiQV32 */
- case 0x00E5: /* 65555 HiQV32 */
- switch((hiqvideoxi(Xrx, 0x43)>>1) & 0x03){
- default:
- case 0:
- vmsize = 1*1024*1024;
- break;
- case 1:
- vmsize = 2*1024*1024;
- break;
- }
+ case 1:
+ vmsize = 2*1024*1024;
break;
- default:
- return;
}
- }
- else
+ break;
+ default:
return;
-
- scr->pci = p;
+ }
vgalinearpci(scr);
- if(scr->paddr) {
+ if(scr->paddr)
addvgaseg("hiqvideoscreen", scr->paddr, scr->apsize);
- }
/*
* Find a place for the cursor data in display memory.
* Load, locate and enable the 32x32 cursor.
* Cursor enable in Xr80 better be set already.
*/
- hiqvideocurload(scr, &arrow);
+ hiqvideocurload(scr, &cursor);
hiqvideocurmove(scr, ZP);
hiqvideoxo(Xrx, 0xA0, 0x11);
}