summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2017-11-02linux: Add test for Bluetooth LE battery supportBastien Nocera1-0/+70
https://bugs.freedesktop.org/show_bug.cgi?id=92370
2017-11-02linux: Add support for Bluetooth LE device batteriesBastien Nocera5-4/+462
As exported through BlueZ's org.bluez.Battery1 D-Bus interface. This interface is only used for device where the battery information cannot be processed in the kernel. This is the first UpDevice type that doesn't use UdevDevice for the Linux backend, and it is also the first that does not poll() status at all. https://bugs.freedesktop.org/show_bug.cgi?id=92370
2017-10-31main: Use g_clear_object() when possibleBastien Nocera1-8/+3
Rather than using != NULL, followed by unref(). https://bugs.freedesktop.org/show_bug.cgi?id=103380
2017-10-31linux: Use g_clear_object() when possibleBastien Nocera3-44/+19
Rather than using != NULL, followed by unref(). https://bugs.freedesktop.org/show_bug.cgi?id=103380
2017-10-31linux: Add example to run a single testBastien Nocera1-1/+3
https://bugs.freedesktop.org/show_bug.cgi?id=103380
2017-10-31linux: Remove empty API docsBastien Nocera1-25/+0
Those "API documentation" don't document the function below it, they just name it, so aren't needed. https://bugs.freedesktop.org/show_bug.cgi?id=103380
2017-10-31daemon: allow to be replaced via --replace,-rChristian Kellner1-1/+8
https://bugs.freedesktop.org/show_bug.cgi?id=99906
2017-09-21linux: Fix compilation with libimobiledevice gitBastien Nocera1-2/+4
Since libimobiledevice 5a8449a, LOCKDOWN_E_NOT_ENOUGH_DATA was renamed to LOCKDOWN_E_RECEIVE_TIMEOUT. We'll use "-7" to avoid having to use build glue.
2017-09-21daemon: Fix critical action after resume from hibernateMiroslav Sustek2-1/+65
The take_action_timeout_cb() function returns G_SOURCE_REMOVE which makes GLib destroy the timeout. However the action_timeout_id stayed != 0 so when warning level turned to "action" again the daemon assumed that the timeout is already set and did nothing. (It only logged: "Not taking action, timeout id already set") https://bugs.freedesktop.org/show_bug.cgi?id=87791
2017-09-08Revert bug 99862 patchsetBastien Nocera1-42/+32
The patchset was pushed by mistake and is still being reviewed.
2017-09-08openbsd: Remove SENSOR_MAX_TYPES upper boundJasper Lievisse Adriaanse1-1/+1
Remove pointless upperbound, SENSOR_MAX_TYPES has no meaning here and we break from the loop anyway when needed (i.e. when ENOENT is returned). This aligns the code with other sensor device walkers in OpenBSD. https://bugs.freedesktop.org/show_bug.cgi?id=95257
2017-09-08daemon: more efficient poll resettingChristian Kellner1-2/+2
If the poll timeout is actually changed because the warning level has changed, only reset the actual poll code, not the warning level notifications and the booking structures. https://bugs.freedesktop.org/show_bug.cgi?id=99862
2017-09-08daemon: move two functions upChristian Kellner1-32/+27
No semantic change. https://bugs.freedesktop.org/show_bug.cgi?id=99862
2017-09-08daemon: only reset poll if warning-level changedChristian Kellner1-2/+17
When a device is refreshed because the poll timeout has been reached, the warning-level change notification can also be fired, which then will reset (i.e. disable, re-enable) polling. For batteries this can happen three times in a row. Now we reset polling only if the calculated timeout actually differs from the current one. https://bugs.freedesktop.org/show_bug.cgi?id=99862
2017-09-08linux: Add test for crash when battery has funky nameBastien Nocera1-0/+16
https://bugs.freedesktop.org/show_bug.cgi?id=93095
2017-09-08daemon: Fix crash when '@' is present in the device nameoleid@mescharet.de1-0/+2
GDBus doesn't like '@' in the object path, so escape it. https://bugs.freedesktop.org/show_bug.cgi?id=93095
2017-09-08daemon: Remove [Install] section commentBastien Nocera1-4/+0
https://bugs.freedesktop.org/show_bug.cgi?id=92487
2017-09-08linux: Add better debug to sysfs_get_capacity_level()Bastien Nocera1-1/+13
Remove the trailing linefeed from the sysfs attribute to be able to print it, and simplify the loop by the same token.
2017-09-08linux: Don't throw an error if there's no data to readBastien Nocera1-33/+19
The initial "refresh" for devices would fail if there was no data to read. Instead, we should set the level to unknown, so that the device appears in the Power panel, and in the "upower -d" output.
2017-09-08freebsd: Fix lid detection on FreeBSDAlberto Villa1-1/+1
UPower sets property LidIsPresent to true only if hw.acpi.lid_switch_state is different from "NONE", "NONE" being the default value for FreeBSD. Thus, the property is always false on default configurations. Force UPower not to care about the value of the sysctl, making it check only for its existence. See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=175531 https://bugs.freedesktop.org/show_bug.cgi?id=101828
2017-09-04linux: Grab model name from device if unavailable from batteryBastien Nocera2-1/+20
The "model_name" and "serial_number" information that upower exports for batteries that supply a laptop or UPS are supposed to be that of the battery. But that's very unlikely to happen for devices, such as wireless mice, keyboards or joysticks. Look for a sibling input device if a device battery does not contain model information so as to avoid generic names in UIs. https://bugs.freedesktop.org/show_bug.cgi?id=102493
2017-08-31linux: Move function to prepare for new useBastien Nocera1-45/+45
Move up_device_supply_get_sibling_with_subsystem() so we can use it in up_device_supply_refresh_device() https://bugs.freedesktop.org/show_bug.cgi?id=102493
2017-08-31linux: Detect joysticks as gaming input devicesBastien Nocera2-2/+4
https://bugs.freedesktop.org/show_bug.cgi?id=102493
2017-08-31linux: Add test for wireless joypad connected via USBBastien Nocera1-0/+37
Mostly for the type of device rather than the connections. https://bugs.freedesktop.org/show_bug.cgi?id=102493
2017-08-03linux: Correctly close inhibitor FDBenjamin Berg1-1/+3
The unref of the FD list for the inhibitor was missing which means that the FD was leaked and the lock was never released. This means that for each suspend/resume cycle a new inhibitor would be added. Signed-off-by: Richard Hughes <richard@hughsie.com>
2017-04-23Do not spin in a loop when /proc/timer_stats cannot be writtenRichard Hughes1-5/+7
Only set up the polling once the write has succeeded. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=100626
2017-04-06daemon: Move a number of constants to a shared fileBastien Nocera5-13/+55
https://bugs.freedesktop.org/show_bug.cgi?id=100359
2017-04-06all: Add BatteryLevel propertyBastien Nocera3-21/+64
Export approximate battery levels that devices can use, exported by the kernel as POWER_SUPPLY_CAPACITY_LEVEL_* values. This avoids bizarrely accurate values showing up in UIs when we only have ok/warning levels of accuracy in some cases. https://bugs.freedesktop.org/show_bug.cgi?id=100359
2017-04-06lib: Add more members to UpDeviceLevel structBastien Nocera1-1/+4
Those levels will not be used to cover warning levels, but approximate battery levels that devices can use, exported by the kernel as POWER_SUPPLY_CAPACITY_LEVEL_* values. See linux/power_supply.h https://bugs.freedesktop.org/show_bug.cgi?id=100359
2017-04-06linux: Add support for "capacity_level" attributeBastien Nocera2-1/+102
Some devices, such as a number of wireless Logitech unifying devices don't have a precise battery level reporting, and use the Linux POWER_SUPPLY_CAPACITY_LEVEL_* values. This minimal fix matches the levels against approximate percentage values. This is good enough to make the Logitech T650 report battery again when using the kernel HID++ battery support. https://bugs.freedesktop.org/show_bug.cgi?id=100359
2017-04-06daemon: Make warning levels for devices inclusiveBastien Nocera1-2/+2
A 5% battery level should already be in "critical", this matches the configurable thresholds where the bounds of critical warnings are inclusive. This also makes it easier to create fake percentages for the Logitech devices with coarse battery level reporting. https://bugs.freedesktop.org/show_bug.cgi?id=100359
2017-04-06integration-test: Fix path for unparented deviceChristian Kellner1-1/+1
Paths supplied to testbed.add_device() are relative to /sys/devices already and therefore must not start with /sys/devices. This does not change the result of the test. https://bugs.freedesktop.org/show_bug.cgi?id=100539
2017-03-25integration-test: enable running from JHBuildChristian Kellner1-0/+5
https://bugs.freedesktop.org/show_bug.cgi?id=99763
2017-03-25integration-test: Check NoPollbatteries is followedChristian Kellner1-1/+41
The NoPollbatteries option should disable battery polling. Create a config file with 'NoPollBatteries=true' and ensure we don't get polling setup for the virtual battery. https://bugs.freedesktop.org/show_bug.cgi?id=99763
2017-03-25integration-test: Add test for refresh after sleepChristian Kellner1-0/+54
This also tests suspending and resuming polling as a by-product. https://bugs.freedesktop.org/show_bug.cgi?id=99763
2017-03-25linux: Use inhibitor lock to guard poll pausingChristian Kellner2-1/+86
Use an inhibitor lock obtained via logind to make sure the polling is paused before the system is put to sleep, rather than racing with the suspension. https://bugs.freedesktop.org/show_bug.cgi?id=99763
2017-03-25linux: Refresh devices after waking up from sleepChristian Kellner1-0/+74
The battery levels might have changed drastically compared to before sleep. Since we poll batteries at set intervals, it can take quite some time for the new level to be picked up by the polling code. Listen to the "PrepareForSleep" signal emitted by logind, that gets emitted on suspend and wake up. Pause polling globally on suspend, and refresh all devices manually and resume polling when waking up. https://bugs.freedesktop.org/show_bug.cgi?id=99763
2017-03-25daemon: Add support for pausing and resuming pollChristian Kellner2-27/+118
Pausing stops the polling for all registered devices and resuming re-enables the previously disabled polling, after re-calculating the poll timeout. https://bugs.freedesktop.org/show_bug.cgi?id=99763
2017-03-24integration-test: Add test for unparented input devicesBastien Nocera1-0/+24
The test would fail without the fix from commit 86e5237, and succeed with it.
2017-03-24linux: Fix critical when searching for sibling devicesBastien Nocera1-0/+2
GUdev-CRITICAL **: g_udev_device_get_sysfs_path: assertion 'G_UDEV_IS_DEVICE (device)' failed This is caused by looking for devices in a particular subsystem which don't have parents. This can happen with virtual devices, such as the ones created by test suites.
2017-03-24integration-test: Use symbolic names for device typesBastien Nocera1-10/+18
Instead of using comments to explain the magic values.
2017-03-24integration-test: add get_critical_action() testChristian Kellner1-2/+2
https://bugs.freedesktop.org/show_bug.cgi?id=99763
2017-03-24integration-test: use dbusmock to mock logindChristian Kellner1-1/+20
Derive from dbusmock.DBusTestCase and add {start,stop}_logind to enable tests that need logind. https://bugs.freedesktop.org/show_bug.cgi?id=99763
2017-03-24device: Remove extraneous linefeed in g_debug()Bastien Nocera1-1/+1
g_debug() already adds a linefeed.
2017-03-24daemon: Fix polling helper debug outputBastien Nocera1-6/+8
When setting up polling for our devices, it's possible that the device hasn't yet been exported on D-Bus, meaning that the object would be unhelpfully empty. Use the "native path" instead, so we don't get null in debug outputs, or timeout names.
2017-03-24linux: Fix compilation warningBastien Nocera1-1/+1
duplicate ‘const’ declaration specifier We can't use a const char const because we actually want to assign values to elements of the array.
2017-03-24integration-test: HID++ mouse is a mouseBastien Nocera1-1/+1
2017-02-15UpKbdBacklight: Send notifications about hardware brightness changesHans de Goede1-0/+38
Backlights, starting with kernel 4.11 [1] can have a "brightness_hw_changed" sysfs attribute, which can be polled to detect hardware initiated brightness changes, such as ones done through firmware-handled keyboard backlight hotkeys, or firmware controlled changes (eg. turn off backlight on low battery). [1] https://patchwork.kernel.org/patch/9544111/ https://bugs.freedesktop.org/show_bug.cgi?id=98404
2017-02-15UpKbdBacklight: Allow reading from alternate fd in _brightness_read()Hans de Goede1-6/+6
Pass the fd to use to up_kbd_backlight_brightness_read() so that it can be used with multiple fds. This will be used to support the "brightness_hw_changed" sysfs attribute. https://bugs.freedesktop.org/show_bug.cgi?id=98404
2017-02-15UpKbdBacklight: Add new BrightnessChangedWithSource signalHans de Goede1-2/+11
There are multiple possible causes for the keyboard brightness to change, e.g. SetBrightness may get called, or the brightness may get changed through a hotkey which is handled in firmware. https://bugs.freedesktop.org/show_bug.cgi?id=98404