All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Phil Reid <preid@electromag.com.au>,
	jarkko.nikula@linux.intel.com, mika.westerberg@linux.intel.com,
	wsa@the-dreams.de, tim@krieglstein.org,
	linux-i2c@vger.kernel.org
Subject: Re: [PATCH v3 1/4] i2c: Switch to using gpiod interface for gpio bus recovery
Date: Thu, 28 Sep 2017 13:44:43 +0300	[thread overview]
Message-ID: <1506595483.16112.137.camel@linux.intel.com> (raw)
In-Reply-To: <1504073857-122449-2-git-send-email-preid@electromag.com.au>

On Wed, 2017-08-30 at 14:17 +0800, Phil Reid wrote:
> Currently the i2c gpio recovery code uses gpio integer interface
> instead of the gpiod. This change switch the core code to use
> the gpiod while still retaining compatibility with the gpio integer
> interface. This will allow individual driver to be updated and tested
> individual to switch to using the gpiod interface.

>  static int i2c_get_gpios_for_recovery(struct i2c_adapter *adap)
> @@ -158,6 +158,7 @@ static int i2c_get_gpios_for_recovery(struct
> i2c_adapter *adap)
>  		dev_warn(dev, "Can't get SCL gpio: %d\n", bri-
> >scl_gpio);
>  		return ret;
>  	}
> +	bri->scl_gpiod = gpio_to_desc(bri->scl_gpio);
>  
>  	if (bri->get_sda) {
>  		if (gpio_request_one(bri->sda_gpio, GPIOF_IN, "i2c-
> sda")) {
> @@ -167,6 +168,7 @@ static int i2c_get_gpios_for_recovery(struct
> i2c_adapter *adap)
>  			bri->get_sda = NULL;
>  		}
>  	}

> +	bri->sda_gpiod = gpio_to_desc(bri->sda_gpio);

Shouldn't it be inside conditional?

>  	return ret;
>  }
> @@ -175,10 +177,13 @@ static void i2c_put_gpios_for_recovery(struct
> i2c_adapter *adap)
>  {
>  	struct i2c_bus_recovery_info *bri = adap->bus_recovery_info;
>  
> -	if (bri->get_sda)
> +	if (bri->get_sda) {
>  		gpio_free(bri->sda_gpio);
> +		bri->sda_gpiod = NULL;
> +	}
>  
>  	gpio_free(bri->scl_gpio);
> +	bri->scl_gpiod = NULL;

Can we go other way around, i.e. put descriptors and assign plain
integers to something like -ENOENT?

>  }


> +	if ((bri->scl_gpiod) &&

Redundant parens.

> +	    (bri->recover_bus == i2c_generic_scl_recovery)) {

Ditto, though here it might be slightly better to read.

> +		bri->get_scl = get_scl_gpio_value;
> +		bri->set_scl = set_scl_gpio_value;
> +		if (bri->sda_gpiod)
> +			bri->get_sda = get_sda_gpio_value;
> +		return;
> +	}

>  	int scl_gpio;
>  	int sda_gpio;
> +	struct gpio_desc *scl_gpiod;
> +	struct gpio_desc *sda_gpiod;

I think we even could get rid of plain integers completely.
In case some call needs it we can derive it still from the descriptor.

-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy

  reply	other threads:[~2017-09-28 10:46 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-30  6:17 [PATCH v3 0/4] i2c: designware: add i2c gpio recovery option Phil Reid
2017-08-30  6:17 ` [PATCH v3 1/4] i2c: Switch to using gpiod interface for gpio bus recovery Phil Reid
2017-09-28 10:44   ` Andy Shevchenko [this message]
2017-09-28 10:54     ` Jarkko Nikula
2017-09-28 10:58       ` Andy Shevchenko
2017-09-29  6:59         ` Phil Reid
2017-09-29 11:48           ` Andy Shevchenko
2017-08-30  6:17 ` [PATCH v3 2/4] i2c: designware: move i2c_dw_plat_prepare_clk to common Phil Reid
2017-09-28 13:01   ` Jarkko Nikula
2017-08-30  6:17 ` [PATCH v3 3/4] i2c: designware: rename i2c_dw_plat_prepare_clk to i2c_dw_prepare_clk Phil Reid
2017-09-28 13:01   ` Jarkko Nikula
2017-08-30  6:17 ` [PATCH v3 4/4] i2c: designware: add i2c gpio recovery option Phil Reid
2017-09-28 10:58   ` Andy Shevchenko
2017-09-29  7:00     ` Phil Reid
2017-09-28 13:21   ` Jarkko Nikula
2017-10-06  5:56     ` Phil Reid
2017-09-28  7:37 ` [PATCH v3 0/4] " Phil Reid
2017-09-28  9:55   ` Jarkko Nikula
2017-09-28 10:55   ` Andy Shevchenko
2017-10-04  9:41     ` Ferry Toth

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=1506595483.16112.137.camel@linux.intel.com \
    --to=andriy.shevchenko@linux.intel.com \
    --cc=jarkko.nikula@linux.intel.com \
    --cc=linux-i2c@vger.kernel.org \
    --cc=mika.westerberg@linux.intel.com \
    --cc=preid@electromag.com.au \
    --cc=tim@krieglstein.org \
    --cc=wsa@the-dreams.de \
    /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 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.