On Tue, 29 Oct 2013, Daniel Vetter wrote:
Aside: The horribly ad-hoc calling convetions with some of the (x, y, fb, mode) parameters being set before calling a lower-level functions, some being restored, some of them being the old backup value and some of them being expected to be updated by the called function really gives me the creeps.
But fixing that is something for a _really_ slow week (month even ...).
I agree, I don't like it either. It's too tangled-up, but fixing it will probably be a major rework.
The actual fix is implemented in patch #6; preceding 5 patches are necessary prerequisites.
Hm, I don't really see why patches 1,2&4 are required. If we reorder them to the end of the series as follow-up cleanups then we'd only need to backport 3 patches. Which is imo reasonable.
1 and 2 could indeed be left out, but the end-result will look really ugly (e.g., x and y restoration will come from save_set.x and save_set.y, while frame buffer restoration will come from old_fb (and IMO, it's always better to first cleanup the code that one is about to touch and then make functional changes).
Patch 4, however, is required because of saving and restoration of 'enabled' flag, but it could be split in two: the required part that restores the enabled flag that restores only the the 'enabled' flag and the cleanup part that eliminates unecessary restoration of hwmode field.
-- Ilija