Re: rivafb on 12" pbook
On Mon, 2 Feb 2004, Guido Guenther wrote:
> On Mon, Feb 02, 2004 at 12:45:35PM -0800, Mark Vojkovich wrote:
> > Most of your architecture assignments are wrong. ALL of those
> > in the above snipped are NV_ARCH_10. You should use the logic in
> > the "nv" driver.
> You mean:
>
> pNv->Architecture = (pNv->Chipset & 0x0f00) >> 4;
>
> if(pNv->Architecture < NV_ARCH_10)
> pNv->Architecture = NV_ARCH_04;
>
> + we'd have to handle the RIVA128 differently. James, would you let such a patch in?
> We could kill the whole arch_rev field in riva_chip_info then.
For current hardware including Riva128 it would be:
pNv->Architecture = (pNv->Chipset & 0x0f00) >> 4;
if(pNv->Chipset == 0x12D20018)
pNv->Architecture = NV_ARCH_03;
else if (pNv->Architecture < NV_ARCH_10)
pNv->Architecture = NV_ARCH_04;
A note of warning, however. The next generation of chips will not
be following this formula, so there will need to be more exceptions
made. In an upcoming "nv" driver I will be going back to a scenario
like:
switch (pNv->Chipset & 0x0ff0) {
case 0x0100: /* GeForce 256 */
case 0x0110: /* GeForce2 MX */
case 0x0150: /* GeForce2 */
case 0x0170: /* GeForce4 MX */
case 0x0180: /* GeForce4 MX (8x AGP) */
case 0x01A0: /* nForce */
case 0x01F0: /* nForce2 */
pNv->Architecture = NV_ARCH_10;
break;
case 0x0200: /* GeForce3 */
case 0x0250: /* GeForce4 Ti */
case 0x0280: /* GeForce4 Ti (8x AGP) */
pNv->Architecture = NV_ARCH_20;
break;
case 0x0300: /* GeForceFX 5800 */
case 0x0310: /* GeForceFX 5600 */
case 0x0320: /* GeForceFX 5200 */
case 0x0330: /* GeForceFX 5900 */
case 0x0340: /* GeForceFX 5700 */
pNv->Architecture = NV_ARCH_30;
break;
case 0x0020: /* TNT, TNT2 */
pNv->Architecture = NV_ARCH_04;
break;
case 0x0010: /* Riva128 */
pNv->Architecture = NV_ARCH_03;
break;
default: /* unknown architecture */
break;
}
Mark.
Reply to: