linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Antti Palosaari <crope@iki.fi>
To: Matthias Schwarzott <zzam@gentoo.org>,
	linux-media@vger.kernel.org, mchehab@osg.samsung.com
Subject: Re: [PATCH V3 08/13] cx231xx: remember status of i2c port_3 switch
Date: Thu, 02 Oct 2014 08:34:32 +0300	[thread overview]
Message-ID: <542CE3E8.2050705@iki.fi> (raw)
In-Reply-To: <1412227265-17453-9-git-send-email-zzam@gentoo.org>



On 10/02/2014 08:21 AM, Matthias Schwarzott wrote:
> This is used later for is_tuner function that switches i2c behaviour for
> some tuners.
>
> V2: Add comments about possible improvements for port_3 switch function.
>
> Signed-off-by: Matthias Schwarzott <zzam@gentoo.org>
> ---
>   drivers/media/usb/cx231xx/cx231xx-avcore.c | 10 ++++++++++
>   drivers/media/usb/cx231xx/cx231xx.h        |  1 +
>   2 files changed, 11 insertions(+)
>
> diff --git a/drivers/media/usb/cx231xx/cx231xx-avcore.c b/drivers/media/usb/cx231xx/cx231xx-avcore.c
> index 40a6987..148b5fa 100644
> --- a/drivers/media/usb/cx231xx/cx231xx-avcore.c
> +++ b/drivers/media/usb/cx231xx/cx231xx-avcore.c
> @@ -1272,6 +1272,12 @@ int cx231xx_enable_i2c_port_3(struct cx231xx *dev, bool is_port_3)
>
>   	if (dev->board.dont_use_port_3)
>   		is_port_3 = false;
> +
> +	/* Should this code check dev->port_3_switch_enabled first */
> +	/* to skip unnecessary reading of the register? */
> +	/* If yes, the flag dev->port_3_switch_enabled must be initialized */
> +	/* correctly. */

That multiline comment is violates Linux CodingStyle. See 
Documentation/CodingStyle

> +
>   	status = cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER,
>   				       PWR_CTL_EN, value, 4);
>   	if (status < 0)
> @@ -1294,6 +1300,10 @@ 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);
>
> +	/* remember status of the switch for usage in is_tuner */
> +	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;
>

I trust functionality is correct. However, I expected to see mux 
switching logic inside mux select() / deselect(), maybe with caching mux 
switch position in order to avoid I/O needed for checking mux switch 
position.

But as I don't know that driver internals very well, I am not adding 
reviewed by tag, which does not mean that is wrong. It is simply because 
I don't know.

regards
Antti

-- 
http://palosaari.fi/

  reply	other threads:[~2014-10-02  5:34 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-02  5:20 cx231xx: Use muxed i2c adapters instead of custom switching Matthias Schwarzott
2014-10-02  5:20 ` [PATCH V3 01/13] cx231xx: let i2c bus scanning use its own i2c_client Matthias Schwarzott
2014-10-02  5:20 ` [PATCH V3 02/13] cx231xx: use own i2c_client for eeprom access Matthias Schwarzott
2014-10-02  5:20 ` [PATCH V3 03/13] cx231xx: delete i2c_client per bus Matthias Schwarzott
2014-10-02  5:20 ` [PATCH V3 04/13] cx231xx: give each master i2c bus a seperate name Matthias Schwarzott
2014-10-02  5:25   ` Antti Palosaari
2014-10-02  5:20 ` [PATCH V3 05/13] cx231xx: Modifiy the symbolic constants for i2c ports and describe Matthias Schwarzott
2014-10-02  5:20 ` [PATCH V3 06/13] cx231xx: Use symbolic constants for i2c ports instead of numbers Matthias Schwarzott
2014-10-02  5:20 ` [PATCH V3 07/13] cx231xx: add wrapper to get the i2c_adapter pointer Matthias Schwarzott
2014-10-02  5:21 ` [PATCH V3 08/13] cx231xx: remember status of i2c port_3 switch Matthias Schwarzott
2014-10-02  5:34   ` Antti Palosaari [this message]
2014-10-02  5:21 ` [PATCH V3 09/13] cx231xx: let is_tuner check the real i2c port and not the i2c master number Matthias Schwarzott
2014-10-02  5:21 ` [PATCH V3 10/13] cx231xx: change usage of I2C_1 to the real i2c port Matthias Schwarzott
2014-10-30 19:27   ` Mauro Carvalho Chehab
2014-10-02  5:21 ` [PATCH V3 11/13] cx231xx: register i2c mux adapters for master1 and use as I2C_1_MUX_1 and I2C_1_MUX_3 Matthias Schwarzott
2014-10-02  5:21 ` [PATCH V3 12/13] cx231xx: drop unconditional port3 switching Matthias Schwarzott
2014-10-02  5:21 ` [PATCH V3 13/13] cx231xx: scan all four existing i2c busses instead of the 3 masters Matthias Schwarzott

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=542CE3E8.2050705@iki.fi \
    --to=crope@iki.fi \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@osg.samsung.com \
    --cc=zzam@gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).