Re: [PATCH 2/2] drivers: hid: warn feature report 0x81

From: Roderick Colenbrander
Date: Thu Oct 06 2022 - 10:02:33 EST


On Thu, Oct 6, 2022 at 6:22 AM Henry Castro <hcvcastro@xxxxxxxxx> wrote:
>
> Unfortunately, my PS DualShock 4, does not support
> the feature 0x81 to get the MAC address. Instead,
> use a unique hash to fake a MAC address, so I can
> use DS4 to play Retroarch :)
>
> Signed-off-by: Henry Castro <hcvcastro@xxxxxxxxx>
> ---
>
> >> I see in the other email. If it doesn't support this request, it is
> >> likely a clone device. We are about to submit a brand new DS4 driver
> >> (for hid-playstation). It will use a different report (0x12) if I
> >> recall which does the same thing. That's the more mainstream one we
> >> use.
>
> I have 2 DualShock 4, I did not notice but I have one DS4 compatible
> (clone, I guess).
>
> The DS4 Sony -> returns -ETIMEDOUT
> The DS4 clone -> returns -EPIPE
>
> Look great the new DS4 driver :)
>

Just for reference if you want to try out if 0x12 works, you can try
this code. This is from the new driver (ps_get_report is from
hid-playstation, but you can just use one of the existing hid calls)
if you wanted to try.

#define DS4_FEATURE_REPORT_PAIRING_INFO 0x12
#define DS4_FEATURE_REPORT_PAIRING_INFO_SIZE 16

if (hdev->bus == BUS_USB) {
buf = kzalloc(DS4_FEATURE_REPORT_PAIRING_INFO_SIZE, GFP_KERNEL);
if (!buf)
return -ENOMEM;

ret = ps_get_report(hdev, DS4_FEATURE_REPORT_PAIRING_INFO, buf,
DS4_FEATURE_REPORT_PAIRING_INFO_SIZE, false);
if (ret) {
hid_err(hdev, "Failed to retrieve DualShock4 pairing info:
%d\n", ret);
goto err_free;
}

memcpy(ds4->base.mac_address, &buf[1], sizeof(ds4->base.mac_address));
} else {