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

Commit 8678b034 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

[media] r820t: split the function that read cached regs



As we'll need to retrieve cached registers, make this
function explicit.

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
Tested-by: default avatarAntti Palosaari <crope@iki.fi>
parent 75c1819e
Loading
Loading
Loading
Loading
+15 −5
Original line number Diff line number Diff line
@@ -402,15 +402,25 @@ static int r820t_write_reg(struct r820t_priv *priv, u8 reg, u8 val)
	return r820t_write(priv, reg, &val, 1);
}

static int r820t_write_reg_mask(struct r820t_priv *priv, u8 reg, u8 val,
				u8 bit_mask)
static int r820t_read_cache_reg(struct r820t_priv *priv, int reg)
{
	int r = reg - REG_SHADOW_START;
	reg -= REG_SHADOW_START;

	if (r >= 0 && r < NUM_REGS)
		val = (priv->regs[r] & ~bit_mask) | (val & bit_mask);
	if (reg >= 0 && reg < NUM_REGS)
		return priv->regs[reg];
	else
		return -EINVAL;
}

static int r820t_write_reg_mask(struct r820t_priv *priv, u8 reg, u8 val,
				u8 bit_mask)
{
	int rc = r820t_read_cache_reg(priv, reg);

	if (rc < 0)
		return rc;

	val = (rc & ~bit_mask) | (val & bit_mask);

	return r820t_write(priv, reg, &val, 1);
}