mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
Merge branch 'for-7.1/lenovo-v2' into for-linus
- new driver for Lenovo Legion Go / S devices (Derek J. Clark)
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,304 @@
|
||||
What: /sys/class/leds/go_s:rgb:joystick_rings/effect
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls the display effect of the RGB interface.
|
||||
|
||||
Values are monocolor, breathe, chroma, or rainbow.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/class/leds/go_s:rgb:joystick_rings/effect_index
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the effect attribute.
|
||||
|
||||
Values are monocolor, breathe, chroma, or rainbow.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/class/leds/go_s:rgb:joystick_rings/enabled
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls enabling or disabling the RGB interface.
|
||||
|
||||
Values are true or false.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/class/leds/go_s:rgb:joystick_rings/enabled_index
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the enabled attribute.
|
||||
|
||||
Values are true or false.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/class/leds/go_s:rgb:joystick_rings/mode
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls the operating mode of the RGB interface.
|
||||
|
||||
Values are dynamic or custom. Custom allows setting the RGB effect and color.
|
||||
Dynamic is a Windows mode for syncing Lenovo RGB interfaces not currently
|
||||
supported under Linux.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/class/leds/go_s:rgb:joystick_rings/mode_index
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the mode attribute.
|
||||
|
||||
Values are dynamic or custom.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/class/leds/go_s:rgb:joystick_rings/profile
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls selecting the configured RGB profile.
|
||||
|
||||
Values are 1-3.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/class/leds/go_s:rgb:joystick_rings/profile_range
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the profile attribute.
|
||||
|
||||
Values are 1-3.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/class/leds/go_s:rgb:joystick_rings/speed
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls the change rate for the breathe, chroma, and rainbow effects.
|
||||
|
||||
Values are 0-100.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/class/leds/go_s:rgb:joystick_rings/speed_range
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the speed attribute.
|
||||
|
||||
Values are 0-100.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/auto_sleep_time
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls the sleep timer due to inactivity for the built-in controller.
|
||||
|
||||
Values are 0-255.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/auto_sleep_time_range
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the gamepad/auto_sleep_time attribute.
|
||||
|
||||
Values are 0-255.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/dpad_mode
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls the operating mode of the built-in controllers D-pad.
|
||||
|
||||
Values are 4-way or 8-way.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/dpad_mode_index
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the gamepad/dpad_mode attribute.
|
||||
|
||||
Values are 4-way or 8-way.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/mode
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls the operating mode of the built-in controller.
|
||||
|
||||
Values are xinput or dinput.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/mode_index
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the gamepad/mode attribute.
|
||||
|
||||
Values are xinput or dinput.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/poll_rate
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls the poll rate in Hz of the built-in controller.
|
||||
|
||||
Values are 125, 250, 500, or 1000.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/gamepad/poll_rate_index
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the gamepad/poll_rate attribute.
|
||||
|
||||
Values are 125, 250, 500, or 1000.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/imu/bypass_enabled
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls enabling or disabling the IMU bypass function. When enabled the IMU data is directly reported to the OS through
|
||||
an HIDRAW interface.
|
||||
|
||||
Values are true or false.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/imu/bypass_enabled_index
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the imu/bypass_enabled attribute.
|
||||
|
||||
Values are true or false.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/imu/manufacturer
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the manufacturer of the intertial measurment unit.
|
||||
|
||||
Values are Bosch or ST.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/imu/sensor_enabled
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls enabling or disabling the IMU.
|
||||
|
||||
Values are true, false, or wake-2s.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/imu/sensor_enabled_index
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the imu/sensor_enabled attribute.
|
||||
|
||||
Values are true, false, or wake-2s.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/mcu_id
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the MCU Identification Number
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/mouse/step
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls which value is used for the mouse sensitivity.
|
||||
|
||||
Values are 1-127.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/mouse/step_range
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the mouse/step attribute.
|
||||
|
||||
Values are 1-127.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/os_mode
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls which value is used for the touchpads operating mode.
|
||||
|
||||
Values are windows or linux.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/os_mode_index
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the os_mode attribute.
|
||||
|
||||
Values are windows or linux.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/enabled
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls enabling or disabling the built-in touchpad.
|
||||
|
||||
Values are true or false.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/enabled_index
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the touchpad/enabled attribute.
|
||||
|
||||
Values are true or false.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/linux_mode
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls behavior of the touchpad events when os_mode is set to linux.
|
||||
|
||||
Values are absolute or relative.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/linux_mode_index
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the touchpad/linux_mode attribute.
|
||||
|
||||
Values are absolute or relative.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/windows_mode
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This controls behavior of the touchpad events when os_mode is set to windows.
|
||||
|
||||
Values are absolute or relative.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
|
||||
What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/touchpad/windows_mode_index
|
||||
Date: April 2026
|
||||
Contact: linux-input@vger.kernel.org
|
||||
Description: This displays the available options for the touchpad/windows_mode attribute.
|
||||
|
||||
Values are absolute or relative.
|
||||
|
||||
Applies to Lenovo Legion Go S line of handheld devices.
|
||||
+11
@@ -14469,6 +14469,17 @@ L: platform-driver-x86@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/platform/x86/lenovo/wmi-hotkey-utilities.c
|
||||
|
||||
LENOVO HID drivers
|
||||
M: Derek J. Clark <derekjohn.clark@gmail.com>
|
||||
M: Mark Pearson <mpearson-lenovo@squebb.ca>
|
||||
L: linux-input@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/ABI/testing/sysfs-driver-hid-lenovo-go
|
||||
F: Documentation/ABI/testing/sysfs-driver-hid-lenovo-go-s
|
||||
F: drivers/hid/hid-lenovo-go-s.c
|
||||
F: drivers/hid/hid-lenovo-go.c
|
||||
F: drivers/hid/hid-lenovo.c
|
||||
|
||||
LETSKETCH HID TABLET DRIVER
|
||||
M: Hans de Goede <hansg@kernel.org>
|
||||
L: linux-input@vger.kernel.org
|
||||
|
||||
+23
-2
@@ -601,8 +601,7 @@ config HID_LED
|
||||
|
||||
config HID_LENOVO
|
||||
tristate "Lenovo / Thinkpad devices"
|
||||
select NEW_LEDS
|
||||
select LEDS_CLASS
|
||||
depends on LEDS_CLASS
|
||||
help
|
||||
Support for IBM/Lenovo devices that are not fully compliant with HID standard.
|
||||
|
||||
@@ -614,6 +613,28 @@ config HID_LENOVO
|
||||
- ThinkPad Compact Bluetooth Keyboard with TrackPoint (supports Fn keys)
|
||||
- ThinkPad Compact USB Keyboard with TrackPoint (supports Fn keys)
|
||||
|
||||
config HID_LENOVO_GO
|
||||
tristate "HID Driver for Lenovo Legion Go Series Controllers"
|
||||
depends on USB_HID
|
||||
depends on LEDS_CLASS_MULTICOLOR
|
||||
help
|
||||
Support for Lenovo Legion Go devices with detachable controllers.
|
||||
|
||||
Say Y here to include configuration interface support for the Lenovo Legion Go
|
||||
and Legion Go 2 Handheld Console Controllers. Say M here to compile this
|
||||
driver as a module. The module will be called hid-lenovo-go.
|
||||
|
||||
config HID_LENOVO_GO_S
|
||||
tristate "HID Driver for Lenovo Legion Go S Controller"
|
||||
depends on USB_HID
|
||||
depends on LEDS_CLASS_MULTICOLOR
|
||||
help
|
||||
Support for Lenovo Legion Go S Handheld Console Controller.
|
||||
|
||||
Say Y here to include configuration interface support for the Lenovo Legion Go
|
||||
S. Say M here to compile this driver as a module. The module will be called
|
||||
hid-lenovo-go-s.
|
||||
|
||||
config HID_LETSKETCH
|
||||
tristate "Letsketch WP9620N tablets"
|
||||
depends on USB_HID
|
||||
|
||||
@@ -76,6 +76,8 @@ obj-$(CONFIG_HID_KYE) += hid-kye.o
|
||||
obj-$(CONFIG_HID_KYSONA) += hid-kysona.o
|
||||
obj-$(CONFIG_HID_LCPOWER) += hid-lcpower.o
|
||||
obj-$(CONFIG_HID_LENOVO) += hid-lenovo.o
|
||||
obj-$(CONFIG_HID_LENOVO_GO) += hid-lenovo-go.o
|
||||
obj-$(CONFIG_HID_LENOVO_GO_S) += hid-lenovo-go-s.o
|
||||
obj-$(CONFIG_HID_LETSKETCH) += hid-letsketch.o
|
||||
obj-$(CONFIG_HID_LOGITECH) += hid-logitech.o
|
||||
obj-$(CONFIG_HID_LOGITECH) += hid-lg-g15.o
|
||||
|
||||
@@ -2895,6 +2895,11 @@ static int hid_uevent(const struct device *dev, struct kobj_uevent_env *env)
|
||||
if (add_uevent_var(env, "MODALIAS=hid:b%04Xg%04Xv%08Xp%08X",
|
||||
hdev->bus, hdev->group, hdev->vendor, hdev->product))
|
||||
return -ENOMEM;
|
||||
if (hdev->firmware_version) {
|
||||
if (add_uevent_var(env, "HID_FIRMWARE_VERSION=0x%04llX",
|
||||
hdev->firmware_version))
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -754,6 +754,10 @@
|
||||
#define USB_DEVICE_ID_ITE8595 0x8595
|
||||
#define USB_DEVICE_ID_ITE_MEDION_E1239T 0xce50
|
||||
|
||||
#define USB_VENDOR_ID_QHE 0x1a86
|
||||
#define USB_DEVICE_ID_LENOVO_LEGION_GO_S_XINPUT 0xe310
|
||||
#define USB_DEVICE_ID_LENOVO_LEGION_GO_S_DINPUT 0xe311
|
||||
|
||||
#define USB_VENDOR_ID_JABRA 0x0b0e
|
||||
#define USB_DEVICE_ID_JABRA_SPEAK_410 0x0412
|
||||
#define USB_DEVICE_ID_JABRA_SPEAK_510 0x0420
|
||||
@@ -873,7 +877,10 @@
|
||||
#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_602E 0x602e
|
||||
#define USB_DEVICE_ID_LENOVO_PIXART_USB_MOUSE_6093 0x6093
|
||||
#define USB_DEVICE_ID_LENOVO_LEGION_GO_DUAL_DINPUT 0x6184
|
||||
#define USB_DEVICE_ID_LENOVO_LEGION_GO2_XINPUT 0x61eb
|
||||
#define USB_DEVICE_ID_LENOVO_LEGION_GO2_DINPUT 0x61ec
|
||||
#define USB_DEVICE_ID_LENOVO_LEGION_GO2_DUAL_DINPUT 0x61ed
|
||||
#define USB_DEVICE_ID_LENOVO_LEGION_GO2_FPS 0x61ee
|
||||
|
||||
#define USB_VENDOR_ID_LETSKETCH 0x6161
|
||||
#define USB_DEVICE_ID_WP9620N 0x4d15
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -189,6 +189,22 @@ ssize_t device_show_string(struct device *dev, struct device_attribute *attr,
|
||||
#define DEVICE_ATTR_ADMIN_RW(_name) \
|
||||
struct device_attribute dev_attr_##_name = __ATTR_RW_MODE(_name, 0600)
|
||||
|
||||
/**
|
||||
* DEVICE_ATTR_RW_NAMED - Define a read-write device attribute with a sysfs name
|
||||
* that differs from the function name.
|
||||
* @_name: Attribute function preface
|
||||
* @_attrname: Attribute name as it wil be exposed in the sysfs.
|
||||
*
|
||||
* Like DEVICE_ATTR_RW(), but allows for reusing names under separate paths in
|
||||
* the same driver.
|
||||
*/
|
||||
#define DEVICE_ATTR_RW_NAMED(_name, _attrname) \
|
||||
struct device_attribute dev_attr_##_name = { \
|
||||
.attr = { .name = _attrname, .mode = 0644 }, \
|
||||
.show = _name##_show, \
|
||||
.store = _name##_store, \
|
||||
}
|
||||
|
||||
/**
|
||||
* DEVICE_ATTR_RO - Define a readable device attribute.
|
||||
* @_name: Attribute name.
|
||||
@@ -207,6 +223,21 @@ ssize_t device_show_string(struct device *dev, struct device_attribute *attr,
|
||||
#define DEVICE_ATTR_ADMIN_RO(_name) \
|
||||
struct device_attribute dev_attr_##_name = __ATTR_RO_MODE(_name, 0400)
|
||||
|
||||
/**
|
||||
* DEVICE_ATTR_RO_NAMED - Define a read-only device attribute with a sysfs name
|
||||
* that differs from the function name.
|
||||
* @_name: Attribute function preface
|
||||
* @_attrname: Attribute name as it wil be exposed in the sysfs.
|
||||
*
|
||||
* Like DEVICE_ATTR_RO(), but allows for reusing names under separate paths in
|
||||
* the same driver.
|
||||
*/
|
||||
#define DEVICE_ATTR_RO_NAMED(_name, _attrname) \
|
||||
struct device_attribute dev_attr_##_name = { \
|
||||
.attr = { .name = _attrname, .mode = 0444 }, \
|
||||
.show = _name##_show, \
|
||||
}
|
||||
|
||||
/**
|
||||
* DEVICE_ATTR_WO - Define an admin-only writable device attribute.
|
||||
* @_name: Attribute name.
|
||||
@@ -216,6 +247,21 @@ ssize_t device_show_string(struct device *dev, struct device_attribute *attr,
|
||||
#define DEVICE_ATTR_WO(_name) \
|
||||
struct device_attribute dev_attr_##_name = __ATTR_WO(_name)
|
||||
|
||||
/**
|
||||
* DEVICE_ATTR_WO_NAMED - Define a read-only device attribute with a sysfs name
|
||||
* that differs from the function name.
|
||||
* @_name: Attribute function preface
|
||||
* @_attrname: Attribute name as it wil be exposed in the sysfs.
|
||||
*
|
||||
* Like DEVICE_ATTR_WO(), but allows for reusing names under separate paths in
|
||||
* the same driver.
|
||||
*/
|
||||
#define DEVICE_ATTR_WO_NAMED(_name, _attrname) \
|
||||
struct device_attribute dev_attr_##_name = { \
|
||||
.attr = { .name = _attrname, .mode = 0200 }, \
|
||||
.store = _name##_store, \
|
||||
}
|
||||
|
||||
/**
|
||||
* DEVICE_ULONG_ATTR - Define a device attribute backed by an unsigned long.
|
||||
* @_name: Attribute name.
|
||||
|
||||
@@ -721,6 +721,7 @@ struct hid_device {
|
||||
char name[128]; /* Device name */
|
||||
char phys[64]; /* Device physical location */
|
||||
char uniq[64]; /* Device unique identifier (serial #) */
|
||||
u64 firmware_version; /* Firmware version */
|
||||
|
||||
void *driver_data;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user