[PATCH weston 02/25] libinput: note if calibrating without an output

Pekka Paalanen ppaalanen at gmail.com
Fri Mar 23 12:00:42 UTC 2018


From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>

Print a note that calibration got skipped if the input device supports a
calibration matrix but there is no associated output to compute it from.
Helps with debugging touchscreen calibration issues.

The code is reorganized and commented a bit, but this does not change
the behaviour.

Signed-off-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
---
 libweston/libinput-device.c | 24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/libweston/libinput-device.c b/libweston/libinput-device.c
index 9b2577b6..48bfd6f1 100644
--- a/libweston/libinput-device.c
+++ b/libweston/libinput-device.c
@@ -463,21 +463,29 @@ evdev_device_set_calibration(struct evdev_device *device)
 	float calibration[6];
 	enum libinput_config_status status;
 
-	if (!device->output)
+	if (!libinput_device_config_calibration_has_matrix(device->device))
+		return;
+
+	/* If LIBINPUT_CALIBRATION_MATRIX was set to non-identity, we will not
+	 * override it with WL_CALIBRATION. It also means we don't need an
+	 * output to load a calibration. */
+	if (libinput_device_config_calibration_get_default_matrix(
+							  device->device,
+							  calibration) != 0)
+		return;
+
+	if (!device->output) {
+		weston_log("input device %s has no enabled output associated "
+			   "(%s named), skipping calibration for now.\n",
+			   sysname, device->output_name ?: "none");
 		return;
+	}
 
 	width = device->output->width;
 	height = device->output->height;
 	if (width == 0 || height == 0)
 		return;
 
-	/* If libinput has a pre-set calibration matrix, don't override it */
-	if (!libinput_device_config_calibration_has_matrix(device->device) ||
-	    libinput_device_config_calibration_get_default_matrix(
-							  device->device,
-							  calibration) != 0)
-		return;
-
 	udev = udev_new();
 	if (!udev)
 		return;
-- 
2.16.1



More information about the wayland-devel mailing list