Convert the device-init code to use a device-info structure for each model. The device info contains constants and flags that were previously located in different places of the code. Also refactor the PCI and VRAM initialization handling. A later patchset could convert the PCI magic numbers into constants. For modesetting, the per-model init functions currently don't do much. This will change when more model-specific code gets moved there. The modesetting and PLL code contains model-specific handling that should be refactored. Tested with G200 and G200EV hardware. Thomas Zimmermann (10): drm/mgag200: Remove special case for G200SE with <2 MiB drm/mgag200: Initialize each model in separate function drm/mgag200: Move PCI-option setup into model-specific code drm/mgag200: Call mgag200_device_probe_vram() from per-model init drm/mgag200: Implement new init logic drm/mgag200: Add struct mgag200_device_info drm/mgag200: Store HW_BUG_NO_STARTADD flag in device info drm/mgag200: Store maximum resolution and memory bandwith in device info drm/mgag200: Store vidrst flag in device info drm/mgag200: Store positions of I2C data and clock bits in device info drivers/gpu/drm/mgag200/Makefile | 14 +- drivers/gpu/drm/mgag200/mgag200_drv.c | 386 ++++++++-------------- drivers/gpu/drm/mgag200/mgag200_drv.h | 135 ++++++-- drivers/gpu/drm/mgag200/mgag200_g200.c | 200 +++++++++++ drivers/gpu/drm/mgag200/mgag200_g200eh.c | 50 +++ drivers/gpu/drm/mgag200/mgag200_g200eh3.c | 51 +++ drivers/gpu/drm/mgag200/mgag200_g200er.c | 46 +++ drivers/gpu/drm/mgag200/mgag200_g200ev.c | 50 +++ drivers/gpu/drm/mgag200/mgag200_g200ew3.c | 60 ++++ drivers/gpu/drm/mgag200/mgag200_g200se.c | 130 ++++++++ drivers/gpu/drm/mgag200/mgag200_g200wb.c | 50 +++ drivers/gpu/drm/mgag200/mgag200_i2c.c | 27 +- drivers/gpu/drm/mgag200/mgag200_mm.c | 116 ------- drivers/gpu/drm/mgag200/mgag200_mode.c | 100 ++---- drivers/gpu/drm/mgag200/mgag200_pll.c | 12 +- drivers/gpu/drm/mgag200/mgag200_reg.h | 2 + 16 files changed, 942 insertions(+), 487 deletions(-) create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200.c create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200eh.c create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200eh3.c create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200er.c create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200ev.c create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200ew3.c create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200se.c create mode 100644 drivers/gpu/drm/mgag200/mgag200_g200wb.c delete mode 100644 drivers/gpu/drm/mgag200/mgag200_mm.c base-commit: 2c8cc5cd20e28afe6b63acb28890e5f57d9bf055 prerequisite-patch-id: c2b2f08f0eccc9f5df0c0da49fa1d36267deb11d prerequisite-patch-id: c67e5d886a47b7d0266d81100837557fda34cb24 -- 2.36.1