Re: [PATCH 00/10] drm/mgag200: Convert device init to use device-info structure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

Am 02.06.22 um 11:52 schrieb Jocelyn Falempe:
On 01/06/2022 13:25, Thomas Zimmermann wrote:
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.

Thanks for this refactoring.
I've also tested this patchset on a G200eW, and have seen no regression.

For the whole series:

Reviewed-by: Jocelyn Falempe <jfalempe@xxxxxxxxxx>
Tested-by: Jocelyn Falempe <jfalempe@xxxxxxxxxx>

Thanks a lot.

FYI I have another patchset in the queue that removes the type-related branching throughout the driver. It covers modesetting and PLL setup and will split the driver into per-model and fully-generic code. It's fairly large but mostly refactoring of existing code. I'll post it when these patches have landed without major regressions.

Best regards
Thomas



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




--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux