Mgag200 still mixes model-specific code and generic code in the same functions. Separate it into distinct helpers. As part of this effort, convert the driver from simple-KMS helpers to regular atomic helpers. The latter are way more flexible and can be adapted easily for each hardware model. Tested on Matrox G200 and G200EH hardware. Thomas Zimmermann (14): drm/mgag200: Split mgag200_modeset_init() drm/mgag200: Move DAC-register setup into model-specific code dmr/mgag200: Move ER/EW3 register initializatino to per-model code drm/mgag200: Acquire I/O-register lock in atomic_commit_tail function drm/mgag200: Store primary plane's color format in CRTC state drm/mgag200: Reorganize before dropping simple-KMS helpers drm/mgag200: Replace simple-KMS with regular atomic helpers drm/mgag200: Set SCROFF in primary-plane code drm/mgag200: Add per-device callbacks drm/mgag200: Provide per-device callbacks for BMC synchronization drm/mgag200: Provide per-device callbacks for PIXPLLC drm/mgag200: Move mode-config to model-specific code drm/mgag200: Move CRTC atomic_enable to model-specfic code drm/mgag200: Remove type field from struct mga_device drivers/gpu/drm/mgag200/Makefile | 4 +- drivers/gpu/drm/mgag200/mgag200_bmc.c | 99 +++ drivers/gpu/drm/mgag200/mgag200_drv.c | 21 +- drivers/gpu/drm/mgag200/mgag200_drv.h | 181 +++- drivers/gpu/drm/mgag200/mgag200_g200.c | 266 +++++- drivers/gpu/drm/mgag200/mgag200_g200eh.c | 287 ++++++- drivers/gpu/drm/mgag200/mgag200_g200eh3.c | 181 +++- drivers/gpu/drm/mgag200/mgag200_g200er.c | 324 ++++++- drivers/gpu/drm/mgag200/mgag200_g200ev.c | 329 ++++++- drivers/gpu/drm/mgag200/mgag200_g200ew3.c | 192 ++++- drivers/gpu/drm/mgag200/mgag200_g200se.c | 446 +++++++++- drivers/gpu/drm/mgag200/mgag200_g200wb.c | 336 +++++++- drivers/gpu/drm/mgag200/mgag200_mode.c | 727 +++++----------- drivers/gpu/drm/mgag200/mgag200_pll.c | 997 ---------------------- 14 files changed, 2804 insertions(+), 1586 deletions(-) create mode 100644 drivers/gpu/drm/mgag200/mgag200_bmc.c delete mode 100644 drivers/gpu/drm/mgag200/mgag200_pll.c base-commit: 11d480026e922adacd274306728adb6df6dd262a -- 2.36.1