RE: [PATCH 5/5] i2c: designware: Switch over to i2c_freq_mode_string()

Song Bao Hua (Barry Song)
2021-03-30T22:02:05Z

From: Andy Shevchenko [mailto:andy.shevchenko@gmail.com]
Sent: Wednesday, March 31, 2021 10:57 AM
To: Song Bao Hua (Barry Song) <song.bao.hua@hisilicon.com>
Cc: yangyicong <yangyicong@huawei.com>; wsa@kernel.org; andriy.shevchenko@linux.intel.com; linux-i2c@vger.kernel.org; Sergey.Semin@baikalelectronics.ru; linux-kernel@vger.kernel.org; digetx@gmail.com; treding@nvidia.com; jarkko.nikula@linux.intel.com; rmk+kernel@armlinux.org.uk; John Garry <john.garry@huawei.com>; mika.westerberg@linux.intel.com; Zengtao (B) <prime.zeng@hisilicon.com>; Linuxarm <linuxarm@huawei.com>
Subject: Re: [PATCH 5/5] i2c: designware: Switch over to i2c_freq_mode_string()

On Wednesday, March 31, 2021, Song Bao Hua (Barry Song) <song.bao.hua@hisilicon.com> wrote:

> -----Original Message-----
> From: yangyicong
> Sent: Wednesday, March 31, 2021 3:19 AM
> To: wsa@kernel.org; andriy.shevchenko@linux.intel.com;
> linux-i2c@vger.kernel.org; Sergey.Semin@baikalelectronics.ru;
> linux-kernel@vger.kernel.org
> Cc: digetx@gmail.com; treding@nvidia.com; jarkko.nikula@linux.intel.com;
> rmk+kernel@armlinux.org.uk; Song Bao Hua (Barry Song)
> <song.bao.hua@hisilicon.com>; John Garry <john.garry@huawei.com>;
> mika.westerberg@linux.intel.com; yangyicong <yangyicong@huawei.com>; Zengtao
> (B) <prime.zeng@hisilicon.com>; Linuxarm <linuxarm@huawei.com>
> Subject: [PATCH 5/5] i2c: designware: Switch over to i2c_freq_mode_string()
>
> From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>
> Use generic i2c_freq_mode_string() helper to print chosen bus speed.
>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
> Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
> ---
>  drivers/i2c/busses/i2c-designware-master.c | 20 ++++----------------
>  1 file changed, 4 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-designware-master.c
> b/drivers/i2c/busses/i2c-designware-master.c
> index dd27b9d..b64c4c8 100644
> --- a/drivers/i2c/busses/i2c-designware-master.c
> +++ b/drivers/i2c/busses/i2c-designware-master.c
> @@ -35,10 +35,10 @@ static void i2c_dw_configure_fifo_master(struct dw_i2c_dev
> *dev)
>
>  static int i2c_dw_set_timings_master(struct dw_i2c_dev *dev)
>  {
> -     const char *mode_str, *fp_str = "";
>       u32 comp_param1;
>       u32 sda_falling_time, scl_falling_time;
>       struct i2c_timings *t = &dev->timings;
> +     const char *fp_str = "";
>       u32 ic_clk;
>       int ret;
>
> @@ -153,22 +153,10 @@ static int i2c_dw_set_timings_master(struct dw_i2c_dev
> *dev)
>
>       ret = i2c_dw_set_sda_hold(dev);
>       if (ret)
> -             goto out;
> -
> -     switch (dev->master_cfg & DW_IC_CON_SPEED_MASK) {
> -     case DW_IC_CON_SPEED_STD:
> -             mode_str = "Standard Mode";
> -             break;
> -     case DW_IC_CON_SPEED_HIGH:
> -             mode_str = "High Speed Mode";
> -             break;
> -     default:
> -             mode_str = "Fast Mode";
> -     }
> -     dev_dbg(dev->dev, "Bus speed: %s%s\n", mode_str, fp_str);
> +             return ret;
>
> -out:
> -     return ret;
> +     dev_dbg(dev->dev, "Bus speed: %s\n",
> i2c_freq_mode_string(t->bus_freq_hz));

> Weird the original code was printing both mode and fp.
> And you are printing mode only.

>> Sorry, but I didn’t get what you mean here. The code is equivalent, and actually it will print even more.

The original code will print the string fp_str:
%s%s\n", mode_str, fp_str

The new code is printing mode_str only:
%s

> +     return 0;
>  }
>
>  /**
> --
> 2.8.1

--
With Best Regards,
Andy Shevchenko