36 if ((device->
chipset & 0xf0) == 0x60)
39 return !(0x0baf & (1 << (device->
chipset & 0x0f)));
45 nv_wr32(pfb, 0x100604 + (i * 0x10), tile->
limit);
46 nv_wr32(pfb, 0x100608 + (i * 0x10), tile->
pitch);
47 nv_wr32(pfb, 0x100600 + (i * 0x10), tile->
addr);
53 nv_wr32(priv, 0x100800, 0x00000001);
59 nv_wr32(priv, 0x100850, 0x80000000);
60 nv_wr32(priv, 0x100800, 0x00000001);
73 switch (nv_device(priv)->
chipset) {
76 nv_mask(priv, 0x10033c, 0x00008000, 0x00000000);
79 if (nv44_graph_class(nv_device(priv)))
80 nv44_fb_init_gart(priv);
82 nv40_fb_init_gart(priv);
99 *pobject = nv_object(priv);
110 u32 pbus1218 = nv_rd32(priv, 0x001218);
111 switch (pbus1218 & 0x00000300) {
112 case 0x00000000: priv->
base.ram.type = NV_MEM_TYPE_SDRAM;
break;
113 case 0x00000100: priv->
base.ram.type = NV_MEM_TYPE_DDR1;
break;
114 case 0x00000200: priv->
base.ram.type = NV_MEM_TYPE_GDDR3;
break;
115 case 0x00000300: priv->
base.ram.type = NV_MEM_TYPE_DDR2;
break;
119 u32 pfb914 = nv_rd32(priv, 0x100914);
120 switch (pfb914 & 0x00000003) {
121 case 0x00000000: priv->
base.ram.type = NV_MEM_TYPE_DDR1;
break;
122 case 0x00000001: priv->
base.ram.type = NV_MEM_TYPE_DDR2;
break;
123 case 0x00000002: priv->
base.ram.type = NV_MEM_TYPE_GDDR3;
break;
124 case 0x00000003:
break;
128 u32 pfb474 = nv_rd32(priv, 0x100474);
129 if (pfb474 & 0x00000004)
130 priv->
base.ram.type = NV_MEM_TYPE_GDDR3;
131 if (pfb474 & 0x00000002)
132 priv->
base.ram.type = NV_MEM_TYPE_DDR2;
133 if (pfb474 & 0x00000001)
134 priv->
base.ram.type = NV_MEM_TYPE_DDR1;
136 priv->
base.ram.type = NV_MEM_TYPE_STOLEN;
139 priv->
base.ram.size = nv_rd32(priv, 0x10020c) & 0xff000000;
145 priv->
base.tile.regions = 8;
152 priv->
base.tile.regions = 15;
155 priv->
base.tile.regions = 12;
163 priv->
base.tile.prog = nv40_fb_tile_prog;
173 .ctor = nv40_fb_ctor,
175 .init = nv40_fb_init,