[PATCH 3/4] winebus.sys: Enable extended BT reports for Sony controllers when requested.

Rémi Bernon rbernon at codeweavers.com
Fri Jan 21 16:58:59 CST 2022


On 1/21/22 17:10, Arkadiusz Hiler wrote:
> SDL does that when calling SDL_GameControllerSetSensorEnabled() on
> supported controllers.
> 
> This is a one-way transition, i.e. cannot be undone without re-plugging
> the controller or rebooting.
> 
> Signed-off-by: Arkadiusz Hiler <ahiler at codeweavers.com>
> ---
>   dlls/winebus.sys/bus_udev.c | 11 +++++++++++
>   1 file changed, 11 insertions(+)
> 
> diff --git a/dlls/winebus.sys/bus_udev.c b/dlls/winebus.sys/bus_udev.c
> index c290cea6f4f..ea54e19df47 100644
> --- a/dlls/winebus.sys/bus_udev.c
> +++ b/dlls/winebus.sys/bus_udev.c
> @@ -442,6 +442,17 @@ static void hidraw_device_get_feature_report(struct unix_device *iface, HID_XFER
>       {
>           io->Information = count;
>           io->Status = STATUS_SUCCESS;
> +
> +        /* disable DS4 report quirk when we get calibration feature report */
> +        if ((impl->quirks & QUIRK_DS4_BT) && packet->reportId == 0x5)
> +            impl->quirks &= ~QUIRK_DS4_BT;
> +
> +        /* disable DualSense report quirk when we get calibration feature report */
> +        if ((impl->quirks & QUIRK_DUALSENSE_BT) && packet->reportId == 0x5)
> +        {
> +            TRACE("unquirking dualsense\n");
> +            impl->quirks &= ~QUIRK_DUALSENSE_BT;
> +        }
>       }
>       else
>       {

Looks okay, but there could be a message for the DS4 code too. Something 
more readable like "Disabling DS4 controller quirks" could be nice, 
maybe including the device pointer so we can match it in the log.

-- 
Rémi Bernon <rbernon at codeweavers.com>



More information about the wine-devel mailing list