Don't build split alpine and laguna support

Before:

   text	   data	    bss	    dec	    hex	filename
  25772	   2040	     16	  27828	   6cb4	src/.libs/cirrus_alpine.so
  11429	   1552	    112	  13093	   3325	src/.libs/cirrus_drv.so
  21968	   2016	     16	  24000	   5dc0	src/.libs/cirrus_laguna.so
  59169	   5608	    114	  64921	   fd99	(TOTALS)

After:

   text	   data	    bss	    dec	    hex	filename
  47831	   3840	    112	  51783	   ca47	src/.libs/cirrus_drv.so

So, in the worst case, you're using roughly two more pages for (clean,
evictable) text, but two fewer (dirty) pages for data and bss. Fixing
this also allows the X server to clean up module loading a bit by
enforcing the _drv.so suffix, and since this is the only driver pulling
such shenanigans...

Reviewed-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
Adam Jackson
2016-04-13 17:05:55 -04:00
parent adaf1fe744
commit 27f85fc523
2 changed files with 8 additions and 59 deletions

View File

@@ -35,32 +35,20 @@ cirrus_drv_la_SOURCES = \
CirrusClk.c \
cir_shadow.c \
cir_pcirename.h \
compat-api.h
cirrus_alpine_la_LTLIBRARIES = cirrus_alpine.la
cirrus_alpine_la_LDFLAGS = -module -avoid-version
cirrus_alpine_ladir = @moduledir@/drivers
cirrus_alpine_la_SOURCES = \
compat-api.h \
alp_driver.c \
alp.h \
alp_hwcurs.c \
alp_i2c.c
if XAA
cirrus_alpine_la_SOURCES += \
alp_xaa.c \
alp_xaam.c
endif
cirrus_laguna_la_LTLIBRARIES = cirrus_laguna.la
cirrus_laguna_la_LDFLAGS = -module -avoid-version
cirrus_laguna_ladir = @moduledir@/drivers
cirrus_laguna_la_SOURCES = \
alp_i2c.c \
lg_driver.c \
lg.h \
lg_hwcurs.c \
lg_i2c.c
if XAA
cirrus_laguna_la_SOURCES += \
cirrus_drv_la_SOURCES += \
alp_xaa.c \
alp_xaam.c
lg_xaa.c \
lg_xaa.h
endif

View File

@@ -43,9 +43,6 @@ static const OptionInfoRec * CIRAvailableOptions(int chipid, int busid);
static void CIRIdentify(int flags);
static Bool CIRProbe(DriverPtr drv, int flags);
static Bool lg_loaded = FALSE;
static Bool alp_loaded = FALSE;
#define CIR_VERSION 4000
#define CIR_NAME "CIRRUS"
#define CIR_DRIVER_NAME "cirrus"
@@ -170,16 +167,10 @@ CIRAvailableOptions(int chipid, int busid)
case PCI_CHIP_GD5464:
case PCI_CHIP_GD5464BD:
case PCI_CHIP_GD5465:
if (lg_loaded)
return LgAvailableOptions(chipid);
else
return NULL;
return LgAvailableOptions(chipid);
default:
if (alp_loaded)
return AlpAvailableOptions(chipid);
else
return NULL;
return AlpAvailableOptions(chipid);
}
}
@@ -199,25 +190,6 @@ CIRProbe(DriverPtr drv, int flags)
ErrorF("CirProbe\n");
#endif
/*
* For PROBE_DETECT, make sure both sub-modules are loaded before
* calling xf86MatchPciInstances(), because the AvailableOptions()
* functions may be called before xf86MatchPciInstances() returns.
*/
if (flags & PROBE_DETECT) {
if (!lg_loaded) {
if (xf86LoadDrvSubModule(drv, "cirrus_laguna")) {
lg_loaded = TRUE;
}
}
if (!alp_loaded) {
if (xf86LoadDrvSubModule(drv, "cirrus_alpine")) {
alp_loaded = TRUE;
}
}
}
if ((numDevSections = xf86MatchDevice(CIR_DRIVER_NAME,
&devSections)) <= 0) {
return FALSE;
@@ -272,19 +244,8 @@ CIRProbe(DriverPtr drv, int flags)
PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_GD5464 ||
PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_GD5464BD ||
PCI_DEV_DEVICE_ID(pPci) == PCI_CHIP_GD5465)) {
if (!lg_loaded) {
if (!xf86LoadDrvSubModule(drv, "cirrus_laguna"))
continue;
lg_loaded = TRUE;
}
pScrn = LgProbe(usedChips[i]);
} else {
if (!alp_loaded) {
if (!xf86LoadDrvSubModule(drv, "cirrus_alpine"))
continue;
alp_loaded = TRUE;
}
pScrn = AlpProbe(usedChips[i]);
}