Bug 255461 - multimedia/webcamd: update xpad driver
Summary: multimedia/webcamd: update xpad driver
Status: In Progress
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Hans Petter Selasky
Depends on:
Reported: 2021-04-28 13:35 UTC by Rudolf Polzer
Modified: 2021-04-28 16:46 UTC (History)
0 users

See Also:
bugzilla: maintainer-feedback? (hselasky)

Minimal patch (but see description) (458 bytes, text/plain)
2021-04-28 13:35 UTC, Rudolf Polzer
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Rudolf Polzer 2021-04-28 13:35:08 UTC
Created attachment 224498 [details]
Minimal patch (but see description)

I have a game pad (the current PowerA Xbox One one) that is not supported by the version of xpad.c included with webcamd.

The Linux commit that fixed things for me is this one:


A minimal fix for my concrete gamepad (USB 20d6:2802) is simply adding an XPAD_XBOXONE_VENDOR(0x20d6) line into xpad.c (attached).

Would prefer a full sync with current Linux xpad.c, of course, see https://github.com/torvalds/linux/blob/master/drivers/input/joystick/xpad.c - ideally just with a newer Linux kernel base. From looking at a diff of Linux' current xpad.c and the xpad.c from 5.10-rc6, which this port uses, it seems like the only changes were some minor refactoring (probably a kernel API change) and lots of added devices.

Tested with a game that uses the ebiten game library and a patched go-gl/glfw (requires https://github.com/go-gl/glfw/pull/318). Likely gonna work with SDL and RetroArch too, haven't tested though.
Comment 1 Hans Petter Selasky freebsd_committer 2021-04-28 14:39:57 UTC
Is this patch urgent?

Possibly it is better to update webcamd's Linux sources, instead of managing loose patches :-)

Comment 2 Rudolf Polzer 2021-04-28 16:46:19 UTC
Not urgent as I clearly have my own workaround - I assume my personal patch in the port is rather stable, and just switched from portsnap to git so I can retain the patch for a while.