Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 110506 | Differences between
and this patch

Collapse All | Expand All

(-)src/cir_driver.c.orig (-5 / +30 lines)
Lines 119-134 Link Here
119
 * unresolved symbols that are not required.
119
 * unresolved symbols that are not required.
120
 */
120
 */
121
121
122
typedef enum {AvailableOptions, Probe} SubSymbolIdx;
123
typedef ScrnInfoPtr (*subFunctionPtr)(int);
124
122
static const char *alpSymbols[] = {
125
static const char *alpSymbols[] = {
123
	"AlpAvailableOptions",
126
	"AlpAvailableOptions",
124
	"AlpProbe",
127
	"AlpProbe",
125
	NULL
128
	NULL
126
};
129
};
130
subFunctionPtr alpRefs[] = {
131
	NULL,
132
	NULL,
133
	NULL
134
};
127
static const char *lgSymbols[] = {
135
static const char *lgSymbols[] = {
128
	"LgAvailableOptions",
136
	"LgAvailableOptions",
129
	"LgProbe",
137
	"LgProbe",
130
	NULL
138
	NULL
131
};
139
};
140
subFunctionPtr lgRefs[] = {
141
	NULL,
142
	NULL,
143
	NULL
144
};
132
145
133
static const char *vbeSymbols[] = {
146
static const char *vbeSymbols[] = {
134
	"VBEInit",
147
	"VBEInit",
Lines 200-212 Link Here
200
	case PCI_CHIP_GD5464BD:
213
	case PCI_CHIP_GD5464BD:
201
	case PCI_CHIP_GD5465:
214
	case PCI_CHIP_GD5465:
202
		if (lg_loaded)
215
		if (lg_loaded)
203
			return LgAvailableOptions(chipid);
216
			return (*lgRefs[AvailableOptions])(chipid);
204
		else
217
		else
205
			return NULL;
218
			return NULL;
206
219
207
	default:
220
	default:
208
		if (alp_loaded)
221
		if (alp_loaded)
209
			return AlpAvailableOptions(chipid);
222
			return (*alpRefs[AvailableOptions])(chipid);
210
		else
223
		else
211
			return NULL;
224
			return NULL;
212
	}
225
	}
Lines 215-221 Link Here
215
static Bool
228
static Bool
216
CIRProbe(DriverPtr drv, int flags)
229
CIRProbe(DriverPtr drv, int flags)
217
{
230
{
218
    int i;
231
    int i, symidx;
219
    GDevPtr *devSections;
232
    GDevPtr *devSections;
220
    pciVideoPtr pPci;
233
    pciVideoPtr pPci;
221
    int *usedChips;
234
    int *usedChips;
Lines 238-249 Link Here
238
	if (!lg_loaded) {
251
	if (!lg_loaded) {
239
	    if (xf86LoadDrvSubModule(drv, "cirrus_laguna")) {
252
	    if (xf86LoadDrvSubModule(drv, "cirrus_laguna")) {
240
		xf86LoaderReqSymLists(lgSymbols, NULL);
253
		xf86LoaderReqSymLists(lgSymbols, NULL);
254
		for (symidx=0; lgSymbols[symidx]!=NULL; symidx++) {
255
		    lgRefs[symidx]=(subFunctionPtr)LoaderSymbol(lgSymbols[symidx]);
256
		}
241
		lg_loaded = TRUE;
257
		lg_loaded = TRUE;
242
	    }
258
	    }
243
	}
259
	}
244
	if (!alp_loaded) {
260
	if (!alp_loaded) {
245
	    if (xf86LoadDrvSubModule(drv, "cirrus_alpine")) {
261
	    if (xf86LoadDrvSubModule(drv, "cirrus_alpine")) {
246
		xf86LoaderReqSymLists(alpSymbols, NULL);
262
		xf86LoaderReqSymLists(alpSymbols, NULL);
263
		for (symidx=0; alpSymbols[symidx]!=NULL; symidx++) {
264
		    alpRefs[symidx]=(subFunctionPtr)LoaderSymbol(alpSymbols[symidx]);
265
		}
247
		alp_loaded = TRUE;
266
		alp_loaded = TRUE;
248
	    }
267
	    }
249
	}
268
	}
Lines 288-304 Link Here
288
 		if (!xf86LoadDrvSubModule(drv, "cirrus_laguna")) 
307
 		if (!xf86LoadDrvSubModule(drv, "cirrus_laguna")) 
289
		    continue;
308
		    continue;
290
 		xf86LoaderReqSymLists(lgSymbols, NULL);
309
 		xf86LoaderReqSymLists(lgSymbols, NULL);
310
		for (symidx=0; lgSymbols[symidx]!=NULL; symidx++) {
311
		    lgRefs[symidx]=(subFunctionPtr)LoaderSymbol(lgSymbols[symidx]);
312
		}
291
 		lg_loaded = TRUE;
313
 		lg_loaded = TRUE;
292
 	    }
314
 	    }
293
	    pScrn = LgProbe(usedChips[i]);
315
	    pScrn = (*lgRefs[Probe])(usedChips[i]);
294
 	} else {
316
 	} else {
295
 	    if (!alp_loaded) {
317
 	    if (!alp_loaded) {
296
 		if (!xf86LoadDrvSubModule(drv, "cirrus_alpine")) 
318
 		if (!xf86LoadDrvSubModule(drv, "cirrus_alpine")) 
297
 		    continue;
319
 		    continue;
298
 		xf86LoaderReqSymLists(alpSymbols, NULL);
320
 		xf86LoaderReqSymLists(alpSymbols, NULL);
321
		for (symidx=0; alpSymbols[symidx]!=NULL; symidx++) {
322
		    alpRefs[symidx]=(subFunctionPtr)LoaderSymbol(alpSymbols[symidx]);
323
		}
299
 		alp_loaded = TRUE;
324
 		alp_loaded = TRUE;
300
 	    }
325
 	    }
301
 	    pScrn = AlpProbe(usedChips[i]);
326
	    pScrn = (*alpRefs[Probe])(usedChips[i]);
302
 	}
327
 	}
303
 	
328
 	
304
 	if (pScrn) {
329
 	if (pScrn) {

Return to bug 110506