All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH v3 0/7] ds3000/dw2102 improvements
       [not found] <1348837172-11784-1-git-send-email-remi.cardona@smartjog.com>
@ 2012-10-01 10:15 ` Rémi Cardona
  2012-10-03  0:34   ` Antti Palosaari
       [not found] ` <1348837172-11784-2-git-send-email-remi.cardona@smartjog.com>
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 10+ messages in thread
From: Rémi Cardona @ 2012-10-01 10:15 UTC (permalink / raw)
  To: linux-media, Antti Palosaari

Hi Antti,

I realized I forgot to CC you on those patches. Thanks for any further
comments you might have.

Cheers,

Rémi Cardona

-- 
SmartJog | T: +33 1 5868 6229
27 Blvd Hippolyte Marquès, 94200 Ivry-sur-Seine, France www.smartjog.com
| a TDF Group company

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

* Re: [PATCH v3 0/7] ds3000/dw2102 improvements
  2012-10-01 10:15 ` [PATCH v3 0/7] ds3000/dw2102 improvements Rémi Cardona
@ 2012-10-03  0:34   ` Antti Palosaari
  0 siblings, 0 replies; 10+ messages in thread
From: Antti Palosaari @ 2012-10-03  0:34 UTC (permalink / raw)
  To: Rémi Cardona; +Cc: linux-media

On 10/01/2012 01:15 PM, Rémi Cardona wrote:
> Hi Antti,
>
> I realized I forgot to CC you on those patches. Thanks for any further
> comments you might have.
>
> Cheers,
>
> Rémi Cardona
>

I reviewed again that set, no findings. Looks good!

thanks
Antti


-- 
http://palosaari.fi/

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

* Re: [PATCH 1/7] [media] ds3000: Declare MODULE_FIRMWARE usage
       [not found] ` <1348837172-11784-2-git-send-email-remi.cardona@smartjog.com>
@ 2012-10-03  0:36   ` Antti Palosaari
  0 siblings, 0 replies; 10+ messages in thread
From: Antti Palosaari @ 2012-10-03  0:36 UTC (permalink / raw)
  To: Rémi Cardona; +Cc: linux-media, liplianin

On 09/28/2012 03:59 PM, Rémi Cardona wrote:
> Signed-off-by: Rémi Cardona <remi.cardona@smartjog.com>

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

> ---
>   drivers/media/dvb-frontends/ds3000.c |    1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c
> index 4c8ac26..46874c7 100644
> --- a/drivers/media/dvb-frontends/ds3000.c
> +++ b/drivers/media/dvb-frontends/ds3000.c
> @@ -1310,3 +1310,4 @@ MODULE_DESCRIPTION("DVB Frontend module for Montage Technology "
>   			"DS3000/TS2020 hardware");
>   MODULE_AUTHOR("Konstantin Dimitrov");
>   MODULE_LICENSE("GPL");
> +MODULE_FIRMWARE(DS3000_DEFAULT_FIRMWARE);
>


-- 
http://palosaari.fi/

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

* Re: [PATCH 2/7] [media] ds3000: remove useless 'locking'
       [not found] ` <1348837172-11784-3-git-send-email-remi.cardona@smartjog.com>
@ 2012-10-03  0:37   ` Antti Palosaari
  0 siblings, 0 replies; 10+ messages in thread
From: Antti Palosaari @ 2012-10-03  0:37 UTC (permalink / raw)
  To: Rémi Cardona; +Cc: linux-media, liplianin

On 09/28/2012 03:59 PM, Rémi Cardona wrote:
> Since b9bf2eafaad9c1ef02fb3db38c74568be601a43a, the function
> ds3000_firmware_ondemand() is called only once during init. This
> locking scheme may have been useful when the firmware was loaded at
> each tune.
>
> Furthermore, it looks like this 'lock' was put in to prevent concurrent
> access (and not recursion as the comments suggest). However, this open-
> coded mechanism is anything but race-free and should have used a proper
> mutex.
>
> Signed-off-by: Rémi Cardona <remi.cardona@smartjog.com>

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

> ---
>   drivers/media/dvb-frontends/ds3000.c |    9 ---------
>   1 file changed, 9 deletions(-)
>
> diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c
> index 46874c7..474f26e 100644
> --- a/drivers/media/dvb-frontends/ds3000.c
> +++ b/drivers/media/dvb-frontends/ds3000.c
> @@ -233,7 +233,6 @@ struct ds3000_state {
>   	struct i2c_adapter *i2c;
>   	const struct ds3000_config *config;
>   	struct dvb_frontend frontend;
> -	u8 skip_fw_load;
>   	/* previous uncorrected block counter for DVB-S2 */
>   	u16 prevUCBS2;
>   };
> @@ -395,8 +394,6 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe)
>   	if (ds3000_readreg(state, 0xb2) <= 0)
>   		return ret;
>
> -	if (state->skip_fw_load)
> -		return 0;
>   	/* Load firmware */
>   	/* request the firmware, this will block until someone uploads it */
>   	printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", __func__,
> @@ -410,9 +407,6 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe)
>   		return ret;
>   	}
>
> -	/* Make sure we don't recurse back through here during loading */
> -	state->skip_fw_load = 1;
> -
>   	ret = ds3000_load_firmware(fe, fw);
>   	if (ret)
>   		printk("%s: Writing firmware to device failed\n", __func__);
> @@ -422,9 +416,6 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe)
>   	dprintk("%s: Firmware upload %s\n", __func__,
>   			ret == 0 ? "complete" : "failed");
>
> -	/* Ensure firmware is always loaded if required */
> -	state->skip_fw_load = 0;
> -
>   	return ret;
>   }
>
>


-- 
http://palosaari.fi/

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

* Re: [PATCH 3/7] [media] ds3000: properly report register read errors
       [not found] ` <1348837172-11784-4-git-send-email-remi.cardona@smartjog.com>
@ 2012-10-03  0:37   ` Antti Palosaari
  0 siblings, 0 replies; 10+ messages in thread
From: Antti Palosaari @ 2012-10-03  0:37 UTC (permalink / raw)
  To: Rémi Cardona; +Cc: linux-media, liplianin

On 09/28/2012 03:59 PM, Rémi Cardona wrote:
> This brings both ds3000_readreg() and ds3000_tuner_readreg() in line
> with ds3000_writereg() and ds3000_tuner_writereg() respectively.
>
> Signed-off-by: Rémi Cardona <remi.cardona@smartjog.com>

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

> ---
>   drivers/media/dvb-frontends/ds3000.c |   11 +++++++----
>   1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c
> index 474f26e..6752222 100644
> --- a/drivers/media/dvb-frontends/ds3000.c
> +++ b/drivers/media/dvb-frontends/ds3000.c
> @@ -340,7 +340,7 @@ static int ds3000_readreg(struct ds3000_state *state, u8 reg)
>
>   	if (ret != 2) {
>   		printk(KERN_ERR "%s: reg=0x%x(error=%d)\n", __func__, reg, ret);
> -		return ret;
> +		return -EREMOTEIO;
>   	}
>
>   	dprintk("%s: read reg 0x%02x, value 0x%02x\n", __func__, reg, b1[0]);
> @@ -367,12 +367,15 @@ static int ds3000_tuner_readreg(struct ds3000_state *state, u8 reg)
>   		}
>   	};
>
> -	ds3000_writereg(state, 0x03, 0x12);
> -	ret = i2c_transfer(state->i2c, msg, 2);
> +	ret = ds3000_writereg(state, 0x03, 0x12);
> +	if (ret < 0) {
> +		return -EREMOTEIO;
> +	}
>
> +	ret = i2c_transfer(state->i2c, msg, 2);
>   	if (ret != 2) {
>   		printk(KERN_ERR "%s: reg=0x%x(error=%d)\n", __func__, reg, ret);
> -		return ret;
> +		return -EREMOTEIO;
>   	}
>
>   	dprintk("%s: read reg 0x%02x, value 0x%02x\n", __func__, reg, b1[0]);
>


-- 
http://palosaari.fi/

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

* Re: [PATCH 4/7] [media] ds3000: bail out early on i2c failures during firmware load
       [not found] ` <1348837172-11784-5-git-send-email-remi.cardona@smartjog.com>
@ 2012-10-03  0:37   ` Antti Palosaari
  0 siblings, 0 replies; 10+ messages in thread
From: Antti Palosaari @ 2012-10-03  0:37 UTC (permalink / raw)
  To: Rémi Cardona; +Cc: linux-media, liplianin

On 09/28/2012 03:59 PM, Rémi Cardona wrote:
>   - if kmalloc() returns NULL, we can return immediately without trying
>     to kfree() a NULL pointer.
>   - if i2c_transfer() fails, error out immediately instead of trying to
>     upload the remaining bytes of the firmware.
>   - the error code is then properly propagated down to ds3000_initfe().
>
> Signed-off-by: Rémi Cardona <remi.cardona@smartjog.com>

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

> ---
>   drivers/media/dvb-frontends/ds3000.c |   12 +++++++-----
>   1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c
> index 6752222..162faaf 100644
> --- a/drivers/media/dvb-frontends/ds3000.c
> +++ b/drivers/media/dvb-frontends/ds3000.c
> @@ -280,15 +280,14 @@ static int ds3000_tuner_writereg(struct ds3000_state *state, int reg, int data)
>   static int ds3000_writeFW(struct ds3000_state *state, int reg,
>   				const u8 *data, u16 len)
>   {
> -	int i, ret = -EREMOTEIO;
> +	int i, ret = 0;
>   	struct i2c_msg msg;
>   	u8 *buf;
>
>   	buf = kmalloc(33, GFP_KERNEL);
>   	if (buf == NULL) {
>   		printk(KERN_ERR "Unable to kmalloc\n");
> -		ret = -ENOMEM;
> -		goto error;
> +		return -ENOMEM;
>   	}
>
>   	*(buf) = reg;
> @@ -308,8 +307,10 @@ static int ds3000_writeFW(struct ds3000_state *state, int reg,
>   			printk(KERN_ERR "%s: write error(err == %i, "
>   				"reg == 0x%02x\n", __func__, ret, reg);
>   			ret = -EREMOTEIO;
> +			goto error;
>   		}
>   	}
> +	ret = 0;
>
>   error:
>   	kfree(buf);
> @@ -426,6 +427,7 @@ static int ds3000_load_firmware(struct dvb_frontend *fe,
>   					const struct firmware *fw)
>   {
>   	struct ds3000_state *state = fe->demodulator_priv;
> +	int ret = 0;
>
>   	dprintk("%s\n", __func__);
>   	dprintk("Firmware is %zu bytes (%02x %02x .. %02x %02x)\n",
> @@ -438,10 +440,10 @@ static int ds3000_load_firmware(struct dvb_frontend *fe,
>   	/* Begin the firmware load process */
>   	ds3000_writereg(state, 0xb2, 0x01);
>   	/* write the entire firmware */
> -	ds3000_writeFW(state, 0xb0, fw->data, fw->size);
> +	ret = ds3000_writeFW(state, 0xb0, fw->data, fw->size);
>   	ds3000_writereg(state, 0xb2, 0x00);
>
> -	return 0;
> +	return ret;
>   }
>
>   static int ds3000_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage)
>


-- 
http://palosaari.fi/

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

* Re: [PATCH 5/7] [media] ds3000: properly report firmware probing issues
       [not found] ` <1348837172-11784-6-git-send-email-remi.cardona@smartjog.com>
@ 2012-10-03  0:37   ` Antti Palosaari
  0 siblings, 0 replies; 10+ messages in thread
From: Antti Palosaari @ 2012-10-03  0:37 UTC (permalink / raw)
  To: Rémi Cardona; +Cc: linux-media, liplianin

On 09/28/2012 03:59 PM, Rémi Cardona wrote:
> ds3000_readreg() returns negative values in case of i2c failures. The
> old code would simply return 0 when failing to read the 0xb2 register,
> misleading ds3000_initfe() into believing that the firmware had been
> correctly loaded.
>
> Signed-off-by: Rémi Cardona <remi.cardona@smartjog.com>

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

> ---
>   drivers/media/dvb-frontends/ds3000.c |    7 ++++++-
>   1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c
> index 162faaf..59184a8 100644
> --- a/drivers/media/dvb-frontends/ds3000.c
> +++ b/drivers/media/dvb-frontends/ds3000.c
> @@ -395,8 +395,13 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe)
>
>   	dprintk("%s()\n", __func__);
>
> -	if (ds3000_readreg(state, 0xb2) <= 0)
> +	ret = ds3000_readreg(state, 0xb2);
> +	if (ret == 0) {
> +		/* Firmware already uploaded, skipping */
>   		return ret;
> +	} else if (ret < 0) {
> +		return ret;
> +	}
>
>   	/* Load firmware */
>   	/* request the firmware, this will block until someone uploads it */
>


-- 
http://palosaari.fi/

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

* Re: [PATCH 6/7] [media] ds3000: add module parameter to force firmware upload
       [not found] ` <1348837172-11784-7-git-send-email-remi.cardona@smartjog.com>
@ 2012-10-03  0:38   ` Antti Palosaari
  2012-10-07 12:34     ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 10+ messages in thread
From: Antti Palosaari @ 2012-10-03  0:38 UTC (permalink / raw)
  To: Rémi Cardona; +Cc: linux-media, liplianin

On 09/28/2012 03:59 PM, Rémi Cardona wrote:
> Signed-off-by: Rémi Cardona <remi.cardona@smartjog.com>

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


> ---
>   drivers/media/dvb-frontends/ds3000.c |    6 +++++-
>   1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c
> index 59184a8..c66d731 100644
> --- a/drivers/media/dvb-frontends/ds3000.c
> +++ b/drivers/media/dvb-frontends/ds3000.c
> @@ -30,6 +30,7 @@
>   #include "ds3000.h"
>
>   static int debug;
> +static int force_fw_upload;
>
>   #define dprintk(args...) \
>   	do { \
> @@ -396,7 +397,7 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe)
>   	dprintk("%s()\n", __func__);
>
>   	ret = ds3000_readreg(state, 0xb2);
> -	if (ret == 0) {
> +	if (ret == 0 && force_fw_upload == 0) {
>   		/* Firmware already uploaded, skipping */
>   		return ret;
>   	} else if (ret < 0) {
> @@ -1307,6 +1308,9 @@ static struct dvb_frontend_ops ds3000_ops = {
>   module_param(debug, int, 0644);
>   MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)");
>
> +module_param(force_fw_upload, int, 0644);
> +MODULE_PARM_DESC(force_fw_upload, "Force firmware upload (default:0)");
> +
>   MODULE_DESCRIPTION("DVB Frontend module for Montage Technology "
>   			"DS3000/TS2020 hardware");
>   MODULE_AUTHOR("Konstantin Dimitrov");
>


-- 
http://palosaari.fi/

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

* Re: [PATCH 7/7] [media] dw2102: Declare MODULE_FIRMWARE usage
       [not found] ` <1348837172-11784-8-git-send-email-remi.cardona@smartjog.com>
@ 2012-10-03  0:41   ` Antti Palosaari
  0 siblings, 0 replies; 10+ messages in thread
From: Antti Palosaari @ 2012-10-03  0:41 UTC (permalink / raw)
  To: Rémi Cardona; +Cc: linux-media, liplianin

On 09/28/2012 03:59 PM, Rémi Cardona wrote:
> Signed-off-by: Rémi Cardona <remi.cardona@smartjog.com>

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


> ---
>   drivers/media/usb/dvb-usb/dw2102.c |   36 ++++++++++++++++++++++++++----------
>   1 file changed, 26 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/media/usb/dvb-usb/dw2102.c b/drivers/media/usb/dvb-usb/dw2102.c
> index 9382895..937c744 100644
> --- a/drivers/media/usb/dvb-usb/dw2102.c
> +++ b/drivers/media/usb/dvb-usb/dw2102.c
> @@ -80,6 +80,15 @@
>   #define DW2102_RC_QUERY (0x1a00)
>   #define DW2102_LED_CTRL (0x1b00)
>
> +#define DW2101_FIRMWARE "dvb-usb-dw2101.fw"
> +#define DW2102_FIRMWARE "dvb-usb-dw2102.fw"
> +#define DW2104_FIRMWARE "dvb-usb-dw2104.fw"
> +#define DW3101_FIRMWARE "dvb-usb-dw3101.fw"
> +#define S630_FIRMWARE   "dvb-usb-s630.fw"
> +#define S660_FIRMWARE   "dvb-usb-s660.fw"
> +#define P1100_FIRMWARE  "dvb-usb-p1100.fw"
> +#define P7500_FIRMWARE  "dvb-usb-p7500.fw"
> +
>   #define	err_str "did not find the firmware file. (%s) " \
>   		"Please see linux/Documentation/dvb/ for more details " \
>   		"on firmware-problems."
> @@ -1478,13 +1487,12 @@ static int dw2102_load_firmware(struct usb_device *dev,
>   	u8 reset;
>   	u8 reset16[] = {0, 0, 0, 0, 0, 0, 0};
>   	const struct firmware *fw;
> -	const char *fw_2101 = "dvb-usb-dw2101.fw";
>
>   	switch (dev->descriptor.idProduct) {
>   	case 0x2101:
> -		ret = request_firmware(&fw, fw_2101, &dev->dev);
> +		ret = request_firmware(&fw, DW2101_FIRMWARE, &dev->dev);
>   		if (ret != 0) {
> -			err(err_str, fw_2101);
> +			err(err_str, DW2101_FIRMWARE);
>   			return ret;
>   		}
>   		break;
> @@ -1586,7 +1594,7 @@ static int dw2102_load_firmware(struct usb_device *dev,
>   static struct dvb_usb_device_properties dw2102_properties = {
>   	.caps = DVB_USB_IS_AN_I2C_ADAPTER,
>   	.usb_ctrl = DEVICE_SPECIFIC,
> -	.firmware = "dvb-usb-dw2102.fw",
> +	.firmware = DW2102_FIRMWARE,
>   	.no_reconnect = 1,
>
>   	.i2c_algo = &dw2102_serit_i2c_algo,
> @@ -1641,7 +1649,7 @@ static struct dvb_usb_device_properties dw2102_properties = {
>   static struct dvb_usb_device_properties dw2104_properties = {
>   	.caps = DVB_USB_IS_AN_I2C_ADAPTER,
>   	.usb_ctrl = DEVICE_SPECIFIC,
> -	.firmware = "dvb-usb-dw2104.fw",
> +	.firmware = DW2104_FIRMWARE,
>   	.no_reconnect = 1,
>
>   	.i2c_algo = &dw2104_i2c_algo,
> @@ -1691,7 +1699,7 @@ static struct dvb_usb_device_properties dw2104_properties = {
>   static struct dvb_usb_device_properties dw3101_properties = {
>   	.caps = DVB_USB_IS_AN_I2C_ADAPTER,
>   	.usb_ctrl = DEVICE_SPECIFIC,
> -	.firmware = "dvb-usb-dw3101.fw",
> +	.firmware = DW3101_FIRMWARE,
>   	.no_reconnect = 1,
>
>   	.i2c_algo = &dw3101_i2c_algo,
> @@ -1739,7 +1747,7 @@ static struct dvb_usb_device_properties s6x0_properties = {
>   	.caps = DVB_USB_IS_AN_I2C_ADAPTER,
>   	.usb_ctrl = DEVICE_SPECIFIC,
>   	.size_of_priv = sizeof(struct s6x0_state),
> -	.firmware = "dvb-usb-s630.fw",
> +	.firmware = S630_FIRMWARE,
>   	.no_reconnect = 1,
>
>   	.i2c_algo = &s6x0_i2c_algo,
> @@ -1879,7 +1887,7 @@ static int dw2102_probe(struct usb_interface *intf,
>   		return -ENOMEM;
>   	/* copy default structure */
>   	/* fill only different fields */
> -	p1100->firmware = "dvb-usb-p1100.fw";
> +	p1100->firmware = P1100_FIRMWARE;
>   	p1100->devices[0] = d1100;
>   	p1100->rc.legacy.rc_map_table = rc_map_tbs_table;
>   	p1100->rc.legacy.rc_map_size = ARRAY_SIZE(rc_map_tbs_table);
> @@ -1891,7 +1899,7 @@ static int dw2102_probe(struct usb_interface *intf,
>   		kfree(p1100);
>   		return -ENOMEM;
>   	}
> -	s660->firmware = "dvb-usb-s660.fw";
> +	s660->firmware = S660_FIRMWARE;
>   	s660->num_device_descs = 3;
>   	s660->devices[0] = d660;
>   	s660->devices[1] = d480_1;
> @@ -1905,7 +1913,7 @@ static int dw2102_probe(struct usb_interface *intf,
>   		kfree(s660);
>   		return -ENOMEM;
>   	}
> -	p7500->firmware = "dvb-usb-p7500.fw";
> +	p7500->firmware = P7500_FIRMWARE;
>   	p7500->devices[0] = d7500;
>   	p7500->rc.legacy.rc_map_table = rc_map_tbs_table;
>   	p7500->rc.legacy.rc_map_size = ARRAY_SIZE(rc_map_tbs_table);
> @@ -1949,3 +1957,11 @@ MODULE_DESCRIPTION("Driver for DVBWorld DVB-S 2101, 2102, DVB-S2 2104,"
>   				" Geniatech SU3000 devices");
>   MODULE_VERSION("0.1");
>   MODULE_LICENSE("GPL");
> +MODULE_FIRMWARE(DW2101_FIRMWARE);
> +MODULE_FIRMWARE(DW2102_FIRMWARE);
> +MODULE_FIRMWARE(DW2104_FIRMWARE);
> +MODULE_FIRMWARE(DW3101_FIRMWARE);
> +MODULE_FIRMWARE(S630_FIRMWARE);
> +MODULE_FIRMWARE(S660_FIRMWARE);
> +MODULE_FIRMWARE(P1100_FIRMWARE);
> +MODULE_FIRMWARE(P7500_FIRMWARE);
>


-- 
http://palosaari.fi/

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

* Re: [PATCH 6/7] [media] ds3000: add module parameter to force firmware upload
  2012-10-03  0:38   ` [PATCH 6/7] [media] ds3000: add module parameter to force firmware upload Antti Palosaari
@ 2012-10-07 12:34     ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 10+ messages in thread
From: Mauro Carvalho Chehab @ 2012-10-07 12:34 UTC (permalink / raw)
  To: Antti Palosaari; +Cc: Rémi Cardona, linux-media, liplianin

Em Wed, 03 Oct 2012 03:38:19 +0300
Antti Palosaari <crope@iki.fi> escreveu:

> On 09/28/2012 03:59 PM, Rémi Cardona wrote:
> > Signed-off-by: Rémi Cardona <remi.cardona@smartjog.com>

Next time, please provide a better comment: why such change is
needed?

> 
> Reviewed-by: Antti Palosaari <crope@iki.fi>
> 
> 
> > ---
> >   drivers/media/dvb-frontends/ds3000.c |    6 +++++-
> >   1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c
> > index 59184a8..c66d731 100644
> > --- a/drivers/media/dvb-frontends/ds3000.c
> > +++ b/drivers/media/dvb-frontends/ds3000.c
> > @@ -30,6 +30,7 @@
> >   #include "ds3000.h"
> >
> >   static int debug;
> > +static int force_fw_upload;
> >
> >   #define dprintk(args...) \
> >   	do { \
> > @@ -396,7 +397,7 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe)
> >   	dprintk("%s()\n", __func__);
> >
> >   	ret = ds3000_readreg(state, 0xb2);
> > -	if (ret == 0) {
> > +	if (ret == 0 && force_fw_upload == 0) {

This hunk got a conflict. I solved it manually and applied. See below.

Regards,
Mauro

-

[PATCH] [media] ds3000: add module parameter to force firmware upload

From: Rémi Cardona <remi.cardona@smartjog.com>

[mchehab@redhat.com: Fix a merge conflict]
Signed-off-by: Rémi Cardona <remi.cardona@smartjog.com>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

diff --git a/drivers/media/dvb-frontends/ds3000.c b/drivers/media/dvb-frontends/ds3000.c
index 4c8ac26..5b63908 100644
--- a/drivers/media/dvb-frontends/ds3000.c
+++ b/drivers/media/dvb-frontends/ds3000.c
@@ -30,6 +30,7 @@
 #include "ds3000.h"
 
 static int debug;
+static int force_fw_upload;
 
 #define dprintk(args...) \
 	do { \
@@ -392,11 +393,13 @@ static int ds3000_firmware_ondemand(struct dvb_frontend *fe)
 
 	dprintk("%s()\n", __func__);
 
-	if (ds3000_readreg(state, 0xb2) <= 0)
+	ret = ds3000_readreg(state, 0xb2);
+	if (ret < 0)
 		return ret;
 
-	if (state->skip_fw_load)
-		return 0;
+	if (state->skip_fw_load || !force_fw_upload)
+		return 0;	/* Firmware already uploaded, skipping */
+
 	/* Load firmware */
 	/* request the firmware, this will block until someone uploads it */
 	printk(KERN_INFO "%s: Waiting for firmware upload (%s)...\n", __func__,
@@ -1306,6 +1309,9 @@ static struct dvb_frontend_ops ds3000_ops = {
 module_param(debug, int, 0644);
 MODULE_PARM_DESC(debug, "Activates frontend debugging (default:0)");
 
+module_param(force_fw_upload, int, 0644);
+MODULE_PARM_DESC(force_fw_upload, "Force firmware upload (default:0)");
+
 MODULE_DESCRIPTION("DVB Frontend module for Montage Technology "
 			"DS3000/TS2020 hardware");
 MODULE_AUTHOR("Konstantin Dimitrov");

-- 
Regards,
Mauro

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

end of thread, other threads:[~2012-10-07 12:35 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1348837172-11784-1-git-send-email-remi.cardona@smartjog.com>
2012-10-01 10:15 ` [PATCH v3 0/7] ds3000/dw2102 improvements Rémi Cardona
2012-10-03  0:34   ` Antti Palosaari
     [not found] ` <1348837172-11784-2-git-send-email-remi.cardona@smartjog.com>
2012-10-03  0:36   ` [PATCH 1/7] [media] ds3000: Declare MODULE_FIRMWARE usage Antti Palosaari
     [not found] ` <1348837172-11784-3-git-send-email-remi.cardona@smartjog.com>
2012-10-03  0:37   ` [PATCH 2/7] [media] ds3000: remove useless 'locking' Antti Palosaari
     [not found] ` <1348837172-11784-4-git-send-email-remi.cardona@smartjog.com>
2012-10-03  0:37   ` [PATCH 3/7] [media] ds3000: properly report register read errors Antti Palosaari
     [not found] ` <1348837172-11784-5-git-send-email-remi.cardona@smartjog.com>
2012-10-03  0:37   ` [PATCH 4/7] [media] ds3000: bail out early on i2c failures during firmware load Antti Palosaari
     [not found] ` <1348837172-11784-6-git-send-email-remi.cardona@smartjog.com>
2012-10-03  0:37   ` [PATCH 5/7] [media] ds3000: properly report firmware probing issues Antti Palosaari
     [not found] ` <1348837172-11784-7-git-send-email-remi.cardona@smartjog.com>
2012-10-03  0:38   ` [PATCH 6/7] [media] ds3000: add module parameter to force firmware upload Antti Palosaari
2012-10-07 12:34     ` Mauro Carvalho Chehab
     [not found] ` <1348837172-11784-8-git-send-email-remi.cardona@smartjog.com>
2012-10-03  0:41   ` [PATCH 7/7] [media] dw2102: Declare MODULE_FIRMWARE usage 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.