summaryrefslogtreecommitdiff
path: root/extra/upower
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-01-08 01:01:51 -0800
committerroot <root@rshg054.dnsready.net>2013-01-08 01:01:51 -0800
commitc6944c224fa06987b04ffc1e90f5db0dfb200be9 (patch)
tree9660fefded7f8fd5e1ea1a47e60c13e80bbb7d25 /extra/upower
parent6691bda410e7b989932f459d788e7caa7bbd3a41 (diff)
Tue Jan 8 01:01:51 PST 2013
Diffstat (limited to 'extra/upower')
-rw-r--r--extra/upower/PKGBUILD15
-rw-r--r--extra/upower/lg-unifying-fix-K750-features-name-use-1-second-interval.patch98
2 files changed, 105 insertions, 8 deletions
diff --git a/extra/upower/PKGBUILD b/extra/upower/PKGBUILD
index bbcc86679..922530b2c 100644
--- a/extra/upower/PKGBUILD
+++ b/extra/upower/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 166524 2012-09-09 15:41:20Z heftig $
+# $Id: PKGBUILD 174773 2013-01-07 12:34:08Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>
pkgname=upower
-pkgver=0.9.18
-pkgrel=2
+pkgver=0.9.19
+pkgrel=1
pkgdesc="Abstraction for enumerating power devices, listening to device events and querying history and statistics"
arch=('i686' 'x86_64')
url="http://upower.freedesktop.org"
@@ -12,9 +12,9 @@ depends=('systemd-tools' 'libsystemd' 'libusb' 'polkit' 'pm-utils' 'dbus-glib' '
makedepends=('intltool' 'docbook-xsl' 'gobject-introspection' 'systemd')
options=('!libtool')
source=($url/releases/$pkgname-$pkgver.tar.xz
- 0001-Send-resume-signal-when-built-with-systemd-and-using.patch)
-md5sums=('bfaaa1e7f8479fca5594406b3c36dff9'
- '188afea4919dc324b2efbae35d9d216a')
+ lg-unifying-fix-K750-features-name-use-1-second-interval.patch)
+md5sums=('f96955ff1a2e4f006937d6b5ea95afb8'
+ '04b2a6141e80e422a9fe2820b5b3a613')
build() {
cd "$pkgname-$pkgver"
@@ -22,8 +22,7 @@ build() {
# put udev files in /usr/lib
sed -i "/slashlibdir=/s#/lib#/usr/lib#" configure
- # https://bugs.freedesktop.org/show_bug.cgi?id=54371
- patch -Np1 -i ../0001-Send-resume-signal-when-built-with-systemd-and-using.patch
+ patch -Np1 -i ../lg-unifying-fix-K750-features-name-use-1-second-interval.patch
./configure --prefix=/usr --sysconfdir=/etc \
--localstatedir=/var \
diff --git a/extra/upower/lg-unifying-fix-K750-features-name-use-1-second-interval.patch b/extra/upower/lg-unifying-fix-K750-features-name-use-1-second-interval.patch
new file mode 100644
index 000000000..27c4dc51e
--- /dev/null
+++ b/extra/upower/lg-unifying-fix-K750-features-name-use-1-second-interval.patch
@@ -0,0 +1,98 @@
+From 35b0d25b49d04cf7d33699c34f42a196c8e92a2e Mon Sep 17 00:00:00 2001
+From: Julien Danjou <julien@danjou.info>
+Date: Sat, 01 Dec 2012 12:30:03 +0000
+Subject: lg-unifying: fix K750 features name, use 1 second interval
+
+I've recently got access to some spec on this, so I'm now able to document
+his a bit better. Also, change the 0x78 value for the function sending
+BattLightMeasureBroadcastEvent to 0x1 since this is the number of event we
+want, and one is enough.
+
+Signed-off-by: Julien Danjou <julien@danjou.info>
+Signed-off-by: Richard Hughes <richard@hughsie.com>
+---
+diff --git a/src/linux/up-device-lg-unifying.c b/src/linux/up-device-lg-unifying.c
+index e8997c0..eddd1ec 100644
+--- a/src/linux/up-device-lg-unifying.c
++++ b/src/linux/up-device-lg-unifying.c
+@@ -84,10 +84,9 @@
+ #define HIDPP_FEATURE_GETDEVICENAMETYPE_FUNCTION_GETCOUNT (0x00 << 4)
+ #define HIDPP_FEATURE_GETDEVICENAMETYPE_FUNCTION_GETDEVICENAME (0x01 << 4)
+
+-/* I wish i has the spec for this, but I don't so I invented the name */
+-#define HIDPP_FEATURE_K750_BATTERY 0x4301
+-#define HIDPP_FEATURE_K750_BATTERY_FUNCTION_STARTLUXANDBATTERY (0x00 << 4)
+-#define HIDPP_FEATURE_K750_BATTERY_FUNCTION_LUXANDBATTERYEVENT (0x01 << 4)
++#define HIDPP_FEATURE_SOLAR_DASHBOARD 0x4301
++#define HIDPP_FEATURE_SOLAR_DASHBOARD_FUNCTION_SetLightMeasure (0x00 << 4)
++#define HIDPP_FEATURE_SOLAR_DASHBOARD_BattLightMeasureBroadcastEvent (0x01 << 4)
+
+ #define HIDPP_FEATURE_FUNCTION_AS_ARG(feature) \
+ feature >> 8, feature, 0x00
+@@ -105,7 +104,7 @@ struct UpDeviceUnifyingPrivate
+ int fd;
+ /* Device index on the Unifying "bus" */
+ gint device_index;
+- gint feature_k750_battery_index;
++ gint feature_solar_dashboard_index;
+ GIOChannel *channel;
+ guint channel_source_id;
+ };
+@@ -130,8 +129,8 @@ up_device_unifying_event_io (GIOChannel *channel, GIOCondition condition, gpoint
+ while (read (unifying->priv->fd, buf, sizeof(buf)) > 0)
+ if (buf[0] == HIDPP_HEADER_RESPONSE &&
+ buf[1] == unifying->priv->device_index &&
+- buf[2] == unifying->priv->feature_k750_battery_index &&
+- buf[3] == HIDPP_FEATURE_K750_BATTERY_FUNCTION_LUXANDBATTERYEVENT) {
++ buf[2] == unifying->priv->feature_solar_dashboard_index &&
++ buf[3] == HIDPP_FEATURE_SOLAR_DASHBOARD_BattLightMeasureBroadcastEvent) {
+ lux = (buf[5] << 8) | buf[6];
+ if (lux > 200) {
+ g_object_set (device,
+@@ -283,25 +282,24 @@ up_device_unifying_hidpp2_set_battery (UpDeviceUnifying *unifying)
+ 0x00, 0x00, 0x00, 0x00, 0x00,
+ };
+
+- if (unifying->priv->feature_k750_battery_index == -1)
+- unifying->priv->feature_k750_battery_index =
+- up_device_unifying_hidpp2_get_feature_index (unifying, HIDPP_FEATURE_K750_BATTERY);
++ if (unifying->priv->feature_solar_dashboard_index == -1)
++ unifying->priv->feature_solar_dashboard_index =
++ up_device_unifying_hidpp2_get_feature_index (unifying, HIDPP_FEATURE_SOLAR_DASHBOARD);
+
+- if (unifying->priv->feature_k750_battery_index == 0) {
+- /* Probably not a K750 */
++ if (unifying->priv->feature_solar_dashboard_index == 0) {
++ /* Probably not a solar keyboard */
+ /* TODO: add support for BatteryLevelStatus */
+ } else {
+ /* This request will make the keyboard send a bunch of packets
+ * (events) with lux-meter and battery information */
+- request[2] = unifying->priv->feature_k750_battery_index;
+- request[3] = HIDPP_FEATURE_K750_BATTERY_FUNCTION_STARTLUXANDBATTERY;
+- /* Don't know what this means */
+- request[4] = 0x78;
+- request[5] = 0x01;
++ request[2] = unifying->priv->feature_solar_dashboard_index;
++ request[3] = HIDPP_FEATURE_SOLAR_DASHBOARD_FUNCTION_SetLightMeasure;
++ request[4] = 0x01; /* Max number of reports: number of report sent after function call */
++ request[5] = 0x01; /* Report period: time between reports, in seconds */
+
+
+ if (write (unifying->priv->fd, request, sizeof(request)) != sizeof(request)) {
+- g_debug ("Unable to send K750 battery/lux events start request to device");
++ g_debug ("Unable to send solar battery/lux events start request to device");
+ return FALSE;
+ }
+
+@@ -719,7 +717,7 @@ up_device_unifying_init (UpDeviceUnifying *unifying)
+ unifying->priv = UP_DEVICE_UNIFYING_GET_PRIVATE (unifying);
+ unifying->priv->poll_timer_id = 0;
+ unifying->priv->fd = -1;
+- unifying->priv->feature_k750_battery_index = -1;
++ unifying->priv->feature_solar_dashboard_index = -1;
+ }
+
+ /**
+--
+cgit v0.9.0.2-2-gbebe