linux-media.vger.kernel.org archive mirror
 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 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).