Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 867d7e02 authored by Peter Ujfalusi's avatar Peter Ujfalusi Committed by Tomi Valkeinen
Browse files

drm/omap: dss: Add support for reporting memory bandwidth limitation



The get_memory_bandwidth_limit() in dispc_ops can be used to query the
memory bandwidth limit of dispc by upper layers.

Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 32fdb624
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -4325,6 +4325,17 @@ static void dispc_free_irq(void *dev_id)
	dispc.user_data = NULL;
}

static u32 dispc_get_memory_bandwidth_limit(void)
{
	u32 limit = 0;

	/* Optional maximum memory bandwidth */
	of_property_read_u32(dispc.pdev->dev.of_node, "max-memory-bandwidth",
			     &limit);

	return limit;
}

/*
 * Workaround for errata i734 in DSS dispc
 *  - LCD1 Gamma Correction Is Not Working When GFX Pipe Is Disabled
@@ -4497,6 +4508,8 @@ static const struct dispc_ops dispc_ops = {
	.get_num_ovls = dispc_get_num_ovls,
	.get_num_mgrs = dispc_get_num_mgrs,

	.get_memory_bandwidth_limit = dispc_get_memory_bandwidth_limit,

	.mgr_enable = dispc_mgr_enable,
	.mgr_is_enabled = dispc_mgr_is_enabled,
	.mgr_get_vsync_irq = dispc_mgr_get_vsync_irq,
+2 −0
Original line number Diff line number Diff line
@@ -695,6 +695,8 @@ struct dispc_ops {
	int (*get_num_ovls)(void);
	int (*get_num_mgrs)(void);

	u32 (*get_memory_bandwidth_limit)(void);

	void (*mgr_enable)(enum omap_channel channel, bool enable);
	bool (*mgr_is_enabled)(enum omap_channel channel);
	u32 (*mgr_get_vsync_irq)(enum omap_channel channel);