[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: