linux-stable/drivers/power
Anton Vorontsov 0d4ed4e27a power_supply: Make the core a boolean instead of a tristate
On Mon, Apr 02, 2012 at 01:53:23PM +1000, Benjamin Herrenschmidt wrote:
> > drivers/built-in.o: In function `.nouveau_pm_trigger':
> > (.text+0xa56e8): undefined reference to `.power_supply_is_system_supplied'
> >
> > nouveau probably needs to depends on CONFIG_POWER_SUPPLY to force a module
> > build with the latter is =m
>
> Ok, not that trivial...
>
> The problem is more like POWER_SUPPLY should be a bool, not a tristate.
>
> If you think about it: you don't want things like nouveau to depend on a
> random subsystem like that, people will never get it. In fact,
> POWER_SUPPLY provides empty inline stubs when not enabled, so that's
> really designed to not have depends...
>
> However that -cannot- work if POWER_SUPPLY is modular and the drivers
> who use it are not.
>
> The only fixes here that make sense I can think of
> that don't also involve Kconfig horrors are:
>
>  - Ugly: in power_supply.h, use the extern variant if
>
>       defined(CONFIG_POWER_SUPPLY) ||
>        (defined(CONFIG_POWER_SUPPLY_MODULE) && defined(MODULE))
>
> IE. use the stub if power supply is a module and what is being built is
> built-in. Of course that's not only ugly, it somewhat sucks from a user
> perspective as the subsystem now exists but can't be used by some
> drivers...
>
>  - Better: Just make the bloody thing a bool :-) The power supply
> framework itself is small enough, just make it a boolean option and
> avoid the problem entirely. The actual power supply sub drivers can
> remain modular of course.

Suggested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
2012-05-04 21:15:52 -07:00
..
ab8500_btemp.c ab8500_btemp: Get rid of 'enum adc_therm' 2012-03-26 20:41:09 +04:00
ab8500_charger.c ab8500: Turn unneeded global symbols into local ones 2012-03-26 20:41:14 +04:00
ab8500_fg.c ab8500_fg: Fix some build warnings on x86_64 2012-03-26 20:41:26 +04:00
abx500_chargalg.c ab8500: Turn unneeded global symbols into local ones 2012-03-26 20:41:14 +04:00
apm_power.c device.h: cleanup users outside of linux/include (C files) 2012-03-11 14:27:37 -04:00
bq27x00_battery.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-03-20 21:12:50 -07:00
charger-manager.c charger-manager: Simplify charger_get_property(), get rid of a warning 2012-03-26 20:41:20 +04:00
collie_battery.c Merge git://git.infradead.org/users/cbou/battery-urgent 2012-01-10 20:55:11 +04:00
da9030_battery.c power_supply: Convert drivers/power/* to use module_platform_driver() 2012-01-04 09:12:07 +04:00
da9052-battery.c da9052-battery: Convert to use module_platform_driver 2012-03-26 20:41:17 +04:00
ds2760_battery.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
ds2780_battery.c power_supply: Convert drivers/power/* to use module_platform_driver() 2012-01-04 09:12:07 +04:00
ds2781_battery.c DS2781 Maxim Stand-Alone Fuel Gauge battery and w1 slave drivers 2012-03-08 11:15:33 -08:00
ds2782_battery.c power_supply: Convert i2c drivers to module_i2c_driver 2012-03-26 20:41:22 +04:00
gpio-charger.c power_supply: Convert drivers/power/* to use module_platform_driver() 2012-01-04 09:12:07 +04:00
intel_mid_battery.c power_supply: Convert drivers/power/* to use module_platform_driver() 2012-01-04 09:12:07 +04:00
isp1704_charger.c Various small bugfixes and enhancements, plus two new drivers: 2012-03-30 16:09:02 -07:00
jz4740-battery.c jz4740-battery: Fix signedness bug 2012-01-06 05:57:17 +04:00
Kconfig power_supply: Make the core a boolean instead of a tristate 2012-05-04 21:15:52 -07:00
lp8727_charger.c power_supply: Convert i2c drivers to module_i2c_driver 2012-03-26 20:41:22 +04:00
Makefile Various small bugfixes and enhancements, plus two new drivers: 2012-03-30 16:09:02 -07:00
max8903_charger.c power_supply: Convert drivers/power/* to use module_platform_driver() 2012-01-04 09:12:07 +04:00
max8925_power.c power_supply: Convert drivers/power/* to use module_platform_driver() 2012-01-04 09:12:07 +04:00
max8997_charger.c max8997_charger: Remove duplicate module.h 2012-01-06 04:59:25 +04:00
max8998_charger.c Revert "max8998_charger: Include linux/module.h just once" 2012-03-26 20:41:27 +04:00
max17040_battery.c power_supply: Convert i2c drivers to module_i2c_driver 2012-03-26 20:41:22 +04:00
max17042_battery.c power_supply: Add voltage_ocv property and use it for max17042 driver 2012-05-04 20:44:29 -07:00
olpc_battery.c power_supply: Convert drivers/power/* to use module_platform_driver() 2012-01-04 09:12:07 +04:00
pcf50633-charger.c power_supply: Convert drivers/power/* to use module_platform_driver() 2012-01-04 09:12:07 +04:00
pda_power.c power_supply: Convert all users to new usb_phy 2012-02-13 13:53:21 +02:00
pmu_battery.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
power_supply.h device.h: cleanup users outside of linux/include (C files) 2012-03-11 14:27:37 -04:00
power_supply_core.c power_supply: Drop usage of nowarn variant of sysfs_create_link() 2012-01-07 15:24:51 +04:00
power_supply_leds.c device.h: cleanup users outside of linux/include (C files) 2012-03-11 14:27:37 -04:00
power_supply_sysfs.c power_supply: Add voltage_ocv property and use it for max17042 driver 2012-05-04 20:44:29 -07:00
s3c_adc_battery.c s3c_adc_battery: Average over more than one adc sample 2012-01-06 06:13:35 +04:00
sbs-battery.c power_supply: Convert i2c drivers to module_i2c_driver 2012-03-26 20:41:22 +04:00
smb347-charger.c Add I2C driver for Summit Microelectronics SMB347 Battery Charger. 2012-03-26 20:41:01 +04:00
test_power.c power: Make test_power driver more dynamic. 2011-05-20 19:25:08 +04:00
tosa_battery.c power_supply: Convert drivers/power/* to use module_platform_driver() 2012-01-04 09:12:07 +04:00
twl4030_charger.c power_supply: Convert all users to new usb_phy 2012-02-13 13:53:21 +02:00
wm97xx_battery.c wm97xx_battery: Use DEFINE_MUTEX() for work_lock 2012-01-06 05:00:30 +04:00
wm831x_backup.c power_supply: Convert drivers/power/* to use module_platform_driver() 2012-01-04 09:12:07 +04:00
wm831x_power.c power_supply: Convert drivers/power/* to use module_platform_driver() 2012-01-04 09:12:07 +04:00
wm8350_power.c power_supply: Convert drivers/power/* to use module_platform_driver() 2012-01-04 09:12:07 +04:00
z2_battery.c power_supply: Convert i2c drivers to module_i2c_driver 2012-03-26 20:41:22 +04:00