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

EOS M3 - Disable LCD Off doesn't work

  • 33 Replies
  • 972 Views
Re: EOS M3 - Disable LCD Off doesn't work
« Reply #20 on: 10 / February / 2020, 17:37:28 »
Advertisements
These values are from the camera and when external monitor is connected.

*

Offline reyalp

  • ******
  • 12438
Re: EOS M3 - Disable LCD Off doesn't work
« Reply #21 on: 10 / February / 2020, 17:55:30 »
OK, here's another test build with HPD bit defined. (phsw_status[2] 0x10)
Don't forget what the H stands for.

Re: EOS M3 - Disable LCD Off doesn't work
« Reply #22 on: 10 / February / 2020, 18:08:10 »
No success

*

Offline reyalp

  • ******
  • 12438
Re: EOS M3 - Disable LCD Off doesn't work
« Reply #23 on: 10 / February / 2020, 18:36:01 »
OK, one more. The workaround code wasn't hit in the last one, maybe the bit was already cleared at startup so it didn't see a change.
Don't forget what the H stands for.


Re: EOS M3 - Disable LCD Off doesn't work
« Reply #24 on: 10 / February / 2020, 18:45:15 »
Nope  :(

Re: EOS M3 - Disable LCD Off doesn't work
« Reply #25 on: 10 / February / 2020, 19:16:24 »
I partially solved this issue by modifying the script. HDMI cable is not inserted at the start and recording begins 5 seconds later. This is the time I insert the cable and it does the trick. Another workaround.

*

Offline reyalp

  • ******
  • 12438
Re: EOS M3 - Disable LCD Off doesn't work
« Reply #26 on: 11 / February / 2020, 00:27:17 »
Nope  :(
Thanks. That one at least got one of my debug log messages. Here's another test.

I didn't get any of my d6 cameras to crash booting with HDMI connected (without any of the workarounds), but timing could vary depending on the specific display.
Don't forget what the H stands for.

Re: EOS M3 - Disable LCD Off doesn't work
« Reply #27 on: 12 / February / 2020, 20:24:53 »
Sorry for the late response. This works! Thanks for helping out, maybe it's a good idea to merge this into the main build.


*

Offline reyalp

  • ******
  • 12438
Re: EOS M3 - Disable LCD Off doesn't work
« Reply #28 on: 12 / February / 2020, 23:25:05 »
Sorry for the late response. This works! Thanks for helping out, maybe it's a good idea to merge this into the main build.
Thanks for testing. I definitely want to get this into the main autobuild, but I need to clean some things up.

@srsa_4c:
I think "clean overlay" may have been part of what was triggering this. Maybe you can reproduce on M10.

handle_clean_overlay calls vid_bitmap_referesh directly, where my initial fix was only in draw_restore. The last test build check in both, and used the following in core/main.c just before the main loop:
Code: [Select]
#ifdef HDMI_HPD_FLAG
    if(!(physw_status[HDMI_HPD_IDX] & HDMI_HPD_FLAG)) {
        DBGPRINTF("spytask hdmi");
        extern int draw_restore_suspend_tick;
        draw_restore_suspend_tick = get_tick_count() + 3000;
    }
#endif

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.

Additionally, handle_clean_overlay is called from mode_get, which on some ports call in lib.c functions (not the current EOS M ports though). I'm be tempted to move that to the loop in main.c so more clearly defined when it gets called.


Don't forget what the H stands for.

*

Offline srsa_4c

  • ******
  • 4148
Re: EOS M3 - Disable LCD Off doesn't work
« Reply #29 on: 13 / February / 2020, 14:05:20 »
I think "clean overlay" may have been part of what was triggering this. Maybe you can reproduce on M10.
I actually tried the scenario (starting with HDMI plugged in) when it came up here, but without activating the clean overlay feature. With that activated, it does crash on my cam too. Strange that no-one reported it until now.
Code: [Select]
ASSERT!! MakeOsdVram.c Line 853
Occured Time  2020:02:13 19:09:37
Task ID: 17170469
Task name: SpyTask
I'll try your fix later.

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.

Additionally, handle_clean_overlay is called from mode_get, which on some ports call in lib.c functions (not the current EOS M ports though). I'm be tempted to move that to the loop in main.c so more clearly defined when it gets called.
I'm not against these proposals.

 

Related Topics