I checked in the code from
https://subversion.assembla.com/svn/chdk-m3/trunk r30 into the CHDK trunk, r4724. Thanks for all you work on this port, Digic 6 and the first CHDK interchangeable lens model is a big challenge
If you want to submit additional changes, svn diffs against chdk trunk are preferred. I would prefer to get multiple patches with small, well defined changes rather than big code dumps that change a lot things at once.
In r4725-r4735 I cleaned up a few things. I think most of them were safe, but I don't have an M3 to test, so please make sure the current trunk code still boots and runs. Let me know if you have question about any of the changes.
Some additional comments
The notes mentioned edge overlay working, but the updated module was not in the latest rev of your svn (it looks like it was overwritten when you updated). I would be happy to consider including it if you want to post your latest code.
I ran finsig_thumb2 on your platform and checked in the resulting files. The generated files should always match the current finsig version, with overrides in stubs_entry_2.s or stubs_min.S as needed. The exact and veneer matches could be removed from stubs_entry_2 for consistency with other ports, but this isn't a big deal. Other mismatches should probably be investigated.
According to finsig, the modemap in shooting.c seems to be incorrect. CHDK doesn't currently have a way to handle "C" modes, but the others should be fixed.
uiprop_count in stubs_min.S appeared to be copied from sx280, so I used the finsig value (I need to investigate why finsig didn't comment the stubs_entry.S value when an override existed).
In propset9.h, it would be helpful to identify which values have been verified. Values that aren't verified, and are not used in the C code should generally be commented out. (e.g. if you camera doesn't have the "my colors" function you can just comment out all the custom color propcase IDs)
If there are values which are required by the C code, but are not found, this should be noted in the comments.
In boot.c
The CreateTask_spytask code and SpyTaskMY stuff is unclear. Why is spytask only created conditionally? What is the condition?
main.c
In CHDK, get_focal_length / get_effective_focal_length return the focal length *for a specified zoom value* while it looks this code returns the *current* focal length. I know more work in the core is required to support interchangeable lenses, but it would be helpful to at least comment what it actually does, and remove extraneous things.
Why are the vbatt values 2* ? The values should match the values returned by the battery voltage function.
platform_camera.h has
#define CAM_HAS_JOGDIAL 0
This should either be define 1 to enable jogdial code, or #undef to disable it. Our code mixes #if and #ifdef so #define 0 is ambiguous.
kbd.c
Comments on the zoom buttons say one is slow and one is fast. This seems undesirable if true.
If there are additional keys that don't have names in the core, they can be added.
core shooting.c
propset 9 was added to cases for shooting_get_digital_zoom_mode + shooting_get_digital_zoom_state. Have these been verified?
Finally:
Copy / pasted comments from the wrong platform drive me crazy. If you can take some time to go through the platform code, and note what is actually verified *ON YOUR CAMERA* and what is copied without being verified, that would help everyone who touches this code in the future.