Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 73db8813 authored by Jeremy Fitzhardinge's avatar Jeremy Fitzhardinge
Browse files

power_supply: add scope properties to some self-powered HID devices



The Wacom and Wiimote HID drivers register power supplies for themselves
to indicate their battery levels.  Make those power supplies device scope.

Signed-off-by: default avatarJeremy Fitzhardinge <jeremy@goop.org>
Cc: Jiri Kosina <jkosina@suse.cz>
parent 83516651
Loading
Loading
Loading
Loading
+10 −2
Original line number Original line Diff line number Diff line
@@ -47,12 +47,14 @@ static unsigned short batcap[8] = { 1, 15, 25, 35, 50, 70, 100, 0 };


static enum power_supply_property wacom_battery_props[] = {
static enum power_supply_property wacom_battery_props[] = {
	POWER_SUPPLY_PROP_PRESENT,
	POWER_SUPPLY_PROP_PRESENT,
	POWER_SUPPLY_PROP_CAPACITY
	POWER_SUPPLY_PROP_CAPACITY,
	POWER_SUPPLY_PROP_SCOPE,
};
};


static enum power_supply_property wacom_ac_props[] = {
static enum power_supply_property wacom_ac_props[] = {
	POWER_SUPPLY_PROP_PRESENT,
	POWER_SUPPLY_PROP_PRESENT,
	POWER_SUPPLY_PROP_ONLINE
	POWER_SUPPLY_PROP_ONLINE,
	POWER_SUPPLY_PROP_SCOPE,
};
};


static int wacom_battery_get_property(struct power_supply *psy,
static int wacom_battery_get_property(struct power_supply *psy,
@@ -68,6 +70,9 @@ static int wacom_battery_get_property(struct power_supply *psy,
	case POWER_SUPPLY_PROP_PRESENT:
	case POWER_SUPPLY_PROP_PRESENT:
		val->intval = 1;
		val->intval = 1;
		break;
		break;
	case POWER_SUPPLY_PROP_SCOPE:
		val->intval = POWER_SUPPLY_SCOPE_DEVICE;
		break;
	case POWER_SUPPLY_PROP_CAPACITY:
	case POWER_SUPPLY_PROP_CAPACITY:
		/* show 100% battery capacity when charging */
		/* show 100% battery capacity when charging */
		if (power_state == 0)
		if (power_state == 0)
@@ -99,6 +104,9 @@ static int wacom_ac_get_property(struct power_supply *psy,
		else
		else
			val->intval = 0;
			val->intval = 0;
		break;
		break;
	case POWER_SUPPLY_PROP_SCOPE:
		val->intval = POWER_SUPPLY_SCOPE_DEVICE;
		break;
	default:
	default:
		ret = -EINVAL;
		ret = -EINVAL;
		break;
		break;
+7 −1
Original line number Original line Diff line number Diff line
@@ -136,7 +136,8 @@ static __u16 wiiproto_keymap[] = {
};
};


static enum power_supply_property wiimote_battery_props[] = {
static enum power_supply_property wiimote_battery_props[] = {
	POWER_SUPPLY_PROP_CAPACITY
	POWER_SUPPLY_PROP_CAPACITY,
	POWER_SUPPLY_PROP_SCOPE,
};
};


/* requires the state.lock spinlock to be held */
/* requires the state.lock spinlock to be held */
@@ -468,6 +469,11 @@ static int wiimote_battery_get_property(struct power_supply *psy,
	int ret = 0, state;
	int ret = 0, state;
	unsigned long flags;
	unsigned long flags;


	if (psp == POWER_SUPPLY_PROP_SCOPE) {
		val->intval = POWER_SUPPLY_SCOPE_DEVICE;
		return 0;
	}

	ret = wiimote_cmd_acquire(wdata);
	ret = wiimote_cmd_acquire(wdata);
	if (ret)
	if (ret)
		return ret;
		return ret;