From: Michal Simek <michal.simek@amd.com>
To: "Datta, Shubhrajyoti" <shubhrajyoti.datta@amd.com>,
Robert Hancock <robert.hancock@calian.com>,
"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>
Cc: Raviteja Narayanam <rna@xlnx.xilinx.com>,
Anurag Kumar Vulisha <anuragku@xilinx.com>,
"wsa@kernel.org" <wsa@kernel.org>
Subject: Re: [PATCH] i2c: cadence: Change large transfer count reset logic to be unconditional
Date: Thu, 14 Jul 2022 14:35:23 +0200 [thread overview]
Message-ID: <74df2bdb-13bf-4db6-36bc-e4eed807df25@amd.com> (raw)
In-Reply-To: <BY5PR12MB490276306C7DFAD42708540681889@BY5PR12MB4902.namprd12.prod.outlook.com>
On 7/14/22 13:58, Datta, Shubhrajyoti wrote:
> [AMD Official Use Only - General]
>
> Hi ,
>
>> -----Original Message-----
>> From: Robert Hancock <robert.hancock@calian.com>
>> Sent: Wednesday, June 15, 2022 4:59 AM
>> To: linux-i2c@vger.kernel.org
>> Cc: Raviteja Narayanam <rna@xlnx.xilinx.com>; Michal Simek
>> <michals@xilinx.com>; Anurag Kumar Vulisha <anuragku@xilinx.com>;
>> wsa@kernel.org; Shubhrajyoti Datta <shubhraj@xilinx.com>; Robert
>> Hancock <robert.hancock@calian.com>
>> Subject: [PATCH] i2c: cadence: Change large transfer count reset logic to be
>> unconditional
>>
>> Problems were observed on the Xilinx ZynqMP platform with large I2C reads.
>> When a read of 277 bytes was performed, the controller NAKed the transfer
>> after only 252 bytes were transferred and returned an ENXIO error on the
>> transfer.
>>
>> There is some code in cdns_i2c_master_isr to handle this case by resetting
>> the transfer count in the controller before it reaches 0, to allow larger
>> transfers to work, but it was conditional on the
>> CDNS_I2C_BROKEN_HOLD_BIT quirk being set on the controller, and ZynqMP
>> uses the r1p14 version of the core where this quirk is not being set. The
>> requirement to do this to support larger reads seems like an inherently
>> required workaround due to the core only having an 8-bit transfer size
>> register, so it does not appear that this should be conditional on the broken
>> HOLD bit quirk which is used elsewhere in the driver.
>>
>> Remove the dependency on the CDNS_I2C_BROKEN_HOLD_BIT for this
>> transfer size reset logic to fix this problem.
>>
> Reviewed-by Shubhrajyoti Datta <Shubhrajyoti.datta@amd.com>
>
>> Fixes: 63cab195bf49 ("i2c: removed work arounds in i2c driver for Zynq
>> Ultrascale+ MPSoC")
>> Signed-off-by: Robert Hancock <robert.hancock@calian.com>
>> ---
Acked-by: Michal Simek <michal.simek@amd.com>
Thanks,
Michal
next prev parent reply other threads:[~2022-07-14 12:35 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-14 23:29 [PATCH] i2c: cadence: Change large transfer count reset logic to be unconditional Robert Hancock
2022-06-16 5:17 ` Datta, Shubhrajyoti
2022-06-16 17:03 ` Robert Hancock
2022-07-14 11:58 ` Datta, Shubhrajyoti
2022-07-14 12:35 ` Michal Simek [this message]
2022-07-16 12:46 ` wsa
2022-07-16 12:46 ` Wolfram Sang
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=74df2bdb-13bf-4db6-36bc-e4eed807df25@amd.com \
--to=michal.simek@amd.com \
--cc=anuragku@xilinx.com \
--cc=linux-i2c@vger.kernel.org \
--cc=rna@xlnx.xilinx.com \
--cc=robert.hancock@calian.com \
--cc=shubhrajyoti.datta@amd.com \
--cc=wsa@kernel.org \
/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.