Re: [PATCH 4/6] i2c: designware: Detect the FIFO size in the common code

From: Jarkko Nikula
Date: Thu Mar 12 2020 - 10:50:12 EST


On 3/6/20 5:01 PM, Andy Shevchenko wrote:
On Fri, Mar 06, 2020 at 04:19:54PM +0300, Sergey.Semin@xxxxxxxxxxxxxxxxxxxx wrote:
From: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx>

The problem with detecting the FIFO depth in the platform driver
is that in order to implement this we have to access the controller
IC_COMP_PARAM_1 register. Currently it's done before the
i2c_dw_set_reg_access() method execution, which is errors prone since
the method determines the registers endianness and access mode and we
can't use dw_readl/dw_writel accessors before this information is
retrieved. We also can't move the i2c_dw_set_reg_access() function
invocation to after the master/slave probe functions call (when endianness
and access mode are determined), since the FIFO depth information is used
by them for initializations. So in order to fix the problem we have no
choice but to move the FIFO size detection methods to the common code and
call it at the probe stage.

Sounds reasonable.

Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>

Acked-by: Jarkko Nikula <jarkko.nikula@xxxxxxxxxxxxxxx>