Re: [PATCH] HID: plantronics: Additional PID for double volume key presses quirk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sep 13 2024, Wade Wang wrote:
> Add the below headsets for double volume key presses quirk
>         Plantronics EncorePro 500 Series  (047f:431e)
>         Plantronics Blackwire_3325 Series (047f:430c)
> 
> Quote from previous patch by Maxim Mikityanskiy and Terry Junge
> 	'commit f567d6ef8606 ("HID: plantronics: Workaround for double volume
> 	 key presses")'
> 	'commit 3d57f36c89d8 ("HID: plantronics: Additional PIDs for double
> 	 volume key presses quirk")'
> These Plantronics Series headset sends an opposite volume key following
> each volume key press. This patch adds a quirk to hid-plantronics for this
> product ID, which will ignore the second opposite volume key press if it
> happens within 250 ms from the last one that was handled.

This commit message is very confusing:
- you mention that you are quoting 2 commits,
- but then you don't quote them but slightly reword the content
- and then, and most of all, you insert in the driver a new timeout of
  250 ms, which seems to not be with the same bases than f567d6ef8606
  where it is mentioned that "Auto-repeat (when a key is held pressed)
  is not affected, because the rate is about 3 times per second, which
  is far less frequent than once in 5 ms." -> 250 ms gets in the roughly
  same range than 3 times per seconds, so some more explanations is
  required

Please also follow Greg's advice and, as you replied in your last message
that didn't made the list (HTML), please resubmit the series with a
clear v3 indicator and a description of changes.

Ideally, I'd like to also have the other plantronics patch you sent
today in the same series, so I know which order I should apply them, in
case one rely on the other.

Cheers,
Benjamin
  
> 
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Wade Wang <wade.wang@xxxxxx>
> ---
>  drivers/hid/hid-ids.h         |  2 ++
>  drivers/hid/hid-plantronics.c | 11 +++++++++++
>  2 files changed, 13 insertions(+)
> 
> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> index 781c5aa29859..a0aaac98a891 100644
> --- a/drivers/hid/hid-ids.h
> +++ b/drivers/hid/hid-ids.h
> @@ -1050,6 +1050,8 @@
>  #define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3220_SERIES	0xc056
>  #define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3215_SERIES	0xc057
>  #define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3225_SERIES	0xc058
> +#define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3325_SERIES	0x430c
> +#define USB_DEVICE_ID_PLANTRONICS_ENCOREPRO_500_SERIES		0x431e
>  
>  #define USB_VENDOR_ID_PANASONIC		0x04da
>  #define USB_DEVICE_ID_PANABOARD_UBT780	0x1044
> diff --git a/drivers/hid/hid-plantronics.c b/drivers/hid/hid-plantronics.c
> index 3d414ae194ac..2a19f3646ecb 100644
> --- a/drivers/hid/hid-plantronics.c
> +++ b/drivers/hid/hid-plantronics.c
> @@ -38,8 +38,10 @@
>  			    (usage->hid & HID_USAGE_PAGE) == HID_UP_CONSUMER)
>  
>  #define PLT_QUIRK_DOUBLE_VOLUME_KEYS BIT(0)
> +#define PLT_QUIRK_FOLLOWED_VOLUME_UP_DN_KEYS BIT(1)
>  
>  #define PLT_DOUBLE_KEY_TIMEOUT 5 /* ms */
> +#define PLT_FOLLOWED_KEY_TIMEOUT 250 /* ms */
>  
>  struct plt_drv_data {
>  	unsigned long device_type;
> @@ -134,6 +136,9 @@ static int plantronics_event(struct hid_device *hdev, struct hid_field *field,
>  		cur_ts = jiffies;
>  		if (jiffies_to_msecs(cur_ts - prev_ts) <= PLT_DOUBLE_KEY_TIMEOUT)
>  			return 1; /* Ignore the repeated key. */
> +		if ((drv_data->quirks & PLT_QUIRK_FOLLOWED_VOLUME_UP_DN_KEYS)
> +		 && jiffies_to_msecs(cur_ts - prev_ts) <= PLT_FOLLOWED_KEY_TIMEOUT)
> +			return 1; /* Ignore the followed volume key. */
>  
>  		drv_data->last_volume_key_ts = cur_ts;
>  	}
> @@ -210,6 +215,12 @@ static const struct hid_device_id plantronics_devices[] = {
>  	{ HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS,
>  					 USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3225_SERIES),
>  		.driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS },
> +	{ HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS,
> +					 USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3325_SERIES),
> +		.driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS|PLT_QUIRK_FOLLOWED_VOLUME_UP_DN_KEYS },
> +	{ HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS,
> +					 USB_DEVICE_ID_PLANTRONICS_ENCOREPRO_500_SERIES),
> +		.driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS|PLT_QUIRK_FOLLOWED_VOLUME_UP_DN_KEYS },
>  	{ HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS, HID_ANY_ID) },
>  	{ }
>  };
> -- 
> 2.34.1
> 




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux