diff mbox

[V2,08/13] cx231xx: remember status of i2c port_3 switch

Message ID 1412140821-16285-9-git-send-email-zzam@gentoo.org (mailing list archive)
State New, archived
Headers show

Commit Message

Matthias Schwarzott Oct. 1, 2014, 5:20 a.m. UTC
If remembering is not stable enough, this must be changed to query from the register when needed.

Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
---
 drivers/media/usb/cx231xx/cx231xx-avcore.c | 3 +++
 drivers/media/usb/cx231xx/cx231xx.h        | 1 +
 2 files changed, 4 insertions(+)

Comments

Antti Palosaari Oct. 1, 2014, 7:36 p.m. UTC | #1
I don't understand that patch. Commit message should explain it likely 
better details.

You added flag 'port_3_switch_enabled' to device state. That is for I2C 
mux, but what it means? Does it means mux is currently switched to to 
port 3? Later you will use that flag to avoid unnecessary mux switching?

regards
Antti



On 10/01/2014 08:20 AM, Matthias Schwarzott wrote:
> If remembering is not stable enough, this must be changed to query from the register when needed.
>
> Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
> ---
>   drivers/media/usb/cx231xx/cx231xx-avcore.c | 3 +++
>   drivers/media/usb/cx231xx/cx231xx.h        | 1 +
>   2 files changed, 4 insertions(+)
>
> diff --git a/drivers/media/usb/cx231xx/cx231xx-avcore.c b/drivers/media/usb/cx231xx/cx231xx-avcore.c
> index 40a6987..4c85b6f 100644
> --- a/drivers/media/usb/cx231xx/cx231xx-avcore.c
> +++ b/drivers/media/usb/cx231xx/cx231xx-avcore.c
> @@ -1294,6 +1294,9 @@ int cx231xx_enable_i2c_port_3(struct cx231xx *dev, bool is_port_3)
>   	status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
>   					PWR_CTL_EN, value, 4);
>
> +	if (status >= 0)
> +		dev->port_3_switch_enabled = is_port_3;
> +
>   	return status;
>
>   }
> diff --git a/drivers/media/usb/cx231xx/cx231xx.h b/drivers/media/usb/cx231xx/cx231xx.h
> index f03338b..8a3c97b 100644
> --- a/drivers/media/usb/cx231xx/cx231xx.h
> +++ b/drivers/media/usb/cx231xx/cx231xx.h
> @@ -629,6 +629,7 @@ struct cx231xx {
>   	/* I2C adapters: Master 1 & 2 (External) & Master 3 (Internal only) */
>   	struct cx231xx_i2c i2c_bus[3];
>   	unsigned int xc_fw_load_done:1;
> +	unsigned int port_3_switch_enabled:1;
>   	/* locks */
>   	struct mutex gpio_i2c_lock;
>   	struct mutex i2c_lock;
>
Matthias Schwarzott Oct. 1, 2014, 9:02 p.m. UTC | #2
On 01.10.2014 21:36, Antti Palosaari wrote:
> I don't understand that patch. Commit message should explain it likely
> better details.
> 
> You added flag 'port_3_switch_enabled' to device state. That is for I2C
> mux, but what it means? Does it means mux is currently switched to to
> port 3? Later you will use that flag to avoid unnecessary mux switching?
> 
You are right, it should be described better.
Basically it is to be able to query the state of the mux.

This is in the next patch used for the hack that detects if a specific
tuner on a specific bus is accessed.

It is not used to suppress unnecessary switching.
The switching function explicitly reads the switch register and only
writes it if the value is different.

But maybe it would be more consistent if in this case the code also
reads the register.

Regards
Matthias

> regards
> Antti
> 
> 
> 
> On 10/01/2014 08:20 AM, Matthias Schwarzott wrote:
>> If remembering is not stable enough, this must be changed to query
>> from the register when needed.
>>
>> Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
>> ---
>>   drivers/media/usb/cx231xx/cx231xx-avcore.c | 3 +++
>>   drivers/media/usb/cx231xx/cx231xx.h        | 1 +
>>   2 files changed, 4 insertions(+)
>>
>> diff --git a/drivers/media/usb/cx231xx/cx231xx-avcore.c
>> b/drivers/media/usb/cx231xx/cx231xx-avcore.c
>> index 40a6987..4c85b6f 100644
>> --- a/drivers/media/usb/cx231xx/cx231xx-avcore.c
>> +++ b/drivers/media/usb/cx231xx/cx231xx-avcore.c
>> @@ -1294,6 +1294,9 @@ int cx231xx_enable_i2c_port_3(struct cx231xx
>> *dev, bool is_port_3)
>>       status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
>>                       PWR_CTL_EN, value, 4);
>>
>> +    if (status >= 0)
>> +        dev->port_3_switch_enabled = is_port_3;
>> +
>>       return status;
>>
>>   }
>> diff --git a/drivers/media/usb/cx231xx/cx231xx.h
>> b/drivers/media/usb/cx231xx/cx231xx.h
>> index f03338b..8a3c97b 100644
>> --- a/drivers/media/usb/cx231xx/cx231xx.h
>> +++ b/drivers/media/usb/cx231xx/cx231xx.h
>> @@ -629,6 +629,7 @@ struct cx231xx {
>>       /* I2C adapters: Master 1 & 2 (External) & Master 3 (Internal
>> only) */
>>       struct cx231xx_i2c i2c_bus[3];
>>       unsigned int xc_fw_load_done:1;
>> +    unsigned int port_3_switch_enabled:1;
>>       /* locks */
>>       struct mutex gpio_i2c_lock;
>>       struct mutex i2c_lock;
>>
> 

--
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
diff mbox

Patch

diff --git a/drivers/media/usb/cx231xx/cx231xx-avcore.c b/drivers/media/usb/cx231xx/cx231xx-avcore.c
index 40a6987..4c85b6f 100644
--- a/drivers/media/usb/cx231xx/cx231xx-avcore.c
+++ b/drivers/media/usb/cx231xx/cx231xx-avcore.c
@@ -1294,6 +1294,9 @@  int cx231xx_enable_i2c_port_3(struct cx231xx *dev, bool is_port_3)
 	status = cx231xx_write_ctrl_reg(dev, VRT_SET_REGISTER,
 					PWR_CTL_EN, value, 4);
 
+	if (status >= 0)
+		dev->port_3_switch_enabled = is_port_3;
+
 	return status;
 
 }
diff --git a/drivers/media/usb/cx231xx/cx231xx.h b/drivers/media/usb/cx231xx/cx231xx.h
index f03338b..8a3c97b 100644
--- a/drivers/media/usb/cx231xx/cx231xx.h
+++ b/drivers/media/usb/cx231xx/cx231xx.h
@@ -629,6 +629,7 @@  struct cx231xx {
 	/* I2C adapters: Master 1 & 2 (External) & Master 3 (Internal only) */
 	struct cx231xx_i2c i2c_bus[3];
 	unsigned int xc_fw_load_done:1;
+	unsigned int port_3_switch_enabled:1;
 	/* locks */
 	struct mutex gpio_i2c_lock;
 	struct mutex i2c_lock;