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

Commit 4637b2fa authored by Tony Lindgren's avatar Tony Lindgren Committed by Greg Kroah-Hartman
Browse files

bus: ti-sysc: Improve reset to work with modules with no sysconfig



[ Upstream commit ab4d309d8708035bd323b2e2446eb68cda5e61e5 ]

At least display susbsystem (DSS) has modules with no sysconfig registers
and rely on custom function for module reset handling. Let's make reset
work with that too.

Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
Stable-dep-of: 34539b442b3b ("bus: ti-sysc: Flush posted write on enable before reset")
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 210ff313
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -1809,7 +1809,7 @@ static int sysc_reset(struct sysc *ddata)

	sysc_offset = ddata->offsets[SYSC_SYSCONFIG];

	if (ddata->legacy_mode || sysc_offset < 0 ||
	if (ddata->legacy_mode ||
	    ddata->cap->regbits->srst_shift < 0 ||
	    ddata->cfg.quirks & SYSC_QUIRK_NO_RESET_ON_INIT)
		return 0;
@@ -1819,9 +1819,11 @@ static int sysc_reset(struct sysc *ddata)
	if (ddata->pre_reset_quirk)
		ddata->pre_reset_quirk(ddata);

	if (sysc_offset >= 0) {
		sysc_val = sysc_read_sysconfig(ddata);
		sysc_val |= sysc_mask;
		sysc_write(ddata, sysc_offset, sysc_val);
	}

	if (ddata->cfg.srst_udelay)
		usleep_range(ddata->cfg.srst_udelay,