[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-bluetooth
Subject:    Re: [PATCH] Bluetooth: hidp: sixaxis dualshock report via ctrl quirk
From:       Arnaud Rebillout <arnaud.rebillout () collabora ! com>
Date:       2018-03-30 7:46:15
Message-ID: f0425f48-8bf8-c394-2b16-5208f949cc88 () collabora ! com
[Download RAW message or body]

Hi Marcel,

On 03/28/2018 04:30 PM, Marcel Holtmann wrote:
> Hi Arnaud,
> 
> > The Sixaxis and Dualshock 4 wants report sent via the ctrl channel.
> > 
> > This patch has been used in the SteamOS kernel for a while now.
> > <https://github.com/ValveSoftware/steamos_kernel/commit/6e215b67a13c85d0cf5a9e0970acd9df7d2b77bd>
> >  
> > Signed-off-by: Vivek Das Mohapatra <vivek@collabora.com>
> > Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
> > ---
> > net/bluetooth/hidp/core.c | 13 ++++++++++---
> > 1 file changed, 10 insertions(+), 3 deletions(-)
> > 
> > diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c
> > index 1036e4fa1ea2..fa75da91a559 100644
> > --- a/net/bluetooth/hidp/core.c
> > +++ b/net/bluetooth/hidp/core.c
> > @@ -379,9 +379,16 @@ static int hidp_output_report(struct hid_device *hid, __u8 \
> > *data, size_t count) {
> > 	struct hidp_session *session = hid->driver_data;
> > 
> > -	return hidp_send_intr_message(session,
> > -				      HIDP_TRANS_DATA | HIDP_DATA_RTYPE_OUPUT,
> > -				      data, count);
> > +	/* The Sixaxis and Dualshock 4 wants report sent via the ctrl channel */
> > +	if (hid->vendor == 0x54c && (hid->product == 0x5c4 || hid->product == 0x268)) {
> > +		return hidp_send_ctrl_message(session,
> > +					      HIDP_TRANS_SET_REPORT | HIDP_DATA_RTYPE_OUPUT,
> > +					      data, count);
> > +	} else {
> > +		return hidp_send_intr_message(session,
> > +					      HIDP_TRANS_DATA | HIDP_DATA_RTYPE_OUPUT,
> > +					      data, count);
> > +	}
> > }
> see the comment from Bastien, the HIDP layer is just a transport layer and should \
> really not need to know about device specific quirks. Seems these quirks could be \
> easily handled one layer about where the right channel is selected.

I noticed indeed that the fix for the Sixaxis is already present in
`drivers/hid/hid-sony.c`. I'm not sure about the Dualshock 4, but I will
investigate further. If there's anything to fix I will patch `hid-sony.c`.

Thanks for the feedback, and sorry for the noise :)

   Arnaud

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic