linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] mn88472: fix firmware downloading
@ 2014-12-08 20:31 Benjamin Larsson
  2014-12-08 20:31 ` [PATCH 2/2] mn88472: implement firmware parity check Benjamin Larsson
  2014-12-08 20:55 ` [PATCH 1/2] mn88472: fix firmware downloading Antti Palosaari
  0 siblings, 2 replies; 5+ messages in thread
From: Benjamin Larsson @ 2014-12-08 20:31 UTC (permalink / raw)
  To: Antti Palosaari; +Cc: Linux Media Mailing List

The max amount of payload bytes in each i2c transfer when
loading the demodulator firmware is 16 bytes.

Signed-off-by: Benjamin Larsson <benjamin@southpole.se>
---
 drivers/staging/media/mn88472/mn88472.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/media/mn88472/mn88472.c b/drivers/staging/media/mn88472/mn88472.c
index ffee187..df7dbe9 100644
--- a/drivers/staging/media/mn88472/mn88472.c
+++ b/drivers/staging/media/mn88472/mn88472.c
@@ -15,6 +15,7 @@
  */
 
 #include "mn88472_priv.h"
+#define FW_BUF_SIZE 16
 
 static int mn88472_get_tune_settings(struct dvb_frontend *fe,
 	struct dvb_frontend_tune_settings *s)
@@ -331,10 +332,10 @@ static int mn88472_init(struct dvb_frontend *fe)
 		goto err;
 
 	for (remaining = fw->size; remaining > 0;
-			remaining -= (dev->i2c_wr_max - 1)) {
+			remaining -= FW_BUF_SIZE) {
 		len = remaining;
-		if (len > (dev->i2c_wr_max - 1))
-			len = (dev->i2c_wr_max - 1);
+		if (len > FW_BUF_SIZE)
+			len = FW_BUF_SIZE;
 
 		ret = regmap_bulk_write(dev->regmap[0], 0xf6,
 				&fw->data[fw->size - remaining], len);
-- 
1.9.1


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

* [PATCH 2/2] mn88472: implement firmware parity check
  2014-12-08 20:31 [PATCH 1/2] mn88472: fix firmware downloading Benjamin Larsson
@ 2014-12-08 20:31 ` Benjamin Larsson
  2014-12-08 20:59   ` Antti Palosaari
  2014-12-08 20:55 ` [PATCH 1/2] mn88472: fix firmware downloading Antti Palosaari
  1 sibling, 1 reply; 5+ messages in thread
From: Benjamin Larsson @ 2014-12-08 20:31 UTC (permalink / raw)
  To: Antti Palosaari; +Cc: Linux Media Mailing List

Signed-off-by: Benjamin Larsson <benjamin@southpole.se>
---
 drivers/staging/media/mn88472/mn88472.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/staging/media/mn88472/mn88472.c b/drivers/staging/media/mn88472/mn88472.c
index df7dbe9..1df85a7 100644
--- a/drivers/staging/media/mn88472/mn88472.c
+++ b/drivers/staging/media/mn88472/mn88472.c
@@ -294,6 +294,7 @@ static int mn88472_init(struct dvb_frontend *fe)
 	int ret, len, remaining;
 	const struct firmware *fw = NULL;
 	u8 *fw_file = MN88472_FIRMWARE;
+	unsigned int csum;
 
 	dev_dbg(&client->dev, "\n");
 
@@ -346,6 +347,20 @@ static int mn88472_init(struct dvb_frontend *fe)
 		}
 	}
 
+	/* parity check of firmware */
+	ret = regmap_read(dev->regmap[0], 0xf8, &csum);
+	if (ret) {
+		dev_err(&client->dev,
+				"parity reg read failed=%d\n", ret);
+		goto err;
+	}
+	if (csum & 0x10) {
+		dev_err(&client->dev,
+				"firmware parity check failed=0x%x\n", csum);
+		goto err;
+	}
+	dev_err(&client->dev, "firmware parity check succeeded=0x%x\n", csum);
+
 	ret = regmap_write(dev->regmap[0], 0xf5, 0x00);
 	if (ret)
 		goto err;
-- 
1.9.1


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

* Re: [PATCH 1/2] mn88472: fix firmware downloading
  2014-12-08 20:31 [PATCH 1/2] mn88472: fix firmware downloading Benjamin Larsson
  2014-12-08 20:31 ` [PATCH 2/2] mn88472: implement firmware parity check Benjamin Larsson
@ 2014-12-08 20:55 ` Antti Palosaari
  2014-12-08 20:59   ` Benjamin Larsson
  1 sibling, 1 reply; 5+ messages in thread
From: Antti Palosaari @ 2014-12-08 20:55 UTC (permalink / raw)
  To: Benjamin Larsson; +Cc: Linux Media Mailing List

Moikka!

But that patch is rather useless :] Only thing needed is to change 
existing value in file drivers/media/usb/dvb-usb-v2/rtl28xxu.c :
mn88472_config.i2c_wr_max = 22,
... and that leaves room for use even smaller values if there is an I2C 
adapter which cannot write even 17 bytes.

2nd thing is to add comment mn88472.h to specify that max limit and 
that's all.

regards
Antti


On 12/08/2014 10:31 PM, Benjamin Larsson wrote:
> The max amount of payload bytes in each i2c transfer when
> loading the demodulator firmware is 16 bytes.
>
> Signed-off-by: Benjamin Larsson <benjamin@southpole.se>
> ---
>   drivers/staging/media/mn88472/mn88472.c | 7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/staging/media/mn88472/mn88472.c b/drivers/staging/media/mn88472/mn88472.c
> index ffee187..df7dbe9 100644
> --- a/drivers/staging/media/mn88472/mn88472.c
> +++ b/drivers/staging/media/mn88472/mn88472.c
> @@ -15,6 +15,7 @@
>    */
>
>   #include "mn88472_priv.h"
> +#define FW_BUF_SIZE 16
>
>   static int mn88472_get_tune_settings(struct dvb_frontend *fe,
>   	struct dvb_frontend_tune_settings *s)
> @@ -331,10 +332,10 @@ static int mn88472_init(struct dvb_frontend *fe)
>   		goto err;
>
>   	for (remaining = fw->size; remaining > 0;
> -			remaining -= (dev->i2c_wr_max - 1)) {
> +			remaining -= FW_BUF_SIZE) {
>   		len = remaining;
> -		if (len > (dev->i2c_wr_max - 1))
> -			len = (dev->i2c_wr_max - 1);
> +		if (len > FW_BUF_SIZE)
> +			len = FW_BUF_SIZE;
>
>   		ret = regmap_bulk_write(dev->regmap[0], 0xf6,
>   				&fw->data[fw->size - remaining], len);
>

-- 
http://palosaari.fi/

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

* Re: [PATCH 1/2] mn88472: fix firmware downloading
  2014-12-08 20:55 ` [PATCH 1/2] mn88472: fix firmware downloading Antti Palosaari
@ 2014-12-08 20:59   ` Benjamin Larsson
  0 siblings, 0 replies; 5+ messages in thread
From: Benjamin Larsson @ 2014-12-08 20:59 UTC (permalink / raw)
  To: Antti Palosaari; +Cc: Linux Media Mailing List

On 12/08/2014 09:55 PM, Antti Palosaari wrote:
> Moikka!
>
> But that patch is rather useless :] Only thing needed is to change 
> existing value in file drivers/media/usb/dvb-usb-v2/rtl28xxu.c :
> mn88472_config.i2c_wr_max = 22,
> ... and that leaves room for use even smaller values if there is an 
> I2C adapter which cannot write even 17 bytes.
>
> 2nd thing is to add comment mn88472.h to specify that max limit and 
> that's all.
>
> regards
> Antti

Ok, I'll do that.

MvH
Benjamin Larsson

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

* Re: [PATCH 2/2] mn88472: implement firmware parity check
  2014-12-08 20:31 ` [PATCH 2/2] mn88472: implement firmware parity check Benjamin Larsson
@ 2014-12-08 20:59   ` Antti Palosaari
  0 siblings, 0 replies; 5+ messages in thread
From: Antti Palosaari @ 2014-12-08 20:59 UTC (permalink / raw)
  To: Benjamin Larsson; +Cc: Linux Media Mailing List

Reviewed-by: Antti Palosaari <crope@iki.fi>

PS. something to say about logging levels... but as it is staging 
driver, criteria for patches is not so high yet.

regards
Antti

On 12/08/2014 10:31 PM, Benjamin Larsson wrote:
> Signed-off-by: Benjamin Larsson <benjamin@southpole.se>
> ---
>   drivers/staging/media/mn88472/mn88472.c | 15 +++++++++++++++
>   1 file changed, 15 insertions(+)
>
> diff --git a/drivers/staging/media/mn88472/mn88472.c b/drivers/staging/media/mn88472/mn88472.c
> index df7dbe9..1df85a7 100644
> --- a/drivers/staging/media/mn88472/mn88472.c
> +++ b/drivers/staging/media/mn88472/mn88472.c
> @@ -294,6 +294,7 @@ static int mn88472_init(struct dvb_frontend *fe)
>   	int ret, len, remaining;
>   	const struct firmware *fw = NULL;
>   	u8 *fw_file = MN88472_FIRMWARE;
> +	unsigned int csum;
>
>   	dev_dbg(&client->dev, "\n");
>
> @@ -346,6 +347,20 @@ static int mn88472_init(struct dvb_frontend *fe)
>   		}
>   	}
>
> +	/* parity check of firmware */
> +	ret = regmap_read(dev->regmap[0], 0xf8, &csum);
> +	if (ret) {
> +		dev_err(&client->dev,
> +				"parity reg read failed=%d\n", ret);
> +		goto err;
> +	}
> +	if (csum & 0x10) {
> +		dev_err(&client->dev,
> +				"firmware parity check failed=0x%x\n", csum);
> +		goto err;
> +	}
> +	dev_err(&client->dev, "firmware parity check succeeded=0x%x\n", csum);
> +
>   	ret = regmap_write(dev->regmap[0], 0xf5, 0x00);
>   	if (ret)
>   		goto err;
>

-- 
http://palosaari.fi/

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

end of thread, other threads:[~2014-12-08 20:59 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-08 20:31 [PATCH 1/2] mn88472: fix firmware downloading Benjamin Larsson
2014-12-08 20:31 ` [PATCH 2/2] mn88472: implement firmware parity check Benjamin Larsson
2014-12-08 20:59   ` Antti Palosaari
2014-12-08 20:55 ` [PATCH 1/2] mn88472: fix firmware downloading Antti Palosaari
2014-12-08 20:59   ` Benjamin Larsson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).