Skip to content

Fixes and improvements - #117

Merged
averne merged 4 commits into
averne:masterfrom
ViRb3:master
Aug 7, 2026
Merged

Fixes and improvements#117
averne merged 4 commits into
averne:masterfrom
ViRb3:master

Conversation

@ViRb3

@ViRb3 ViRb3 commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

I was working on #104, but also found some additional issues along the way. Full change list:

Each change has detailed explanation in its corresponding commit. @averne

ViRb3 added 4 commits August 7, 2026 14:58
Replaces 7zip with regular zip so it can be done within the container.
Since the sysmodule rework (a457636), the AVI infoframe was updated when
applying the internal profile, and never for the external one, inverting
the pre-rework behavior. The color quantization range of the external
profile is now honored again, and the infoframe is left alone when
applying/disabling internal corrections.
With dimming_timeout set to 0, the transition thread considered dimming
overdue whenever no input activity occurred for over a second, and
recalculated/reapplied the whole configuration on every 100ms tick until
the next input. Mirror the timeout check already done in should_dim().
The CMU reset detection only skipped polling when both display clocks
were gated, but reads the registers of a single head, selected by the
current operation mode. When undocking while a button is held down, the
operation mode change notification is delayed, so the poll kept
targeting DISPLAY_B after the undock had already gated the DISP2 clock
(DISP1 kept the check passing). MMIO reads to a clock-gated module stall
the bus transaction, hanging core 3 until the clock is re-enabled by
docking again, or a reboot.

Check the clock of the specific head being polled instead.

@averne averne left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, thanks for the PR.
I'm not able to test these changes but they seem sensible. I just have a small nit regarding the makefile, when this is addressed I will merge and tag a release.

Comment thread Makefile
all: $(MODULES)
@:

dist: $(DIST_TARGET)

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please restore this target? It avoids rebuilding the zip if it's already up to date.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The reason I changed that is because the dist target gets cached, and as long as the name remains the same (as is xxx-dirty), it will not be rebuilt even if the underlying source changes. I got bitten by that myself. Alternatively we can do something like:

DIST_INPUTS       =    application/out/Fizeau.nro                          \
                       overlay/out/Fizeau.ovl                              \
                       sysmodule/out/Fizeau.nsp                            \
                       sysmodule/toolbox.json                              \
                       misc/default.ini                                    \
                       $(wildcard misc/patches/*.ips)

dist: all
	@$(MAKE) -s $(DIST_TARGET) --no-print-directory

$(DIST_TARGET): $(DIST_INPUTS)

Let me know what you prefer.

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah true, there aren't any deps specified. I guess in this case it can be left as is, thanks for the explanation.

@averne
averne merged commit 28e9f0d into averne:master Aug 7, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Switch freezes when undocking while a button is pressed

2 participants