linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Improve GIP support
@ 2023-04-11  3:16 Vicki Pfau
  2023-04-11  3:16 ` [PATCH v2 1/2] Input: xpad - Add constants for GIP interface numbers Vicki Pfau
  2023-04-11  3:16 ` [PATCH v2 2/2] Input: xpad - fix PowerA EnWired Controller guide button Vicki Pfau
  0 siblings, 2 replies; 5+ messages in thread
From: Vicki Pfau @ 2023-04-11  3:16 UTC (permalink / raw)
  To: Dmitry Torokhov, linux-input; +Cc: Vicki Pfau, Pavel Rojtberg

This series contains a new version of the previously submitted "fix PowerA
EnWired Controller guide button" patch to make the failure soft instead of hard
as well as making sure the interface exists before trying to disable it, as
well as a further patch to add (and use) constants for the interface names,
based on information gleaned from the xone project.

Vicki Pfau (2):
  Input: xpad - Add constants for GIP interface numbers
  Input: xpad - fix PowerA EnWired Controller guide button

 drivers/input/joystick/xpad.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

-- 
2.40.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 1/2] Input: xpad - Add constants for GIP interface numbers
  2023-04-11  3:16 [PATCH v2 0/2] Improve GIP support Vicki Pfau
@ 2023-04-11  3:16 ` Vicki Pfau
  2023-04-14  7:05   ` Dmitry Torokhov
  2023-04-11  3:16 ` [PATCH v2 2/2] Input: xpad - fix PowerA EnWired Controller guide button Vicki Pfau
  1 sibling, 1 reply; 5+ messages in thread
From: Vicki Pfau @ 2023-04-11  3:16 UTC (permalink / raw)
  To: Dmitry Torokhov, linux-input; +Cc: Vicki Pfau, Pavel Rojtberg

Wired GIP devices present multiple interfaces with the same USB identification
other than the interface number. This adds constants for differentiating two of
them and uses them where appropriate

Signed-off-by: Vicki Pfau <vi@endrift.com>
---
 drivers/input/joystick/xpad.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index 260f91fef427..6ea9c10dfb8a 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -561,6 +561,9 @@ struct xboxone_init_packet {
 #define GIP_MOTOR_LT BIT(3)
 #define GIP_MOTOR_ALL (GIP_MOTOR_R | GIP_MOTOR_L | GIP_MOTOR_RT | GIP_MOTOR_LT)
 
+#define GIP_WIRED_INTF_DATA 0
+#define GIP_WIRED_INTF_AUDIO 1
+
 /*
  * This packet is required for all Xbox One pads with 2015
  * or later firmware installed (or present from the factory).
@@ -2004,7 +2007,7 @@ static int xpad_probe(struct usb_interface *intf, const struct usb_device_id *id
 	}
 
 	if (xpad->xtype == XTYPE_XBOXONE &&
-	    intf->cur_altsetting->desc.bInterfaceNumber != 0) {
+	    intf->cur_altsetting->desc.bInterfaceNumber != GIP_WIRED_INTF_DATA) {
 		/*
 		 * The Xbox One controller lists three interfaces all with the
 		 * same interface class, subclass and protocol. Differentiate by
-- 
2.40.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v2 2/2] Input: xpad - fix PowerA EnWired Controller guide button
  2023-04-11  3:16 [PATCH v2 0/2] Improve GIP support Vicki Pfau
  2023-04-11  3:16 ` [PATCH v2 1/2] Input: xpad - Add constants for GIP interface numbers Vicki Pfau
@ 2023-04-11  3:16 ` Vicki Pfau
  2023-04-14  7:05   ` Dmitry Torokhov
  1 sibling, 1 reply; 5+ messages in thread
From: Vicki Pfau @ 2023-04-11  3:16 UTC (permalink / raw)
  To: Dmitry Torokhov, linux-input; +Cc: Vicki Pfau, Pavel Rojtberg

This commit explicitly disables the audio interface the same way the official
driver does. This is needed for some controllers, such as the PowerA Enhanced
Wired Controller for Series X|S (0x20d6:0x200e) to report the guide button.

Signed-off-by: Vicki Pfau <vi@endrift.com>
---
 drivers/input/joystick/xpad.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
index 6ea9c10dfb8a..175fcba7f92d 100644
--- a/drivers/input/joystick/xpad.c
+++ b/drivers/input/joystick/xpad.c
@@ -1396,6 +1396,16 @@ static int xpad_start_xbox_one(struct usb_xpad *xpad)
 	unsigned long flags;
 	int retval;
 
+	if (usb_ifnum_to_if(xpad->udev, GIP_WIRED_INTF_AUDIO)) {
+		/* Explicitly disable the audio interface. This is needed for some
+		 * controllers, such as the PowerA Enhanced Wired Controller
+		 * for Series X|S (0x20d6:0x200e) to report the guide button */
+		retval = usb_set_interface(xpad->udev, GIP_WIRED_INTF_AUDIO, 0);
+		if (retval)
+			dev_warn(&xpad->dev->dev,
+				 "unable to disable audio interface: %d\n", retval);
+	}
+
 	spin_lock_irqsave(&xpad->odata_lock, flags);
 
 	/*
-- 
2.40.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 1/2] Input: xpad - Add constants for GIP interface numbers
  2023-04-11  3:16 ` [PATCH v2 1/2] Input: xpad - Add constants for GIP interface numbers Vicki Pfau
@ 2023-04-14  7:05   ` Dmitry Torokhov
  0 siblings, 0 replies; 5+ messages in thread
From: Dmitry Torokhov @ 2023-04-14  7:05 UTC (permalink / raw)
  To: Vicki Pfau; +Cc: linux-input, Pavel Rojtberg

On Mon, Apr 10, 2023 at 08:16:49PM -0700, Vicki Pfau wrote:
> Wired GIP devices present multiple interfaces with the same USB identification
> other than the interface number. This adds constants for differentiating two of
> them and uses them where appropriate
> 
> Signed-off-by: Vicki Pfau <vi@endrift.com>

Applied, thank you.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 2/2] Input: xpad - fix PowerA EnWired Controller guide button
  2023-04-11  3:16 ` [PATCH v2 2/2] Input: xpad - fix PowerA EnWired Controller guide button Vicki Pfau
@ 2023-04-14  7:05   ` Dmitry Torokhov
  0 siblings, 0 replies; 5+ messages in thread
From: Dmitry Torokhov @ 2023-04-14  7:05 UTC (permalink / raw)
  To: Vicki Pfau; +Cc: linux-input, Pavel Rojtberg

On Mon, Apr 10, 2023 at 08:16:50PM -0700, Vicki Pfau wrote:
> This commit explicitly disables the audio interface the same way the official
> driver does. This is needed for some controllers, such as the PowerA Enhanced
> Wired Controller for Series X|S (0x20d6:0x200e) to report the guide button.
> 
> Signed-off-by: Vicki Pfau <vi@endrift.com>

Applied, thank you.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-04-14  7:05 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-11  3:16 [PATCH v2 0/2] Improve GIP support Vicki Pfau
2023-04-11  3:16 ` [PATCH v2 1/2] Input: xpad - Add constants for GIP interface numbers Vicki Pfau
2023-04-14  7:05   ` Dmitry Torokhov
2023-04-11  3:16 ` [PATCH v2 2/2] Input: xpad - fix PowerA EnWired Controller guide button Vicki Pfau
2023-04-14  7:05   ` Dmitry Torokhov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).