EOS M3 - Disable LCD Off doesn't work - page 4 - General Help and Assistance on using CHDK stable releases - CHDK Forum  

EOS M3 - Disable LCD Off doesn't work

  • 32 Replies
  • 748 Views
*

Online reyalp

  • ******
  • 12373
Re: EOS M3 - Disable LCD Off doesn't work
« Reply #30 on: 13 / February / 2020, 14:56:20 »
Advertisements
Here's the full patch. It has some irrelevant analog AV stuff mixed in.

I'm not sure if the final fix was due to putting the check in vid_bitmap_refresh, or making the delay a hard coded 3s at startup.

I expect there's probably a variable somewhere that tells us if it's safe to try to draw (maybe the is checked in the assert) which be preferable.

I also noticed some of the early debug prints like the one at the start of kbd_task didn't appear in the romlogs. Presumably they happened before the cameralog started.
Don't forget what the H stands for.

*

Online reyalp

  • ******
  • 12373
Re: EOS M3 - Disable LCD Off doesn't work
« Reply #31 on: 17 / February / 2020, 00:18:29 »
I played with this a bit more. I implemented clean overlay on G7X, but was not able to reproduce the crash with either HDMI or analog video out. G7X does not support HDMI in rec, so it's not really equivalent.

I was initially confused for a bit how clean overlay could trigger the crash at startup, since it's only active in rec mode, but I guess the M ports start in rec by default (which is OK, the main reason we default to play on P&S is to avoid extending the lens unexpectedly)

I looked at the assert a bit more. It is the same as the one on G7X I saw when forcing analog video out. It happens in the final function called from transfer_src_overlay (g7x 100d fc0f7faa, m3 120f  fc245b6, both MakeOsdVram.c Line 603)
The values that trigger the assert come from pointers that are set in transfer_src_overlay, I don't see an obvious way to check them from CHDK code.

I'm thinking about making everything call draw_restore rather than vid_bitmap_refresh, so the check disabling drawing can be in one place rather than in every affected port's vid_bitmap_refresh.
This doesn't work, draw_restore sets the guard pixel, which means the CHDK display doesn't get redrawn when it should. We could maybe use gui_set_need_restore but that puts the palette_control mod far from the eventual vid_bitmap_refresh call.

Attached is a patch that does the 3s delay without the analog video stuff.
Don't forget what the H stands for.

*

Offline srsa_4c

  • ******
  • 4106
Re: EOS M3 - Disable LCD Off doesn't work
« Reply #32 on: Yesterday at 17:18:52 »
I was initially confused for a bit how clean overlay could trigger the crash at startup, since it's only active in rec mode, but I guess the M ports start in rec by default
The m10 (and I'd guess the m3 too) starts in rec when started via ON/OFF, and in playback when started via the playback button.
Without the fix (and clean overlay set to 'rec'), the m10 crashes when started in rec mode with HDMI connected. That crash no longer happens with clean-overlay-hdmi-crash-reyalp-work-1.patch applied. I checked in the HDMI bit definition in r5429.

 

Related Topics