2016-11-29 03:32:24

by Tin Huynh

[permalink] [raw]
Subject: [PATCH V1] i2c: designware: fix wrong tx/rx fifo for ACPI

ACPI always sets txfifo and rxfifo to 32. This configuration will
cause problem if the IP core supports a fifo size of 16 bytes only.
Set the default value to 0 so the driver will get these parameters
from IP core.

Signed-off-by: Tin Huynh <[email protected]>
---
drivers/i2c/busses/i2c-designware-platdrv.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index 0b42a12..c88a4b8 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
+++ b/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -97,8 +97,8 @@ static int dw_i2c_acpi_configure(struct platform_device *pdev)
const struct acpi_device_id *id;

dev->adapter.nr = -1;
- dev->tx_fifo_depth = 32;
- dev->rx_fifo_depth = 32;
+ dev->tx_fifo_depth = 0;
+ dev->rx_fifo_depth = 0;

/*
* Try to get SDA hold time and *CNT values from an ACPI method if
--
1.7.1


2016-11-29 09:04:59

by Mika Westerberg

[permalink] [raw]
Subject: Re: [PATCH V1] i2c: designware: fix wrong tx/rx fifo for ACPI

On Tue, Nov 29, 2016 at 10:32:07AM +0700, Tin Huynh wrote:
> ACPI always sets txfifo and rxfifo to 32. This configuration will
> cause problem if the IP core supports a fifo size of 16 bytes only.
> Set the default value to 0 so the driver will get these parameters
> from IP core.

Except when those values are not available which is the reason why we
have the default 32 for ACPI systems.

Are you saying you have DW I2C controller on ACPI system where the FIFO
is smaller than 32?

2016-11-29 09:26:53

by Mika Westerberg

[permalink] [raw]
Subject: Re: [PATCH V1] i2c: designware: fix wrong tx/rx fifo for ACPI

On Tue, Nov 29, 2016 at 04:15:13PM +0700, Tin Huynh wrote:
> Yes , My IP core supports 16 bytes size only . Should we get this
> parameter from ACPI table instead of 32 ?

What if we set the default 32 from ACPI as currently but then read the
value from hardware as well and pick the smaller one of the two?

2016-11-29 09:36:55

by Tin Huynh

[permalink] [raw]
Subject: Re: [PATCH V1] i2c: designware: fix wrong tx/rx fifo for ACPI

On Tue, Nov 29, 2016 at 4:26 PM, Mika Westerberg
<[email protected]> wrote:
> On Tue, Nov 29, 2016 at 04:15:13PM +0700, Tin Huynh wrote:
>> Yes , My IP core supports 16 bytes size only . Should we get this
>> parameter from ACPI table instead of 32 ?
>
> What if we set the default 32 from ACPI as currently but then read the
> value from hardware as well and pick the smaller one of the two?
Yes , it should be ok. I will create new patch as your request


--
Sr SW Eng