Message ID | 1480390327-24562-1-git-send-email-tnhuynh@apm.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
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? -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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? -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Nov 29, 2016 at 4:26 PM, Mika Westerberg <mika.westerberg@linux.intel.com> 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
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
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 <tnhuynh@apm.com> --- drivers/i2c/busses/i2c-designware-platdrv.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)