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 {