Archive-only list for patches
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Max Maisel <mmm-1@posteo.net>,
	Vicki Pfau <vi@endrift.com>, Jiri Kosina <jkosina@suse.com>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.6 118/152] HID: hid-steam: Add Deck IMU support
Date: Wed, 19 Feb 2025 09:28:51 +0100	[thread overview]
Message-ID: <20250219082554.723957704@linuxfoundation.org> (raw)
In-Reply-To: <20250219082550.014812078@linuxfoundation.org>

6.6-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Max Maisel <mmm-1@posteo.net>

[ Upstream commit 3347e1654f24dbbd357ea4e3c0d8dcc12d8586c7 ]

The Deck's controller features an accelerometer and gyroscope which
send their measurement values by default in the main HID input report.
Expose both sensors to userspace through a separate evdev node as it
is done by the hid-nintendo and hid-playstation drivers.

Signed-off-by: Max Maisel <mmm-1@posteo.net>
Reviewed-by: Vicki Pfau <vi@endrift.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Stable-dep-of: 79504249d7e2 ("HID: hid-steam: Move hidraw input (un)registering to work")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/hid/hid-steam.c | 155 +++++++++++++++++++++++++++++++++++++---
 1 file changed, 147 insertions(+), 8 deletions(-)

diff --git a/drivers/hid/hid-steam.c b/drivers/hid/hid-steam.c
index 59b46163bc526..29a0e1f395339 100644
--- a/drivers/hid/hid-steam.c
+++ b/drivers/hid/hid-steam.c
@@ -66,6 +66,14 @@ static LIST_HEAD(steam_devices);
 #define STEAM_DECK_TRIGGER_RESOLUTION 5461
 /* Joystick runs are about 5 mm and 32768 units */
 #define STEAM_DECK_JOYSTICK_RESOLUTION 6553
+/* Accelerometer has 16 bit resolution and a range of +/- 2g */
+#define STEAM_DECK_ACCEL_RES_PER_G 16384
+#define STEAM_DECK_ACCEL_RANGE 32768
+#define STEAM_DECK_ACCEL_FUZZ 32
+/* Gyroscope has 16 bit resolution and a range of +/- 2000 dps */
+#define STEAM_DECK_GYRO_RES_PER_DPS 16
+#define STEAM_DECK_GYRO_RANGE 32768
+#define STEAM_DECK_GYRO_FUZZ 1
 
 #define STEAM_PAD_FUZZ 256
 
@@ -288,6 +296,7 @@ struct steam_device {
 	struct mutex report_mutex;
 	bool client_opened;
 	struct input_dev __rcu *input;
+	struct input_dev __rcu *sensors;
 	unsigned long quirks;
 	struct work_struct work_connect;
 	bool connected;
@@ -302,6 +311,7 @@ struct steam_device {
 	struct work_struct rumble_work;
 	u16 rumble_left;
 	u16 rumble_right;
+	unsigned int sensor_timestamp_us;
 };
 
 static int steam_recv_report(struct steam_device *steam,
@@ -824,6 +834,74 @@ static int steam_input_register(struct steam_device *steam)
 	return ret;
 }
 
+static int steam_sensors_register(struct steam_device *steam)
+{
+	struct hid_device *hdev = steam->hdev;
+	struct input_dev *sensors;
+	int ret;
+
+	if (!(steam->quirks & STEAM_QUIRK_DECK))
+		return 0;
+
+	rcu_read_lock();
+	sensors = rcu_dereference(steam->sensors);
+	rcu_read_unlock();
+	if (sensors) {
+		dbg_hid("%s: already connected\n", __func__);
+		return 0;
+	}
+
+	sensors = input_allocate_device();
+	if (!sensors)
+		return -ENOMEM;
+
+	input_set_drvdata(sensors, steam);
+	sensors->dev.parent = &hdev->dev;
+
+	sensors->name = "Steam Deck Motion Sensors";
+	sensors->phys = hdev->phys;
+	sensors->uniq = steam->serial_no;
+	sensors->id.bustype = hdev->bus;
+	sensors->id.vendor = hdev->vendor;
+	sensors->id.product = hdev->product;
+	sensors->id.version = hdev->version;
+
+	__set_bit(INPUT_PROP_ACCELEROMETER, sensors->propbit);
+	__set_bit(EV_MSC, sensors->evbit);
+	__set_bit(MSC_TIMESTAMP, sensors->mscbit);
+
+	input_set_abs_params(sensors, ABS_X, -STEAM_DECK_ACCEL_RANGE,
+			STEAM_DECK_ACCEL_RANGE, STEAM_DECK_ACCEL_FUZZ, 0);
+	input_set_abs_params(sensors, ABS_Y, -STEAM_DECK_ACCEL_RANGE,
+			STEAM_DECK_ACCEL_RANGE, STEAM_DECK_ACCEL_FUZZ, 0);
+	input_set_abs_params(sensors, ABS_Z, -STEAM_DECK_ACCEL_RANGE,
+			STEAM_DECK_ACCEL_RANGE, STEAM_DECK_ACCEL_FUZZ, 0);
+	input_abs_set_res(sensors, ABS_X, STEAM_DECK_ACCEL_RES_PER_G);
+	input_abs_set_res(sensors, ABS_Y, STEAM_DECK_ACCEL_RES_PER_G);
+	input_abs_set_res(sensors, ABS_Z, STEAM_DECK_ACCEL_RES_PER_G);
+
+	input_set_abs_params(sensors, ABS_RX, -STEAM_DECK_GYRO_RANGE,
+			STEAM_DECK_GYRO_RANGE, STEAM_DECK_GYRO_FUZZ, 0);
+	input_set_abs_params(sensors, ABS_RY, -STEAM_DECK_GYRO_RANGE,
+			STEAM_DECK_GYRO_RANGE, STEAM_DECK_GYRO_FUZZ, 0);
+	input_set_abs_params(sensors, ABS_RZ, -STEAM_DECK_GYRO_RANGE,
+			STEAM_DECK_GYRO_RANGE, STEAM_DECK_GYRO_FUZZ, 0);
+	input_abs_set_res(sensors, ABS_RX, STEAM_DECK_GYRO_RES_PER_DPS);
+	input_abs_set_res(sensors, ABS_RY, STEAM_DECK_GYRO_RES_PER_DPS);
+	input_abs_set_res(sensors, ABS_RZ, STEAM_DECK_GYRO_RES_PER_DPS);
+
+	ret = input_register_device(sensors);
+	if (ret)
+		goto sensors_register_fail;
+
+	rcu_assign_pointer(steam->sensors, sensors);
+	return 0;
+
+sensors_register_fail:
+	input_free_device(sensors);
+	return ret;
+}
+
 static void steam_input_unregister(struct steam_device *steam)
 {
 	struct input_dev *input;
@@ -837,6 +915,24 @@ static void steam_input_unregister(struct steam_device *steam)
 	input_unregister_device(input);
 }
 
+static void steam_sensors_unregister(struct steam_device *steam)
+{
+	struct input_dev *sensors;
+
+	if (!(steam->quirks & STEAM_QUIRK_DECK))
+		return;
+
+	rcu_read_lock();
+	sensors = rcu_dereference(steam->sensors);
+	rcu_read_unlock();
+
+	if (!sensors)
+		return;
+	RCU_INIT_POINTER(steam->sensors, NULL);
+	synchronize_rcu();
+	input_unregister_device(sensors);
+}
+
 static void steam_battery_unregister(struct steam_device *steam)
 {
 	struct power_supply *battery;
@@ -889,18 +985,28 @@ static int steam_register(struct steam_device *steam)
 	spin_lock_irqsave(&steam->lock, flags);
 	client_opened = steam->client_opened;
 	spin_unlock_irqrestore(&steam->lock, flags);
+
 	if (!client_opened) {
 		steam_set_lizard_mode(steam, lizard_mode);
 		ret = steam_input_register(steam);
-	} else
-		ret = 0;
+		if (ret != 0)
+			goto steam_register_input_fail;
+		ret = steam_sensors_register(steam);
+		if (ret != 0)
+			goto steam_register_sensors_fail;
+	}
+	return 0;
 
+steam_register_sensors_fail:
+	steam_input_unregister(steam);
+steam_register_input_fail:
 	return ret;
 }
 
 static void steam_unregister(struct steam_device *steam)
 {
 	steam_battery_unregister(steam);
+	steam_sensors_unregister(steam);
 	steam_input_unregister(steam);
 	if (steam->serial_no[0]) {
 		hid_info(steam->hdev, "Steam Controller '%s' disconnected",
@@ -1009,6 +1115,7 @@ static int steam_client_ll_open(struct hid_device *hdev)
 	steam->client_opened = true;
 	spin_unlock_irqrestore(&steam->lock, flags);
 
+	steam_sensors_unregister(steam);
 	steam_input_unregister(steam);
 
 	return 0;
@@ -1029,6 +1136,7 @@ static void steam_client_ll_close(struct hid_device *hdev)
 	if (connected) {
 		steam_set_lizard_mode(steam, lizard_mode);
 		steam_input_register(steam);
+		steam_sensors_register(steam);
 	}
 }
 
@@ -1120,6 +1228,7 @@ static int steam_probe(struct hid_device *hdev,
 	INIT_DELAYED_WORK(&steam->mode_switch, steam_mode_switch_cb);
 	INIT_LIST_HEAD(&steam->list);
 	INIT_WORK(&steam->rumble_work, steam_haptic_rumble_cb);
+	steam->sensor_timestamp_us = 0;
 
 	/*
 	 * With the real steam controller interface, do not connect hidraw.
@@ -1379,12 +1488,12 @@ static void steam_do_input_event(struct steam_device *steam,
  *  18-19 | s16   | ABS_HAT0Y | left-pad Y value
  *  20-21 | s16   | ABS_HAT1X | right-pad X value
  *  22-23 | s16   | ABS_HAT1Y | right-pad Y value
- *  24-25 | s16   | --        | accelerometer X value
- *  26-27 | s16   | --        | accelerometer Y value
- *  28-29 | s16   | --        | accelerometer Z value
- *  30-31 | s16   | --        | gyro X value
- *  32-33 | s16   | --        | gyro Y value
- *  34-35 | s16   | --        | gyro Z value
+ *  24-25 | s16   | IMU ABS_X | accelerometer X value
+ *  26-27 | s16   | IMU ABS_Z | accelerometer Y value
+ *  28-29 | s16   | IMU ABS_Y | accelerometer Z value
+ *  30-31 | s16   | IMU ABS_RX | gyro X value
+ *  32-33 | s16   | IMU ABS_RZ | gyro Y value
+ *  34-35 | s16   | IMU ABS_RY | gyro Z value
  *  36-37 | s16   | --        | quaternion W value
  *  38-39 | s16   | --        | quaternion X value
  *  40-41 | s16   | --        | quaternion Y value
@@ -1545,6 +1654,32 @@ static void steam_do_deck_input_event(struct steam_device *steam,
 	input_sync(input);
 }
 
+static void steam_do_deck_sensors_event(struct steam_device *steam,
+		struct input_dev *sensors, u8 *data)
+{
+	/*
+	 * The deck input report is received every 4 ms on average,
+	 * with a jitter of +/- 4 ms even though the USB descriptor claims
+	 * that it uses 1 kHz.
+	 * Since the HID report does not include a sensor timestamp,
+	 * use a fixed increment here.
+	 */
+	steam->sensor_timestamp_us += 4000;
+
+	if (!steam->gamepad_mode)
+		return;
+
+	input_event(sensors, EV_MSC, MSC_TIMESTAMP, steam->sensor_timestamp_us);
+	input_report_abs(sensors, ABS_X, steam_le16(data + 24));
+	input_report_abs(sensors, ABS_Z, -steam_le16(data + 26));
+	input_report_abs(sensors, ABS_Y, steam_le16(data + 28));
+	input_report_abs(sensors, ABS_RX, steam_le16(data + 30));
+	input_report_abs(sensors, ABS_RZ, -steam_le16(data + 32));
+	input_report_abs(sensors, ABS_RY, steam_le16(data + 34));
+
+	input_sync(sensors);
+}
+
 /*
  * The size for this message payload is 11.
  * The known values are:
@@ -1582,6 +1717,7 @@ static int steam_raw_event(struct hid_device *hdev,
 {
 	struct steam_device *steam = hid_get_drvdata(hdev);
 	struct input_dev *input;
+	struct input_dev *sensors;
 	struct power_supply *battery;
 
 	if (!steam)
@@ -1627,6 +1763,9 @@ static int steam_raw_event(struct hid_device *hdev,
 		input = rcu_dereference(steam->input);
 		if (likely(input))
 			steam_do_deck_input_event(steam, input, data);
+		sensors = rcu_dereference(steam->sensors);
+		if (likely(sensors))
+			steam_do_deck_sensors_event(steam, sensors, data);
 		rcu_read_unlock();
 		break;
 	case ID_CONTROLLER_WIRELESS:
-- 
2.39.5




  parent reply	other threads:[~2025-02-19  9:03 UTC|newest]

Thread overview: 166+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-19  8:26 [PATCH 6.6 000/152] 6.6.79-rc1 review Greg Kroah-Hartman
2025-02-19  8:26 ` [PATCH 6.6 001/152] nfsd: clear acl_access/acl_default after releasing them Greg Kroah-Hartman
2025-02-19  8:26 ` [PATCH 6.6 002/152] NFSD: fix hang in nfsd4_shutdown_callback Greg Kroah-Hartman
2025-02-19  8:26 ` [PATCH 6.6 003/152] pinctrl: cy8c95x0: Respect IRQ trigger settings from firmware Greg Kroah-Hartman
2025-02-19  8:26 ` [PATCH 6.6 004/152] HID: multitouch: Add NULL check in mt_input_configured Greg Kroah-Hartman
2025-02-19  8:26 ` [PATCH 6.6 005/152] HID: hid-thrustmaster: fix stack-out-of-bounds read in usb_check_int_endpoints() Greg Kroah-Hartman
2025-02-19  8:26 ` [PATCH 6.6 006/152] spi: sn-f-ospi: Fix division by zero Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 007/152] ax25: Fix refcount leak caused by setting SO_BINDTODEVICE sockopt Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 008/152] ndisc: ndisc_send_redirect() must use dev_get_by_index_rcu() Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 009/152] vrf: use RCU protection in l3mdev_l3_out() Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 010/152] vxlan: check vxlan_vnigroup_init() return value Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 011/152] LoongArch: Fix idle VS timer enqueue Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 012/152] LoongArch: csum: Fix OoB access in IP checksum code for negative lengths Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 013/152] team: better TEAM_OPTION_TYPE_STRING validation Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 014/152] arm64: cacheinfo: Avoid out-of-bounds write to cacheinfo array Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 015/152] cgroup: Remove steal time from usage_usec Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 016/152] drm/i915/selftests: avoid using uninitialized context Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 017/152] gpio: bcm-kona: Fix GPIO lock/unlock for banks above bank 0 Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 018/152] gpio: bcm-kona: Make sure GPIO bits are unlocked when requesting IRQ Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 019/152] gpio: bcm-kona: Add missing newline to dev_err format string Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 020/152] drm/amdgpu: bail out when failed to load fw in psp_init_cap_microcode() Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 021/152] xen/swiotlb: relax alignment requirements Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 022/152] x86/xen: allow larger contiguous memory regions in PV guests Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 023/152] block: cleanup and fix batch completion adding conditions Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 024/152] gpiolib: Fix crash on error in gpiochip_get_ngpios() Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 025/152] tools: fix annoying "mkdir -p ..." logs when building tools in parallel Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 026/152] RDMA/efa: Reset device on probe failure Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 027/152] fbdev: omap: use threaded IRQ for LCD DMA Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 028/152] soc/tegra: fuse: Update Tegra234 nvmem keepout list Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 029/152] media: cxd2841er: fix 64-bit division on gcc-9 Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 030/152] media: i2c: ds90ub913: Add error handling to ub913_hw_init() Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 031/152] media: i2c: ds90ub953: Add error handling for i2c reads/writes Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 032/152] media: uvcvideo: Implement dual stream quirk to fix loss of usb packets Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 033/152] media: uvcvideo: Add new quirk definition for the Sonix Technology Co. 292a camera Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 034/152] media: uvcvideo: Add Kurokesu C1 PRO camera Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 035/152] media: vidtv: Fix a null-ptr-deref in vidtv_mux_stop_thread Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 036/152] PCI/DPC: Quirk PIO log size for Intel Raptor Lake-P Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 037/152] PCI: switchtec: Add Microchip PCI100X device IDs Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 038/152] scsi: ufs: bsg: Set bsg_queue to NULL after removal Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 039/152] rtla/timerlat_hist: Abort event processing on second signal Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 040/152] rtla/timerlat_top: " Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 041/152] vfio/pci: Enable iowrite64 and ioread64 for vfio pci Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 042/152] NFS: Fix potential buffer overflowin nfs_sysfs_link_rpc_client() Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 043/152] Grab mm lock before grabbing pt lock Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 044/152] selftests: gpio: gpio-sim: Fix missing chip disablements Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 045/152] ACPI: x86: Add skip i2c clients quirk for Vexia EDU ATLA 10 tablet 5V Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 046/152] x86/mm/tlb: Only trim the mm_cpumask once a second Greg Kroah-Hartman
2025-04-10  1:13   ` Jinjiang Tu
2025-04-10  7:03     ` Greg KH
2025-04-10  7:40       ` Jinjiang Tu
2025-02-19  8:27 ` [PATCH 6.6 047/152] orangefs: fix a oob in orangefs_debug_write Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 048/152] ASoC: Intel: bytcr_rt5640: Add DMI quirk for Vexia Edu Atla 10 tablet 5V Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 049/152] batman-adv: fix panic during interface removal Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 050/152] batman-adv: Ignore neighbor throughput metrics in error case Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 051/152] batman-adv: Drop unmanaged ELP metric worker Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 052/152] drm/amdgpu: avoid buffer overflow attach in smu_sys_set_pp_table() Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 053/152] KVM: x86: Reject Hyper-Vs SEND_IPI hypercalls if local APIC isnt in-kernel Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 054/152] KVM: nSVM: Enter guest mode before initializing nested NPT MMU Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 055/152] perf/x86/intel: Ensure LBRs are disabled when a CPU is starting Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 056/152] usb: gadget: f_midi: Fixing wMaxPacketSize exceeded issue during MIDI bind retries Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 057/152] usb: dwc3: Fix timeout issue during controller enter/exit from halt state Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 058/152] usb: roles: set switch registered flag early on Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 059/152] usb: gadget: udc: renesas_usb3: Fix compiler warning Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 060/152] usb: dwc2: gadget: remove of_node reference upon udc_stop Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 061/152] USB: pci-quirks: Fix HCCPARAMS register error for LS7A EHCI Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 062/152] usb: core: fix pipe creation for get_bMaxPacketSize0 Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 063/152] USB: quirks: add USB_QUIRK_NO_LPM quirk for Teclast dist Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 064/152] USB: Add USB_QUIRK_NO_LPM quirk for sony xperia xz1 smartphone Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 065/152] usb: gadget: f_midi: fix MIDI Streaming descriptor lengths Greg Kroah-Hartman
2025-02-19  8:27 ` [PATCH 6.6 066/152] USB: hub: Ignore non-compliant devices with too many configs or interfaces Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 067/152] USB: cdc-acm: Fill in Renesas R-Car D3 USB Download mode quirk Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 068/152] usb: cdc-acm: Check control transfer buffer size before access Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 069/152] usb: cdc-acm: Fix handling of oversized fragments Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 070/152] USB: serial: option: add MeiG Smart SLM828 Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 071/152] USB: serial: option: add Telit Cinterion FN990B compositions Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 072/152] USB: serial: option: fix Telit Cinterion FN990A name Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 073/152] USB: serial: option: drop MeiG Smart defines Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 074/152] can: ctucanfd: handle skb allocation failure Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 075/152] can: c_can: fix unbalanced runtime PM disable in error path Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 076/152] can: j1939: j1939_sk_send_loop(): fix unable to send messages with data length zero Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 077/152] can: etas_es58x: fix potential NULL pointer dereference on udev->serial Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 078/152] alpha: make stack 16-byte aligned (most cases) Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 079/152] wifi: ath12k: fix handling of 6 GHz rules Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 080/152] kbuild: userprogs: fix bitsize and target detection on clang Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 081/152] efi: Avoid cold plugged memory for placing the kernel Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 082/152] cgroup: fix race between fork and cgroup.kill Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 083/152] serial: port: Assign ->iotype correctly when ->iobase is set Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 084/152] serial: port: Always update ->iotype in __uart_read_properties() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 085/152] serial: 8250: Fix fifo underflow on flush Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 086/152] alpha: align stack for page fault and user unaligned trap handlers Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 087/152] gpiolib: acpi: Add a quirk for Acer Nitro ANV14 Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 088/152] gpio: stmpe: Check return value of stmpe_reg_read in stmpe_gpio_irq_sync_unlock Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 089/152] partitions: mac: fix handling of bogus partition table Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 090/152] regulator: qcom_smd: Add l2, l5 sub-node to mp5496 regulator Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 091/152] regmap-irq: Add missing kfree() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 092/152] arm64: Handle .ARM.attributes section in linker scripts Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 093/152] mmc: mtk-sd: Fix register settings for hs400(es) mode Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 094/152] igc: Set buffer type for empty frames in igc_init_empty_frame Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 095/152] mlxsw: Add return value check for mlxsw_sp_port_get_stats_raw() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 096/152] btrfs: fix hole expansion when writing at an offset beyond EOF Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 097/152] clocksource: Use pr_info() for "Checking clocksource synchronization" message Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 098/152] clocksource: Use migrate_disable() to avoid calling get_random_u32() in atomic context Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 099/152] ipv4: add RCU protection to ip4_dst_hoplimit() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 100/152] net: treat possible_net_t net pointer as an RCU one and add read_pnet_rcu() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 101/152] net: add dev_net_rcu() helper Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 102/152] ipv4: use RCU protection in ipv4_default_advmss() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 103/152] ipv4: use RCU protection in rt_is_expired() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 104/152] ipv4: use RCU protection in inet_select_addr() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 105/152] net: ipv4: Cache pmtu for all packet paths if multipath enabled Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 106/152] ipv4: use RCU protection in __ip_rt_update_pmtu() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 107/152] ipv4: icmp: convert to dev_net_rcu() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 108/152] flow_dissector: use RCU protection to fetch dev_net() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 109/152] ipv6: use RCU protection in ip6_default_advmss() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 110/152] ipv6: icmp: convert to dev_net_rcu() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 111/152] HID: hid-steam: Avoid overwriting smoothing parameter Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 112/152] HID: hid-steam: Disable watchdog instead of using a heartbeat Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 113/152] HID: hid-steam: Clean up locking Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 114/152] HID: hid-steam: Update list of identifiers from SDL Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 115/152] HID: hid-steam: Add gamepad-only mode switched to by holding options Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 116/152] HID: hid-steam: remove pointless error message Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 117/152] HID: hid-steam: Fix cleanup in probe() Greg Kroah-Hartman
2025-02-19  8:28 ` Greg Kroah-Hartman [this message]
2025-02-19  8:28 ` [PATCH 6.6 119/152] HID: hid-steam: Make sure rumble work is canceled on removal Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 120/152] HID: hid-steam: Move hidraw input (un)registering to work Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 121/152] ndisc: use RCU protection in ndisc_alloc_skb() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 122/152] neighbour: delete redundant judgment statements Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 123/152] neighbour: use RCU protection in __neigh_notify() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 124/152] arp: use RCU protection in arp_xmit() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 125/152] openvswitch: use RCU protection in ovs_vport_cmd_fill_info() Greg Kroah-Hartman
2025-02-19  8:28 ` [PATCH 6.6 126/152] ndisc: extend RCU protection in ndisc_send_skb() Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 127/152] ipv6: mcast: extend RCU protection in igmp6_send() Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 128/152] ipv6: mcast: add RCU protection to mld_newpack() Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 129/152] drm/tidss: Fix issue in irq handling causing irq-flood issue Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 130/152] drm/tidss: Clear the interrupt status for interrupts being disabled Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 131/152] drm/rcar-du: dsi: Fix PHY lock bit check Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 132/152] drm/v3d: Stop active perfmon if it is being destroyed Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 133/152] x86/static-call: Remove early_boot_irqs_disabled check to fix Xen PVH dom0 Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 134/152] drm/amd/display: Add null check for head_pipe in dcn201_acquire_free_pipe_for_layer Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 135/152] drm/amd/display: Pass non-null to dcn20_validate_apply_pipe_split_flags Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 136/152] netdevsim: print human readable IP address Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 137/152] selftests: rtnetlink: update netdevsim ipsec output format Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 138/152] md/raid5: recheck if reshape has finished with device_lock held Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 139/152] md/md-bitmap: factor behind write counters out from bitmap_{start/end}write() Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 140/152] md/md-bitmap: remove the last parameter for bimtap_ops->endwrite() Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 141/152] md: add a new callback pers->bitmap_sector() Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 142/152] md/raid5: implement pers->bitmap_sector() Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 143/152] md/md-bitmap: move bitmap_{start, end}write to md upper layer Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 144/152] arm64: Filter out SVE hwcaps when FEAT_SVE isnt implemented Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 145/152] mm: gup: fix infinite loop within __get_longterm_locked Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 146/152] alpha: replace hardcoded stack offsets with autogenerated ones Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 147/152] HID: hid-steam: Dont use cancel_delayed_work_sync in IRQ context Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 148/152] io_uring/kbuf: reallocate buf lists on upgrade Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 149/152] vsock: Keep the binding until socket destruction Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 150/152] vsock: Orphan socket after transport release Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 151/152] x86/i8253: Disable PIT timer 0 when not in use Greg Kroah-Hartman
2025-02-19  8:29 ` [PATCH 6.6 152/152] Revert "vfio/platform: check the bounds of read/write syscalls" Greg Kroah-Hartman
2025-02-19 12:24 ` [PATCH 6.6 000/152] 6.6.79-rc1 review Peter Schneider
2025-02-19 13:10 ` Jon Hunter
2025-02-19 18:16 ` [PATCH 6.6] " Hardik Garg
2025-02-19 22:25 ` [PATCH 6.6 000/152] " Ron Economos
2025-02-19 23:12 ` Mark Brown
2025-02-20 11:37 ` Naresh Kamboju
2025-02-20 12:15 ` Harshit Mogalapalli
2025-02-20 16:14 ` Shuah Khan
2025-02-20 16:47 ` Slade Watkins
2025-02-21 18:01 ` Florian Fainelli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250219082554.723957704@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=jkosina@suse.com \
    --cc=mmm-1@posteo.net \
    --cc=patches@lists.linux.dev \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=vi@endrift.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox