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

Commit b84e673f authored by Rajendra Nayak's avatar Rajendra Nayak Committed by Linus Walleij
Browse files

pinctrl: iterate over u300_pmx_mask's in u300_pmx_endisable



Fix u300_pmx_endisable() to iterate over the list of 'bits' and
'mask' populated as part of u300_pmx_functions.mask[]

Signed-off-by: default avatarRajendra Nayak <rnayak@ti.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 07f29ba6
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -940,20 +940,23 @@ static void u300_pmx_endisable(struct u300_pmx *upmx, unsigned selector,
{
	u16 regval, val, mask;
	int i;
	const struct u300_pmx_mask *upmx_mask;

	upmx_mask = u300_pmx_functions[selector].mask;
	for (i = 0; i < ARRAY_SIZE(u300_pmx_registers); i++) {
		if (enable)
			val = u300_pmx_functions[selector].mask->bits;
			val = upmx_mask->bits;
		else
			val = 0;

		mask = u300_pmx_functions[selector].mask->mask;
		mask = upmx_mask->mask;
		if (mask != 0) {
			regval = readw(upmx->virtbase + u300_pmx_registers[i]);
			regval &= ~mask;
			regval |= val;
			writew(regval, upmx->virtbase + u300_pmx_registers[i]);
		}
		upmx_mask++;
	}
}