Commit d1e40d8e authored by Thomas Zimmermann's avatar Thomas Zimmermann
Browse files

drm/mgag200: Store vidrst flag in device info



Set new vidrst flag in device info for models that synchronize with
external sources (i.e., BMCs). In modesetting, set the corresponding
bits from the device-info flag.

Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarJocelyn Falempe <jfalempe@redhat.com>
Tested-by: default avatarJocelyn Falempe <jfalempe@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220601112522.5774-10-tzimmermann@suse.de
parent 98da4b99
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -200,6 +200,9 @@ struct mgag200_device_info {
	 */
	unsigned long max_mem_bandwidth;

	/* HW has external source (e.g., BMC) to synchronize with */
	bool has_vidrst:1;

	/*
	 * HW does not handle 'startadd' register correctly. Always set
	 * it's value to 0.
@@ -208,11 +211,12 @@ struct mgag200_device_info {
};

#define MGAG200_DEVICE_INFO_INIT(_max_hdisplay, _max_vdisplay, _max_mem_bandwidth, \
				 _bug_no_startadd) \
				 _has_vidrst, _bug_no_startadd) \
	{ \
		.max_hdisplay = (_max_hdisplay), \
		.max_vdisplay = (_max_vdisplay), \
		.max_mem_bandwidth = (_max_mem_bandwidth), \
		.has_vidrst = (_has_vidrst), \
		.bug_no_startadd = (_bug_no_startadd), \
	}

+1 −1
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ static int mgag200_g200_init_pci_options(struct pci_dev *pdev)
 */

static const struct mgag200_device_info mgag200_g200_device_info =
	MGAG200_DEVICE_INFO_INIT(2048, 2048, 0, false);
	MGAG200_DEVICE_INFO_INIT(2048, 2048, 0, false, false);

static void mgag200_g200_interpret_bios(struct mgag200_g200_device *g200,
					const unsigned char *bios, size_t size)
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@
 */

static const struct mgag200_device_info mgag200_g200eh_device_info =
	MGAG200_DEVICE_INFO_INIT(2048, 2048, 37500, false);
	MGAG200_DEVICE_INFO_INIT(2048, 2048, 37500, false, false);

struct mga_device *mgag200_g200eh_device_create(struct pci_dev *pdev, const struct drm_driver *drv,
						enum mga_type type)
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@
 */

static const struct mgag200_device_info mgag200_g200eh3_device_info =
	MGAG200_DEVICE_INFO_INIT(2048, 2048, 0, false);
	MGAG200_DEVICE_INFO_INIT(2048, 2048, 0, false, false);

struct mga_device *mgag200_g200eh3_device_create(struct pci_dev *pdev,
						 const struct drm_driver *drv,
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@
 */

static const struct mgag200_device_info mgag200_g200er_device_info =
	MGAG200_DEVICE_INFO_INIT(2048, 2048, 55000, false);
	MGAG200_DEVICE_INFO_INIT(2048, 2048, 55000, false, false);

struct mga_device *mgag200_g200er_device_create(struct pci_dev *pdev, const struct drm_driver *drv,
						enum mga_type type)
Loading