Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 128820
Collapse All | Expand All

(-)work/nvclock/src/backend/nv40.c (-14 / +8 lines)
Lines 105-113 Link Here
105
/ - NV41 0x1f07 6800 pci-e (is this correct?)
105
/ - NV41 0x1f07 6800 pci-e (is this correct?)
106
/ - NV43 0x0703 6200/6600 cards
106
/ - NV43 0x0703 6200/6600 cards
107
/ - NV44 0x0703 6200(Go)/Turbocache cards
107
/ - NV44 0x0703 6200(Go)/Turbocache cards
108
/ - NV46 0x0703 7300 (is this correct?)
108
/ - NV47 0xff3f 7800 cards (Does it support modding??)
109
/ - NV47/NV49 0xff3f 7800/7900 cards
110
/ - NV4B 0x1f07 7600 (is this correct?)
111
*/
109
*/
112
110
113
static int nv40_get_default_mask()
111
static int nv40_get_default_mask()
Lines 123-138 static int nv40_get_default_mask() Link Here
123
			break;
121
			break;
124
		case NV43:
122
		case NV43:
125
		case NV44:
123
		case NV44:
126
		case NV46:
127
			mask = 0x703;
124
			mask = 0x703;
128
			break;
125
			break;
129
		case NV47:
126
		case NV47:
130
		case NV49:
131
			mask = 0xff3f;
127
			mask = 0xff3f;
132
			break;
128
			break;
133
		case NV4B:
134
			mask = 0x1f07;
135
			break;
136
	}
129
	}
137
	return mask;
130
	return mask;
138
}
131
}
Lines 179-186 static int nv40_get_hw_masked_units(char Link Here
179
	{
172
	{
180
		if(byte)
173
		if(byte)
181
		{
174
		{
182
			*pmask = masked_units & 0xff; /* pixel */
175
			*pmask = masked_units & 0xff;		/* pixel */
183
			*vmask = (masked_units >> 8) & 0xff; /* vertex */
176
			*vmask = (masked_units >> 8) & 0xff;	/* vertex */
184
		}
177
		}
185
		else
178
		else
186
		{
179
		{
Lines 259-265 static int nv40_get_pixel_pipelines(char Link Here
259
		nv40_unit_mask_to_binary(pipe_cfg, nv40_get_default_mask() & 0xff, mask);
252
		nv40_unit_mask_to_binary(pipe_cfg, nv40_get_default_mask() & 0xff, mask);
260
253
261
	/* NV44/NV46 use 2 pixel units per pipeline */
254
	/* NV44/NV46 use 2 pixel units per pipeline */
262
	if(nv_card->arch & (NV44 | NV46))
255
	if(nv_card->arch == NV44)
263
		*total = 2;
256
		*total = 2;
264
	else
257
	else
265
		*total = 4;
258
		*total = 4;
Lines 342-348 static float nv43_get_fanspeed() Link Here
342
	/  can be controlled so that the fan turns slower or faster.
335
	/  can be controlled so that the fan turns slower or faster.
343
	/  The value stored in the registers needs to be inverted, so a value of 10% means 90% and so on. (0xff means off, 0 means on)
336
	/  The value stored in the registers needs to be inverted, so a value of 10% means 90% and so on. (0xff means off, 0 means on)
344
	*/
337
	*/
345
	float fanspeed = (0xff - (nv_card->PMC[0x15f4/4] & 0xff)) * 100/0xff;
338
	/* On a 7800GS 5513 means 0 (?) interpolated from meassurements and 5% corresponds to 277 */
339
	float fanspeed = (5513 - (nv_card->PMC[0x15f4/4] & 0x1fff)) * 100/5513;
346
	return fanspeed;
340
	return fanspeed;
347
}
341
}
348
342
Lines 354-360 static void nv43_set_fanspeed(float spee Link Here
354
	if(speed < 10 || speed > 100)
348
	if(speed < 10 || speed > 100)
355
		return;
349
		return;
356
350
357
	value = 0x80000000 + (int)((100 - speed) * 0xff/100);
351
	value = 0x80000000 + (int)((100 - speed) * 5513/100);
358
	nv_card->PMC[0x15f4/4] = value;
352
	nv_card->PMC[0x15f4/4] = value;
359
}
353
}
360
354
Lines 687-693 void nv40_init(void) Link Here
687
	/* Temperature monitoring; all cards after the NV40 feature an internal temperature sensor.
681
	/* Temperature monitoring; all cards after the NV40 feature an internal temperature sensor.
688
	/  Only it is disabled on most 6200/6600(GT) cards but we can re-enable it ;)
682
	/  Only it is disabled on most 6200/6600(GT) cards but we can re-enable it ;)
689
	*/
683
	*/
690
	if((nv_card->arch & (NV43 | NV44 | NV46 | NV47 | NV49 | NV4B)) && !(nv_card->caps & GPU_TEMP_MONITORING))
684
	if((nv_card->arch & (NV43 | NV44 | NV47)) && !(nv_card->caps & GPU_TEMP_MONITORING))
691
	{
685
	{
692
		nv_card->caps |= GPU_TEMP_MONITORING;
686
		nv_card->caps |= GPU_TEMP_MONITORING;
693
		nv_card->sensor_name = (char*)strdup("GPU Internal Sensor");
687
		nv_card->sensor_name = (char*)strdup("GPU Internal Sensor");

Return to bug 128820