emulators/flycast: Update to 2.7 and unbreak
Port changes:
- Switch to net/asio130 to unbreak the build. This also guarantees a
more stable update path for the flycast port, because newer versions
of net/asio are constantly deprecating and removing APIs.
- Unbreak on FreeBSD < 15 for newer DreamPicoPort submodule.
- Unbundle several dependencies. This is accompanied with an
EXTRACT_AFTER_ARGS block to exclude unbundled and unused deps, which
ensures that these aren't accidently referenced by the build process.
- Add LIBCDIO option, enabled by default. This enables CDROM support via
libcdio. It was already available in previous flycast versions but was
forgotten in the port.
- Prevent searching for git via CMAKE_DISABLE_FIND_PACKAGE_Git.
- Separate several blocks with newlines to improve readability.
- Remove obsolete patches.
Changelog:
https://github.com/flyinghead/flycast/releases/tag/v2.7
[3 lines not shown]
ice: Add led(4) identification support
Expose the firmware-controlled physical port identification LED
through /dev/led/ice*. Use the AdminQ port-identification command to
select blinking mode and restore the netlist-selected original mode
before the interface is stopped.
Sponsored by: BBOX.io
(cherry picked from commit a781965b91ea390f9576ae42c35c842db74aab86)
umtx: use a distribution-fair multiplier for the chain hash
umtxq_hash() multiplies the key by 0x9E370001 and keeps the high bits. That
constant is 0x9E37 * 2^16 + 1, so it degenerates for keys whose spacing carries
trailing zero bits: at a 64 KiB stride it puts 128 of 512 parked waiters onto a
single chain mutex, and at 16 KiB and up it uses only a handful of the 512
chains. Base-system consumers never hit this because libthr places its own wait
words 128 bytes apart, but a Linux-ABI runtime waiting on addresses it allocates
itself lands squarely on the floor. Switch to 0x61C88647, which leaves at most 3
waiters per chain at the same stride; Linux made this exact change in 2016, after
judging the sparse constants "actively bad for hashing".
Approved by: adrian (mentor)
Reviewed by: kib, adrian, emaste
Differential Revision: https://reviews.freebsd.org/D58337
Signed-off-by: Nick Price <nprice at FreeBSD.org>
bxe(4): don't feed a zero page size to ilog2 during ILT init
FreeBSD's bxe hardwires CNIC_SUPPORT() to 0, so bxe_ilt_set_info()
never enters the block that initializes the SRC and TM ILT clients.
Those two clients are left zeroed (page_size 0, flags 0), yet
ecore_ilt_init_page_size() calls ecore_ilt_init_client_psz() for all
four clients unconditionally. For SRC and TM that evaluates
ILOG2(page_size >> 12), i.e. ilog2(0). On an INVARIANTS kernel ilog2()
asserts "ilog argument must be nonzero" and panics the machine the
first time the interface is brought up (bxe_init -> bxe_nic_load ->
bxe_init_hw -> ecore_ilt_init_page_size). On a non-INVARIANTS kernel
it silently programs a bogus page-size register instead.
Restore the else branch that upstream Linux bnx2x carries: when CNIC
is not supported, mark the SRC and TM clients with ILT_CLIENT_SKIP_INIT
and ILT_CLIENT_SKIP_MEM so ecore_ilt_init_client_psz() skips them.
Root-caused from a crash dump on a BCM57810 (device 0x168e): the ILT
clients showed CDU and QM populated and SRC and TM zeroed with no skip
[6 lines not shown]
nanobsd: Remove pandaboard.cfg
Pandaboard (sys/arm/ti/omap4) is removed due to lack of HW.
Remove the pandaboard config file for nanobsd aswell.
Approved by: imp, jlduran, manu(mentor)
Diffrential revision: https://reviews.freebsd.org/D54319
x11/colormeter: Add new port
X11 pixel magnifier with live RGB readout from FrauBSD. Ctrl+L locks
the sample; Button1 drag moves the window. Installs colormeter(1).
Reviewed by: jrm
Differential Revision: https://reviews.freebsd.org/D58429
LinuxKPI: 802.11: implement cfg80211_calculate_bitrate()
lkpi_cfg80211_calculate_bitrate_vht() was constantly showing up
in my debug traces as a TODO with rtw89 so I went ahead and implemented
the HT and VHT versions. Realtek seems to limit amsdu sizes based
on the value and ask for it whether needed or not.
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
iflib: don't update the admin status in if_media_status()
When _task_fn_admin() is active, it will regularly call
IFDI_UPDATE_ADMIN_STATUS(). So there is no need to do it in
iflib_media_status. This can be fairly expensive on some drivers (long
DELAY busywait loops waiting for a NIC command), and there is no need
to pause a userspace app in this DELAY() if it is happening
asynchronously anyway.
Note the logic to detect if _task_fn_admin() is regularly calling
IFDI_UPDATE_ADMIN_STATUS() was copied from that function.
Reviewed by: erj, kbowling
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D54096
sysutils/exa: Mark deprecated
The project is abandoned upstream. It's been forked as eza,
and the fork already has a port, so recommend that instead.
PR: 298083
Reported by: asomers
Sponsored by: ConnectWise
Approved by: osa, vvd (Mentors, implicit)
(cherry picked from commit 20e6ca4c67147e14628de8bc47656bd7ee75f7c7)
sysutils/exa: Mark deprecated
The project is abandoned upstream. It's been forked as eza,
and the fork already has a port, so recommend that instead.
PR: 298083
Reported by: asomers
Sponsored by: ConnectWise
Approved by: osa, vvd (Mentors, implicit)