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

Commit c47cdb30 authored by Archit Taneja's avatar Archit Taneja
Browse files

OMAPDSS: RFBI: Use dss_mgr_enable to enable the overlay manager



The RFBI driver uses a direct DISPC register write to enable the overlay
manager. Replace this with dss_mgr_enable() which checks if the connected
overlay and managers are correctly configured, and configure DSS for
fifomerge.

Signed-off-by: default avatarArchit Taneja <archit@ti.com>
parent dd88b7a6
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -300,10 +300,11 @@ void omap_rfbi_write_pixels(const void __iomem *buf, int scr_width,
}
EXPORT_SYMBOL(omap_rfbi_write_pixels);

static void rfbi_transfer_area(struct omap_dss_device *dssdev, u16 width,
static int rfbi_transfer_area(struct omap_dss_device *dssdev, u16 width,
		u16 height, void (*callback)(void *data), void *data)
{
	u32 l;
	int r;
	struct omap_video_timings timings = {
		.hsw		= 1,
		.hfp		= 1,
@@ -322,7 +323,9 @@ static void rfbi_transfer_area(struct omap_dss_device *dssdev, u16 width,

	dss_mgr_set_timings(dssdev->manager, &timings);

	dispc_mgr_enable(dssdev->manager->id, true);
	r = dss_mgr_enable(dssdev->manager);
	if (r)
		return r;

	rfbi.framedone_callback = callback;
	rfbi.framedone_callback_data = data;
@@ -335,6 +338,8 @@ static void rfbi_transfer_area(struct omap_dss_device *dssdev, u16 width,
		l = FLD_MOD(l, 1, 4, 4); /* ITE */

	rfbi_write_reg(RFBI_CONTROL, l);

	return 0;
}

static void framedone_callback(void *data, u32 mask)
@@ -814,8 +819,11 @@ int omap_rfbi_update(struct omap_dss_device *dssdev,
		u16 x, u16 y, u16 w, u16 h,
		void (*callback)(void *), void *data)
{
	rfbi_transfer_area(dssdev, w, h, callback, data);
	return 0;
	int r;

	r = rfbi_transfer_area(dssdev, w, h, callback, data);

	return r;
}
EXPORT_SYMBOL(omap_rfbi_update);