* [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
From: Salvatore Bonaccorso @ 2025-09-07 15:10 UTC (permalink / raw)
To: Zhang Heng, Jiri Kosina, Staffan Melin
Cc: Benjamin Tissoires, linux-input, linux-kernel, regressions,
stable, 1114557
Hi Zhang, hi Jiri,
In Debian Staffan Melin reported that after an update containing the
commit 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY"),
the input device with same idVendor and idProduct, the Jieli
Technology USB Composite Device, does not get recognized anymore.
The full Debian report is at: https://bugs.debian.org/1114557
The issue is not specific to the 6.12.y series and confirmed in 6.16.3
as well.
Staffan Melin did bisect the kernels between 6.12.38 (which was still
working) and 6.1.41 (which was not), confirming by bisection that the
offending commit is
1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY")
#regzbot introduced: 1a8953f4f774
#regzbot monitor: https://bugs.debian.org/1114557
So it looks that the quirk applied is unfortunately affecting
negatively as well Staffan Melin case.
Can you have a look?
Regards,
Salvatore
^ permalink raw reply
* [dtor-input:next] BUILD SUCCESS f3ebb77fce24b5573e7accc2ba593ae55bded1d9
From: kernel test robot @ 2025-09-07 16:44 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: linux-input
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git next
branch HEAD: f3ebb77fce24b5573e7accc2ba593ae55bded1d9 dt-bindings: input: touchscreen: goodix: Drop 'interrupts' requirement
elapsed time: 1449m
configs tested: 134
configs skipped: 3
The following configs have been built successfully.
More configs may be tested in the coming days.
tested configs:
alpha allnoconfig gcc-15.1.0
alpha allyesconfig gcc-15.1.0
arc allmodconfig gcc-15.1.0
arc allnoconfig gcc-15.1.0
arc allyesconfig gcc-15.1.0
arc nsim_700_defconfig gcc-15.1.0
arc randconfig-001-20250907 gcc-8.5.0
arc randconfig-002-20250907 gcc-8.5.0
arm allmodconfig gcc-15.1.0
arm allnoconfig clang-22
arm allyesconfig gcc-15.1.0
arm gemini_defconfig clang-20
arm hisi_defconfig gcc-15.1.0
arm randconfig-001-20250907 gcc-8.5.0
arm randconfig-002-20250907 clang-22
arm randconfig-003-20250907 clang-22
arm randconfig-004-20250907 gcc-10.5.0
arm sama5_defconfig gcc-15.1.0
arm vt8500_v6_v7_defconfig gcc-15.1.0
arm64 allmodconfig clang-19
arm64 allnoconfig gcc-15.1.0
arm64 randconfig-001-20250907 clang-22
arm64 randconfig-002-20250907 gcc-14.3.0
arm64 randconfig-003-20250907 clang-22
arm64 randconfig-004-20250907 gcc-9.5.0
csky allnoconfig gcc-15.1.0
csky randconfig-001-20250907 gcc-15.1.0
csky randconfig-002-20250907 gcc-9.5.0
hexagon allmodconfig clang-17
hexagon allnoconfig clang-22
hexagon allyesconfig clang-22
hexagon randconfig-001-20250907 clang-17
hexagon randconfig-002-20250907 clang-22
i386 allmodconfig gcc-13
i386 allnoconfig gcc-13
i386 allyesconfig gcc-13
i386 buildonly-randconfig-001-20250907 clang-20
i386 buildonly-randconfig-002-20250907 clang-20
i386 buildonly-randconfig-003-20250907 gcc-13
i386 buildonly-randconfig-004-20250907 clang-20
i386 buildonly-randconfig-005-20250907 clang-20
i386 buildonly-randconfig-006-20250907 clang-20
i386 defconfig clang-20
loongarch alldefconfig clang-20
loongarch allmodconfig clang-19
loongarch allnoconfig clang-22
loongarch randconfig-001-20250907 clang-22
loongarch randconfig-002-20250907 clang-22
m68k allmodconfig gcc-15.1.0
m68k allnoconfig gcc-15.1.0
m68k allyesconfig gcc-15.1.0
microblaze allmodconfig gcc-15.1.0
microblaze allnoconfig gcc-15.1.0
microblaze allyesconfig gcc-15.1.0
microblaze defconfig gcc-15.1.0
mips allnoconfig gcc-15.1.0
mips ath25_defconfig clang-22
mips omega2p_defconfig clang-22
nios2 allnoconfig gcc-11.5.0
nios2 defconfig gcc-11.5.0
nios2 randconfig-001-20250907 gcc-11.5.0
nios2 randconfig-002-20250907 gcc-11.5.0
openrisc alldefconfig gcc-15.1.0
openrisc allnoconfig gcc-15.1.0
openrisc allyesconfig gcc-15.1.0
openrisc defconfig gcc-15.1.0
parisc allmodconfig gcc-15.1.0
parisc allnoconfig gcc-15.1.0
parisc allyesconfig gcc-15.1.0
parisc defconfig gcc-15.1.0
parisc randconfig-001-20250907 gcc-9.5.0
parisc randconfig-002-20250907 gcc-14.3.0
parisc64 defconfig gcc-15.1.0
powerpc allmodconfig gcc-15.1.0
powerpc allnoconfig gcc-15.1.0
powerpc allyesconfig clang-22
powerpc eiger_defconfig clang-22
powerpc randconfig-001-20250907 gcc-9.5.0
powerpc randconfig-002-20250907 clang-22
powerpc randconfig-003-20250907 gcc-15.1.0
powerpc storcenter_defconfig gcc-15.1.0
powerpc tqm8555_defconfig gcc-15.1.0
powerpc64 randconfig-001-20250907 gcc-13.4.0
powerpc64 randconfig-002-20250907 clang-22
powerpc64 randconfig-003-20250907 clang-22
riscv allnoconfig gcc-15.1.0
riscv defconfig clang-22
riscv randconfig-001-20250907 clang-22
riscv randconfig-002-20250907 clang-22
s390 allmodconfig clang-18
s390 allnoconfig clang-22
s390 allyesconfig gcc-15.1.0
s390 defconfig clang-22
s390 randconfig-001-20250907 gcc-8.5.0
s390 randconfig-002-20250907 gcc-14.3.0
sh allmodconfig gcc-15.1.0
sh allnoconfig gcc-15.1.0
sh allyesconfig gcc-15.1.0
sh defconfig gcc-15.1.0
sh migor_defconfig gcc-15.1.0
sh polaris_defconfig gcc-15.1.0
sh randconfig-001-20250907 gcc-12.5.0
sh randconfig-002-20250907 gcc-15.1.0
sparc allmodconfig gcc-15.1.0
sparc allnoconfig gcc-15.1.0
sparc defconfig gcc-15.1.0
sparc randconfig-001-20250907 gcc-13.4.0
sparc randconfig-002-20250907 gcc-15.1.0
sparc sparc64_defconfig gcc-15.1.0
sparc64 defconfig clang-20
sparc64 randconfig-001-20250907 gcc-12.5.0
sparc64 randconfig-002-20250907 clang-22
um allmodconfig clang-19
um allnoconfig clang-22
um allyesconfig gcc-13
um defconfig clang-22
um i386_defconfig gcc-13
um randconfig-001-20250907 gcc-13
um randconfig-002-20250907 gcc-13
um x86_64_defconfig clang-22
x86_64 allnoconfig clang-20
x86_64 allyesconfig clang-20
x86_64 buildonly-randconfig-001-20250907 gcc-13
x86_64 buildonly-randconfig-002-20250907 clang-20
x86_64 buildonly-randconfig-003-20250907 gcc-13
x86_64 buildonly-randconfig-004-20250907 gcc-13
x86_64 buildonly-randconfig-005-20250907 gcc-13
x86_64 buildonly-randconfig-006-20250907 gcc-13
x86_64 defconfig gcc-11
x86_64 rhel-9.4-rust clang-20
xtensa allnoconfig gcc-15.1.0
xtensa randconfig-001-20250907 gcc-10.5.0
xtensa randconfig-002-20250907 gcc-9.5.0
xtensa smp_lx200_defconfig gcc-15.1.0
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply
* [dtor-input:for-linus] BUILD SUCCESS 5f9efb6b7667043527d377421af2070cc0aa2ecd
From: kernel test robot @ 2025-09-07 17:06 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: linux-input
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git for-linus
branch HEAD: 5f9efb6b7667043527d377421af2070cc0aa2ecd Input: mtk-pmic-keys - MT6359 has a specific release irq
elapsed time: 1471m
configs tested: 98
configs skipped: 3
The following configs have been built successfully.
More configs may be tested in the coming days.
tested configs:
alpha allnoconfig gcc-15.1.0
alpha allyesconfig gcc-15.1.0
arc allnoconfig gcc-15.1.0
arc randconfig-001-20250907 gcc-8.5.0
arc randconfig-002-20250907 gcc-8.5.0
arm allnoconfig clang-22
arm jornada720_defconfig clang-22
arm randconfig-001-20250907 gcc-8.5.0
arm randconfig-002-20250907 clang-22
arm randconfig-003-20250907 clang-22
arm randconfig-004-20250907 gcc-10.5.0
arm shmobile_defconfig gcc-15.1.0
arm64 allnoconfig gcc-15.1.0
arm64 randconfig-001-20250907 clang-22
arm64 randconfig-002-20250907 gcc-14.3.0
arm64 randconfig-003-20250907 clang-22
arm64 randconfig-004-20250907 gcc-9.5.0
csky allnoconfig gcc-15.1.0
csky randconfig-001-20250907 gcc-15.1.0
csky randconfig-002-20250907 gcc-9.5.0
hexagon allmodconfig clang-17
hexagon allnoconfig clang-22
hexagon allyesconfig clang-22
hexagon randconfig-001-20250907 clang-17
hexagon randconfig-002-20250907 clang-22
i386 buildonly-randconfig-001-20250907 clang-20
i386 buildonly-randconfig-002-20250907 clang-20
i386 buildonly-randconfig-003-20250907 gcc-13
i386 buildonly-randconfig-004-20250907 clang-20
i386 buildonly-randconfig-005-20250907 clang-20
i386 buildonly-randconfig-006-20250907 clang-20
loongarch allmodconfig clang-19
loongarch allnoconfig clang-22
loongarch randconfig-001-20250907 clang-22
loongarch randconfig-002-20250907 clang-22
m68k allmodconfig gcc-15.1.0
m68k allnoconfig gcc-15.1.0
m68k allyesconfig gcc-15.1.0
m68k apollo_defconfig gcc-15.1.0
microblaze allnoconfig gcc-15.1.0
microblaze defconfig gcc-15.1.0
mips allnoconfig gcc-15.1.0
mips ip28_defconfig gcc-15.1.0
nios2 allnoconfig gcc-11.5.0
nios2 defconfig gcc-11.5.0
nios2 randconfig-001-20250907 gcc-11.5.0
nios2 randconfig-002-20250907 gcc-11.5.0
openrisc allnoconfig gcc-15.1.0
parisc allnoconfig gcc-15.1.0
parisc allyesconfig gcc-15.1.0
parisc defconfig gcc-15.1.0
parisc randconfig-001-20250907 gcc-9.5.0
parisc randconfig-002-20250907 gcc-14.3.0
parisc64 defconfig gcc-15.1.0
powerpc allmodconfig gcc-15.1.0
powerpc allnoconfig gcc-15.1.0
powerpc allyesconfig clang-22
powerpc ppc64e_defconfig gcc-15.1.0
powerpc randconfig-001-20250907 gcc-9.5.0
powerpc randconfig-002-20250907 clang-22
powerpc randconfig-003-20250907 gcc-15.1.0
powerpc64 randconfig-001-20250907 gcc-13.4.0
powerpc64 randconfig-002-20250907 clang-22
powerpc64 randconfig-003-20250907 clang-22
riscv allnoconfig gcc-15.1.0
riscv randconfig-001-20250907 clang-22
riscv randconfig-002-20250907 clang-22
s390 allmodconfig clang-18
s390 allnoconfig clang-22
s390 allyesconfig gcc-15.1.0
s390 randconfig-001-20250907 gcc-8.5.0
s390 randconfig-002-20250907 gcc-14.3.0
sh allmodconfig gcc-15.1.0
sh allnoconfig gcc-15.1.0
sh allyesconfig gcc-15.1.0
sh randconfig-001-20250907 gcc-12.5.0
sh randconfig-002-20250907 gcc-15.1.0
sparc allmodconfig gcc-15.1.0
sparc allnoconfig gcc-15.1.0
sparc defconfig gcc-15.1.0
sparc randconfig-001-20250907 gcc-13.4.0
sparc randconfig-002-20250907 gcc-15.1.0
sparc64 randconfig-001-20250907 gcc-12.5.0
sparc64 randconfig-002-20250907 clang-22
um allmodconfig clang-19
um allnoconfig clang-22
um allyesconfig gcc-13
um randconfig-001-20250907 gcc-13
um randconfig-002-20250907 gcc-13
x86_64 buildonly-randconfig-001-20250907 gcc-13
x86_64 buildonly-randconfig-002-20250907 clang-20
x86_64 buildonly-randconfig-003-20250907 gcc-13
x86_64 buildonly-randconfig-004-20250907 gcc-13
x86_64 buildonly-randconfig-005-20250907 gcc-13
x86_64 buildonly-randconfig-006-20250907 gcc-13
xtensa allnoconfig gcc-15.1.0
xtensa randconfig-001-20250907 gcc-10.5.0
xtensa randconfig-002-20250907 gcc-9.5.0
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply
* Re: [PATCH v2 1/2] hid: intel-thc-hid: intel-quicki2c: Add WCL Device IDs
From: Even Xu @ 2025-09-08 3:26 UTC (permalink / raw)
To: xinpeng.sun
Cc: bentiss, jikos, linux-input, linux-kernel, srinivas.pandruvada,
Even Xu
In-Reply-To: <20250828021000.3299377-1-xinpeng.sun@intel.com>
> From: Xinpeng Sun <xinpeng.sun@intel.com>
> To: jikos@kernel.org, bentiss@kernel.org
> Cc: srinivas.pandruvada@linux.intel.com, linux-input@vger.kernel.org,
> linux-kernel@vger.kernel.org, Xinpeng Sun <xinpeng.sun@intel.com>
> Subject: [PATCH v2 1/2] hid: intel-thc-hid: intel-quicki2c: Add WCL Device IDs
> Date: Thu, 28 Aug 2025 10:09:58 +0800 [thread overview]
> Message-ID: <20250828021000.3299377-1-xinpeng.sun@intel.com> (raw)
>
> Add THC I2C WildcatLake device IDs.
>
> Signed-off-by: Xinpeng Sun <xinpeng.sun@intel.com>
Thanks for the patch!
Reviewed-by: Even Xu <even.xu@intel.com>
> ---
> drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c | 2 ++
> drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-dev.h | 2 ++
> 2 files changed, 4 insertions(+)
>
> diff --git a/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c b/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
> index f122fde879b9..17b1f2df8f8a 100644
> --- a/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
> +++ b/drivers/hid/intel-thc-hid/intel-quicki2c/pci-quicki2c.c
> @@ -1019,6 +1019,8 @@ static const struct pci_device_id quicki2c_pci_tbl[] = {
> { PCI_DEVICE_DATA(INTEL, THC_PTL_H_DEVICE_ID_I2C_PORT2, &ptl_ddata) },
> { PCI_DEVICE_DATA(INTEL, THC_PTL_U_DEVICE_ID_I2C_PORT1, &ptl_ddata) },
> { PCI_DEVICE_DATA(INTEL, THC_PTL_U_DEVICE_ID_I2C_PORT2, &ptl_ddata) },
> + { PCI_DEVICE_DATA(INTEL, THC_WCL_DEVICE_ID_I2C_PORT1, &ptl_ddata) },
> + { PCI_DEVICE_DATA(INTEL, THC_WCL_DEVICE_ID_I2C_PORT2, &ptl_ddata) },
> { }
> };
> MODULE_DEVICE_TABLE(pci, quicki2c_pci_tbl);
> diff --git a/drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-dev.h b/drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-dev.h
> index b78c8864d39e..240492a38c24 100644
> --- a/drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-dev.h
> +++ b/drivers/hid/intel-thc-hid/intel-quicki2c/quicki2c-dev.h
> @@ -13,6 +13,8 @@
> #define PCI_DEVICE_ID_INTEL_THC_PTL_H_DEVICE_ID_I2C_PORT2 0xE34A
> #define PCI_DEVICE_ID_INTEL_THC_PTL_U_DEVICE_ID_I2C_PORT1 0xE448
> #define PCI_DEVICE_ID_INTEL_THC_PTL_U_DEVICE_ID_I2C_PORT2 0xE44A
> +#define PCI_DEVICE_ID_INTEL_THC_WCL_DEVICE_ID_I2C_PORT1 0x4D48
> +#define PCI_DEVICE_ID_INTEL_THC_WCL_DEVICE_ID_I2C_PORT2 0x4D4A
>
> /* Packet size value, the unit is 16 bytes */
> #define MAX_PACKET_SIZE_VALUE_LNL 256
> --
> 2.40.1
^ permalink raw reply
* Re: [PATCH v2 2/2] hid: intel-thc-hid: intel-quickspi: Add WCL Device IDs
From: Even Xu @ 2025-09-08 3:42 UTC (permalink / raw)
To: xinpeng.sun
Cc: bentiss, jikos, linux-input, linux-kernel, srinivas.pandruvada,
Even Xu
In-Reply-To: <20250828021000.3299377-2-xinpeng.sun@intel.com>
> From: Xinpeng Sun <xinpeng.sun@intel.com>
> To: jikos@kernel.org, bentiss@kernel.org
> Cc: srinivas.pandruvada@linux.intel.com, linux-input@vger.kernel.org,
> linux-kernel@vger.kernel.org, Xinpeng Sun <xinpeng.sun@intel.com>
> Subject: [PATCH v2 2/2] hid: intel-thc-hid: intel-quickspi: Add WCL Device IDs
> Date: Thu, 28 Aug 2025 10:09:59 +0800 [thread overview]
> Message-ID: <20250828021000.3299377-2-xinpeng.sun@intel.com> (raw)
> In-Reply-To: <20250828021000.3299377-1-xinpeng.sun@intel.com>
>
> Add THC SPI WildcatLake device IDs.
>
> Signed-off-by: Xinpeng Sun <xinpeng.sun@intel.com>
LGTM, thanks for the patch!
Reviewed-by: Even Xu <even.xu@intel.com>
> ---
> drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c | 2 ++
> drivers/hid/intel-thc-hid/intel-quickspi/quickspi-dev.h | 2 ++
> 2 files changed, 4 insertions(+)
>
> diff --git a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> index 5e5f179dd113..84314989dc53 100644
> --- a/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> +++ b/drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c
> @@ -976,6 +976,8 @@ static const struct pci_device_id quickspi_pci_tbl[] = {
> {PCI_DEVICE_DATA(INTEL, THC_PTL_H_DEVICE_ID_SPI_PORT2, &ptl), },
> {PCI_DEVICE_DATA(INTEL, THC_PTL_U_DEVICE_ID_SPI_PORT1, &ptl), },
> {PCI_DEVICE_DATA(INTEL, THC_PTL_U_DEVICE_ID_SPI_PORT2, &ptl), },
> + {PCI_DEVICE_DATA(INTEL, THC_WCL_DEVICE_ID_SPI_PORT1, &ptl), },
> + {PCI_DEVICE_DATA(INTEL, THC_WCL_DEVICE_ID_SPI_PORT2, &ptl), },
> {}
> };
> MODULE_DEVICE_TABLE(pci, quickspi_pci_tbl);
> diff --git a/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-dev.h b/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-dev.h
> index 6fdf674b21c5..f3532d866749 100644
> --- a/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-dev.h
> +++ b/drivers/hid/intel-thc-hid/intel-quickspi/quickspi-dev.h
> @@ -19,6 +19,8 @@
> #define PCI_DEVICE_ID_INTEL_THC_PTL_H_DEVICE_ID_SPI_PORT2 0xE34B
> #define PCI_DEVICE_ID_INTEL_THC_PTL_U_DEVICE_ID_SPI_PORT1 0xE449
> #define PCI_DEVICE_ID_INTEL_THC_PTL_U_DEVICE_ID_SPI_PORT2 0xE44B
> +#define PCI_DEVICE_ID_INTEL_THC_WCL_DEVICE_ID_SPI_PORT1 0x4D49
> +#define PCI_DEVICE_ID_INTEL_THC_WCL_DEVICE_ID_SPI_PORT2 0x4D4B
>
> /* HIDSPI special ACPI parameters DSM methods */
> #define ACPI_QUICKSPI_REVISION_NUM 2
> --
> 2.40.1
^ permalink raw reply
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
From: Terry Junge @ 2025-09-08 4:10 UTC (permalink / raw)
To: Salvatore Bonaccorso, Zhang Heng, Jiri Kosina, Staffan Melin
Cc: Benjamin Tissoires, linux-input, linux-kernel, regressions,
stable, 1114557
In-Reply-To: <aL2gYJaXoB6p_oyM@eldamar.lan>
On 9/7/25 8:10 AM, Salvatore Bonaccorso wrote:
> Hi Zhang, hi Jiri,
>
> In Debian Staffan Melin reported that after an update containing the
> commit 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY"),
> the input device with same idVendor and idProduct, the Jieli
> Technology USB Composite Device, does not get recognized anymore.
>
> The full Debian report is at: https://bugs.debian.org/1114557
>
The root of the issue here is that two devices have bootlegged the same VID:PID.
0x4c4a is not a valid VID that has been assigned according to the latest list from USBIF (vendor_ids072325_1.pdf) so conflicts like this could surface at any time.
[ 10.188336] usb 3-3: device descriptor read/64, error -71
[ 10.439533] usb 3-3: config 1 interface 0 altsetting 0 has 2 endpoint descriptors, different from the interface descriptor's value: 1
[ 10.451534] usb 3-3: New USB device found, idVendor=4c4a, idProduct=4155, bcdDevice= 1.00
[ 10.451540] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 10.451543] usb 3-3: Product: USB Composite Device
[ 10.451545] usb 3-3: Manufacturer: Jieli Technology
[ 10.451546] usb 3-3: SerialNumber: FFFFFFFFFFFFFFFF
Can anyone supply the Jieli descriptors, including the Report Descriptor? It clearly has problems but not bad enough to fail enumeration.
The commit 1a8953f4f774 should be reverted and SMARTLINKTECHNOLOGY should either bootleg a different PID, get a valid VID, or fix their device so a quirk is never required.
Thanks,
Terry
> The issue is not specific to the 6.12.y series and confirmed in 6.16.3
> as well.
>
> Staffan Melin did bisect the kernels between 6.12.38 (which was still
> working) and 6.1.41 (which was not), confirming by bisection that the
> offending commit is
>
> 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY")
>
> #regzbot introduced: 1a8953f4f774
> #regzbot monitor: https://bugs.debian.org/1114557
>
> So it looks that the quirk applied is unfortunately affecting
> negatively as well Staffan Melin case.
>
> Can you have a look?
>
> Regards,
> Salvatore
>
^ permalink raw reply
* Re: [regression] 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY") causes issue with ID 4c4a:4155 Jieli Technology USB Composite Device
From: Staffan Melin @ 2025-09-08 9:00 UTC (permalink / raw)
To: Terry Junge
Cc: Salvatore Bonaccorso, Zhang Heng, Jiri Kosina, Benjamin Tissoires,
linux-input, linux-kernel, regressions, stable, 1114557
In-Reply-To: <36f58d1b-8afe-4895-bef6-59edc791ef0d@cosmicgizmosystems.com>
Hi Terry,
I am the one with the Jieli touchscreen.
On 2025-09-08 06:10, Terry Junge wrote:
>
> The root of the issue here is that two devices have bootlegged the same
> VID:PID.
>
> 0x4c4a is not a valid VID that has been assigned according to the
> latest list from USBIF (vendor_ids072325_1.pdf) so conflicts like this
> could surface at any time.
>
> [ 10.188336] usb 3-3: device descriptor read/64, error -71
> [ 10.439533] usb 3-3: config 1 interface 0 altsetting 0 has 2
> endpoint descriptors, different from the interface descriptor's value:
> 1
> [ 10.451534] usb 3-3: New USB device found, idVendor=4c4a,
> idProduct=4155, bcdDevice= 1.00
> [ 10.451540] usb 3-3: New USB device strings: Mfr=1, Product=2,
> SerialNumber=3
> [ 10.451543] usb 3-3: Product: USB Composite Device
> [ 10.451545] usb 3-3: Manufacturer: Jieli Technology
> [ 10.451546] usb 3-3: SerialNumber: FFFFFFFFFFFFFFFF
>
> Can anyone supply the Jieli descriptors, including the Report
> Descriptor? It clearly has problems but not bad enough to fail
> enumeration.
>
> The commit 1a8953f4f774 should be reverted and SMARTLINKTECHNOLOGY
> should either bootleg a different PID, get a valid VID, or fix their
> device so a quirk is never required.
>
> Thanks,
> Terry
In /sys/bus/hid/devices/0003:4C4A:4155.0003 i have the report_descriptor
file:
00000000 05 0d 09 04 a1 01 85 aa 09 22 a1 00 09 42 15 00
|........."...B..|
00000010 25 01 75 01 95 01 81 02 75 03 81 03 09 51 75 04
|%.u.....u....Qu.|
00000020 25 0a 81 02 75 08 95 01 81 03 05 01 75 10 55 00
|%...u.......u.U.|
00000030 65 00 09 30 35 00 26 00 10 46 00 10 81 02 09 31
|e..05.&..F.....1|
00000040 26 00 10 46 00 10 81 02 c0 a1 00 05 0d 09 42 15
|&..F..........B.|
00000050 00 25 01 75 01 95 01 81 02 75 03 81 03 09 51 75
|.%.u.....u....Qu|
00000060 04 25 0a 81 02 75 08 95 01 81 03 05 01 75 10 55
|.%...u.......u.U|
00000070 00 65 00 09 30 35 00 26 00 10 46 00 10 81 02 09
|.e..05.&..F.....|
00000080 31 26 00 10 46 00 10 81 02 c0 a1 00 05 0d 09 42
|1&..F..........B|
00000090 15 00 25 01 75 01 95 01 81 02 75 03 81 03 09 51
|..%.u.....u....Q|
000000a0 75 04 25 0a 81 02 75 08 95 01 81 03 05 01 75 10
|u.%...u.......u.|
000000b0 55 00 65 00 09 30 35 00 26 00 10 46 00 10 81 02
|U.e..05.&..F....|
000000c0 09 31 26 00 10 46 00 10 81 02 c0 a1 00 05 0d 09
|.1&..F..........|
000000d0 42 15 00 25 01 75 01 95 01 81 02 75 03 81 03 09
|B..%.u.....u....|
000000e0 51 75 04 25 0a 81 02 75 08 95 01 81 03 05 01 75
|Qu.%...u.......u|
000000f0 10 55 00 65 00 09 30 35 00 26 00 10 46 00 10 81
|.U.e..05.&..F...|
00000100 02 09 31 26 00 10 46 00 10 81 02 c0 a1 00 05 0d
|..1&..F.........|
00000110 09 42 15 00 25 01 75 01 95 01 81 02 75 03 81 03
|.B..%.u.....u...|
00000120 09 51 75 04 25 0a 81 02 75 08 95 01 81 03 05 01
|.Qu.%...u.......|
00000130 75 10 55 00 65 00 09 30 35 00 26 00 10 46 00 10
|u.U.e..05.&..F..|
00000140 81 02 09 31 26 00 10 46 00 10 81 02 c0 05 0d 09
|...1&..F........|
00000150 54 95 01 75 08 15 00 25 0a 81 02 09 55 b1 02 95
|T..u...%....U...|
00000160 3e b1 03 c0 05 0d 09 02 a1 01 85 cc 09 20 a1 00
|>............ ..|
00000170 09 42 09 44 09 3c 09 45 15 00 25 01 75 01 95 04
|.B.D.<.E..%.u...|
00000180 81 02 95 01 09 32 81 02 95 03 81 03 05 01 09 30
|.....2.........0|
00000190 75 10 95 01 a4 55 0d 65 13 35 00 26 00 10 46 00
|u....U.e.5.&..F.|
000001a0 10 81 02 09 31 26 00 10 46 00 10 81 02 b4 05 0d
|....1&..F.......|
000001b0 09 30 26 ff 00 81 02 75 08 09 3d 15 81 25 7f 81
|.0&....u..=..%..|
000001c0 02 09 3e 15 81 25 7f 81 02 c0 c0 05 01 09 02 a1
|..>..%..........|
000001d0 01 85 58 09 01 a1 00 05 09 19 01 29 02 15 00 25
|..X........)...%|
000001e0 01 75 01 95 02 81 02 95 06 81 03 05 01 09 30 15
|.u............0.|
000001f0 00 26 00 10 09 31 26 00 10 75 10 95 02 55 0e 65
|.&...1&..u...U.e|
00000200 11 35 00 46 00 10 81 02 09 38 15 81 25 7f 75 08
|.5.F.....8..%.u.|
00000210 95 01 81 06 c0 c0 |......|
And here is the output from lsusb -c:
Bus 003 Device 003: ID 4c4a:4155 Jieli Technology USB Composite Device
Couldn't open device, some information will be missing
Negotiated speed: Full Speed (12Mbps)
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 [unknown]
bDeviceSubClass 0 [unknown]
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x4c4a Jieli Technology
idProduct 0x4155 USB Composite Device
bcdDevice 1.00
iManufacturer 1 Jieli Technology
iProduct 2 USB Composite Device
iSerial 3 FFFFFFFFFFFFFFFF
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0029
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 [unknown]
bInterfaceProtocol 0
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 33 Unknown
bNumDescriptors 1
bDescriptorType 34 (null)
wDescriptorLength 534
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 1
Best regards,
Staffan
>
>> The issue is not specific to the 6.12.y series and confirmed in 6.16.3
>> as well.
>>
>> Staffan Melin did bisect the kernels between 6.12.38 (which was still
>> working) and 6.1.41 (which was not), confirming by bisection that the
>> offending commit is
>>
>> 1a8953f4f774 ("HID: Add IGNORE quirk for SMARTLINKTECHNOLOGY")
>>
>> #regzbot introduced: 1a8953f4f774
>> #regzbot monitor: https://bugs.debian.org/1114557
>>
>> So it looks that the quirk applied is unfortunately affecting
>> negatively as well Staffan Melin case.
>>
>> Can you have a look?
>>
>> Regards,
>> Salvatore
>>
^ permalink raw reply
* Re: [PATCH v3 1/3] Input: mtk-pmic-keys - MT6359 has a specific release irq
From: AngeloGioacchino Del Regno @ 2025-09-08 11:36 UTC (permalink / raw)
To: Julien Massot, kernel, Dmitry Torokhov, Matthias Brugger,
Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Louis-Alexis Eyraud
Cc: linux-input, linux-kernel, linux-arm-kernel, linux-mediatek,
devicetree
In-Reply-To: <20250905-radxa-nio-12-l-gpio-v3-1-40f11377fb55@collabora.com>
Il 05/09/25 13:51, Julien Massot ha scritto:
> Support for MT6359 PMIC keys has been added recently.
> However, the key release event is not properly handled:
> only key press events are generated, leaving key states
> stuck in "pressed".
>
> This patch ensures that both key press and key release events
> are properly emitted by handling the release logic correctly.
>
> Introduce a 'key_release_irq' member to the 'mtk_pmic_regs',
> to identify the devices that have a separate irq for the
> release event.
>
> Fixes: bc25e6bf032e ("Input: mtk-pmic-keys - add support for MT6359 PMIC keys")
> Signed-off-by: Julien Massot <julien.massot@collabora.com>
Please clarify the commit title.
Input: mtk-pmic-keys - Use platform data for release irq support
...or something like that.
After which:
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cheers,
Angelo
^ permalink raw reply
* Re: [PATCH v1 01/14] media: dt-bindings: Convert MediaTek mt8173-mdp bindings to YAML
From: Ariel D'Alessandro @ 2025-09-08 17:52 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: airlied, amergnat, andrew+netdev, andrew-ct.chen,
angelogioacchino.delregno, broonie, chunkuang.hu, ck.hu, conor+dt,
davem, dmitry.torokhov, edumazet, flora.fu, houlong.wei, jeesw,
jmassot, kernel, krzk+dt, kuba, kyrie.wu, lgirdwood,
linus.walleij, louisalexis.eyraud, maarten.lankhorst,
matthias.bgg, mchehab, minghsiu.tsai, mripard, p.zabel, pabeni,
robh, sean.wang, simona, support.opensource, tiffany.lin,
tzimmermann, yunfei.dong, devicetree, dri-devel, linux-arm-kernel,
linux-clk, linux-gpio, linux-input, linux-kernel, linux-media,
linux-mediatek, linux-sound, netdev
In-Reply-To: <20250821-silky-slug-of-novelty-e4bb64@kuoka>
Krzysztof,
On 8/21/25 3:46 AM, Krzysztof Kozlowski wrote:
> On Wed, Aug 20, 2025 at 02:12:49PM -0300, Ariel D'Alessandro wrote:
>> Convert the existing text-based DT bindings for MediaTek MT8173 Media Data Path
>> to a YAML schema.
>
> Please wrap commit message according to Linux coding style / submission
> process (neither too early nor over the limit):
> https://elixir.bootlin.com/linux/v6.4-rc1/source/Documentation/process/submitting-patches.rst#L597
Thanks. Looks like my editor was misconfigured, sorry. Will fix in v2.
>
>>
>> Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
>> ---
>> .../bindings/media/mediatek,mt8173-mdp.yaml | 174 ++++++++++++++++++
>> .../bindings/media/mediatek-mdp.txt | 95 ----------
>> 2 files changed, 174 insertions(+), 95 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/media/mediatek,mt8173-mdp.yaml
>> delete mode 100644 Documentation/devicetree/bindings/media/mediatek-mdp.txt
>>
>> diff --git a/Documentation/devicetree/bindings/media/mediatek,mt8173-mdp.yaml b/Documentation/devicetree/bindings/media/mediatek,mt8173-mdp.yaml
>> new file mode 100644
>> index 0000000000000..f3a08afc305b1
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/media/mediatek,mt8173-mdp.yaml
>> @@ -0,0 +1,174 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/media/mediatek,mt8173-mdp.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: MediaTek MT8173 Media Data Path
>> +
>> +maintainers:
>> + - Ariel D'Alessandro <ariel.dalessandro@collabora.com>
>> +
>> +description:
>> + Media Data Path is used for scaling and color space conversion.
>> +
>> +properties:
>> + compatible:
>> + oneOf:
>> + - items:
>
> Just enum, no items here
See below.
>
>
>> + - enum:
>> + - mediatek,mt8173-mdp-rdma
>> + - mediatek,mt8173-mdp-rsz
>> + - mediatek,mt8173-mdp-wdma
>> + - mediatek,mt8173-mdp-wrot
>> + - items:
>> + - enum:
>> + - mediatek,mt8173-mdp-rdma
>> + - mediatek,mt8173-mdp-rsz
>> + - mediatek,mt8173-mdp-wdma
>> + - mediatek,mt8173-mdp-wrot
>> + - const: mediatek,mt8173-mdp
>
> This makes no sense. How devices can be compatible and can not be
> compatible.
According to the driver source code (and the previous txt mt8173-mdp
bindings), there must be a "controller node" with compatible
`mediatek,mt8173-mdp`. Then its sibling nodes (including itself) should
be one of the component node ids, listed in `struct of_device_id
mtk_mdp_comp_dt_ids[]`.
Is there a proper/different way to describe this compatible binding in
the yaml? Or you're saying the driver doesn't make sense here?
[0] drivers/media/platform/mediatek/mdp/mtk_mdp_core.c
>
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + clocks: true
>
> No, there's no such syntax. Look at other bindings.
Ack.
>
>
>> +
>> + power-domains:
>> + maxItems: 1
>> +
>> + iommus:
>> + description: |
>
> Drop |
Ack.
>
>> + This property should point to the respective IOMMU block with master port as argument,
>> + see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details.
>
> Drop entire description, completely redundant. I don't know why my patch
> fixing this was not applied, so you keep repeating same mistakes...
Ack.
>
>> + maxItems: 1
>> +
>> + mediatek,vpu:
>> + $ref: /schemas/types.yaml#/definitions/phandle
>> + description:
>> + Describes point to vpu.
>
> Useless description. We see that from the property name. Explain the
> purpose in the hardware.
Ack.
>
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - clocks
>> + - power-domains
>> +
>> +allOf:
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + const: mediatek,mt8173-mdp-rdma
>> + then:
>> + properties:
>> + clocks:
>> + items:
>> + - description: Main clock
>> + - description: Mutex clock
>> + else:
>> + properties:
>> + clocks:
>> + items:
>> + - description: Main clock
>> +
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + enum:
>> + - mediatek,mt8173-mdp-rdma
>> + - mediatek,mt8173-mdp-wdma
>> + - mediatek,mt8173-mdp-wrot
>> + then:
>> + required:
>> + - iommus
>> +
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + const: mediatek,mt8173-mdp
>
> This makes no sense either.
Same question above about compatibles.
>
>> + then:
>> + required:
>> + - mediatek,vpu
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/clock/mt8173-clk.h>
>> + #include <dt-bindings/memory/mt8173-larb-port.h>
>> + #include <dt-bindings/power/mt8173-power.h>
>> +
>> + soc {
>> + #address-cells = <2>;
>> + #size-cells = <2>;
>> +
>> + mdp_rdma0: rdma@14001000 {
>
> One example is enough. Two could be fine if they differ significantly.
Sounds good. Will keep just a single example, including a node for the
controller node and one for each of the components.
Thanks a lot for the feedback!
--
Ariel D'Alessandro
Software Engineer
Collabora Ltd.
Platinum Building, St John's Innovation Park, Cambridge CB4 0DS, UK
Registered in England & Wales, no. 5513718
^ permalink raw reply
* Re: [PATCH v1 02/14] media: dt-bindings: Convert MediaTek mt8173-vpu bindings to YAML
From: Ariel D'Alessandro @ 2025-09-08 18:35 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: airlied, amergnat, andrew+netdev, andrew-ct.chen,
angelogioacchino.delregno, broonie, chunkuang.hu, ck.hu, conor+dt,
davem, dmitry.torokhov, edumazet, flora.fu, houlong.wei, jeesw,
jmassot, kernel, krzk+dt, kuba, kyrie.wu, lgirdwood,
linus.walleij, louisalexis.eyraud, maarten.lankhorst,
matthias.bgg, mchehab, minghsiu.tsai, mripard, p.zabel, pabeni,
robh, sean.wang, simona, support.opensource, tiffany.lin,
tzimmermann, yunfei.dong, devicetree, dri-devel, linux-arm-kernel,
linux-clk, linux-gpio, linux-input, linux-kernel, linux-media,
linux-mediatek, linux-sound, netdev
In-Reply-To: <20250821-piquant-rapid-bear-8cedc0@kuoka>
Krzysztof,
On 8/21/25 3:47 AM, Krzysztof Kozlowski wrote:
> On Wed, Aug 20, 2025 at 02:12:50PM -0300, Ariel D'Alessandro wrote:
>> Convert the existing text-based DT bindings for Mediatek MT8173 Video Processor
>> Unit to a YAML schema.
>
> DT schema, not YAML. Don't say YAML at all, neither here nor in subject.
Ack.
>
> Also looks not wrapped...
Ack.
>
>>
>> Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
>> ---
>> .../bindings/media/mediatek,mt8173-vpu.yaml | 76 +++++++++++++++++++
>> .../bindings/media/mediatek-vpu.txt | 31 --------
>> 2 files changed, 76 insertions(+), 31 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/media/mediatek,mt8173-vpu.yaml
>> delete mode 100644 Documentation/devicetree/bindings/media/mediatek-vpu.txt
>>
>> diff --git a/Documentation/devicetree/bindings/media/mediatek,mt8173-vpu.yaml b/Documentation/devicetree/bindings/media/mediatek,mt8173-vpu.yaml
>> new file mode 100644
>> index 0000000000000..44f5d7cc44042
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/media/mediatek,mt8173-vpu.yaml
>> @@ -0,0 +1,76 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/media/mediatek,mt8173-vpu.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Mediatek MT8173 Video Processor Unit
>> +
>> +maintainers:
>> + - Ariel D'Alessandro <ariel.dalessandro@collabora.com>
>> +
>> +description:
>> + Video Processor Unit is a HW video controller. It controls HW Codec including
>> + H.264/VP8/VP9 Decode, H.264/VP8 Encode and Image Processor (scale/rotate/color convert).
>
> Please wrap code according to the preferred limit expressed in Kernel
> coding style (checkpatch is not a coding style description, but only a
> tool). However don't wrap blindly (see Kernel coding style).
Thanks for the comment. Wrapped to 80 column width.
>
>> +
>> +properties:
>> + compatible:
>> + const: mediatek,mt8173-vpu
>> +
>> + reg:
>> + minItems: 2
>
> No, from where do you get such syntax?
IIUC, what you mean is s/minItems/maxItems.
>
>> +
>> + reg-names:
>> + items:
>> + - const: tcm
>> + - const: cfg_reg
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + clocks:
>> + maxItems: 1
>> +
>> + clock-names:
>> + items:
>> + - const: main
>> +
>> + memory-region:
>> + description:
>> + phandle to a node describing reserved memory used by VPU
>> + (see bindings/reserved-memory/reserved-memory.txt)
>
> Drop, redundant description.
Ack.
Thanks a lot!
--
Ariel D'Alessandro
Software Engineer
Collabora Ltd.
Platinum Building, St John's Innovation Park, Cambridge CB4 0DS, UK
Registered in England & Wales, no. 5513718
^ permalink raw reply
* Re: [PATCH v1 03/14] dt-bindings: arm: mediatek: mmsys: Add assigned-clocks/rates properties
From: Ariel D'Alessandro @ 2025-09-08 19:19 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: airlied, amergnat, andrew+netdev, andrew-ct.chen,
angelogioacchino.delregno, broonie, chunkuang.hu, ck.hu, conor+dt,
davem, dmitry.torokhov, edumazet, flora.fu, houlong.wei, jeesw,
jmassot, kernel, krzk+dt, kuba, kyrie.wu, lgirdwood,
linus.walleij, louisalexis.eyraud, maarten.lankhorst,
matthias.bgg, mchehab, minghsiu.tsai, mripard, p.zabel, pabeni,
robh, sean.wang, simona, support.opensource, tiffany.lin,
tzimmermann, yunfei.dong, devicetree, dri-devel, linux-arm-kernel,
linux-clk, linux-gpio, linux-input, linux-kernel, linux-media,
linux-mediatek, linux-sound, netdev
In-Reply-To: <20250821-electric-kestrel-of-awe-cb89dc@kuoka>
Krzysztof,
On 8/21/25 3:43 AM, Krzysztof Kozlowski wrote:
> On Wed, Aug 20, 2025 at 02:12:51PM -0300, Ariel D'Alessandro wrote:
>> Current, the DT bindings for MediaTek mmsys controller is missing the
>> assigned-clocks and assigned-clocks-rates properties. Add these and
>
> No, they do not miss them. I don't understand why you are adding these.
The reason I added these is due to the following check error:
$ make -j$(nproc) CHECK_DTBS=y mediatek/mt8173-elm.dtb
DTC [C] arch/arm64/boot/dts/mediatek/mt8173-elm.dtb
[...]
arch/arm64/boot/dts/mediatek/mt8173-elm.dtb: syscon@14000000
(mediatek,mt8173-mmsys): 'assigned-clock-rates', 'assigned-clocks' do
not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id:
http://devicetree.org/schemas/arm/mediatek/mediatek,mmsys.yaml#
>
>> update the example as well.
>>
>> Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
>> ---
>> .../devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml | 9 +++++++++
>> 1 file changed, 9 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
>> index 3f4262e93c789..d045d366eb8e2 100644
>> --- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
>> +++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
>> @@ -68,6 +68,12 @@ properties:
>> of the power controller specified by phandle. See
>> Documentation/devicetree/bindings/power/power-domain.yaml for details.
>>
>> + assigned-clocks:
>> + maxItems: 1
>> +
>> + assigned-clock-rates:
>> + maxItems: 1
>> +
>
> Drop both, completely redundant and not actually in the scope of the binding.
Ack. Will fix accordingly in v2 based on the discussion above.
Thanks!
--
Ariel D'Alessandro
Software Engineer
Collabora Ltd.
Platinum Building, St John's Innovation Park, Cambridge CB4 0DS, UK
Registered in England & Wales, no. 5513718
^ permalink raw reply
* Re: [PATCH v1 04/14] net: dt-bindings: Convert Marvell 8897/8997 bindings to YAML
From: Ariel D'Alessandro @ 2025-09-08 19:54 UTC (permalink / raw)
To: Rob Herring
Cc: airlied, amergnat, andrew+netdev, andrew-ct.chen,
angelogioacchino.delregno, broonie, chunkuang.hu, ck.hu, conor+dt,
davem, dmitry.torokhov, edumazet, flora.fu, houlong.wei, jeesw,
jmassot, kernel, krzk+dt, kuba, kyrie.wu, lgirdwood,
linus.walleij, louisalexis.eyraud, maarten.lankhorst,
matthias.bgg, mchehab, minghsiu.tsai, mripard, p.zabel, pabeni,
sean.wang, simona, support.opensource, tiffany.lin, tzimmermann,
yunfei.dong, devicetree, dri-devel, linux-arm-kernel, linux-clk,
linux-gpio, linux-input, linux-kernel, linux-media,
linux-mediatek, linux-sound, netdev
In-Reply-To: <CAL_Jsq+K72Kof-Z3q2DSh3FKO64npLF6hDJnqnTzNBUoOoVQFA@mail.gmail.com>
Hi Rob,
On 8/21/25 11:28 AM, Rob Herring wrote:
> On Wed, Aug 20, 2025 at 12:15 PM Ariel D'Alessandro
> <ariel.dalessandro@collabora.com> wrote:
>>
>> Convert the existing text-based DT bindings for Marvell 8897/8997
>> (sd8897/sd8997) bluetooth devices controller to a YAML schema.
>>
>> While here, bindings for "usb1286,204e" (USB interface) are dropped from
>> the YAML definition as these are currently documented in file:
>>
>> - Documentation/devicetree/bindings/net/btusb.txt
>>
>> Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
>> ---
>> .../bindings/net/marvell,sd8897-bt.yaml | 91 +++++++++++++++++++
>
> This needs to move to net/bluetooth/
Ack.
>
>> .../bindings/net/marvell-bt-8xxx.txt | 83 -----------------
>> 2 files changed, 91 insertions(+), 83 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/net/marvell,sd8897-bt.yaml
>> delete mode 100644 Documentation/devicetree/bindings/net/marvell-bt-8xxx.txt
>>
>> diff --git a/Documentation/devicetree/bindings/net/marvell,sd8897-bt.yaml b/Documentation/devicetree/bindings/net/marvell,sd8897-bt.yaml
>> new file mode 100644
>> index 0000000000000..6539868c08b8a
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/net/marvell,sd8897-bt.yaml
>> @@ -0,0 +1,91 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/net/marvell,sd8897-bt.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Marvell 8897/8997 (sd8897/sd8997) bluetooth devices (SDIO)
>> +
>> +maintainers:
>> + - Ariel D'Alessandro <ariel.dalessandro@collabora.com>
>> +
>
> Needs a $ref to bluetooth-controller.yaml
Ack.
>
>> +properties:
>> + compatible:
>> + enum:
>> + - marvell,sd8897-bt
>> + - marvell,sd8997-bt
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + marvell,cal-data:
>> + $ref: /schemas/types.yaml#/definitions/uint8-array
>> + description:
>> + Calibration data downloaded to the device during initialization.
>> + minItems: 28
>
> Just: maxItems: 28
Ack.
>
>> +
>> + marvell,wakeup-pin:
>> + $ref: /schemas/types.yaml#/definitions/uint16
>> + description:
>> + Wakeup pin number of the bluetooth chip. Used by firmware to wakeup host
>> + system.
>> +
>> + marvell,wakeup-gap-ms:
>
> This unfortunately needs a uint16 type. That will cause a warning
> which has to be fixed on the dtschema side.
Yeah, that's what I thought but wasn't sure on the proper solution. Will
fix in v2.
>
>> + description:
>> + Wakeup latency of the host platform. Required by the chip sleep feature.
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - interrupts
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/interrupt-controller/irq.h>
>> + #include <dt-bindings/pinctrl/rockchip.h>
>
> Please drop this and just use a number below.
Ack.
>
>> +
>> + sdio0 {
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + btmrvl: btmrvl@2 {
>> + compatible = "marvell,sd8897-bt";
>> + reg = <2>;
>> + interrupt-parent = <&gpio4>;
>> + interrupts = <RK_PD7 IRQ_TYPE_LEVEL_LOW>;
>> + marvell,wakeup-pin = /bits/ 16 <13>;
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&bt_host_wake_l>;
>> + };
>> + };
>
> I would drop this example.
Agreed.
>
>> +
>> + mmc3 {
>
> mmc {
Ack.
>
>> + vmmc-supply = <&wlan_en_reg>;
>> + bus-width = <4>;
>> + cap-power-off-card;
>> + keep-power-in-suspend;
>> +
>> + #address-cells = <1>;
>> + #size-cells = <0>;
>> +
>> + bluetooth: bluetooth@2 {
>
> Drop the label.
Ack.
Thanks a lot for your feedback and help!
Regards,
--
Ariel D'Alessandro
Software Engineer
Collabora Ltd.
Platinum Building, St John's Innovation Park, Cambridge CB4 0DS, UK
Registered in England & Wales, no. 5513718
^ permalink raw reply
* Re: [PATCH v1 05/14] sound: dt-bindings: Convert MediaTek RT5650 codecs bindings to YAML
From: Ariel D'Alessandro @ 2025-09-08 20:04 UTC (permalink / raw)
To: Rob Herring
Cc: airlied, amergnat, andrew+netdev, andrew-ct.chen,
angelogioacchino.delregno, broonie, chunkuang.hu, ck.hu, conor+dt,
davem, dmitry.torokhov, edumazet, flora.fu, houlong.wei, jeesw,
jmassot, kernel, krzk+dt, kuba, kyrie.wu, lgirdwood,
linus.walleij, louisalexis.eyraud, maarten.lankhorst,
matthias.bgg, mchehab, minghsiu.tsai, mripard, p.zabel, pabeni,
sean.wang, simona, support.opensource, tiffany.lin, tzimmermann,
yunfei.dong, devicetree, dri-devel, linux-arm-kernel, linux-clk,
linux-gpio, linux-input, linux-kernel, linux-media,
linux-mediatek, linux-sound, netdev
In-Reply-To: <20250822151415.GA3819434-robh@kernel.org>
Rob,
On 8/22/25 12:14 PM, Rob Herring wrote:
> On Wed, Aug 20, 2025 at 02:12:53PM -0300, Ariel D'Alessandro wrote:
>> Convert the existing text-based DT bindings for Mediatek MT8173 RT5650
>> codecs to a YAML schema.
>>
>> Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
>> ---
>> .../sound/mediatek,mt8173-rt5650.yaml | 73 +++++++++++++++++++
>> .../bindings/sound/mt8173-rt5650.txt | 31 --------
>> 2 files changed, 73 insertions(+), 31 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/sound/mediatek,mt8173-rt5650.yaml
>> delete mode 100644 Documentation/devicetree/bindings/sound/mt8173-rt5650.txt
>>
>> diff --git a/Documentation/devicetree/bindings/sound/mediatek,mt8173-rt5650.yaml b/Documentation/devicetree/bindings/sound/mediatek,mt8173-rt5650.yaml
>> new file mode 100644
>> index 0000000000000..36e4f9c4c3d62
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/sound/mediatek,mt8173-rt5650.yaml
>> @@ -0,0 +1,73 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/sound/mediatek,mt8173-rt5650.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Mediatek MT8173 with RT5650 codecs and HDMI via I2S
>> +
>> +maintainers:
>> + - Ariel D'Alessandro <ariel.dalessandro@collabora.com>
>> +
>> +properties:
>> + compatible:
>> + const: "mediatek,mt8173-rt5650"
>
> Drop quotes.
Ack.
>
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + mediatek,audio-codec:
>> + $ref: /schemas/types.yaml#/definitions/phandle-array
>> + description:
>> + The phandles of rt5650 codecs and of the HDMI encoder node.
>> + minItems: 2
>> +
>> + mediatek,platform:
>> + $ref: /schemas/types.yaml#/definitions/phandle
>> + description:
>> + The phandle of MT8173 ASoC platform.
>> +
>> + mediatek,mclk:
>> + $ref: /schemas/types.yaml#/definitions/uint32
>> + description: |
>> + The MCLK source.
>> + 0: external oscillator, MCLK = 12.288M
>> + 1: internal source from mt8173, MCLK = sampling rate * 256
>> +
>> + codec-capture:
>> + description: Subnode of rt5650 codec capture.
>> + type: object
>> +
>> + properties:
>> + sound-dai:
>> + maxItems: 1
>> + description: phandle of the CPU DAI
>> +
>> + additionalProperties: false
>> +
>> +required:
>> + - compatible
>> + - mediatek,audio-codec
>> + - mediatek,platform
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + sound: sound {
>
> Drop unused label.
Ack.
Thanks!
--
Ariel D'Alessandro
Software Engineer
Collabora Ltd.
Platinum Building, St John's Innovation Park, Cambridge CB4 0DS, UK
Registered in England & Wales, no. 5513718
^ permalink raw reply
* Re: [PATCH v1 2/2] Drivers: hv: Make CONFIG_HYPERV bool
From: Mukesh R @ 2025-09-08 21:01 UTC (permalink / raw)
To: Greg KH
Cc: dri-devel, linux-kernel, linux-input, linux-hyperv, netdev,
linux-pci, linux-scsi, linux-fbdev, linux-arch, virtualization,
maarten.lankhorst, mripard, tzimmermann, airlied, simona, jikos,
bentiss, kys, haiyangz, wei.liu, decui, dmitry.torokhov,
andrew+netdev, davem, edumazet, kuba, pabeni, bhelgaas,
James.Bottomley, martin.petersen, deller, arnd, sgarzare, horms
In-Reply-To: <2025090621-rumble-cost-2c0d@gregkh>
On 9/6/25 04:36, Greg KH wrote:
> On Fri, Sep 05, 2025 at 06:09:52PM -0700, Mukesh Rathor wrote:
>> With CONFIG_HYPERV and CONFIG_HYPERV_VMBUS separated, change CONFIG_HYPERV
>> to bool from tristate. CONFIG_HYPERV now becomes the core Hyper-V
>> hypervisor support, such as hypercalls, clocks/timers, Confidential
>> Computing setup, PCI passthru, etc. that doesn't involve VMBus or VMBus
>> devices.
>
> But why are you making it so that this can not be a module anymore? You
> are now forcing ALL Linux distro users to always have this code in their
> system, despite not ever using the feature. That feels like a waste to
> me.
>
> What is preventing this from staying as a module? Why must you always
> have this code loaded at all times for everyone?
This is currently not a module. I assume it was at the beginning. In
drivers/Makefile today:
obj-$(subst m,y,$(CONFIG_HYPERV)) += hv/
More context: CONFIG_HYPERV doesn't really reflect one module. It is
both for kernel built in code and building of stuff in drivers/hv.
drivers/hv then builds 4 modules:
obj-$(CONFIG_HYPERV) += hv_vmbus.o
obj-$(CONFIG_HYPERV_UTILS) += hv_utils.o
obj-$(CONFIG_HYPERV_BALLOON) += hv_balloon.o
obj-$(CONFIG_MSHV_ROOT) += mshv_root.o
Notice vmbus is using CONFIG_HYPERV because there is no
CONFIG_HYPERV_VMBUS. We are trying to fix that here.
Thanks,
-Mukesh
> thanks,
>
> greg k-h
^ permalink raw reply
* Re: [PATCH v3] HID: lg-g15 - Add support for Logitech G13.
From: Hans de Goede @ 2025-09-08 21:08 UTC (permalink / raw)
To: Leo L. Schwab
Cc: Kate Hsuan, Jiri Kosina, Benjamin Tissoires, linux-input,
linux-kernel
In-Reply-To: <aLiZbkKgIC8jIqE9@ewhac.org>
[-- Attachment #1: Type: text/plain, Size: 2946 bytes --]
Hi Leo,
On 3-Sep-25 9:39 PM, Leo L. Schwab wrote:
> For some reason, your replies aren't making it to me directly -- I
> had to find and scrape your reply off the LKML web site:
>
> On Tue, 2 Sep 2025 23:05:06 +0200, Hans de Goede wrote:
>> On 2-Sep-25 22:41, Leo L. Schwab wrote:
>>> This does not happen. The G13 accepts and remembers backlight color
>>> settings even when the LEDs have been toggled off locally.
>>> [ ... ]
>>
>> I see, interesting.
>>
>> So what happens if you turn off the backlight with the toggle button on the G13
>> and then write 0 to brightness in sysfs and then press the toggle button again?
>>
> It's a little difficult to see, but the backlight turns back on with
> minimal brightness. To my eye, it looks like it's displaying #000001.
Ok.
>> Right it does seem that using cdev.brightness_hw_changed is valid in
>> this case.
>>
>> But the LED API is supposed to have the brightness attribute present
>> the actual current brightness of the device.
>>
>> I'm not sure how upower will react if the poll() on brightness_hw_changed
>> wakes upower up and then the reported brightness is unchanged...
>>
>> I need to think about this a bit and check the upower code, let me
>> get back to you on this in a day or 2 ...
>>
> Certainly.
Thank you for waiting. After looking at the upower code + running some
tests with a G510 I think that your hw_brightness_changed support
is pretty good as is.
There are 2 improvements which I would like to see:
1. When the backlight is turned on through the button, you
should pass g15_led->brightness to the notify() call rather
then LED_FULL. GNOME will show an OSD with the new brightness
value shown as a mini progress bar similar to how it shows
speaker volume when doing mute/unmute. This mini progress
bar should show the actual brightness being restored, not
always full brightness.
2. ATM if the backlight is turned off on the G13 when
the driver loads and then one of the buttons gets pressed
then a notify() will happen because the led_cdev.hw_brightness_changed
value of -1 will be different from the value of 0 in the
input-report. This notify will lead to an unwanted OSD
notification in GNOME, so this needs to be fixed.
IMHO the best fix would be to use:
hid_hw_raw_request(..., HID_INPUT_REPORT, HID_REQ_GET_REPORT);
at probe to get the input-report so that the driver will
actually now the backlight state at probe() time without
needing to wait for the first time the input-report is send.
You have inspired me to add hw_brightness_changed support
to the G510 code, see the attached patch. This patch can
also be used as an example how to get the input report
on the G13 during probe().
Note this also adds a variable at the driver level to
track the backlight state also fixing the compile issue
you hit without needing to use #ifdef-ery.
I'll wait for your G13 support to land first and then
rebase the G510 patch on top.
Regards,
Hans
[-- Attachment #2: 0001-HID-hid-lg-g15-Add-hw_brightness_changed-support-for.patch --]
[-- Type: text/x-patch, Size: 3783 bytes --]
From 1c735e5ddba814acc57a9d268ed7852bd4aa5887 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hansg@kernel.org>
Date: Mon, 8 Sep 2025 22:55:12 +0200
Subject: [PATCH] HID: hid-lg-g15: Add hw_brightness_changed support for the
G510 keyboard
Add hw_brightness_changed support for the G510 keyboard, so that e.g.
GNOME will show an OSD notification when toggling the backlight on/off
with the button the keyboard.
Note that it is not possible to turn the backlight back on by writing
/sys/class/leds/.../brightness it can only be turned on by pressing
the button on the keyboard. To reflect this /sys/class/leds/.../brightness
will always report the last brightness value independent of the on/off
toggle built into the keyboard.
Signed-off-by: Hans de Goede <hansg@kernel.org>
---
drivers/hid/hid-lg-g15.c | 37 ++++++++++++++++++++++++++++++++++---
1 file changed, 34 insertions(+), 3 deletions(-)
diff --git a/drivers/hid/hid-lg-g15.c b/drivers/hid/hid-lg-g15.c
index f8605656257b..e5be2a5dfa67 100644
--- a/drivers/hid/hid-lg-g15.c
+++ b/drivers/hid/hid-lg-g15.c
@@ -26,6 +26,9 @@
#define LG_G510_FEATURE_BACKLIGHT_RGB 0x05
#define LG_G510_FEATURE_POWER_ON_RGB 0x06
+#define LG_G510_INPUT_MACRO_KEYS 0x03
+#define LG_G510_INPUT_KBD_BACKLIGHT 0x04
+
enum lg_g15_model {
LG_G15,
LG_G15_V2,
@@ -67,6 +70,7 @@ struct lg_g15_data {
enum lg_g15_model model;
struct lg_g15_led leds[LG_G15_LED_MAX];
bool game_mode_enabled;
+ bool backlight_disabled;
};
/******** G15 and G15 v2 LED functions ********/
@@ -227,6 +231,20 @@ static int lg_g510_get_initial_led_brightness(struct lg_g15_data *g15, int i)
g15->leds[i].brightness = 0;
}
+ if (i)
+ return 0;
+
+ ret = hid_hw_raw_request(g15->hdev, LG_G510_INPUT_KBD_BACKLIGHT,
+ g15->transfer_buf, 2,
+ HID_INPUT_REPORT, HID_REQ_GET_REPORT);
+ if (ret != 2) {
+ /* This can happen when a KVM switch is used, so only warn. */
+ hid_warn(g15->hdev, "Error getting backlight state: %d\n", ret);
+ return 0;
+ }
+
+ g15->backlight_disabled = g15->transfer_buf[1] & 0x04;
+
return 0;
}
@@ -549,14 +567,24 @@ static int lg_g510_event(struct lg_g15_data *g15, u8 *data)
static int lg_g510_leds_event(struct lg_g15_data *g15, u8 *data)
{
+ struct lg_g15_led *g15_led = &g15->leds[LG_G15_KBD_BRIGHTNESS];
bool backlight_disabled;
+ backlight_disabled = data[1] & 0x04;
+ if (backlight_disabled == g15->backlight_disabled)
+ return 0;
+
+ led_classdev_notify_brightness_hw_changed(
+ &g15_led->mcdev.led_cdev,
+ backlight_disabled ? 0 : g15_led->brightness);
+
+ g15->backlight_disabled = backlight_disabled;
+
/*
* The G510 ignores backlight updates when the backlight is turned off
* through the light toggle button on the keyboard, to work around this
* we queue a workitem to sync values when the backlight is turned on.
*/
- backlight_disabled = data[1] & 0x04;
if (!backlight_disabled)
schedule_work(&g15->work);
@@ -588,9 +616,9 @@ static int lg_g15_raw_event(struct hid_device *hdev, struct hid_report *report,
break;
case LG_G510:
case LG_G510_USB_AUDIO:
- if (data[0] == 0x03 && size == 5)
+ if (data[0] == LG_G510_INPUT_MACRO_KEYS && size == 5)
return lg_g510_event(g15, data);
- if (data[0] == 0x04 && size == 2)
+ if (data[0] == LG_G510_INPUT_KBD_BACKLIGHT && size == 2)
return lg_g510_leds_event(g15, data);
break;
}
@@ -624,6 +652,9 @@ static void lg_g15_setup_led_rgb(struct lg_g15_data *g15, int index)
g15->leds[index].mcdev.led_cdev.max_brightness = 255;
g15->leds[index].mcdev.num_colors = 3;
+ if (index == LG_G15_KBD_BRIGHTNESS)
+ g15->leds[index].mcdev.led_cdev.flags = LED_BRIGHT_HW_CHANGED;
+
subled_info = devm_kcalloc(&g15->hdev->dev, 3, sizeof(*subled_info), GFP_KERNEL);
if (!subled_info)
return;
--
2.51.0
^ permalink raw reply related
* Re: [PATCH v4] HID: logitech-dj: Add support for a new lightspeed receiver iteration
From: Mavroudis Chatzilazaridis @ 2025-09-08 21:30 UTC (permalink / raw)
To: Stuart; +Cc: jikos, linux-input, benjamin.tissoires, hadess, lains
In-Reply-To: <CALTg27=uP+jCU7oog41GiZrw7LX_mSfrQtKbDW+xpAHzN7_6cQ@mail.gmail.com>
On 04/09/2025 16.12, Stuart wrote:
>> Hm. It appears I may have misunderstood how this works. Please undo the
>> previous diff and apply the following on top instead:
>
> Done, still no change :(
Unfortunately I'm out of ideas for now. Looking at it again, I think the
first approach seemed more promising. Perhaps I missed something.
>> I think it happens when the devices paired to it disconnect/reconnect.
>
> Yep, that matches
>
>> Can you also dump the HID report descriptors when the keyboard is
>> plugged in directly via USB?
>
> Sure (046d:c343):
>
> 003:007:002:DESCRIPTOR 1756991366.823468
> 06 00 FF 09 01 A1 01 85 10 95 06 75 08 15 00 26
> FF 00 09 01 81 00 09 01 91 00 C0 06 00 FF 09 02
> A1 01 85 11 95 13 75 08 15 00 26 FF 00 09 02 81
> 00 09 02 91 00 C0
>
> 003:007:001:DESCRIPTOR 1756991366.827464
> 05 01 09 02 A1 01 85 02 09 01 A1 00 95 10 75 01
> 15 00 25 01 05 09 19 01 29 10 81 02 95 02 75 10
> 16 01 80 26 FF 7F 05 01 09 30 09 31 81 06 95 01
> 75 08 15 81 25 7F 09 38 81 06 95 01 05 0C 0A 38
> 02 81 06 C0 C0 05 0C 09 01 A1 01 85 03 95 02 75
> 10 15 01 26 FF 02 19 01 2A FF 02 81 00 C0 05 01
> 09 80 A1 01 85 04 95 01 75 02 15 01 25 03 09 82
> 09 81 09 83 81 00 75 06 81 03 C0
>
> 003:007:000:DESCRIPTOR 1756991366.831465
> 05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01
> 75 01 95 08 81 02 95 05 05 08 19 01 29 05 91 02
> 95 01 75 03 91 03 95 70 75 01 05 07 19 04 29 73
> 81 02 95 05 19 87 29 8B 81 02 95 03 19 90 29 92
> 81 02 C0
I was hoping that would give me a clue, but unfortunately it did not.
I suspect simply sending the LED report to the receiver itself with
Report ID 1 is not enough, which is what the first diff does.
Perhaps you could try a packet capture with the Logitech provided driver
in a VM running a well known commercial operating system + usbmon on the
host to see what HID report actually gets sent.
^ permalink raw reply
* Re: [PATCH v4] HID: logitech-dj: Add support for a new lightspeed receiver iteration
From: Stuart @ 2025-09-08 23:59 UTC (permalink / raw)
To: Mavroudis Chatzilazaridis
Cc: jikos, linux-input, benjamin.tissoires, hadess, lains
In-Reply-To: <93bf9cfc-29ca-40e4-baef-47c5bd0e9cee@protonmail.com>
What does logitech-dj do differently to the generic HID driver around the LEDs?
The caps lock LED works perfectly fine with the generic driver.
If that goes nowhere, surely I could do a packet capture from Linux, with and
without the logitech-dj driver active?
Stuart
^ permalink raw reply
* Plain text ver. libinput issue 318 について / Regarding libinput issue 318
From: demetriatemp @ 2025-09-09 4:38 UTC (permalink / raw)
To: masaki.ota@jp.alps.com
Cc: linux-input@vger.kernel.org, benjamin.tissoires@redhat.com
There is an English version below.
---
こんにちは。
Linuxの初心者で、ハードウェアが正常に動作しません。
libinput#318 についてです。
https://gitlab.freedesktop.org/libinput/libinput/-/issues/318
そこには問題の説明と役立つファイルがあります。
あたしのモデルはX2ですけど、Jon Westさんが修正したファイルは動作すると思います。
カーネル 6.16.5 との diff を作成しましたが、パッチは古くて、カーネルの新しい変更が元に戻ってしまいます。
必要の変更は分からないので、アップロードしませんでした。
アップストリームで修正していただけないでしょうか?
あたしプログラマーではないので、この問題を報告するしかできません。
ご苦労様でした。
日本語が下手でごめんなさい。
---
Hello.
I'm new to Linux and my hardware isn't working properly.
I'm referring to libinput#318
https://gitlab.freedesktop.org/libinput/libinput/-/issues/318
It has a description of the problem and helpful files.
My model is an X2, but I think Jon West's modified file will work.
I created a diff with kernel 6.16.5, but the patch is old and reverts the new kernel changes.
I don't know what changes are necessary so I didn't upload it.
Could this please be fixed upstream?
I'm not a programmer, so all I can do is report this issue.
Thank you all for your hard work.
^ permalink raw reply
* [PATCH v2 0/2] input: touchscreen: atmel_mxt_ts: add support for generic touchscreen configurations
From: Svyatoslav Ryhel @ 2025-09-09 5:49 UTC (permalink / raw)
To: Nick Dyer, Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Henrik Rydberg, Svyatoslav Ryhel, Linus Walleij
Cc: linux-input, devicetree, linux-kernel
This provides support for generic touchscreen configuration options like
swapped-x-y, min-x, min-y, size-x, size-y, etc.
---
Changes in v2:
- added schema adjustment
---
Svyatoslav Ryhel (2):
dt-bindings: input: maxtouch: add common touchscreen properties
input: touchscreen: atmel_mxt_ts: add support for generic touchscreen
configurations
.../devicetree/bindings/input/atmel,maxtouch.yaml | 3 ++-
drivers/input/touchscreen/atmel_mxt_ts.c | 11 +++++++----
2 files changed, 9 insertions(+), 5 deletions(-)
--
2.48.1
^ permalink raw reply
* [PATCH v2 1/2] dt-bindings: input: maxtouch: add common touchscreen properties
From: Svyatoslav Ryhel @ 2025-09-09 5:49 UTC (permalink / raw)
To: Nick Dyer, Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Henrik Rydberg, Svyatoslav Ryhel, Linus Walleij
Cc: linux-input, devicetree, linux-kernel
In-Reply-To: <20250909054903.11519-1-clamor95@gmail.com>
Since atmel,maxtouch describes touchscreens too, it should include common
touchscreen properties.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
Documentation/devicetree/bindings/input/atmel,maxtouch.yaml | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/input/atmel,maxtouch.yaml b/Documentation/devicetree/bindings/input/atmel,maxtouch.yaml
index c40799355ed7..d79b254f1cde 100644
--- a/Documentation/devicetree/bindings/input/atmel,maxtouch.yaml
+++ b/Documentation/devicetree/bindings/input/atmel,maxtouch.yaml
@@ -16,6 +16,7 @@ description: |
allOf:
- $ref: input.yaml#
+ - $ref: touchscreen/touchscreen.yaml#
properties:
compatible:
@@ -95,7 +96,7 @@ required:
- reg
- interrupts
-additionalProperties: false
+unevaluatedProperties: false
examples:
- |
--
2.48.1
^ permalink raw reply related
* [PATCH v2 2/2] input: touchscreen: atmel_mxt_ts: add support for generic touchscreen configurations
From: Svyatoslav Ryhel @ 2025-09-09 5:49 UTC (permalink / raw)
To: Nick Dyer, Dmitry Torokhov, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Henrik Rydberg, Svyatoslav Ryhel, Linus Walleij
Cc: linux-input, devicetree, linux-kernel
In-Reply-To: <20250909054903.11519-1-clamor95@gmail.com>
This provides support for generic touchscreen configuration options like
swapped-x-y, min-x, min-y, size-x, size-y, etc.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
---
drivers/input/touchscreen/atmel_mxt_ts.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
index 322d5a3d40a0..fc624101147e 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -19,6 +19,7 @@
#include <linux/firmware.h>
#include <linux/i2c.h>
#include <linux/input/mt.h>
+#include <linux/input/touchscreen.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/of.h>
@@ -355,6 +356,8 @@ struct mxt_data {
enum mxt_suspend_mode suspend_mode;
u32 wakeup_method;
+
+ struct touchscreen_properties prop;
};
struct mxt_vb2_buffer {
@@ -888,8 +891,7 @@ static void mxt_proc_t9_message(struct mxt_data *data, u8 *message)
/* Touch active */
input_mt_report_slot_state(input_dev, MT_TOOL_FINGER, 1);
- input_report_abs(input_dev, ABS_MT_POSITION_X, x);
- input_report_abs(input_dev, ABS_MT_POSITION_Y, y);
+ touchscreen_report_pos(input_dev, &data->prop, x, y, true);
input_report_abs(input_dev, ABS_MT_PRESSURE, amplitude);
input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, area);
} else {
@@ -1010,8 +1012,7 @@ static void mxt_proc_t100_message(struct mxt_data *data, u8 *message)
id, type, x, y, major, pressure, orientation);
input_mt_report_slot_state(input_dev, tool, 1);
- input_report_abs(input_dev, ABS_MT_POSITION_X, x);
- input_report_abs(input_dev, ABS_MT_POSITION_Y, y);
+ touchscreen_report_pos(input_dev, &data->prop, x, y, true);
input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, major);
input_report_abs(input_dev, ABS_MT_PRESSURE, pressure);
input_report_abs(input_dev, ABS_MT_DISTANCE, distance);
@@ -2212,6 +2213,8 @@ static int mxt_initialize_input_device(struct mxt_data *data)
0, 255, 0, 0);
}
+ touchscreen_parse_properties(input_dev, true, &data->prop);
+
/* For T15 and T97 Key Array */
if (data->T15_reportid_min || data->T97_reportid_min) {
for (i = 0; i < data->t15_num_keys; i++)
--
2.48.1
^ permalink raw reply related
* Re: [PATCH v1 2/2] Drivers: hv: Make CONFIG_HYPERV bool
From: Greg KH @ 2025-09-09 6:23 UTC (permalink / raw)
To: Mukesh R
Cc: dri-devel, linux-kernel, linux-input, linux-hyperv, netdev,
linux-pci, linux-scsi, linux-fbdev, linux-arch, virtualization,
maarten.lankhorst, mripard, tzimmermann, airlied, simona, jikos,
bentiss, kys, haiyangz, wei.liu, decui, dmitry.torokhov,
andrew+netdev, davem, edumazet, kuba, pabeni, bhelgaas,
James.Bottomley, martin.petersen, deller, arnd, sgarzare, horms
In-Reply-To: <d7d7b23f-eaea-2dbc-9c9d-4bee082f6fe7@linux.microsoft.com>
On Mon, Sep 08, 2025 at 02:01:34PM -0700, Mukesh R wrote:
> On 9/6/25 04:36, Greg KH wrote:
> > On Fri, Sep 05, 2025 at 06:09:52PM -0700, Mukesh Rathor wrote:
> >> With CONFIG_HYPERV and CONFIG_HYPERV_VMBUS separated, change CONFIG_HYPERV
> >> to bool from tristate. CONFIG_HYPERV now becomes the core Hyper-V
> >> hypervisor support, such as hypercalls, clocks/timers, Confidential
> >> Computing setup, PCI passthru, etc. that doesn't involve VMBus or VMBus
> >> devices.
> >
> > But why are you making it so that this can not be a module anymore? You
> > are now forcing ALL Linux distro users to always have this code in their
> > system, despite not ever using the feature. That feels like a waste to
> > me.
> >
> > What is preventing this from staying as a module? Why must you always
> > have this code loaded at all times for everyone?
>
> This is currently not a module. I assume it was at the beginning. In
> drivers/Makefile today:
>
> obj-$(subst m,y,$(CONFIG_HYPERV)) += hv/
>
>
> More context: CONFIG_HYPERV doesn't really reflect one module. It is
> both for kernel built in code and building of stuff in drivers/hv.
>
> drivers/hv then builds 4 modules:
>
> obj-$(CONFIG_HYPERV) += hv_vmbus.o
> obj-$(CONFIG_HYPERV_UTILS) += hv_utils.o
> obj-$(CONFIG_HYPERV_BALLOON) += hv_balloon.o
> obj-$(CONFIG_MSHV_ROOT) += mshv_root.o
>
> Notice vmbus is using CONFIG_HYPERV because there is no
> CONFIG_HYPERV_VMBUS. We are trying to fix that here.
Ah, I missed that this was getting changed in the Makefile in patch 1,
that is what I was worried about.
Nevermind, this should be fine, sorry for the noise. I'll go queue it
up later today.
greg k-h
^ permalink raw reply
* Re: [PATCH v1 03/14] dt-bindings: arm: mediatek: mmsys: Add assigned-clocks/rates properties
From: Krzysztof Kozlowski @ 2025-09-09 6:29 UTC (permalink / raw)
To: Ariel D'Alessandro
Cc: airlied, amergnat, andrew+netdev, andrew-ct.chen,
angelogioacchino.delregno, broonie, chunkuang.hu, ck.hu, conor+dt,
davem, dmitry.torokhov, edumazet, flora.fu, houlong.wei, jeesw,
jmassot, kernel, krzk+dt, kuba, kyrie.wu, lgirdwood,
linus.walleij, louisalexis.eyraud, maarten.lankhorst,
matthias.bgg, mchehab, minghsiu.tsai, mripard, p.zabel, pabeni,
robh, sean.wang, simona, support.opensource, tiffany.lin,
tzimmermann, yunfei.dong, devicetree, dri-devel, linux-arm-kernel,
linux-clk, linux-gpio, linux-input, linux-kernel, linux-media,
linux-mediatek, linux-sound, netdev
In-Reply-To: <1cf0b296-adaa-4c80-864c-9b78f09cd3e3@collabora.com>
On 08/09/2025 21:19, Ariel D'Alessandro wrote:
> Krzysztof,
>
> On 8/21/25 3:43 AM, Krzysztof Kozlowski wrote:
>> On Wed, Aug 20, 2025 at 02:12:51PM -0300, Ariel D'Alessandro wrote:
>>> Current, the DT bindings for MediaTek mmsys controller is missing the
>>> assigned-clocks and assigned-clocks-rates properties. Add these and
>>
>> No, they do not miss them. I don't understand why you are adding these.
>
> The reason I added these is due to the following check error:
>
> $ make -j$(nproc) CHECK_DTBS=y mediatek/mt8173-elm.dtb
> DTC [C] arch/arm64/boot/dts/mediatek/mt8173-elm.dtb
> [...]
> arch/arm64/boot/dts/mediatek/mt8173-elm.dtb: syscon@14000000
> (mediatek,mt8173-mmsys): 'assigned-clock-rates', 'assigned-clocks' do
> not match any of the regexes: '^pinctrl-[0-9]+$'
> from schema $id:
> http://devicetree.org/schemas/arm/mediatek/mediatek,mmsys.yaml#
This is looking like missing clocks or other unevaluated property by the
binding.
Best regards,
Krzysztof
^ permalink raw reply
* Re: [PATCH v1 01/14] media: dt-bindings: Convert MediaTek mt8173-mdp bindings to YAML
From: Krzysztof Kozlowski @ 2025-09-09 6:32 UTC (permalink / raw)
To: Ariel D'Alessandro
Cc: airlied, amergnat, andrew+netdev, andrew-ct.chen,
angelogioacchino.delregno, broonie, chunkuang.hu, ck.hu, conor+dt,
davem, dmitry.torokhov, edumazet, flora.fu, houlong.wei, jeesw,
jmassot, kernel, krzk+dt, kuba, kyrie.wu, lgirdwood,
linus.walleij, louisalexis.eyraud, maarten.lankhorst,
matthias.bgg, mchehab, minghsiu.tsai, mripard, p.zabel, pabeni,
robh, sean.wang, simona, support.opensource, tiffany.lin,
tzimmermann, yunfei.dong, devicetree, dri-devel, linux-arm-kernel,
linux-clk, linux-gpio, linux-input, linux-kernel, linux-media,
linux-mediatek, linux-sound, netdev
In-Reply-To: <d286ec0b-c8dc-4103-9aa3-2f40e0ade4a3@collabora.com>
On 08/09/2025 19:52, Ariel D'Alessandro wrote:
> Krzysztof,
>
> On 8/21/25 3:46 AM, Krzysztof Kozlowski wrote:
>> On Wed, Aug 20, 2025 at 02:12:49PM -0300, Ariel D'Alessandro wrote:
>>> Convert the existing text-based DT bindings for MediaTek MT8173 Media Data Path
>>> to a YAML schema.
>>
>> Please wrap commit message according to Linux coding style / submission
>> process (neither too early nor over the limit):
>> https://elixir.bootlin.com/linux/v6.4-rc1/source/Documentation/process/submitting-patches.rst#L597
>
> Thanks. Looks like my editor was misconfigured, sorry. Will fix in v2.
>
>>
>>>
>>> Signed-off-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
>>> ---
>>> .../bindings/media/mediatek,mt8173-mdp.yaml | 174 ++++++++++++++++++
>>> .../bindings/media/mediatek-mdp.txt | 95 ----------
>>> 2 files changed, 174 insertions(+), 95 deletions(-)
>>> create mode 100644 Documentation/devicetree/bindings/media/mediatek,mt8173-mdp.yaml
>>> delete mode 100644 Documentation/devicetree/bindings/media/mediatek-mdp.txt
>>>
>>> diff --git a/Documentation/devicetree/bindings/media/mediatek,mt8173-mdp.yaml b/Documentation/devicetree/bindings/media/mediatek,mt8173-mdp.yaml
>>> new file mode 100644
>>> index 0000000000000..f3a08afc305b1
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/media/mediatek,mt8173-mdp.yaml
>>> @@ -0,0 +1,174 @@
>>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/media/mediatek,mt8173-mdp.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: MediaTek MT8173 Media Data Path
>>> +
>>> +maintainers:
>>> + - Ariel D'Alessandro <ariel.dalessandro@collabora.com>
>>> +
>>> +description:
>>> + Media Data Path is used for scaling and color space conversion.
>>> +
>>> +properties:
>>> + compatible:
>>> + oneOf:
>>> + - items:
>>
>> Just enum, no items here
>
> See below.
>
>>
>>
>>> + - enum:
>>> + - mediatek,mt8173-mdp-rdma
>>> + - mediatek,mt8173-mdp-rsz
>>> + - mediatek,mt8173-mdp-wdma
>>> + - mediatek,mt8173-mdp-wrot
>>> + - items:
>>> + - enum:
>>> + - mediatek,mt8173-mdp-rdma
>>> + - mediatek,mt8173-mdp-rsz
>>> + - mediatek,mt8173-mdp-wdma
>>> + - mediatek,mt8173-mdp-wrot
>>> + - const: mediatek,mt8173-mdp
>>
>> This makes no sense. How devices can be compatible and can not be
>> compatible.
>
> According to the driver source code (and the previous txt mt8173-mdp
> bindings), there must be a "controller node" with compatible
> `mediatek,mt8173-mdp`. Then its sibling nodes (including itself) should
But you did not define "mediatek,mt8173-mdp" here, so what are you
talking about?
I talk here about "wrot" and others, I thought it is obvious from the
mistake in the schema.
> be one of the component node ids, listed in `struct of_device_id
> mtk_mdp_comp_dt_ids[]`.
>
> Is there a proper/different way to describe this compatible binding in
> the yaml? Or you're saying the driver doesn't make sense here?
>
> [0] drivers/media/platform/mediatek/mdp/mtk_mdp_core.c
>
>>
>>> +
>>> + reg:
>>> + maxItems: 1
>>> +
>>> + clocks: true
>>
>> No, there's no such syntax. Look at other bindings.
>
> Ack.
>
>>
>>
>>> +
>>> + power-domains:
>>> + maxItems: 1
>>> +
>>> + iommus:
>>> + description: |
>>
>> Drop |
>
> Ack.
>
>>
>>> + This property should point to the respective IOMMU block with master port as argument,
>>> + see Documentation/devicetree/bindings/iommu/mediatek,iommu.yaml for details.
>>
>> Drop entire description, completely redundant. I don't know why my patch
>> fixing this was not applied, so you keep repeating same mistakes...
>
> Ack.
>
>>
>>> + maxItems: 1
>>> +
>>> + mediatek,vpu:
>>> + $ref: /schemas/types.yaml#/definitions/phandle
>>> + description:
>>> + Describes point to vpu.
>>
>> Useless description. We see that from the property name. Explain the
>> purpose in the hardware.
>
> Ack.
>
>>
>>> +
>>> +required:
>>> + - compatible
>>> + - reg
>>> + - clocks
>>> + - power-domains
>>> +
>>> +allOf:
>>> + - if:
>>> + properties:
>>> + compatible:
>>> + contains:
>>> + const: mediatek,mt8173-mdp-rdma
>>> + then:
>>> + properties:
>>> + clocks:
>>> + items:
>>> + - description: Main clock
>>> + - description: Mutex clock
>>> + else:
>>> + properties:
>>> + clocks:
>>> + items:
>>> + - description: Main clock
>>> +
>>> + - if:
>>> + properties:
>>> + compatible:
>>> + contains:
>>> + enum:
>>> + - mediatek,mt8173-mdp-rdma
>>> + - mediatek,mt8173-mdp-wdma
>>> + - mediatek,mt8173-mdp-wrot
>>> + then:
>>> + required:
>>> + - iommus
>>> +
>>> + - if:
>>> + properties:
>>> + compatible:
>>> + contains:
>>> + const: mediatek,mt8173-mdp
>>
>> This makes no sense either.
>
> Same question above about compatibles.
How same question? Do you understand this code? It is nothing the same -
you have here contains!
Best regards,
Krzysztof
^ permalink raw reply
* Re: [PATCH v1 13/14] dt-bindings: input/touchscreen: Convert MELFAS MIP4 Touchscreen to YAML
From: Krzysztof Kozlowski @ 2025-09-09 6:56 UTC (permalink / raw)
To: Linus Walleij, Dmitry Torokhov
Cc: Ariel D'Alessandro, airlied, amergnat, andrew+netdev,
andrew-ct.chen, angelogioacchino.delregno, broonie, chunkuang.hu,
ck.hu, conor+dt, davem, edumazet, flora.fu, houlong.wei, jeesw,
jmassot, kernel, krzk+dt, kuba, kyrie.wu, lgirdwood,
louisalexis.eyraud, maarten.lankhorst, matthias.bgg, mchehab,
minghsiu.tsai, mripard, p.zabel, pabeni, robh, sean.wang, simona,
support.opensource, tiffany.lin, tzimmermann, yunfei.dong,
devicetree, dri-devel, linux-arm-kernel, linux-clk, linux-gpio,
linux-input, linux-kernel, linux-media, linux-mediatek,
linux-sound, netdev
In-Reply-To: <CACRpkdZRHQ6vuchN8x8d0uPCVMPPHOdBVWiUhzFJNs2paHGbYw@mail.gmail.com>
On 05/09/2025 13:33, Linus Walleij wrote:
> On Fri, Sep 5, 2025 at 12:02 PM Dmitry Torokhov
> <dmitry.torokhov@gmail.com> wrote:
>> On Thu, Aug 21, 2025 at 01:56:24PM +0200, Linus Walleij wrote:
>>> Hi Ariel,
>>>
>>> thanks for your patch!
>>>
>>> On Wed, Aug 20, 2025 at 7:17 PM Ariel D'Alessandro
>>> <ariel.dalessandro@collabora.com> wrote:
>>>
>>>> + ce-gpios:
>>>> + description: GPIO connected to the CE (chip enable) pin of the chip
>>>> + maxItems: 1
>>>
>>> Mention that this should always have the flag GPIO_ACTIVE_HIGH
>>> as this is required by the hardware.
>>>
>>> Unfortunately we have no YAML syntax for enforcing flags :/
>>
>> Theoretically there can be an inverter on the line, so from the AP point
>> of view the line is active low while from the peripheral POV the pin is
>> active high...
>
> Yes, I think someone even proposed adding inverters to the
> device tree and was nixed.
It's not about DT, it's about board design - you can (almost?) always
invert the logical signal, so this should match what hardware requires
plus any inverter on the board.
>
> It's a matter of phrasing I would say:
>
> "Mention that this should nominally have the flag GPIO_ACTIVE_HIGH
No, please do not, it is wrong. If hardware requires active high, then
just say this is active high. But the actual GPIO flag depends on the
board design if signal is inverted.
Best regards,
Krzysztof
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox