All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/6] m88ts2022: fix coding style issues
@ 2014-08-22  0:33 Antti Palosaari
  2014-08-22  0:33 ` [PATCH 2/6] m88ts2022: rename device state (priv => s) Antti Palosaari
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: Antti Palosaari @ 2014-08-22  0:33 UTC (permalink / raw)
  To: linux-media; +Cc: Antti Palosaari

Fix coding style issues pointed out by checkpatch.pl.

Signed-off-by: Antti Palosaari <crope@iki.fi>
---
 drivers/media/tuners/m88ts2022.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/media/tuners/m88ts2022.c b/drivers/media/tuners/m88ts2022.c
index 7a62097..f51b107 100644
--- a/drivers/media/tuners/m88ts2022.c
+++ b/drivers/media/tuners/m88ts2022.c
@@ -176,6 +176,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	unsigned int f_ref_khz, f_vco_khz, div_ref, div_out, pll_n, gdiv28;
 	u8 buf[3], u8tmp, cap_code, lpf_gm, lpf_mxdiv, div_max, div_min;
 	u16 u16tmp;
+
 	dev_dbg(&priv->client->dev,
 			"%s: frequency=%d symbol_rate=%d rolloff=%d\n",
 			__func__, c->frequency, c->symbol_rate, c->rolloff);
@@ -393,6 +394,7 @@ static int m88ts2022_init(struct dvb_frontend *fe)
 		{0x24, 0x02},
 		{0x12, 0xa0},
 	};
+
 	dev_dbg(&priv->client->dev, "%s:\n", __func__);
 
 	ret = m88ts2022_wr_reg(priv, 0x00, 0x01);
@@ -448,6 +450,7 @@ static int m88ts2022_sleep(struct dvb_frontend *fe)
 {
 	struct m88ts2022_priv *priv = fe->tuner_priv;
 	int ret;
+
 	dev_dbg(&priv->client->dev, "%s:\n", __func__);
 
 	ret = m88ts2022_wr_reg(priv, 0x00, 0x00);
@@ -462,6 +465,7 @@ err:
 static int m88ts2022_get_frequency(struct dvb_frontend *fe, u32 *frequency)
 {
 	struct m88ts2022_priv *priv = fe->tuner_priv;
+
 	dev_dbg(&priv->client->dev, "%s:\n", __func__);
 
 	*frequency = priv->frequency_khz;
@@ -471,6 +475,7 @@ static int m88ts2022_get_frequency(struct dvb_frontend *fe, u32 *frequency)
 static int m88ts2022_get_if_frequency(struct dvb_frontend *fe, u32 *frequency)
 {
 	struct m88ts2022_priv *priv = fe->tuner_priv;
+
 	dev_dbg(&priv->client->dev, "%s:\n", __func__);
 
 	*frequency = 0; /* Zero-IF */
@@ -642,6 +647,7 @@ static int m88ts2022_remove(struct i2c_client *client)
 {
 	struct m88ts2022_priv *priv = i2c_get_clientdata(client);
 	struct dvb_frontend *fe = priv->cfg.fe;
+
 	dev_dbg(&client->dev, "%s:\n", __func__);
 
 	memset(&fe->ops.tuner_ops, 0, sizeof(struct dvb_tuner_ops));
-- 
http://palosaari.fi/


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/6] m88ts2022: rename device state (priv => s)
  2014-08-22  0:33 [PATCH 1/6] m88ts2022: fix coding style issues Antti Palosaari
@ 2014-08-22  0:33 ` Antti Palosaari
  2014-08-22  0:33 ` [PATCH 3/6] m88ts2022: clean up logging Antti Palosaari
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Antti Palosaari @ 2014-08-22  0:33 UTC (permalink / raw)
  To: linux-media; +Cc: Antti Palosaari

I like short names for things which are used everywhere overall the
driver. Due to that rename device state pointer from 'priv' to 's'.

Signed-off-by: Antti Palosaari <crope@iki.fi>
---
 drivers/media/tuners/m88ts2022.c      | 190 +++++++++++++++++-----------------
 drivers/media/tuners/m88ts2022_priv.h |   2 +-
 2 files changed, 96 insertions(+), 96 deletions(-)

diff --git a/drivers/media/tuners/m88ts2022.c b/drivers/media/tuners/m88ts2022.c
index f51b107..43856df 100644
--- a/drivers/media/tuners/m88ts2022.c
+++ b/drivers/media/tuners/m88ts2022.c
@@ -19,7 +19,7 @@
 #include "m88ts2022_priv.h"
 
 /* write multiple registers */
-static int m88ts2022_wr_regs(struct m88ts2022_priv *priv,
+static int m88ts2022_wr_regs(struct m88ts2022 *s,
 		u8 reg, const u8 *val, int len)
 {
 #define MAX_WR_LEN 3
@@ -28,7 +28,7 @@ static int m88ts2022_wr_regs(struct m88ts2022_priv *priv,
 	u8 buf[MAX_WR_XFER_LEN];
 	struct i2c_msg msg[1] = {
 		{
-			.addr = priv->client->addr,
+			.addr = s->client->addr,
 			.flags = 0,
 			.len = 1 + len,
 			.buf = buf,
@@ -41,11 +41,11 @@ static int m88ts2022_wr_regs(struct m88ts2022_priv *priv,
 	buf[0] = reg;
 	memcpy(&buf[1], val, len);
 
-	ret = i2c_transfer(priv->client->adapter, msg, 1);
+	ret = i2c_transfer(s->client->adapter, msg, 1);
 	if (ret == 1) {
 		ret = 0;
 	} else {
-		dev_warn(&priv->client->dev,
+		dev_warn(&s->client->dev,
 				"%s: i2c wr failed=%d reg=%02x len=%d\n",
 				KBUILD_MODNAME, ret, reg, len);
 		ret = -EREMOTEIO;
@@ -55,7 +55,7 @@ static int m88ts2022_wr_regs(struct m88ts2022_priv *priv,
 }
 
 /* read multiple registers */
-static int m88ts2022_rd_regs(struct m88ts2022_priv *priv, u8 reg,
+static int m88ts2022_rd_regs(struct m88ts2022 *s, u8 reg,
 		u8 *val, int len)
 {
 #define MAX_RD_LEN 1
@@ -64,12 +64,12 @@ static int m88ts2022_rd_regs(struct m88ts2022_priv *priv, u8 reg,
 	u8 buf[MAX_RD_XFER_LEN];
 	struct i2c_msg msg[2] = {
 		{
-			.addr = priv->client->addr,
+			.addr = s->client->addr,
 			.flags = 0,
 			.len = 1,
 			.buf = &reg,
 		}, {
-			.addr = priv->client->addr,
+			.addr = s->client->addr,
 			.flags = I2C_M_RD,
 			.len = len,
 			.buf = buf,
@@ -79,12 +79,12 @@ static int m88ts2022_rd_regs(struct m88ts2022_priv *priv, u8 reg,
 	if (WARN_ON(len > MAX_RD_LEN))
 		return -EINVAL;
 
-	ret = i2c_transfer(priv->client->adapter, msg, 2);
+	ret = i2c_transfer(s->client->adapter, msg, 2);
 	if (ret == 2) {
 		memcpy(val, buf, len);
 		ret = 0;
 	} else {
-		dev_warn(&priv->client->dev,
+		dev_warn(&s->client->dev,
 				"%s: i2c rd failed=%d reg=%02x len=%d\n",
 				KBUILD_MODNAME, ret, reg, len);
 		ret = -EREMOTEIO;
@@ -94,19 +94,19 @@ static int m88ts2022_rd_regs(struct m88ts2022_priv *priv, u8 reg,
 }
 
 /* write single register */
-static int m88ts2022_wr_reg(struct m88ts2022_priv *priv, u8 reg, u8 val)
+static int m88ts2022_wr_reg(struct m88ts2022 *s, u8 reg, u8 val)
 {
-	return m88ts2022_wr_regs(priv, reg, &val, 1);
+	return m88ts2022_wr_regs(s, reg, &val, 1);
 }
 
 /* read single register */
-static int m88ts2022_rd_reg(struct m88ts2022_priv *priv, u8 reg, u8 *val)
+static int m88ts2022_rd_reg(struct m88ts2022 *s, u8 reg, u8 *val)
 {
-	return m88ts2022_rd_regs(priv, reg, val, 1);
+	return m88ts2022_rd_regs(s, reg, val, 1);
 }
 
 /* write single register with mask */
-static int m88ts2022_wr_reg_mask(struct m88ts2022_priv *priv,
+static int m88ts2022_wr_reg_mask(struct m88ts2022 *s,
 		u8 reg, u8 val, u8 mask)
 {
 	int ret;
@@ -114,7 +114,7 @@ static int m88ts2022_wr_reg_mask(struct m88ts2022_priv *priv,
 
 	/* no need for read if whole reg is written */
 	if (mask != 0xff) {
-		ret = m88ts2022_rd_regs(priv, reg, &u8tmp, 1);
+		ret = m88ts2022_rd_regs(s, reg, &u8tmp, 1);
 		if (ret)
 			return ret;
 
@@ -123,13 +123,13 @@ static int m88ts2022_wr_reg_mask(struct m88ts2022_priv *priv,
 		val |= u8tmp;
 	}
 
-	return m88ts2022_wr_regs(priv, reg, &val, 1);
+	return m88ts2022_wr_regs(s, reg, &val, 1);
 }
 
 static int m88ts2022_cmd(struct dvb_frontend *fe,
 		int op, int sleep, u8 reg, u8 mask, u8 val, u8 *reg_val)
 {
-	struct m88ts2022_priv *priv = fe->tuner_priv;
+	struct m88ts2022 *s = fe->tuner_priv;
 	int ret, i;
 	u8 u8tmp;
 	struct m88ts2022_reg_val reg_vals[] = {
@@ -140,12 +140,12 @@ static int m88ts2022_cmd(struct dvb_frontend *fe,
 	};
 
 	for (i = 0; i < 2; i++) {
-		dev_dbg(&priv->client->dev,
+		dev_dbg(&s->client->dev,
 				"%s: i=%d op=%02x reg=%02x mask=%02x val=%02x\n",
 				__func__, i, op, reg, mask, val);
 
 		for (i = 0; i < ARRAY_SIZE(reg_vals); i++) {
-			ret = m88ts2022_wr_reg(priv, reg_vals[i].reg,
+			ret = m88ts2022_wr_reg(s, reg_vals[i].reg,
 					reg_vals[i].val);
 			if (ret)
 				goto err;
@@ -153,7 +153,7 @@ static int m88ts2022_cmd(struct dvb_frontend *fe,
 
 		usleep_range(sleep * 1000, sleep * 10000);
 
-		ret = m88ts2022_rd_reg(priv, reg, &u8tmp);
+		ret = m88ts2022_rd_reg(s, reg, &u8tmp);
 		if (ret)
 			goto err;
 
@@ -169,7 +169,7 @@ err:
 
 static int m88ts2022_set_params(struct dvb_frontend *fe)
 {
-	struct m88ts2022_priv *priv = fe->tuner_priv;
+	struct m88ts2022 *s = fe->tuner_priv;
 	struct dtv_frontend_properties *c = &fe->dtv_property_cache;
 	int ret;
 	unsigned int frequency_khz, frequency_offset_khz, f_3db_hz;
@@ -177,14 +177,14 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	u8 buf[3], u8tmp, cap_code, lpf_gm, lpf_mxdiv, div_max, div_min;
 	u16 u16tmp;
 
-	dev_dbg(&priv->client->dev,
+	dev_dbg(&s->client->dev,
 			"%s: frequency=%d symbol_rate=%d rolloff=%d\n",
 			__func__, c->frequency, c->symbol_rate, c->rolloff);
 	/*
 	 * Integer-N PLL synthesizer
 	 * kHz is used for all calculations to keep calculations within 32-bit
 	 */
-	f_ref_khz = DIV_ROUND_CLOSEST(priv->cfg.clock, 1000);
+	f_ref_khz = DIV_ROUND_CLOSEST(s->cfg.clock, 1000);
 	div_ref = DIV_ROUND_CLOSEST(f_ref_khz, 2000);
 
 	if (c->symbol_rate < 5000000)
@@ -204,14 +204,14 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 
 	buf[0] = u8tmp;
 	buf[1] = 0x40;
-	ret = m88ts2022_wr_regs(priv, 0x10, buf, 2);
+	ret = m88ts2022_wr_regs(s, 0x10, buf, 2);
 	if (ret)
 		goto err;
 
 	f_vco_khz = frequency_khz * div_out;
 	pll_n = f_vco_khz * div_ref / f_ref_khz;
 	pll_n += pll_n % 2;
-	priv->frequency_khz = pll_n * f_ref_khz / div_ref / div_out;
+	s->frequency_khz = pll_n * f_ref_khz / div_ref / div_out;
 
 	if (pll_n < 4095)
 		u16tmp = pll_n - 1024;
@@ -223,31 +223,31 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	buf[0] = (u16tmp >> 8) & 0x3f;
 	buf[1] = (u16tmp >> 0) & 0xff;
 	buf[2] = div_ref - 8;
-	ret = m88ts2022_wr_regs(priv, 0x01, buf, 3);
+	ret = m88ts2022_wr_regs(s, 0x01, buf, 3);
 	if (ret)
 		goto err;
 
-	dev_dbg(&priv->client->dev,
+	dev_dbg(&s->client->dev,
 			"%s: frequency=%u offset=%d f_vco_khz=%u pll_n=%u div_ref=%u div_out=%u\n",
-			__func__, priv->frequency_khz,
-			priv->frequency_khz - c->frequency, f_vco_khz, pll_n,
+			__func__, s->frequency_khz,
+			s->frequency_khz - c->frequency, f_vco_khz, pll_n,
 			div_ref, div_out);
 
 	ret = m88ts2022_cmd(fe, 0x10, 5, 0x15, 0x40, 0x00, NULL);
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_rd_reg(priv, 0x14, &u8tmp);
+	ret = m88ts2022_rd_reg(s, 0x14, &u8tmp);
 	if (ret)
 		goto err;
 
 	u8tmp &= 0x7f;
 	if (u8tmp < 64) {
-		ret = m88ts2022_wr_reg_mask(priv, 0x10, 0x80, 0x80);
+		ret = m88ts2022_wr_reg_mask(s, 0x10, 0x80, 0x80);
 		if (ret)
 			goto err;
 
-		ret = m88ts2022_wr_reg(priv, 0x11, 0x6f);
+		ret = m88ts2022_wr_reg(s, 0x11, 0x6f);
 		if (ret)
 			goto err;
 
@@ -256,13 +256,13 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 			goto err;
 	}
 
-	ret = m88ts2022_rd_reg(priv, 0x14, &u8tmp);
+	ret = m88ts2022_rd_reg(s, 0x14, &u8tmp);
 	if (ret)
 		goto err;
 
 	u8tmp &= 0x1f;
 	if (u8tmp > 19) {
-		ret = m88ts2022_wr_reg_mask(priv, 0x10, 0x00, 0x02);
+		ret = m88ts2022_wr_reg_mask(s, 0x10, 0x00, 0x02);
 		if (ret)
 			goto err;
 	}
@@ -271,26 +271,26 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(priv, 0x25, 0x00);
+	ret = m88ts2022_wr_reg(s, 0x25, 0x00);
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(priv, 0x27, 0x70);
+	ret = m88ts2022_wr_reg(s, 0x27, 0x70);
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(priv, 0x41, 0x09);
+	ret = m88ts2022_wr_reg(s, 0x41, 0x09);
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(priv, 0x08, 0x0b);
+	ret = m88ts2022_wr_reg(s, 0x08, 0x0b);
 	if (ret)
 		goto err;
 
 	/* filters */
 	gdiv28 = DIV_ROUND_CLOSEST(f_ref_khz * 1694U, 1000000U);
 
-	ret = m88ts2022_wr_reg(priv, 0x04, gdiv28);
+	ret = m88ts2022_wr_reg(s, 0x04, gdiv28);
 	if (ret)
 		goto err;
 
@@ -300,7 +300,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 
 	cap_code = u8tmp & 0x3f;
 
-	ret = m88ts2022_wr_reg(priv, 0x41, 0x0d);
+	ret = m88ts2022_wr_reg(s, 0x41, 0x0d);
 	if (ret)
 		goto err;
 
@@ -328,11 +328,11 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 		lpf_mxdiv = DIV_ROUND_CLOSEST(++lpf_gm * LPF_COEFF * f_ref_khz, f_3db_hz);
 	lpf_mxdiv = clamp_val(lpf_mxdiv, 0U, div_max);
 
-	ret = m88ts2022_wr_reg(priv, 0x04, lpf_mxdiv);
+	ret = m88ts2022_wr_reg(s, 0x04, lpf_mxdiv);
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(priv, 0x06, lpf_gm);
+	ret = m88ts2022_wr_reg(s, 0x06, lpf_gm);
 	if (ret)
 		goto err;
 
@@ -342,7 +342,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 
 	cap_code = u8tmp & 0x3f;
 
-	ret = m88ts2022_wr_reg(priv, 0x41, 0x09);
+	ret = m88ts2022_wr_reg(s, 0x41, 0x09);
 	if (ret)
 		goto err;
 
@@ -354,15 +354,15 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	cap_code = (cap_code + u8tmp) / 2;
 
 	u8tmp = cap_code | 0x80;
-	ret = m88ts2022_wr_reg(priv, 0x25, u8tmp);
+	ret = m88ts2022_wr_reg(s, 0x25, u8tmp);
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(priv, 0x27, 0x30);
+	ret = m88ts2022_wr_reg(s, 0x27, 0x30);
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(priv, 0x08, 0x09);
+	ret = m88ts2022_wr_reg(s, 0x08, 0x09);
 	if (ret)
 		goto err;
 
@@ -371,14 +371,14 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 		goto err;
 err:
 	if (ret)
-		dev_dbg(&priv->client->dev, "%s: failed=%d\n", __func__, ret);
+		dev_dbg(&s->client->dev, "%s: failed=%d\n", __func__, ret);
 
 	return ret;
 }
 
 static int m88ts2022_init(struct dvb_frontend *fe)
 {
-	struct m88ts2022_priv *priv = fe->tuner_priv;
+	struct m88ts2022 *s = fe->tuner_priv;
 	int ret, i;
 	u8 u8tmp;
 	static const struct m88ts2022_reg_val reg_vals[] = {
@@ -395,23 +395,23 @@ static int m88ts2022_init(struct dvb_frontend *fe)
 		{0x12, 0xa0},
 	};
 
-	dev_dbg(&priv->client->dev, "%s:\n", __func__);
+	dev_dbg(&s->client->dev, "%s:\n", __func__);
 
-	ret = m88ts2022_wr_reg(priv, 0x00, 0x01);
+	ret = m88ts2022_wr_reg(s, 0x00, 0x01);
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(priv, 0x00, 0x03);
+	ret = m88ts2022_wr_reg(s, 0x00, 0x03);
 	if (ret)
 		goto err;
 
-	switch (priv->cfg.clock_out) {
+	switch (s->cfg.clock_out) {
 	case M88TS2022_CLOCK_OUT_DISABLED:
 		u8tmp = 0x60;
 		break;
 	case M88TS2022_CLOCK_OUT_ENABLED:
 		u8tmp = 0x70;
-		ret = m88ts2022_wr_reg(priv, 0x05, priv->cfg.clock_out_div);
+		ret = m88ts2022_wr_reg(s, 0x05, s->cfg.clock_out_div);
 		if (ret)
 			goto err;
 		break;
@@ -422,61 +422,61 @@ static int m88ts2022_init(struct dvb_frontend *fe)
 		goto err;
 	}
 
-	ret = m88ts2022_wr_reg(priv, 0x42, u8tmp);
+	ret = m88ts2022_wr_reg(s, 0x42, u8tmp);
 	if (ret)
 		goto err;
 
-	if (priv->cfg.loop_through)
+	if (s->cfg.loop_through)
 		u8tmp = 0xec;
 	else
 		u8tmp = 0x6c;
 
-	ret = m88ts2022_wr_reg(priv, 0x62, u8tmp);
+	ret = m88ts2022_wr_reg(s, 0x62, u8tmp);
 	if (ret)
 		goto err;
 
 	for (i = 0; i < ARRAY_SIZE(reg_vals); i++) {
-		ret = m88ts2022_wr_reg(priv, reg_vals[i].reg, reg_vals[i].val);
+		ret = m88ts2022_wr_reg(s, reg_vals[i].reg, reg_vals[i].val);
 		if (ret)
 			goto err;
 	}
 err:
 	if (ret)
-		dev_dbg(&priv->client->dev, "%s: failed=%d\n", __func__, ret);
+		dev_dbg(&s->client->dev, "%s: failed=%d\n", __func__, ret);
 	return ret;
 }
 
 static int m88ts2022_sleep(struct dvb_frontend *fe)
 {
-	struct m88ts2022_priv *priv = fe->tuner_priv;
+	struct m88ts2022 *s = fe->tuner_priv;
 	int ret;
 
-	dev_dbg(&priv->client->dev, "%s:\n", __func__);
+	dev_dbg(&s->client->dev, "%s:\n", __func__);
 
-	ret = m88ts2022_wr_reg(priv, 0x00, 0x00);
+	ret = m88ts2022_wr_reg(s, 0x00, 0x00);
 	if (ret)
 		goto err;
 err:
 	if (ret)
-		dev_dbg(&priv->client->dev, "%s: failed=%d\n", __func__, ret);
+		dev_dbg(&s->client->dev, "%s: failed=%d\n", __func__, ret);
 	return ret;
 }
 
 static int m88ts2022_get_frequency(struct dvb_frontend *fe, u32 *frequency)
 {
-	struct m88ts2022_priv *priv = fe->tuner_priv;
+	struct m88ts2022 *s = fe->tuner_priv;
 
-	dev_dbg(&priv->client->dev, "%s:\n", __func__);
+	dev_dbg(&s->client->dev, "%s:\n", __func__);
 
-	*frequency = priv->frequency_khz;
+	*frequency = s->frequency_khz;
 	return 0;
 }
 
 static int m88ts2022_get_if_frequency(struct dvb_frontend *fe, u32 *frequency)
 {
-	struct m88ts2022_priv *priv = fe->tuner_priv;
+	struct m88ts2022 *s = fe->tuner_priv;
 
-	dev_dbg(&priv->client->dev, "%s:\n", __func__);
+	dev_dbg(&s->client->dev, "%s:\n", __func__);
 
 	*frequency = 0; /* Zero-IF */
 	return 0;
@@ -484,27 +484,27 @@ static int m88ts2022_get_if_frequency(struct dvb_frontend *fe, u32 *frequency)
 
 static int m88ts2022_get_rf_strength(struct dvb_frontend *fe, u16 *strength)
 {
-	struct m88ts2022_priv *priv = fe->tuner_priv;
+	struct m88ts2022 *s = fe->tuner_priv;
 	int ret;
 	u8 u8tmp;
 	u16 gain, u16tmp;
 	unsigned int gain1, gain2, gain3;
 
-	ret = m88ts2022_rd_reg(priv, 0x3d, &u8tmp);
+	ret = m88ts2022_rd_reg(s, 0x3d, &u8tmp);
 	if (ret)
 		goto err;
 
 	gain1 = (u8tmp >> 0) & 0x1f;
 	gain1 = clamp(gain1, 0U, 15U);
 
-	ret = m88ts2022_rd_reg(priv, 0x21, &u8tmp);
+	ret = m88ts2022_rd_reg(s, 0x21, &u8tmp);
 	if (ret)
 		goto err;
 
 	gain2 = (u8tmp >> 0) & 0x1f;
 	gain2 = clamp(gain2, 2U, 16U);
 
-	ret = m88ts2022_rd_reg(priv, 0x66, &u8tmp);
+	ret = m88ts2022_rd_reg(s, 0x66, &u8tmp);
 	if (ret)
 		goto err;
 
@@ -520,7 +520,7 @@ static int m88ts2022_get_rf_strength(struct dvb_frontend *fe, u16 *strength)
 	*strength = (u16tmp - 59000) * 0xffff / (61500 - 59000);
 err:
 	if (ret)
-		dev_dbg(&priv->client->dev, "%s: failed=%d\n", __func__, ret);
+		dev_dbg(&s->client->dev, "%s: failed=%d\n", __func__, ret);
 	return ret;
 }
 
@@ -545,44 +545,44 @@ static int m88ts2022_probe(struct i2c_client *client,
 {
 	struct m88ts2022_config *cfg = client->dev.platform_data;
 	struct dvb_frontend *fe = cfg->fe;
-	struct m88ts2022_priv *priv;
+	struct m88ts2022 *s;
 	int ret;
 	u8 chip_id, u8tmp;
 
-	priv = kzalloc(sizeof(*priv), GFP_KERNEL);
-	if (!priv) {
+	s = kzalloc(sizeof(*s), GFP_KERNEL);
+	if (!s) {
 		ret = -ENOMEM;
 		dev_err(&client->dev, "%s: kzalloc() failed\n", KBUILD_MODNAME);
 		goto err;
 	}
 
-	memcpy(&priv->cfg, cfg, sizeof(struct m88ts2022_config));
-	priv->client = client;
+	memcpy(&s->cfg, cfg, sizeof(struct m88ts2022_config));
+	s->client = client;
 
 	/* check if the tuner is there */
-	ret = m88ts2022_rd_reg(priv, 0x00, &u8tmp);
+	ret = m88ts2022_rd_reg(s, 0x00, &u8tmp);
 	if (ret)
 		goto err;
 
 	if ((u8tmp & 0x03) == 0x00) {
-		ret = m88ts2022_wr_reg(priv, 0x00, 0x01);
+		ret = m88ts2022_wr_reg(s, 0x00, 0x01);
 		if (ret < 0)
 			goto err;
 
 		usleep_range(2000, 50000);
 	}
 
-	ret = m88ts2022_wr_reg(priv, 0x00, 0x03);
+	ret = m88ts2022_wr_reg(s, 0x00, 0x03);
 	if (ret)
 		goto err;
 
 	usleep_range(2000, 50000);
 
-	ret = m88ts2022_rd_reg(priv, 0x00, &chip_id);
+	ret = m88ts2022_rd_reg(s, 0x00, &chip_id);
 	if (ret)
 		goto err;
 
-	dev_dbg(&priv->client->dev, "%s: chip_id=%02x\n", __func__, chip_id);
+	dev_dbg(&s->client->dev, "%s: chip_id=%02x\n", __func__, chip_id);
 
 	switch (chip_id) {
 	case 0xc3:
@@ -592,13 +592,13 @@ static int m88ts2022_probe(struct i2c_client *client,
 		goto err;
 	}
 
-	switch (priv->cfg.clock_out) {
+	switch (s->cfg.clock_out) {
 	case M88TS2022_CLOCK_OUT_DISABLED:
 		u8tmp = 0x60;
 		break;
 	case M88TS2022_CLOCK_OUT_ENABLED:
 		u8tmp = 0x70;
-		ret = m88ts2022_wr_reg(priv, 0x05, priv->cfg.clock_out_div);
+		ret = m88ts2022_wr_reg(s, 0x05, s->cfg.clock_out_div);
 		if (ret)
 			goto err;
 		break;
@@ -609,50 +609,50 @@ static int m88ts2022_probe(struct i2c_client *client,
 		goto err;
 	}
 
-	ret = m88ts2022_wr_reg(priv, 0x42, u8tmp);
+	ret = m88ts2022_wr_reg(s, 0x42, u8tmp);
 	if (ret)
 		goto err;
 
-	if (priv->cfg.loop_through)
+	if (s->cfg.loop_through)
 		u8tmp = 0xec;
 	else
 		u8tmp = 0x6c;
 
-	ret = m88ts2022_wr_reg(priv, 0x62, u8tmp);
+	ret = m88ts2022_wr_reg(s, 0x62, u8tmp);
 	if (ret)
 		goto err;
 
 	/* sleep */
-	ret = m88ts2022_wr_reg(priv, 0x00, 0x00);
+	ret = m88ts2022_wr_reg(s, 0x00, 0x00);
 	if (ret)
 		goto err;
 
-	dev_info(&priv->client->dev,
+	dev_info(&s->client->dev,
 			"%s: Montage M88TS2022 successfully identified\n",
 			KBUILD_MODNAME);
 
-	fe->tuner_priv = priv;
+	fe->tuner_priv = s;
 	memcpy(&fe->ops.tuner_ops, &m88ts2022_tuner_ops,
 			sizeof(struct dvb_tuner_ops));
 
-	i2c_set_clientdata(client, priv);
+	i2c_set_clientdata(client, s);
 	return 0;
 err:
 	dev_dbg(&client->dev, "%s: failed=%d\n", __func__, ret);
-	kfree(priv);
+	kfree(s);
 	return ret;
 }
 
 static int m88ts2022_remove(struct i2c_client *client)
 {
-	struct m88ts2022_priv *priv = i2c_get_clientdata(client);
-	struct dvb_frontend *fe = priv->cfg.fe;
+	struct m88ts2022 *s = i2c_get_clientdata(client);
+	struct dvb_frontend *fe = s->cfg.fe;
 
 	dev_dbg(&client->dev, "%s:\n", __func__);
 
 	memset(&fe->ops.tuner_ops, 0, sizeof(struct dvb_tuner_ops));
 	fe->tuner_priv = NULL;
-	kfree(priv);
+	kfree(s);
 
 	return 0;
 }
diff --git a/drivers/media/tuners/m88ts2022_priv.h b/drivers/media/tuners/m88ts2022_priv.h
index 0363dd8..cbc9e2b 100644
--- a/drivers/media/tuners/m88ts2022_priv.h
+++ b/drivers/media/tuners/m88ts2022_priv.h
@@ -19,7 +19,7 @@
 
 #include "m88ts2022.h"
 
-struct m88ts2022_priv {
+struct m88ts2022 {
 	struct m88ts2022_config cfg;
 	struct i2c_client *client;
 	struct dvb_frontend *fe;
-- 
http://palosaari.fi/


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/6] m88ts2022: clean up logging
  2014-08-22  0:33 [PATCH 1/6] m88ts2022: fix coding style issues Antti Palosaari
  2014-08-22  0:33 ` [PATCH 2/6] m88ts2022: rename device state (priv => s) Antti Palosaari
@ 2014-08-22  0:33 ` Antti Palosaari
  2014-08-22  0:33 ` [PATCH 4/6] m88ts2022: convert to RegMap I2C API Antti Palosaari
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Antti Palosaari @ 2014-08-22  0:33 UTC (permalink / raw)
  To: linux-media; +Cc: Antti Palosaari

There is no need to print module name nor function name as those
are done by kernel logging system when dev_xxx logging is used and
driver is proper I2C driver.

Signed-off-by: Antti Palosaari <crope@iki.fi>
---
 drivers/media/tuners/m88ts2022.c | 51 +++++++++++++++++++---------------------
 1 file changed, 24 insertions(+), 27 deletions(-)

diff --git a/drivers/media/tuners/m88ts2022.c b/drivers/media/tuners/m88ts2022.c
index 43856df..dd179ff 100644
--- a/drivers/media/tuners/m88ts2022.c
+++ b/drivers/media/tuners/m88ts2022.c
@@ -46,8 +46,8 @@ static int m88ts2022_wr_regs(struct m88ts2022 *s,
 		ret = 0;
 	} else {
 		dev_warn(&s->client->dev,
-				"%s: i2c wr failed=%d reg=%02x len=%d\n",
-				KBUILD_MODNAME, ret, reg, len);
+				"i2c wr failed=%d reg=%02x len=%d\n",
+				ret, reg, len);
 		ret = -EREMOTEIO;
 	}
 
@@ -85,8 +85,8 @@ static int m88ts2022_rd_regs(struct m88ts2022 *s, u8 reg,
 		ret = 0;
 	} else {
 		dev_warn(&s->client->dev,
-				"%s: i2c rd failed=%d reg=%02x len=%d\n",
-				KBUILD_MODNAME, ret, reg, len);
+				"i2c rd failed=%d reg=%02x len=%d\n",
+				ret, reg, len);
 		ret = -EREMOTEIO;
 	}
 
@@ -141,8 +141,8 @@ static int m88ts2022_cmd(struct dvb_frontend *fe,
 
 	for (i = 0; i < 2; i++) {
 		dev_dbg(&s->client->dev,
-				"%s: i=%d op=%02x reg=%02x mask=%02x val=%02x\n",
-				__func__, i, op, reg, mask, val);
+				"i=%d op=%02x reg=%02x mask=%02x val=%02x\n",
+				i, op, reg, mask, val);
 
 		for (i = 0; i < ARRAY_SIZE(reg_vals); i++) {
 			ret = m88ts2022_wr_reg(s, reg_vals[i].reg,
@@ -178,8 +178,8 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	u16 u16tmp;
 
 	dev_dbg(&s->client->dev,
-			"%s: frequency=%d symbol_rate=%d rolloff=%d\n",
-			__func__, c->frequency, c->symbol_rate, c->rolloff);
+			"frequency=%d symbol_rate=%d rolloff=%d\n",
+			c->frequency, c->symbol_rate, c->rolloff);
 	/*
 	 * Integer-N PLL synthesizer
 	 * kHz is used for all calculations to keep calculations within 32-bit
@@ -228,10 +228,9 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 		goto err;
 
 	dev_dbg(&s->client->dev,
-			"%s: frequency=%u offset=%d f_vco_khz=%u pll_n=%u div_ref=%u div_out=%u\n",
-			__func__, s->frequency_khz,
-			s->frequency_khz - c->frequency, f_vco_khz, pll_n,
-			div_ref, div_out);
+			"frequency=%u offset=%d f_vco_khz=%u pll_n=%u div_ref=%u div_out=%u\n",
+			s->frequency_khz, s->frequency_khz - c->frequency,
+			f_vco_khz, pll_n, div_ref, div_out);
 
 	ret = m88ts2022_cmd(fe, 0x10, 5, 0x15, 0x40, 0x00, NULL);
 	if (ret)
@@ -371,7 +370,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 		goto err;
 err:
 	if (ret)
-		dev_dbg(&s->client->dev, "%s: failed=%d\n", __func__, ret);
+		dev_dbg(&s->client->dev, "failed=%d\n", ret);
 
 	return ret;
 }
@@ -395,7 +394,7 @@ static int m88ts2022_init(struct dvb_frontend *fe)
 		{0x12, 0xa0},
 	};
 
-	dev_dbg(&s->client->dev, "%s:\n", __func__);
+	dev_dbg(&s->client->dev, "\n");
 
 	ret = m88ts2022_wr_reg(s, 0x00, 0x01);
 	if (ret)
@@ -442,7 +441,7 @@ static int m88ts2022_init(struct dvb_frontend *fe)
 	}
 err:
 	if (ret)
-		dev_dbg(&s->client->dev, "%s: failed=%d\n", __func__, ret);
+		dev_dbg(&s->client->dev, "failed=%d\n", ret);
 	return ret;
 }
 
@@ -451,14 +450,14 @@ static int m88ts2022_sleep(struct dvb_frontend *fe)
 	struct m88ts2022 *s = fe->tuner_priv;
 	int ret;
 
-	dev_dbg(&s->client->dev, "%s:\n", __func__);
+	dev_dbg(&s->client->dev, "\n");
 
 	ret = m88ts2022_wr_reg(s, 0x00, 0x00);
 	if (ret)
 		goto err;
 err:
 	if (ret)
-		dev_dbg(&s->client->dev, "%s: failed=%d\n", __func__, ret);
+		dev_dbg(&s->client->dev, "failed=%d\n", ret);
 	return ret;
 }
 
@@ -466,7 +465,7 @@ static int m88ts2022_get_frequency(struct dvb_frontend *fe, u32 *frequency)
 {
 	struct m88ts2022 *s = fe->tuner_priv;
 
-	dev_dbg(&s->client->dev, "%s:\n", __func__);
+	dev_dbg(&s->client->dev, "\n");
 
 	*frequency = s->frequency_khz;
 	return 0;
@@ -476,7 +475,7 @@ static int m88ts2022_get_if_frequency(struct dvb_frontend *fe, u32 *frequency)
 {
 	struct m88ts2022 *s = fe->tuner_priv;
 
-	dev_dbg(&s->client->dev, "%s:\n", __func__);
+	dev_dbg(&s->client->dev, "\n");
 
 	*frequency = 0; /* Zero-IF */
 	return 0;
@@ -520,7 +519,7 @@ static int m88ts2022_get_rf_strength(struct dvb_frontend *fe, u16 *strength)
 	*strength = (u16tmp - 59000) * 0xffff / (61500 - 59000);
 err:
 	if (ret)
-		dev_dbg(&s->client->dev, "%s: failed=%d\n", __func__, ret);
+		dev_dbg(&s->client->dev, "failed=%d\n", ret);
 	return ret;
 }
 
@@ -552,7 +551,7 @@ static int m88ts2022_probe(struct i2c_client *client,
 	s = kzalloc(sizeof(*s), GFP_KERNEL);
 	if (!s) {
 		ret = -ENOMEM;
-		dev_err(&client->dev, "%s: kzalloc() failed\n", KBUILD_MODNAME);
+		dev_err(&client->dev, "kzalloc() failed\n");
 		goto err;
 	}
 
@@ -582,7 +581,7 @@ static int m88ts2022_probe(struct i2c_client *client,
 	if (ret)
 		goto err;
 
-	dev_dbg(&s->client->dev, "%s: chip_id=%02x\n", __func__, chip_id);
+	dev_dbg(&s->client->dev, "chip_id=%02x\n", chip_id);
 
 	switch (chip_id) {
 	case 0xc3:
@@ -627,9 +626,7 @@ static int m88ts2022_probe(struct i2c_client *client,
 	if (ret)
 		goto err;
 
-	dev_info(&s->client->dev,
-			"%s: Montage M88TS2022 successfully identified\n",
-			KBUILD_MODNAME);
+	dev_info(&s->client->dev, "Montage M88TS2022 successfully identified\n");
 
 	fe->tuner_priv = s;
 	memcpy(&fe->ops.tuner_ops, &m88ts2022_tuner_ops,
@@ -638,7 +635,7 @@ static int m88ts2022_probe(struct i2c_client *client,
 	i2c_set_clientdata(client, s);
 	return 0;
 err:
-	dev_dbg(&client->dev, "%s: failed=%d\n", __func__, ret);
+	dev_dbg(&client->dev, "failed=%d\n", ret);
 	kfree(s);
 	return ret;
 }
@@ -648,7 +645,7 @@ static int m88ts2022_remove(struct i2c_client *client)
 	struct m88ts2022 *s = i2c_get_clientdata(client);
 	struct dvb_frontend *fe = s->cfg.fe;
 
-	dev_dbg(&client->dev, "%s:\n", __func__);
+	dev_dbg(&client->dev, "\n");
 
 	memset(&fe->ops.tuner_ops, 0, sizeof(struct dvb_tuner_ops));
 	fe->tuner_priv = NULL;
-- 
http://palosaari.fi/


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/6] m88ts2022: convert to RegMap I2C API
  2014-08-22  0:33 [PATCH 1/6] m88ts2022: fix coding style issues Antti Palosaari
  2014-08-22  0:33 ` [PATCH 2/6] m88ts2022: rename device state (priv => s) Antti Palosaari
  2014-08-22  0:33 ` [PATCH 3/6] m88ts2022: clean up logging Antti Palosaari
@ 2014-08-22  0:33 ` Antti Palosaari
  2014-08-22  0:33 ` [PATCH 5/6] m88ts2022: change parameter type of m88ts2022_cmd Antti Palosaari
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Antti Palosaari @ 2014-08-22  0:33 UTC (permalink / raw)
  To: linux-media; +Cc: Antti Palosaari

Use RegMap to cover I2C register routines.

Signed-off-by: Antti Palosaari <crope@iki.fi>
---
 drivers/media/tuners/Kconfig          |   1 +
 drivers/media/tuners/m88ts2022.c      | 231 ++++++++++------------------------
 drivers/media/tuners/m88ts2022_priv.h |   2 +
 3 files changed, 69 insertions(+), 165 deletions(-)

diff --git a/drivers/media/tuners/Kconfig b/drivers/media/tuners/Kconfig
index d79fd1c..8319996 100644
--- a/drivers/media/tuners/Kconfig
+++ b/drivers/media/tuners/Kconfig
@@ -226,6 +226,7 @@ config MEDIA_TUNER_FC2580
 config MEDIA_TUNER_M88TS2022
 	tristate "Montage M88TS2022 silicon tuner"
 	depends on MEDIA_SUPPORT && I2C
+	select REGMAP_I2C
 	default m if !MEDIA_SUBDRV_AUTOSELECT
 	help
 	  Montage M88TS2022 silicon tuner driver.
diff --git a/drivers/media/tuners/m88ts2022.c b/drivers/media/tuners/m88ts2022.c
index dd179ff..04d3979 100644
--- a/drivers/media/tuners/m88ts2022.c
+++ b/drivers/media/tuners/m88ts2022.c
@@ -18,120 +18,12 @@
 
 #include "m88ts2022_priv.h"
 
-/* write multiple registers */
-static int m88ts2022_wr_regs(struct m88ts2022 *s,
-		u8 reg, const u8 *val, int len)
-{
-#define MAX_WR_LEN 3
-#define MAX_WR_XFER_LEN (MAX_WR_LEN + 1)
-	int ret;
-	u8 buf[MAX_WR_XFER_LEN];
-	struct i2c_msg msg[1] = {
-		{
-			.addr = s->client->addr,
-			.flags = 0,
-			.len = 1 + len,
-			.buf = buf,
-		}
-	};
-
-	if (WARN_ON(len > MAX_WR_LEN))
-		return -EINVAL;
-
-	buf[0] = reg;
-	memcpy(&buf[1], val, len);
-
-	ret = i2c_transfer(s->client->adapter, msg, 1);
-	if (ret == 1) {
-		ret = 0;
-	} else {
-		dev_warn(&s->client->dev,
-				"i2c wr failed=%d reg=%02x len=%d\n",
-				ret, reg, len);
-		ret = -EREMOTEIO;
-	}
-
-	return ret;
-}
-
-/* read multiple registers */
-static int m88ts2022_rd_regs(struct m88ts2022 *s, u8 reg,
-		u8 *val, int len)
-{
-#define MAX_RD_LEN 1
-#define MAX_RD_XFER_LEN (MAX_RD_LEN)
-	int ret;
-	u8 buf[MAX_RD_XFER_LEN];
-	struct i2c_msg msg[2] = {
-		{
-			.addr = s->client->addr,
-			.flags = 0,
-			.len = 1,
-			.buf = &reg,
-		}, {
-			.addr = s->client->addr,
-			.flags = I2C_M_RD,
-			.len = len,
-			.buf = buf,
-		}
-	};
-
-	if (WARN_ON(len > MAX_RD_LEN))
-		return -EINVAL;
-
-	ret = i2c_transfer(s->client->adapter, msg, 2);
-	if (ret == 2) {
-		memcpy(val, buf, len);
-		ret = 0;
-	} else {
-		dev_warn(&s->client->dev,
-				"i2c rd failed=%d reg=%02x len=%d\n",
-				ret, reg, len);
-		ret = -EREMOTEIO;
-	}
-
-	return ret;
-}
-
-/* write single register */
-static int m88ts2022_wr_reg(struct m88ts2022 *s, u8 reg, u8 val)
-{
-	return m88ts2022_wr_regs(s, reg, &val, 1);
-}
-
-/* read single register */
-static int m88ts2022_rd_reg(struct m88ts2022 *s, u8 reg, u8 *val)
-{
-	return m88ts2022_rd_regs(s, reg, val, 1);
-}
-
-/* write single register with mask */
-static int m88ts2022_wr_reg_mask(struct m88ts2022 *s,
-		u8 reg, u8 val, u8 mask)
-{
-	int ret;
-	u8 u8tmp;
-
-	/* no need for read if whole reg is written */
-	if (mask != 0xff) {
-		ret = m88ts2022_rd_regs(s, reg, &u8tmp, 1);
-		if (ret)
-			return ret;
-
-		val &= mask;
-		u8tmp &= ~mask;
-		val |= u8tmp;
-	}
-
-	return m88ts2022_wr_regs(s, reg, &val, 1);
-}
-
 static int m88ts2022_cmd(struct dvb_frontend *fe,
 		int op, int sleep, u8 reg, u8 mask, u8 val, u8 *reg_val)
 {
 	struct m88ts2022 *s = fe->tuner_priv;
 	int ret, i;
-	u8 u8tmp;
+	unsigned int utmp;
 	struct m88ts2022_reg_val reg_vals[] = {
 		{0x51, 0x1f - op},
 		{0x51, 0x1f},
@@ -145,7 +37,7 @@ static int m88ts2022_cmd(struct dvb_frontend *fe,
 				i, op, reg, mask, val);
 
 		for (i = 0; i < ARRAY_SIZE(reg_vals); i++) {
-			ret = m88ts2022_wr_reg(s, reg_vals[i].reg,
+			ret = regmap_write(s->regmap, reg_vals[i].reg,
 					reg_vals[i].val);
 			if (ret)
 				goto err;
@@ -153,16 +45,16 @@ static int m88ts2022_cmd(struct dvb_frontend *fe,
 
 		usleep_range(sleep * 1000, sleep * 10000);
 
-		ret = m88ts2022_rd_reg(s, reg, &u8tmp);
+		ret = regmap_read(s->regmap, reg, &utmp);
 		if (ret)
 			goto err;
 
-		if ((u8tmp & mask) != val)
+		if ((utmp & mask) != val)
 			break;
 	}
 
 	if (reg_val)
-		*reg_val = u8tmp;
+		*reg_val = utmp;
 err:
 	return ret;
 }
@@ -172,7 +64,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	struct m88ts2022 *s = fe->tuner_priv;
 	struct dtv_frontend_properties *c = &fe->dtv_property_cache;
 	int ret;
-	unsigned int frequency_khz, frequency_offset_khz, f_3db_hz;
+	unsigned int utmp, frequency_khz, frequency_offset_khz, f_3db_hz;
 	unsigned int f_ref_khz, f_vco_khz, div_ref, div_out, pll_n, gdiv28;
 	u8 buf[3], u8tmp, cap_code, lpf_gm, lpf_mxdiv, div_max, div_min;
 	u16 u16tmp;
@@ -204,7 +96,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 
 	buf[0] = u8tmp;
 	buf[1] = 0x40;
-	ret = m88ts2022_wr_regs(s, 0x10, buf, 2);
+	ret = regmap_bulk_write(s->regmap, 0x10, buf, 2);
 	if (ret)
 		goto err;
 
@@ -223,7 +115,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	buf[0] = (u16tmp >> 8) & 0x3f;
 	buf[1] = (u16tmp >> 0) & 0xff;
 	buf[2] = div_ref - 8;
-	ret = m88ts2022_wr_regs(s, 0x01, buf, 3);
+	ret = regmap_bulk_write(s->regmap, 0x01, buf, 3);
 	if (ret)
 		goto err;
 
@@ -236,17 +128,17 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_rd_reg(s, 0x14, &u8tmp);
+	ret = regmap_read(s->regmap, 0x14, &utmp);
 	if (ret)
 		goto err;
 
-	u8tmp &= 0x7f;
-	if (u8tmp < 64) {
-		ret = m88ts2022_wr_reg_mask(s, 0x10, 0x80, 0x80);
+	utmp &= 0x7f;
+	if (utmp < 64) {
+		ret = regmap_update_bits(s->regmap, 0x10, 0x80, 0x80);
 		if (ret)
 			goto err;
 
-		ret = m88ts2022_wr_reg(s, 0x11, 0x6f);
+		ret = regmap_write(s->regmap, 0x11, 0x6f);
 		if (ret)
 			goto err;
 
@@ -255,13 +147,13 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 			goto err;
 	}
 
-	ret = m88ts2022_rd_reg(s, 0x14, &u8tmp);
+	ret = regmap_read(s->regmap, 0x14, &utmp);
 	if (ret)
 		goto err;
 
-	u8tmp &= 0x1f;
-	if (u8tmp > 19) {
-		ret = m88ts2022_wr_reg_mask(s, 0x10, 0x00, 0x02);
+	utmp &= 0x1f;
+	if (utmp > 19) {
+		ret = regmap_update_bits(s->regmap, 0x10, 0x02, 0x00);
 		if (ret)
 			goto err;
 	}
@@ -270,26 +162,26 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(s, 0x25, 0x00);
+	ret = regmap_write(s->regmap, 0x25, 0x00);
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(s, 0x27, 0x70);
+	ret = regmap_write(s->regmap, 0x27, 0x70);
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(s, 0x41, 0x09);
+	ret = regmap_write(s->regmap, 0x41, 0x09);
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(s, 0x08, 0x0b);
+	ret = regmap_write(s->regmap, 0x08, 0x0b);
 	if (ret)
 		goto err;
 
 	/* filters */
 	gdiv28 = DIV_ROUND_CLOSEST(f_ref_khz * 1694U, 1000000U);
 
-	ret = m88ts2022_wr_reg(s, 0x04, gdiv28);
+	ret = regmap_write(s->regmap, 0x04, gdiv28);
 	if (ret)
 		goto err;
 
@@ -299,7 +191,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 
 	cap_code = u8tmp & 0x3f;
 
-	ret = m88ts2022_wr_reg(s, 0x41, 0x0d);
+	ret = regmap_write(s->regmap, 0x41, 0x0d);
 	if (ret)
 		goto err;
 
@@ -327,11 +219,11 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 		lpf_mxdiv = DIV_ROUND_CLOSEST(++lpf_gm * LPF_COEFF * f_ref_khz, f_3db_hz);
 	lpf_mxdiv = clamp_val(lpf_mxdiv, 0U, div_max);
 
-	ret = m88ts2022_wr_reg(s, 0x04, lpf_mxdiv);
+	ret = regmap_write(s->regmap, 0x04, lpf_mxdiv);
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(s, 0x06, lpf_gm);
+	ret = regmap_write(s->regmap, 0x06, lpf_gm);
 	if (ret)
 		goto err;
 
@@ -341,7 +233,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 
 	cap_code = u8tmp & 0x3f;
 
-	ret = m88ts2022_wr_reg(s, 0x41, 0x09);
+	ret = regmap_write(s->regmap, 0x41, 0x09);
 	if (ret)
 		goto err;
 
@@ -353,15 +245,15 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	cap_code = (cap_code + u8tmp) / 2;
 
 	u8tmp = cap_code | 0x80;
-	ret = m88ts2022_wr_reg(s, 0x25, u8tmp);
+	ret = regmap_write(s->regmap, 0x25, u8tmp);
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(s, 0x27, 0x30);
+	ret = regmap_write(s->regmap, 0x27, 0x30);
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(s, 0x08, 0x09);
+	ret = regmap_write(s->regmap, 0x08, 0x09);
 	if (ret)
 		goto err;
 
@@ -396,11 +288,11 @@ static int m88ts2022_init(struct dvb_frontend *fe)
 
 	dev_dbg(&s->client->dev, "\n");
 
-	ret = m88ts2022_wr_reg(s, 0x00, 0x01);
+	ret = regmap_write(s->regmap, 0x00, 0x01);
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_wr_reg(s, 0x00, 0x03);
+	ret = regmap_write(s->regmap, 0x00, 0x03);
 	if (ret)
 		goto err;
 
@@ -410,7 +302,7 @@ static int m88ts2022_init(struct dvb_frontend *fe)
 		break;
 	case M88TS2022_CLOCK_OUT_ENABLED:
 		u8tmp = 0x70;
-		ret = m88ts2022_wr_reg(s, 0x05, s->cfg.clock_out_div);
+		ret = regmap_write(s->regmap, 0x05, s->cfg.clock_out_div);
 		if (ret)
 			goto err;
 		break;
@@ -421,7 +313,7 @@ static int m88ts2022_init(struct dvb_frontend *fe)
 		goto err;
 	}
 
-	ret = m88ts2022_wr_reg(s, 0x42, u8tmp);
+	ret = regmap_write(s->regmap, 0x42, u8tmp);
 	if (ret)
 		goto err;
 
@@ -430,12 +322,12 @@ static int m88ts2022_init(struct dvb_frontend *fe)
 	else
 		u8tmp = 0x6c;
 
-	ret = m88ts2022_wr_reg(s, 0x62, u8tmp);
+	ret = regmap_write(s->regmap, 0x62, u8tmp);
 	if (ret)
 		goto err;
 
 	for (i = 0; i < ARRAY_SIZE(reg_vals); i++) {
-		ret = m88ts2022_wr_reg(s, reg_vals[i].reg, reg_vals[i].val);
+		ret = regmap_write(s->regmap, reg_vals[i].reg, reg_vals[i].val);
 		if (ret)
 			goto err;
 	}
@@ -452,7 +344,7 @@ static int m88ts2022_sleep(struct dvb_frontend *fe)
 
 	dev_dbg(&s->client->dev, "\n");
 
-	ret = m88ts2022_wr_reg(s, 0x00, 0x00);
+	ret = regmap_write(s->regmap, 0x00, 0x00);
 	if (ret)
 		goto err;
 err:
@@ -485,29 +377,28 @@ static int m88ts2022_get_rf_strength(struct dvb_frontend *fe, u16 *strength)
 {
 	struct m88ts2022 *s = fe->tuner_priv;
 	int ret;
-	u8 u8tmp;
 	u16 gain, u16tmp;
-	unsigned int gain1, gain2, gain3;
+	unsigned int utmp, gain1, gain2, gain3;
 
-	ret = m88ts2022_rd_reg(s, 0x3d, &u8tmp);
+	ret = regmap_read(s->regmap, 0x3d, &utmp);
 	if (ret)
 		goto err;
 
-	gain1 = (u8tmp >> 0) & 0x1f;
+	gain1 = (utmp >> 0) & 0x1f;
 	gain1 = clamp(gain1, 0U, 15U);
 
-	ret = m88ts2022_rd_reg(s, 0x21, &u8tmp);
+	ret = regmap_read(s->regmap, 0x21, &utmp);
 	if (ret)
 		goto err;
 
-	gain2 = (u8tmp >> 0) & 0x1f;
+	gain2 = (utmp >> 0) & 0x1f;
 	gain2 = clamp(gain2, 2U, 16U);
 
-	ret = m88ts2022_rd_reg(s, 0x66, &u8tmp);
+	ret = regmap_read(s->regmap, 0x66, &utmp);
 	if (ret)
 		goto err;
 
-	gain3 = (u8tmp >> 3) & 0x07;
+	gain3 = (utmp >> 3) & 0x07;
 	gain3 = clamp(gain3, 0U, 6U);
 
 	gain = gain1 * 265 + gain2 * 338 + gain3 * 285;
@@ -546,7 +437,12 @@ static int m88ts2022_probe(struct i2c_client *client,
 	struct dvb_frontend *fe = cfg->fe;
 	struct m88ts2022 *s;
 	int ret;
-	u8 chip_id, u8tmp;
+	u8 u8tmp;
+	unsigned int utmp;
+	static const struct regmap_config regmap_config = {
+		.reg_bits = 8,
+		.val_bits = 8,
+	};
 
 	s = kzalloc(sizeof(*s), GFP_KERNEL);
 	if (!s) {
@@ -557,33 +453,38 @@ static int m88ts2022_probe(struct i2c_client *client,
 
 	memcpy(&s->cfg, cfg, sizeof(struct m88ts2022_config));
 	s->client = client;
+	s->regmap = devm_regmap_init_i2c(client, &regmap_config);
+	if (IS_ERR(s->regmap)) {
+		ret = PTR_ERR(s->regmap);
+		goto err;
+	}
 
 	/* check if the tuner is there */
-	ret = m88ts2022_rd_reg(s, 0x00, &u8tmp);
+	ret = regmap_read(s->regmap, 0x00, &utmp);
 	if (ret)
 		goto err;
 
-	if ((u8tmp & 0x03) == 0x00) {
-		ret = m88ts2022_wr_reg(s, 0x00, 0x01);
-		if (ret < 0)
+	if ((utmp & 0x03) == 0x00) {
+		ret = regmap_write(s->regmap, 0x00, 0x01);
+		if (ret)
 			goto err;
 
 		usleep_range(2000, 50000);
 	}
 
-	ret = m88ts2022_wr_reg(s, 0x00, 0x03);
+	ret = regmap_write(s->regmap, 0x00, 0x03);
 	if (ret)
 		goto err;
 
 	usleep_range(2000, 50000);
 
-	ret = m88ts2022_rd_reg(s, 0x00, &chip_id);
+	ret = regmap_read(s->regmap, 0x00, &utmp);
 	if (ret)
 		goto err;
 
-	dev_dbg(&s->client->dev, "chip_id=%02x\n", chip_id);
+	dev_dbg(&s->client->dev, "chip_id=%02x\n", utmp);
 
-	switch (chip_id) {
+	switch (utmp) {
 	case 0xc3:
 	case 0x83:
 		break;
@@ -597,7 +498,7 @@ static int m88ts2022_probe(struct i2c_client *client,
 		break;
 	case M88TS2022_CLOCK_OUT_ENABLED:
 		u8tmp = 0x70;
-		ret = m88ts2022_wr_reg(s, 0x05, s->cfg.clock_out_div);
+		ret = regmap_write(s->regmap, 0x05, s->cfg.clock_out_div);
 		if (ret)
 			goto err;
 		break;
@@ -608,7 +509,7 @@ static int m88ts2022_probe(struct i2c_client *client,
 		goto err;
 	}
 
-	ret = m88ts2022_wr_reg(s, 0x42, u8tmp);
+	ret = regmap_write(s->regmap, 0x42, u8tmp);
 	if (ret)
 		goto err;
 
@@ -617,12 +518,12 @@ static int m88ts2022_probe(struct i2c_client *client,
 	else
 		u8tmp = 0x6c;
 
-	ret = m88ts2022_wr_reg(s, 0x62, u8tmp);
+	ret = regmap_write(s->regmap, 0x62, u8tmp);
 	if (ret)
 		goto err;
 
 	/* sleep */
-	ret = m88ts2022_wr_reg(s, 0x00, 0x00);
+	ret = regmap_write(s->regmap, 0x00, 0x00);
 	if (ret)
 		goto err;
 
diff --git a/drivers/media/tuners/m88ts2022_priv.h b/drivers/media/tuners/m88ts2022_priv.h
index cbc9e2b..a67afe3 100644
--- a/drivers/media/tuners/m88ts2022_priv.h
+++ b/drivers/media/tuners/m88ts2022_priv.h
@@ -18,10 +18,12 @@
 #define M88TS2022_PRIV_H
 
 #include "m88ts2022.h"
+#include <linux/regmap.h>
 
 struct m88ts2022 {
 	struct m88ts2022_config cfg;
 	struct i2c_client *client;
+	struct regmap *regmap;
 	struct dvb_frontend *fe;
 	u32 frequency_khz;
 };
-- 
http://palosaari.fi/


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 5/6] m88ts2022: change parameter type of m88ts2022_cmd
  2014-08-22  0:33 [PATCH 1/6] m88ts2022: fix coding style issues Antti Palosaari
                   ` (2 preceding siblings ...)
  2014-08-22  0:33 ` [PATCH 4/6] m88ts2022: convert to RegMap I2C API Antti Palosaari
@ 2014-08-22  0:33 ` Antti Palosaari
  2014-08-22  0:33 ` [PATCH 6/6] m88ds3103: change .set_voltage() implementation Antti Palosaari
  2014-08-22  3:19 ` Nibble Max
  5 siblings, 0 replies; 8+ messages in thread
From: Antti Palosaari @ 2014-08-22  0:33 UTC (permalink / raw)
  To: linux-media; +Cc: Antti Palosaari

It is driver internal function and does not need anything from
frontend structure. Due to that change parameter type to driver
state which is better for driver internal functions.

Also remove one unused variable from state itself.

Signed-off-by: Antti Palosaari <crope@iki.fi>
---
 drivers/media/tuners/m88ts2022.c      | 21 ++++++++++-----------
 drivers/media/tuners/m88ts2022_priv.h |  1 -
 2 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/drivers/media/tuners/m88ts2022.c b/drivers/media/tuners/m88ts2022.c
index 04d3979..90e1a35 100644
--- a/drivers/media/tuners/m88ts2022.c
+++ b/drivers/media/tuners/m88ts2022.c
@@ -18,10 +18,9 @@
 
 #include "m88ts2022_priv.h"
 
-static int m88ts2022_cmd(struct dvb_frontend *fe,
-		int op, int sleep, u8 reg, u8 mask, u8 val, u8 *reg_val)
+static int m88ts2022_cmd(struct m88ts2022 *s, int op, int sleep, u8 reg,
+		u8 mask, u8 val, u8 *reg_val)
 {
-	struct m88ts2022 *s = fe->tuner_priv;
 	int ret, i;
 	unsigned int utmp;
 	struct m88ts2022_reg_val reg_vals[] = {
@@ -124,7 +123,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 			s->frequency_khz, s->frequency_khz - c->frequency,
 			f_vco_khz, pll_n, div_ref, div_out);
 
-	ret = m88ts2022_cmd(fe, 0x10, 5, 0x15, 0x40, 0x00, NULL);
+	ret = m88ts2022_cmd(s, 0x10, 5, 0x15, 0x40, 0x00, NULL);
 	if (ret)
 		goto err;
 
@@ -142,7 +141,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 		if (ret)
 			goto err;
 
-		ret = m88ts2022_cmd(fe, 0x10, 5, 0x15, 0x40, 0x00, NULL);
+		ret = m88ts2022_cmd(s, 0x10, 5, 0x15, 0x40, 0x00, NULL);
 		if (ret)
 			goto err;
 	}
@@ -158,7 +157,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 			goto err;
 	}
 
-	ret = m88ts2022_cmd(fe, 0x08, 5, 0x3c, 0xff, 0x00, NULL);
+	ret = m88ts2022_cmd(s, 0x08, 5, 0x3c, 0xff, 0x00, NULL);
 	if (ret)
 		goto err;
 
@@ -185,7 +184,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_cmd(fe, 0x04, 2, 0x26, 0xff, 0x00, &u8tmp);
+	ret = m88ts2022_cmd(s, 0x04, 2, 0x26, 0xff, 0x00, &u8tmp);
 	if (ret)
 		goto err;
 
@@ -195,7 +194,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_cmd(fe, 0x04, 2, 0x26, 0xff, 0x00, &u8tmp);
+	ret = m88ts2022_cmd(s, 0x04, 2, 0x26, 0xff, 0x00, &u8tmp);
 	if (ret)
 		goto err;
 
@@ -227,7 +226,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_cmd(fe, 0x04, 2, 0x26, 0xff, 0x00, &u8tmp);
+	ret = m88ts2022_cmd(s, 0x04, 2, 0x26, 0xff, 0x00, &u8tmp);
 	if (ret)
 		goto err;
 
@@ -237,7 +236,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_cmd(fe, 0x04, 2, 0x26, 0xff, 0x00, &u8tmp);
+	ret = m88ts2022_cmd(s, 0x04, 2, 0x26, 0xff, 0x00, &u8tmp);
 	if (ret)
 		goto err;
 
@@ -257,7 +256,7 @@ static int m88ts2022_set_params(struct dvb_frontend *fe)
 	if (ret)
 		goto err;
 
-	ret = m88ts2022_cmd(fe, 0x01, 20, 0x21, 0xff, 0x00, NULL);
+	ret = m88ts2022_cmd(s, 0x01, 20, 0x21, 0xff, 0x00, NULL);
 	if (ret)
 		goto err;
 err:
diff --git a/drivers/media/tuners/m88ts2022_priv.h b/drivers/media/tuners/m88ts2022_priv.h
index a67afe3..a0e22fa 100644
--- a/drivers/media/tuners/m88ts2022_priv.h
+++ b/drivers/media/tuners/m88ts2022_priv.h
@@ -24,7 +24,6 @@ struct m88ts2022 {
 	struct m88ts2022_config cfg;
 	struct i2c_client *client;
 	struct regmap *regmap;
-	struct dvb_frontend *fe;
 	u32 frequency_khz;
 };
 
-- 
http://palosaari.fi/


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 6/6] m88ds3103: change .set_voltage() implementation
  2014-08-22  0:33 [PATCH 1/6] m88ts2022: fix coding style issues Antti Palosaari
                   ` (3 preceding siblings ...)
  2014-08-22  0:33 ` [PATCH 5/6] m88ts2022: change parameter type of m88ts2022_cmd Antti Palosaari
@ 2014-08-22  0:33 ` Antti Palosaari
  2014-08-22  3:19 ` Nibble Max
  5 siblings, 0 replies; 8+ messages in thread
From: Antti Palosaari @ 2014-08-22  0:33 UTC (permalink / raw)
  To: linux-media; +Cc: Antti Palosaari

Add some error checking and implement functionality a little bit
differently.

Signed-off-by: Antti Palosaari <crope@iki.fi>
---
 drivers/media/dvb-frontends/m88ds3103.c | 50 ++++++++++++++++++++++-----------
 1 file changed, 34 insertions(+), 16 deletions(-)

diff --git a/drivers/media/dvb-frontends/m88ds3103.c b/drivers/media/dvb-frontends/m88ds3103.c
index 238b04e..d8fbdfd 100644
--- a/drivers/media/dvb-frontends/m88ds3103.c
+++ b/drivers/media/dvb-frontends/m88ds3103.c
@@ -1038,36 +1038,54 @@ err:
 }
 
 static int m88ds3103_set_voltage(struct dvb_frontend *fe,
-	fe_sec_voltage_t voltage)
+	fe_sec_voltage_t fe_sec_voltage)
 {
 	struct m88ds3103_priv *priv = fe->demodulator_priv;
-	u8 data;
+	int ret;
+	u8 u8tmp;
+	bool voltage_sel, voltage_en;
 
-	m88ds3103_rd_reg(priv, 0xa2, &data);
+	dev_dbg(&priv->i2c->dev, "%s: fe_sec_voltage=%d\n", __func__,
+			fe_sec_voltage);
 
-	data &= ~0x03; /* bit0 V/H, bit1 off/on */
-	if (priv->cfg->lnb_en_pol)
-		data |= 0x02;
+	if (!priv->warm) {
+		ret = -EAGAIN;
+		goto err;
+	}
 
-	switch (voltage) {
+	switch (fe_sec_voltage) {
 	case SEC_VOLTAGE_18:
-		if (priv->cfg->lnb_hv_pol == 0)
-			data |= 0x01;
+		voltage_sel = 1;
+		voltage_en = 1;
 		break;
 	case SEC_VOLTAGE_13:
-		if (priv->cfg->lnb_hv_pol)
-			data |= 0x01;
+		voltage_sel = 0;
+		voltage_en = 1;
 		break;
 	case SEC_VOLTAGE_OFF:
-		if (priv->cfg->lnb_en_pol)
-			data &= ~0x02;
-		else
-			data |= 0x02;
+		voltage_sel = 0;
+		voltage_en = 0;
 		break;
+	default:
+		dev_dbg(&priv->i2c->dev, "%s: invalid fe_sec_voltage\n",
+				__func__);
+		ret = -EINVAL;
+		goto err;
 	}
-	m88ds3103_wr_reg(priv, 0xa2, data);
+
+	/* output pin polarity */
+	voltage_sel ^= priv->cfg->lnb_hv_pol;
+	voltage_en ^= !priv->cfg->lnb_en_pol;
+
+	u8tmp = voltage_en << 1 | voltage_sel << 0;
+	ret = m88ds3103_wr_reg_mask(priv, 0xa2, u8tmp, 0x03);
+	if (ret)
+		goto err;
 
 	return 0;
+err:
+	dev_dbg(&priv->i2c->dev, "%s: failed=%d\n", __func__, ret);
+	return ret;
 }
 
 static int m88ds3103_diseqc_send_master_cmd(struct dvb_frontend *fe,
-- 
http://palosaari.fi/


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 6/6] m88ds3103: change .set_voltage() implementation
  2014-08-22  0:33 [PATCH 1/6] m88ts2022: fix coding style issues Antti Palosaari
                   ` (4 preceding siblings ...)
  2014-08-22  0:33 ` [PATCH 6/6] m88ds3103: change .set_voltage() implementation Antti Palosaari
@ 2014-08-22  3:19 ` Nibble Max
  2014-08-22 10:40   ` Antti Palosaari
  5 siblings, 1 reply; 8+ messages in thread
From: Nibble Max @ 2014-08-22  3:19 UTC (permalink / raw)
  To: Antti Palosaari; +Cc: linux-media


It is easier to understand for using "voltage_dis" to keep the same logic for voltage selection and off/on.

>Add some error checking and implement functionality a little bit
>differently.
>
>Signed-off-by: Antti Palosaari <crope@iki.fi>
>---
> drivers/media/dvb-frontends/m88ds3103.c | 50 ++++++++++++++++++++++-----------
> 1 file changed, 34 insertions(+), 16 deletions(-)
>
>diff --git a/drivers/media/dvb-frontends/m88ds3103.c b/drivers/media/dvb-frontends/m88ds3103.c
>index 238b04e..d8fbdfd 100644
>--- a/drivers/media/dvb-frontends/m88ds3103.c
>+++ b/drivers/media/dvb-frontends/m88ds3103.c
>@@ -1038,36 +1038,54 @@ err:
> }
> 
> static int m88ds3103_set_voltage(struct dvb_frontend *fe,
>-	fe_sec_voltage_t voltage)
>+	fe_sec_voltage_t fe_sec_voltage)
> {
> 	struct m88ds3103_priv *priv = fe->demodulator_priv;
>-	u8 data;
>+	int ret;
>+	u8 u8tmp;
>+	bool voltage_sel, voltage_en;
bool voltage_sel, voltage_dis;
> 
>-	m88ds3103_rd_reg(priv, 0xa2, &data);
>+	dev_dbg(&priv->i2c->dev, "%s: fe_sec_voltage=%d\n", __func__,
>+			fe_sec_voltage);
> 
>-	data &= ~0x03; /* bit0 V/H, bit1 off/on */
>-	if (priv->cfg->lnb_en_pol)
>-		data |= 0x02;
>+	if (!priv->warm) {
>+		ret = -EAGAIN;
>+		goto err;
>+	}
> 
>-	switch (voltage) {
>+	switch (fe_sec_voltage) {
> 	case SEC_VOLTAGE_18:
>-		if (priv->cfg->lnb_hv_pol == 0)
>-			data |= 0x01;
>+		voltage_sel = 1;
>+		voltage_en = 1;
voltage_dis = 0;
> 		break;
> 	case SEC_VOLTAGE_13:
>-		if (priv->cfg->lnb_hv_pol)
>-			data |= 0x01;
>+		voltage_sel = 0;
>+		voltage_en = 1;
voltage_dis = 0;
> 		break;
> 	case SEC_VOLTAGE_OFF:
>-		if (priv->cfg->lnb_en_pol)
>-			data &= ~0x02;
>-		else
>-			data |= 0x02;
>+		voltage_sel = 0;
>+		voltage_en = 0;
voltage_dis = 1;
> 		break;
>+	default:
>+		dev_dbg(&priv->i2c->dev, "%s: invalid fe_sec_voltage\n",
>+				__func__);
>+		ret = -EINVAL;
>+		goto err;
> 	}
>-	m88ds3103_wr_reg(priv, 0xa2, data);
>+
>+	/* output pin polarity */
>+	voltage_sel ^= priv->cfg->lnb_hv_pol;
>+	voltage_en ^= !priv->cfg->lnb_en_pol;
voltage_dis ^= priv->cfg->lnb_en_pol;
>+
>+	u8tmp = voltage_en << 1 | voltage_sel << 0;
u8tmp = voltage_dis << 1 | voltage_sel << 0;
>+	ret = m88ds3103_wr_reg_mask(priv, 0xa2, u8tmp, 0x03);
>+	if (ret)
>+		goto err;
> 
> 	return 0;
>+err:
>+	dev_dbg(&priv->i2c->dev, "%s: failed=%d\n", __func__, ret);
>+	return ret;
> }
> 
> static int m88ds3103_diseqc_send_master_cmd(struct dvb_frontend *fe,
>-- 
>http://palosaari.fi/
>
>--
>To unsubscribe from this list: send the line "unsubscribe linux-media" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 6/6] m88ds3103: change .set_voltage() implementation
  2014-08-22  3:19 ` Nibble Max
@ 2014-08-22 10:40   ` Antti Palosaari
  0 siblings, 0 replies; 8+ messages in thread
From: Antti Palosaari @ 2014-08-22 10:40 UTC (permalink / raw)
  To: Nibble Max; +Cc: linux-media

Moikka
Sure I can change that flag from voltage_en to voltage_dis. Mostly I
just wanted to get rid of those if () statements and bit operations when
handling boolean type flags.

regards
Antti

On 08/22/2014 06:19 AM, Nibble Max wrote:
> 
> It is easier to understand for using "voltage_dis" to keep the same logic for voltage selection and off/on.
> 
>> Add some error checking and implement functionality a little bit
>> differently.
>>
>> Signed-off-by: Antti Palosaari <crope@iki.fi>
>> ---
>> drivers/media/dvb-frontends/m88ds3103.c | 50 ++++++++++++++++++++++-----------
>> 1 file changed, 34 insertions(+), 16 deletions(-)
>>
>> diff --git a/drivers/media/dvb-frontends/m88ds3103.c b/drivers/media/dvb-frontends/m88ds3103.c
>> index 238b04e..d8fbdfd 100644
>> --- a/drivers/media/dvb-frontends/m88ds3103.c
>> +++ b/drivers/media/dvb-frontends/m88ds3103.c
>> @@ -1038,36 +1038,54 @@ err:
>> }
>>
>> static int m88ds3103_set_voltage(struct dvb_frontend *fe,
>> -	fe_sec_voltage_t voltage)
>> +	fe_sec_voltage_t fe_sec_voltage)
>> {
>> 	struct m88ds3103_priv *priv = fe->demodulator_priv;
>> -	u8 data;
>> +	int ret;
>> +	u8 u8tmp;
>> +	bool voltage_sel, voltage_en;
> bool voltage_sel, voltage_dis;
>>
>> -	m88ds3103_rd_reg(priv, 0xa2, &data);
>> +	dev_dbg(&priv->i2c->dev, "%s: fe_sec_voltage=%d\n", __func__,
>> +			fe_sec_voltage);
>>
>> -	data &= ~0x03; /* bit0 V/H, bit1 off/on */
>> -	if (priv->cfg->lnb_en_pol)
>> -		data |= 0x02;
>> +	if (!priv->warm) {
>> +		ret = -EAGAIN;
>> +		goto err;
>> +	}
>>
>> -	switch (voltage) {
>> +	switch (fe_sec_voltage) {
>> 	case SEC_VOLTAGE_18:
>> -		if (priv->cfg->lnb_hv_pol == 0)
>> -			data |= 0x01;
>> +		voltage_sel = 1;
>> +		voltage_en = 1;
> voltage_dis = 0;
>> 		break;
>> 	case SEC_VOLTAGE_13:
>> -		if (priv->cfg->lnb_hv_pol)
>> -			data |= 0x01;
>> +		voltage_sel = 0;
>> +		voltage_en = 1;
> voltage_dis = 0;
>> 		break;
>> 	case SEC_VOLTAGE_OFF:
>> -		if (priv->cfg->lnb_en_pol)
>> -			data &= ~0x02;
>> -		else
>> -			data |= 0x02;
>> +		voltage_sel = 0;
>> +		voltage_en = 0;
> voltage_dis = 1;
>> 		break;
>> +	default:
>> +		dev_dbg(&priv->i2c->dev, "%s: invalid fe_sec_voltage\n",
>> +				__func__);
>> +		ret = -EINVAL;
>> +		goto err;
>> 	}
>> -	m88ds3103_wr_reg(priv, 0xa2, data);
>> +
>> +	/* output pin polarity */
>> +	voltage_sel ^= priv->cfg->lnb_hv_pol;
>> +	voltage_en ^= !priv->cfg->lnb_en_pol;
> voltage_dis ^= priv->cfg->lnb_en_pol;
>> +
>> +	u8tmp = voltage_en << 1 | voltage_sel << 0;
> u8tmp = voltage_dis << 1 | voltage_sel << 0;
>> +	ret = m88ds3103_wr_reg_mask(priv, 0xa2, u8tmp, 0x03);
>> +	if (ret)
>> +		goto err;
>>
>> 	return 0;
>> +err:
>> +	dev_dbg(&priv->i2c->dev, "%s: failed=%d\n", __func__, ret);
>> +	return ret;
>> }
>>
>> static int m88ds3103_diseqc_send_master_cmd(struct dvb_frontend *fe,
>> -- 
>> http://palosaari.fi/
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-media" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

-- 
http://palosaari.fi/

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-08-22 10:40 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-22  0:33 [PATCH 1/6] m88ts2022: fix coding style issues Antti Palosaari
2014-08-22  0:33 ` [PATCH 2/6] m88ts2022: rename device state (priv => s) Antti Palosaari
2014-08-22  0:33 ` [PATCH 3/6] m88ts2022: clean up logging Antti Palosaari
2014-08-22  0:33 ` [PATCH 4/6] m88ts2022: convert to RegMap I2C API Antti Palosaari
2014-08-22  0:33 ` [PATCH 5/6] m88ts2022: change parameter type of m88ts2022_cmd Antti Palosaari
2014-08-22  0:33 ` [PATCH 6/6] m88ds3103: change .set_voltage() implementation Antti Palosaari
2014-08-22  3:19 ` Nibble Max
2014-08-22 10:40   ` Antti Palosaari

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.