7 Commits

Author SHA1 Message Date
Sorgelig
f4fe35f9db CEC: cleanup. 2026-05-15 17:25:12 +08:00
Alexey Melnikov
615a69b616 Support for CEC
* hdmi_cec

* Improve HDMI CEC startup

* hdmi_cec

* Improve HDMI CEC startup

* Use ADV7513 interrupt registers for CEC

Set ADV7513 main 0xE1 to the CEC I2C map address, 0xE2 to 0x00 to power the CEC block, and 0xE3 |= 0x0E for CEC control setup.

Keep HPD forced high through main 0xD6 = 0xC0 after the startup pulse, but clear main 0x94[7] so HPD does not drive the shared HDMI interrupt line.

Clear main 0xA1[6] so the monitor-sense/video-active block stays powered; ADV7513 interrupt status registers 0x94-0x97 are only valid while that block is alive.

Set main 0x95 = 0x07 to enable only CEC RX-ready interrupts, use main 0x97 to clear RX/TX interrupt latches, and clear 0x96/0x97 at init.

Read CEC RX-ready from CEC map 0x49, keep CEC RX enabled with 0x4A = 0x08, release consumed RX slots through 0x4A, and remove fallback polling of RX length registers 0x25/0x37/0x48.

Use main 0x97 bits for CEC TX done/retry/arbitration status, keep CEC TX disabled through 0x11 except while sending, and set the CEC clock divider 0x4E = 0x3D.

Gate RX handling on fpga_get_hdmi_int() so normal CEC polling no longer performs DDC/CEC I2C reads unless the FPGA HDMI interrupt bit is asserted.

Reply to CEC vendor/name discovery so displays can identify MiSTer after registration.

---------

Co-authored-by: misteraddons <51079966+misteraddons@users.noreply.github.com>
2026-05-14 17:57:10 +08:00
Tony Toon
4d1a9fc2d3 input: autofire overhaul (#1091)
* frame-synchronized autofire, per-button rates, custom rates via mister.ini
* frame timer using core frame counter, fallback to timerfd
* improved button reference counting (previously limited to 2)
2026-01-22 13:07:44 +08:00
Martin Donlon
cebd306abd Spike profiler 2022-07-17 11:58:16 -07:00
sorgelig
141c0bedae fpga_io: reboot ASAP if USB Blaster loading is detected. 2020-08-20 17:33:34 +08:00
sorgelig
ea43ef519b Buffered OSD update. 2019-12-01 21:39:28 +08:00
David Holm
3908a7f583 main, scheduler: Improve latency by coroutine scheduling
Schedules tasks in the main loop using coroutines so that long running
tasks, particularly relating to the UI, can yield execution in order to
call the poll functions at a tighter interval.
2019-01-04 23:03:31 +01:00