apply fix for nvidia Reference: /n/atom/patch/applied/vganv0390 Date: Tue Apr 15 15:18:38 CES 2014 Signed-off-by: quanstro@quanstro.net --- /sys/src/cmd/aux/vga/nvidia.c Tue Apr 15 15:18:34 2014 +++ /sys/src/cmd/aux/vga/nvidia.c Tue Apr 15 15:18:36 2014 @@ -205,7 +205,7 @@ case 0x01D0: case 0x0210: case 0x0290: /* nvidia 7950 */ - case 0x0390: + case 0x0390: /* nvidia 7600 */ case 0x0220: /* nvidia 6200 */ nv->arch = 40; break; @@ -814,7 +814,7 @@ nv->pramin[0x0815] = 0; nv->pramin[0x0816] = 0; nv->pramin[0x0817] = 0; - nv->pramin[0x0818] = 0x0100805F; + nv->pramin[0x0818] = 0x0100805F; /*WaitVSync not possible, if possible =0x01008062 */ nv->pramin[0x0819] = 0; nv->pramin[0x081A] = 0x12001200; nv->pramin[0x081B] = 0; @@ -933,7 +933,7 @@ case 0x0090: case 0x0290: case 0x0390: - nv->pgraph[0x0608/4] |= 0x00100000; + nv->pgraph[0x0608/4] |= nv->pfb[0x0608/4] | 0x00100000; nv->pgraph[0x0828/4] = 0x07830610; nv->pgraph[0x082C/4] = 0x0000016A; break; @@ -1018,8 +1018,16 @@ nv->pgraph[0x0864/4] = vga->vmz - 1; nv->pgraph[0x0868/4] = vga->vmz - 1; } else { - nv->pgraph[0x09F0/4] = nv->pfb[0x0200/4]; - nv->pgraph[0x09F4/4] = nv->pfb[0x0204/4]; + if ((nv->did & 0xfff0) == 0x0090 || + (nv->did & 0xfff0) == 0x01D0 || + (nv->did & 0xfff0) == 0x0290 || + (nv->did & 0xfff0) == 0x0390) { + nv->pgraph[0x0DF0/4] = nv->pfb[0x0200/4]; + nv->pgraph[0x0DF4/4] = nv->pfb[0x0204/4]; + } else { + nv->pgraph[0x09F0/4] = nv->pfb[0x0200/4]; + nv->pgraph[0x09F4/4] = nv->pfb[0x0204/4]; + } nv->pgraph[0x69F0/4] = nv->pfb[0x0200/4]; nv->pgraph[0x69F4/4] = nv->pfb[0x0204/4];