Repository navigation
Conversation
005fb1f to
c6ee973
Compare
c6ee973 to
2ce82cc
Compare
|
I've moved the patch to 7.2 in order to have some stability (7.3 is way too bugged as for now). When the situation will be better I'll move it back to 7.3. I leave that draft open for now |
45f6a76 to
1a38a2e
Compare
1a38a2e to
4e550e9
Compare
|
Added an aura:global that controls both keyboard and lightbar for those devices that don't have the ability to control them separately |
3a706b9 to
a4d18f6
Compare
cifs.idmap key descriptions carry authority-bearing fields (owner and group SIDs and uid/gid values in "os:"/"gs:"/"oi:"/"gi:" form) that the cifs.idmap upcall helper treats as kernel-originating inputs. Unlike its sibling cifs.spnego, the cifs.idmap key type has no vet_description hook, so userspace can create keys of this type through request_key(2)/add_key(2) and supply those fields without CIFS origin. A request_key(2) call with a non-NULL callout then drives a root usermodehelper upcall (/sbin/request-key -> cifs.idmap) that consumes the unvetted description in root context. Only accept cifs.idmap descriptions while CIFS is using its private root_cred to request the key. id_to_sid()/sid_to_id() already run under override_creds(root_cred), so the kernel-originated path is unaffected. This mirrors commit 3da1fdf ("smb: client: reject userspace cifs.spnego descriptions"), which applied the same restriction to cifs.spnego. Fixes: 4d79dba ("cifs: Add idmap key and related data structures and functions (try OpenGamingCollective#17 repost)") Reported-by: TencentOS Corvus AI <corvus@tencent.com> Cc: stable@vger.kernel.org Assisted-by: CodeBuddy:Kimi-K3 Signed-off-by: Aohan Mei <henrymei@tencent.com> Acked-by: David Howells <dhowells@redhat.com> Signed-off-by: Paulo Alcantara <pc@manguebit.org>
fb74985 to
907aeed
Compare
7d4bd15 to
3b75011
Compare
3b75011 to
5a77b23
Compare
pastaq
left a comment
There was a problem hiding this comment.
I'm concerned that this implementation is too restrictive. I was under the impression that the classdev would outline the shape of the ABI, and a generic implementation would also exist that would implement them. Currently I don't see how I can transition the existing hid-[lenovo-go*|oxp|msi] drivers to this which need more dynamic ability to describe built in effects. Ideally this could be a drop in replacement where I just need to define the index/range for each and assign function pointers like I do with brightness/multi_intensity.
…t/sashal/kapi.git # Conflicts: # Makefile # fs/open.c
…he.git # Conflicts: # drivers/gpu/drm/amd/amdkfd/kfd_migrate.c # net/ceph/osd_client.c
Signed-off-by: Mark Brown <broonie@kernel.org>
-- 2.47.3 (cherry picked from commit 536526d) (cherry picked from commit 0ebc551) (cherry picked from commit 2e5980a) -- 2.47.3 -- 2.47.3 (cherry picked from commit 82fa594) -- 2.47.3 (cherry picked from commit d62da27) (cherry picked from commit 9f79951) (cherry picked from commit fc175a9) (cherry picked from commit 3405905) (cherry picked from commit 5059972) -- 2.47.3 (cherry picked from commit 4909d19) (cherry picked from commit 9b88a7a) (cherry picked from commit c65503a) (cherry picked from commit 5a9bb4b) (cherry picked from commit 1b9153d) (cherry picked from commit 5160eb7) (cherry picked from commit 2c71742) (cherry picked from commit 2ee7afc)
(cherry picked from commit 64a1618) (cherry picked from commit a2c9baf) (cherry picked from commit 0424d14) (cherry picked from commit 1cbd534) (cherry picked from commit dd4b6df) (cherry picked from commit bd679ff) (cherry picked from commit 49e5a1b) (cherry picked from commit beff1fd) (cherry picked from commit c800a9f) (cherry picked from commit 532ea33) (cherry picked from commit 0072539) (cherry picked from commit 6355b8e) (cherry picked from commit c76c974) (cherry picked from commit d0f7488)
[Why] Chrontel CH7218 found in Ugreen DP -> HDMI 2.1 adapter (model 85564) works perfectly with VRR after testing. VRR and FreeSync compatibility is explicitly advertised as a feature so it's addition is a formality. Support FreeSync info packet passthrough and "generic" HDMI VRR. [How] Add CH7218's ID to dm_helpers_is_vrr_pcon_allowed() Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4773 Signed-off-by: Tomasz Pakuła <tomasz.pakula.oficjalny@gmail.com> (cherry picked from commit 7b2436287ed953496ad1c9eb5820f00b75db597f) (cherry picked from commit a9c7548) (cherry picked from commit 63b562c) (cherry picked from commit e20d460) (cherry picked from commit 39c6e1f) (cherry picked from commit f31c35d) (cherry picked from commit 5a29609) (cherry picked from commit 03acb99) (cherry picked from commit 01ebba4) (cherry picked from commit 03ca8d6) (cherry picked from commit 55355fe) (cherry picked from commit da5fdab) (cherry picked from commit ee51a9d) (cherry picked from commit d18764a) (cherry picked from commit e61c618)
The detachable keyboard shipped with the ROG Zephyrus Duo GX651AR (0b05:1ce6) is a ROG N-Key keyboard, but it is not listed in asus_devices[], so its interfaces are left to hid-generic and its vendor usages are never mapped by asus_input_mapping(). Add it with QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD, matching the other ROG N-Key keyboards. Tested-by: Cymirk <cymirk@icloud.com> Signed-off-by: Ahmed Yaseen <yaseen@ghoul.dev> (cherry picked from commit 8d70b5f) (cherry picked from commit 9582bd4) (cherry picked from commit 29ee8b6) (cherry picked from commit 9bd6541) (cherry picked from commit 1d4e5af) (cherry picked from commit bde69e2) (cherry picked from commit 8693b81) (cherry picked from commit 9efd707) (cherry picked from commit 64f73dd) (cherry picked from commit bc07ea1) (cherry picked from commit 4129ce8) (cherry picked from commit c28e046) (cherry picked from commit 526eb89) (cherry picked from commit 99228d1)
On the ROG Zephyrus Duo GX651AR (0b05:1ce6) the hotkeys live on report 0x5a on an interface whose descriptor holds nothing but two ASUS vendor collections. Neither satisfies IS_INPUT_APPLICATION(), so hidinput_connect() creates no input device, asus_input_mapping() never runs and every hotkey is dropped by asus_event() as unmapped. Set HID_QUIRK_HIDINPUT_FORCE on ROG N-Key interfaces that carry an ASUS vendor input report so those usages get mapped. Interfaces left with no mapped usage are still discarded by hidinput_has_been_populated(). The vendor check reads report_enum[HID_INPUT_REPORT], so interfaces with no input reports, such as the RGB control interface, are unaffected. Tested-by: Cymirk <cymirk@icloud.com> Signed-off-by: Ahmed Yaseen <yaseen@ghoul.dev> (cherry picked from commit 69887e3) (cherry picked from commit 4e70783) (cherry picked from commit b3ceeae) (cherry picked from commit c492209) (cherry picked from commit 26d962c) (cherry picked from commit 79bac16) (cherry picked from commit 1c82f13) (cherry picked from commit 1bd2e4f) (cherry picked from commit a96206f) (cherry picked from commit c3582da) (cherry picked from commit 4b77d8f) (cherry picked from commit f8535cc) (cherry picked from commit b847090) (cherry picked from commit 017b78d)
The GX651AR keyboard enumerates as 0b05:1ce6 over USB but pairs as 0b05:1ce7 in Bluetooth mode, where the keyboard, consumer and both ASUS vendor collections (reports 0x5a and 0x5d) sit on a single HID device. Add it with the same quirks as the USB entry. Bind to HID_GROUP_GENERIC so that hid-multitouch keeps the digitizer. Tested-by: Cymirk <cymirk@icloud.com> Signed-off-by: Ahmed Yaseen <yaseen@ghoul.dev> (cherry picked from commit b0dbc09) (cherry picked from commit f460429) (cherry picked from commit af0d892) (cherry picked from commit 98993b7) (cherry picked from commit d8a5f65) (cherry picked from commit 31636fd) (cherry picked from commit d442efa) (cherry picked from commit 6438277) (cherry picked from commit 9d3e8d4) (cherry picked from commit af598e0) (cherry picked from commit 9cb91f9) (cherry picked from commit d0aa635) (cherry picked from commit 55593c6) (cherry picked from commit 67ea3bb)
Fn+F12 on the GX651AR keyboard emits ASUS vendor code 0x9c, which asus_input_mapping() does not know about, so asus_event() drops it as unmapped. Map it to KEY_F19. F13 to F18 are already used for ASUS toggles that have no generic keycode. Tested-by: Cymirk <cymirk@icloud.com> Signed-off-by: Ahmed Yaseen <yaseen@ghoul.dev> (cherry picked from commit 337a811) (cherry picked from commit a980051) (cherry picked from commit aafe6db) (cherry picked from commit 6bc535e) (cherry picked from commit 397e1aa) (cherry picked from commit 711123e) (cherry picked from commit c948d6c) (cherry picked from commit 4974e1c) (cherry picked from commit c3c0f64) (cherry picked from commit cc8a0d5) (cherry picked from commit 3c348ee) (cherry picked from commit aefa55e) (cherry picked from commit 54517d9) (cherry picked from commit bbf99f6)
…log head on banner failure
The smoke test greps the captured serial console log for the kernel
banner ("Linux version <KREL> "), but the banner is printed at
KERN_NOTICE while some distro configs default the console to a quieter
level: Arch ships CONFIG_CONSOLE_LOGLEVEL_DEFAULT=4, which suppresses
notice (and info) messages entirely. The result was a confusing failure
mode: the kernel booted to userspace just fine (BOOT_OK marker, printed
by init directly on /dev/ttyS0), yet the banner check failed because
the console log only carried a few high-priority lines.
Pin loglevel=7 on the test kernel command line so every distro kernel
logs verbosely enough for the banner to be captured, and replace the
useless "^Linux version" grep in the failure path (banner lines are
prefixed with a "[ 0.000000] " timestamp, so that grep could never
match) with a dump of the first serial console lines.
Verified locally against a kernel built with the exact Arch config
pipeline: the run failed identically to CI before the change and passes
both the bios-pc and uefi-q35 legs after it.
(cherry picked from commit af2b902)
(cherry picked from commit 98d39d0)
(cherry picked from commit adfb8ee)
(cherry picked from commit cf99356)
(cherry picked from commit f3282c8)
(cherry picked from commit 303e045)
(cherry picked from commit 12ee4e2)
(cherry picked from commit 0d6c6e9)
(cherry picked from commit 6a701c1)
(cherry picked from commit 4ca1f04)
(cherry picked from commit 92be6ae)
(cherry picked from commit 985ba65)
(cherry picked from commit cdc2af3)
Commit 4fafd11 ("kallsyms: increase marker density to 16:1 to accelerate lookups") made scripts/kallsyms.c include ../kernel/kallsyms_internal.h, but the tree staged by install-extmod-build contains no kernel/ files. install-extmod-build rebuilds the host programs inside the staged tree whenever CC differs from HOSTCC (cross builds, or a ccache-wrapped CC). scripts/kallsyms is hostprogs-always-y, so that rebuild fails with: scripts/kallsyms.c:39:10: fatal error: '../kernel/kallsyms_internal.h' file not found Stage the header so the linux-headers-* and kernel-devel style packages can rebuild scripts/kallsyms. Assisted-by: ZCode:glm-5.3 Signed-off-by: Denis Benato <denis.benato@linux.dev> (cherry picked from commit 3ae3b4f) (cherry picked from commit dbfdae1) (cherry picked from commit d7c485f) (cherry picked from commit 13c9bff) (cherry picked from commit bbe13d5) (cherry picked from commit 24bc904) (cherry picked from commit 3e49796) (cherry picked from commit 4c406a7)
When the system is powered off the kernel will call device_shutdown() which will issue callbacks into PCI core to wake up a device and call it's shutdown() callback. This will leave devices in ACPI D0 which can cause some devices to misbehave with spurious wakeups and also leave some devices on which will consume power needlessly. The issue won't happen if the device is in D3 before system shutdown, so putting device to low power state before shutdown solves the issue. ACPI Spec 6.5, "7.4.2.5 System \_S4 State" says "Devices states are compatible with the current Power Resource states. In other words, all devices are in the D3 state when the system state is S4." The following "7.4.2.6 System \_S5 State (Soft Off)" states "The S5 state is similar to the S4 state except that OSPM does not save any context." so it's safe to assume devices should be at D3 for S5. To accomplish this, use the PMSG_POWEROFF event to call all the device hibernate callbacks when the kernel is compiled with hibernate support. If compiled without hibernate support or hibernate fails fall back into the previous shutdown flow. Cc: AceLan Kao <acelan.kao@canonical.com> Cc: Kai-Heng Feng <kaihengf@nvidia.com> Cc: Mark Pearson <mpearson-lenovo@squebb.ca> Cc: Merthan Karakaş <m3rthn.k@gmail.com> Tested-by: Eric Naim <dnaim@cachyos.org> Tested-by: Denis Benato <benato.denis96@gmail.com> Link: https://lore.kernel.org/linux-pci/20231213182656.6165-1-mario.limonciello@amd.com/ Link: https://lore.kernel.org/linux-pci/20250506041934.1409302-1-superm1@kernel.org/ Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org> (cherry picked from commit 105f246) (cherry picked from commit 6f89d3e) (cherry picked from commit 064992c) (cherry picked from commit 72b3626) (cherry picked from commit 3be30f0) (cherry picked from commit d757778) (cherry picked from commit 24303b5) (cherry picked from commit 9b16fcc)
Powering off now uses the hibernation callback flow when it is available. Add an escape valve for systems that fail with this flow. The shutdown=legacy option restores the device_shutdown() path. Document it in the kernel parameter reference and the shutdown debugging guide. Signed-off-by: Mario Limonciello <superm1@kernel.org> (cherry picked from commit 09ceee6) (cherry picked from commit 1b0b797) (cherry picked from commit 3dae5af) (cherry picked from commit 403fdb8) (cherry picked from commit 04e13bd) (cherry picked from commit e23c750) (cherry picked from commit a0f837a) (cherry picked from commit 30c9568)
The daily linux-next sync aborted because the marker subject on master is "[NOT-FOR-UPSTREAM] ogc: linux-unstable: first commit" while the workflow required an exact untagged match. Signed-off-by: Marco Scardovi <scardracs@disroot.org> (cherry picked from commit 974ff5e) (cherry picked from commit a1dd01e) (cherry picked from commit 735aeb1) (cherry picked from commit 863669c) (cherry picked from commit 6d7ebf3) (cherry picked from commit 2b127c9) (cherry picked from commit cc76d09) (cherry picked from commit 3a37a8d)
PR builds can only restore Actions caches from the default branch (or the same PR). Seed ccache-pr-gcc-master-* on every master push, including the linux-next sync force-push, using the same GCC recipe as test-pr.yml. Signed-off-by: Marco Scardovi <scardracs@disroot.org> (cherry picked from commit a2b55d9) (cherry picked from commit 8452d27) (cherry picked from commit ed48956) (cherry picked from commit 64e1742) (cherry picked from commit 3ba0151) (cherry picked from commit d502bc4) (cherry picked from commit 4974466) (cherry picked from commit de3a1f5)
The daily sync force-pushed master after cherry-picks without compiling, so a broken linux-next sched_ext merge reached master and failed every PR GCC job. Run the same Arch/OGC config + GCC recipe as test-pr.yml before push, and skip the push when the build fails. Quote the "Gate: ..." step name so the workflow YAML stays valid. Signed-off-by: Marco Scardovi <scardracs@disroot.org> (cherry picked from commit bbc18dd) (cherry picked from commit 7085053) (cherry picked from commit 8ed8fcc)
Keep warm-ccache-master.yml as the only writer of the shared master seed. PR builds restore it without saving per-PR entries that burn the 10GB Actions quota, and delete leftover PR-scoped caches on close. Signed-off-by: Marco Scardovi <scardracs@disroot.org> (cherry picked from commit 4b65254) (cherry picked from commit 848cd57) (cherry picked from commit a77cce0)
Add a dedicated Dynamic Lighting LED class for multi-LED effects, palette programming, direct frame streaming, and power-state persistence through sysfs. Drivers supply their own effect name table and optional ops. Sysfs exposes only implemented attributes, including read-only direct_sample_size (0 means packed RGB stride 3). Lighting off is enabled=false. Registration validates capabilities and serializes writes under led_access and a class-private lock. KUnit covers host attach, bounds, chunked direct_buffer writes, sample size discovery, invalid registration, and failed ops that must not mutate class state. Signed-off-by: Marco Scardovi <scardracs@disroot.org>
Document the Dynamic Lighting sysfs ABI and class guide. Describe optional attributes, host attach, locking order, and direct_sample_size for discovering the packed direct_buffer stride. Signed-off-by: Marco Scardovi <scardracs@disroot.org>
Add Dynamic Lighting class support to hid-asus for Aura-capable ROG keyboards and chassis lightbars. Discover Aura layout, lightbar, and per-key/direct RGB from HID feature reports rather than DMI board lists. Register asus::keyboard and, when the chassis lightbar is present, asus::lightbar. Each node keeps its own effect and palette. Publish the firmware effect list from the 0x9e capability mask and advertise direct when the keyboard path supports packed RGB. Lighting off uses enabled rather than a dedicated off effect. Commit firmware effects with Aura 0xb3/0xb5/0xb4. Direct frames use Aura 0xBC. Do not claim USB 0x193b in this change; Slash and AniMe bind in later commits after report-size and DMI discrimination. Signed-off-by: Marco Scardovi <scardracs@disroot.org>
Prefer a sibling HID LampArray interface (Usage Page 0x59) for direct RGB when present, and fall back to Aura 0xBC on -ENODEV. Bind the LampArray interface without hidraw so lighting stays under this driver. When a zone has no matching lamps, return -ENODEV before take_control so an empty match does not claim the sibling and report success. Track lightbar direct frames with lb_direct_valid so non-4-zone lightbar restores and blanking keep the correct cached buffer. Still do not claim USB 0x193b; Slash and AniMe arrive in later commits. Signed-off-by: Marco Scardovi <scardracs@disroot.org>
Introduce asus::slash for ROG Slash LED devices, initially as a LED class device with mode and interval attributes on top of Aura feature reports (and USB 0x193b when discrimination selects Slash). A later commit migrates this node onto the Dynamic Lighting class. Signed-off-by: Marco Scardovi <scardracs@disroot.org>
Bind USB 0x193b as AniMe Matrix when feature report 0x5e is ~640 bytes and/or DMI identifies a known AniMe board (GA401, GA402, GU604, G635L, G835L). Unknown AniMe boards use a safe GA402-like three-pane layout. Register asus::anime as a Dynamic Lighting node: brightness 0-3, enabled for display power, firmware stage animations as effects, and direct_buffer as one intensity byte per LED. Frames use the 0x5e/0xc0 pane protocol from asusctl rog-anime with flush, brightness, display, powersave and builtin commits. Signed-off-by: Marco Scardovi <scardracs@disroot.org>
Teach hid-asus Ally / Xbox Ally keyboard Dynamic Lighting quirks (effect lists, power path, brightness scale) and register the Xbox Guide LED as asus::xbox_logo. A later commit promotes asus::xbox_logo to full Dynamic Lighting effect/speed ops. Signed-off-by: Marco Scardovi <scardracs@disroot.org>
Finish chassis Dynamic Lighting coverage on top of the Aura/LampArray/ Slash/AniMe/Ally series: - Register asus::logo when Aura discovery reports a lid logo zone, with independent effect and power bits from the keyboard node - Migrate asus::slash from custom slash_mode attributes to a Dynamic Lighting node (effect, speed, enabled, power_states) - Expose asus::xbox_logo effects and speed on Ally / Xbox Ally - Wire AniMe power_states to the powersave-animation engine - Document that lightbar has no separate firmware dimmer (enabled only) Signed-off-by: Marco Scardovi <scardracs@disroot.org>
Summary
Vendor-agnostic Dynamic Lighting LED class (sysfs ABI for multi-LED effects, palette, direct frames, power-state persistence), then a progressive
hid-asusseries that ends with full chassis coverage.The LED class stays generic: no ASUS protocol under
drivers/leds/. Vendor logic is confined tohid-asusand its driver ABI doc. Suitable as a lore-style patch series (git format-patch origin/master..leds/dynamic-lighting).Commits
leds: Add Dynamic Lighting class interfaceled-class-dynamic+ header, optional host attach,direct_sample_size, KUnit (chunkeddirect_buffer, bounds, failed ops)docs: leds: Document the Dynamic Lighting class ABIsysfs-class-leds-dynamic+leds-class-dynamic.rst(November 2026)HID: asus: Add Aura protocol and Dynamic Lighting nodesasus::keyboard/asus::lightbarHID: asus: Use LampArray as in-kernel direct-RGB backend0x59without hidraw; Aura0xBCfallbackHID: asus: Add Slash lighting supportasus::slashLED class + mode/interval (migrated later)HID: asus: Add AniMe Matrix Dynamic Lighting supportasus::anime, monodirect_bufferHID: asus: Add Ally and Xbox Ally Dynamic Lighting supportasus::xbox_logoregistrationHID: asus: Complete Dynamic Lighting for logo, Slash and Xboxasus::logo; Slash → DL (effect/speed/power_states); Xbox Guide effect/speed; AniMepower_states; lightbar enabled-onlyTest plan
led-class-dynamic.o/hid-asus.obuildled_class_dynamic(16/16) viadrivers/leds/.kunitconfig