From: Maxime COQUELIN <maxime.coquelin@st.com>
To: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Cc: Wolfram Sang <wsa@the-dreams.de>,
Srinivas KANDAGATLA <srinivas.kandagatla@st.com>,
Rob Herring <rob.herring@calxeda.com>,
Pawel Moll <pawel.moll@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Stephen Warren <swarren@wwwdotorg.org>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Rob Landley <rob@landley.net>,
Russell King <linux@arm.linux.org.uk>,
Grant Likely <grant.likely@linaro.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
Stuart MENEFY <stuart.menefy@st.com>,
Lee Jones <lee.jones@linaro.org>,
Stephen GALLIMORE <stephen.gallimore@st.com>,
Gabriel FERNANDEZ <gabriel.fernandez@st.com>
Subject: Re: [PATCH v5 1/4] i2c: busses: i2c-st: Add ST I2C controller
Date: Thu, 17 Oct 2013 18:48:35 +0200 [thread overview]
Message-ID: <526014E3.70505@st.com> (raw)
In-Reply-To: <20131017141627.GD14104@ns203013.ovh.net>
On 10/17/2013 04:16 PM, Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 09:27 Thu 17 Oct , Maxime COQUELIN wrote:
>> Hi Jean-Christophe,
>>
>> On 10/16/2013 05:14 PM, Jean-Christophe PLAGNIOL-VILLARD wrote:
>>
>>
>> ...
>>>> +
>>>> +static inline void st_i2c_set_bits(void __iomem *reg, u32 mask)
>>>> +{
>>>> + writel(readl(reg) | mask, reg);
>>>> +}
>>>> +
>>>> +static inline void st_i2c_clr_bits(void __iomem *reg, u32 mask)
>>>> +{
>>>> + writel(readl(reg) & ~mask, reg);
>>> use set_bit api and use relaxed version
>> Using the set_bit api here does not match with the purpose of these
>> functions.
>> We want to be able to set/clear multiple bits, and AFAICS the set_bit
>> api does not
>> provide this possibility.
>>
>> I took example on i2c-nomadik for these functions.
>>
> so factorize the code not copy and paste
I won't create a new API for this.
If this is blocking for you, then I will just remove this functions.
>>>> +}
>>>> +
>>>> +/* From I2C Specifications v0.5 */
>>>> +static struct st_i2c_timings i2c_timings[] = {
>>>> use readsl
>> Since the read content is flushed, I prefer keeping it as it is instead
>> of allocating
>> a buffer of the FIFO's size.
> keep point is to speedup the bus
I meant I will use readl_relaxed, not readl.
>>> use relaxed version as much as possible
>> I was not comfortable with the different possibilities (_raw_readl,
>> readl_relaxed, readl...).
>> I found this interresting discussion:
>> _http://comments.gmane.org/gmane.linux.ports.arm.kernel/117626
>> From what I understood, you are right, I should be able to use
>> readl_relaxed everywhere.
>>
>> Maybe I should perform a readl on the interrupt mask register before
>> returning from the interrupt handler,
>> in order to ensure that the write to the IEN register is effective
>> before the IRQ for the device is re-enabled at GIC level.
>> Maybe this could avoid the few spurious interrupts I face sometimes, I
>> will have a try.
> ok
I failed to reproduce the spurious interrupt without the patch, so I
can't say
whether performing a readl at this stage helps.
>>>> +}
WARNING: multiple messages have this Message-ID (diff)
From: maxime.coquelin@st.com (Maxime COQUELIN)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 1/4] i2c: busses: i2c-st: Add ST I2C controller
Date: Thu, 17 Oct 2013 18:48:35 +0200 [thread overview]
Message-ID: <526014E3.70505@st.com> (raw)
In-Reply-To: <20131017141627.GD14104@ns203013.ovh.net>
On 10/17/2013 04:16 PM, Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 09:27 Thu 17 Oct , Maxime COQUELIN wrote:
>> Hi Jean-Christophe,
>>
>> On 10/16/2013 05:14 PM, Jean-Christophe PLAGNIOL-VILLARD wrote:
>>
>>
>> ...
>>>> +
>>>> +static inline void st_i2c_set_bits(void __iomem *reg, u32 mask)
>>>> +{
>>>> + writel(readl(reg) | mask, reg);
>>>> +}
>>>> +
>>>> +static inline void st_i2c_clr_bits(void __iomem *reg, u32 mask)
>>>> +{
>>>> + writel(readl(reg) & ~mask, reg);
>>> use set_bit api and use relaxed version
>> Using the set_bit api here does not match with the purpose of these
>> functions.
>> We want to be able to set/clear multiple bits, and AFAICS the set_bit
>> api does not
>> provide this possibility.
>>
>> I took example on i2c-nomadik for these functions.
>>
> so factorize the code not copy and paste
I won't create a new API for this.
If this is blocking for you, then I will just remove this functions.
>>>> +}
>>>> +
>>>> +/* From I2C Specifications v0.5 */
>>>> +static struct st_i2c_timings i2c_timings[] = {
>>>> use readsl
>> Since the read content is flushed, I prefer keeping it as it is instead
>> of allocating
>> a buffer of the FIFO's size.
> keep point is to speedup the bus
I meant I will use readl_relaxed, not readl.
>>> use relaxed version as much as possible
>> I was not comfortable with the different possibilities (_raw_readl,
>> readl_relaxed, readl...).
>> I found this interresting discussion:
>> _http://comments.gmane.org/gmane.linux.ports.arm.kernel/117626
>> From what I understood, you are right, I should be able to use
>> readl_relaxed everywhere.
>>
>> Maybe I should perform a readl on the interrupt mask register before
>> returning from the interrupt handler,
>> in order to ensure that the write to the IEN register is effective
>> before the IRQ for the device is re-enabled at GIC level.
>> Maybe this could avoid the few spurious interrupts I face sometimes, I
>> will have a try.
> ok
I failed to reproduce the spurious interrupt without the patch, so I
can't say
whether performing a readl at this stage helps.
>>>> +}
next prev parent reply other threads:[~2013-10-17 16:48 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-14 12:46 [PATCH v5 0/4] Add I2C support to ST SoCs Maxime COQUELIN
2013-10-14 12:46 ` Maxime COQUELIN
2013-10-14 12:46 ` Maxime COQUELIN
2013-10-14 12:46 ` [PATCH v5 1/4] i2c: busses: i2c-st: Add ST I2C controller Maxime COQUELIN
2013-10-14 12:46 ` Maxime COQUELIN
2013-10-16 15:14 ` Jean-Christophe PLAGNIOL-VILLARD
2013-10-16 15:14 ` Jean-Christophe PLAGNIOL-VILLARD
2013-10-16 15:14 ` Jean-Christophe PLAGNIOL-VILLARD
[not found] ` <20131016151419.GA14104-HVbc7XotTAhnXn40ka+A6Q@public.gmane.org>
2013-10-17 7:27 ` Maxime COQUELIN
2013-10-17 7:27 ` Maxime COQUELIN
2013-10-17 7:27 ` Maxime COQUELIN
2013-10-17 9:33 ` srinivas kandagatla
2013-10-17 9:33 ` srinivas kandagatla
2013-10-17 9:33 ` srinivas kandagatla
[not found] ` <525FAEED.7030207-qxv4g6HH51o@public.gmane.org>
2013-10-17 14:19 ` Jean-Christophe PLAGNIOL-VILLARD
2013-10-17 14:19 ` Jean-Christophe PLAGNIOL-VILLARD
2013-10-17 14:19 ` Jean-Christophe PLAGNIOL-VILLARD
2013-10-17 14:30 ` srinivas kandagatla
2013-10-17 14:30 ` srinivas kandagatla
2013-10-17 14:30 ` srinivas kandagatla
[not found] ` <525FF498.3060202-qxv4g6HH51o@public.gmane.org>
2013-10-17 14:49 ` Lucas Stach
2013-10-17 14:49 ` Lucas Stach
2013-10-17 14:49 ` Lucas Stach
[not found] ` <1382021369.4093.44.camel-WzVe3FnzCwFR6QfukMTsflXZhhPuCNm+@public.gmane.org>
2013-10-18 8:22 ` srinivas kandagatla
2013-10-18 8:22 ` srinivas kandagatla
2013-10-18 8:22 ` srinivas kandagatla
2013-10-28 15:02 ` Maxime Coquelin
2013-10-28 15:02 ` Maxime Coquelin
2013-10-28 15:02 ` Maxime Coquelin
[not found] ` <526E7C8C.8080603-qxv4g6HH51o@public.gmane.org>
2013-11-01 12:50 ` srinivas kandagatla
2013-11-01 12:50 ` srinivas kandagatla
2013-11-01 12:50 ` srinivas kandagatla
2013-10-17 15:53 ` Lee Jones
2013-10-17 15:53 ` Lee Jones
2013-10-17 16:09 ` Jean-Christophe PLAGNIOL-VILLARD
2013-10-17 16:09 ` Jean-Christophe PLAGNIOL-VILLARD
2013-10-17 16:09 ` Jean-Christophe PLAGNIOL-VILLARD
2013-10-17 14:16 ` Jean-Christophe PLAGNIOL-VILLARD
2013-10-17 14:16 ` Jean-Christophe PLAGNIOL-VILLARD
2013-10-17 16:48 ` Maxime COQUELIN [this message]
2013-10-17 16:48 ` Maxime COQUELIN
2013-10-28 19:25 ` Kumar Gala
2013-10-28 19:25 ` Kumar Gala
2013-10-29 13:19 ` Maxime Coquelin
2013-10-29 13:19 ` Maxime Coquelin
[not found] ` <526FB5FF.2060908-qxv4g6HH51o@public.gmane.org>
2013-10-29 15:49 ` Kumar Gala
2013-10-29 15:49 ` Kumar Gala
2013-10-29 15:49 ` Kumar Gala
2013-11-01 11:16 ` Wolfram Sang
2013-11-01 11:16 ` Wolfram Sang
2013-11-04 14:28 ` Maxime Coquelin
2013-11-04 14:28 ` Maxime Coquelin
2013-11-04 14:28 ` Maxime Coquelin
[not found] ` <1381754813-4679-1-git-send-email-maxime.coquelin-qxv4g6HH51o@public.gmane.org>
2013-10-14 12:46 ` [PATCH v5 2/4] ARM: STi: Supply I2C configuration to STiH416 SoC Maxime COQUELIN
2013-10-14 12:46 ` Maxime COQUELIN
2013-10-14 12:46 ` Maxime COQUELIN
2013-10-14 12:46 ` [PATCH v5 4/4] ARM: STi: Add I2C config to B2000 and B2020 boards Maxime COQUELIN
2013-10-14 12:46 ` Maxime COQUELIN
2013-10-14 12:46 ` Maxime COQUELIN
2013-10-16 14:54 ` [PATCH v5 0/4] Add I2C support to ST SoCs Maxime COQUELIN
2013-10-16 14:54 ` Maxime COQUELIN
2013-10-16 14:54 ` Maxime COQUELIN
2013-10-14 12:46 ` [PATCH v5 3/4] ARM: STi: Supply I2C configuration to STiH415 SoC Maxime COQUELIN
2013-10-14 12:46 ` Maxime COQUELIN
2013-10-14 12:46 ` Maxime COQUELIN
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=526014E3.70505@st.com \
--to=maxime.coquelin@st.com \
--cc=devicetree@vger.kernel.org \
--cc=gabriel.fernandez@st.com \
--cc=grant.likely@linaro.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=lee.jones@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=mark.rutland@arm.com \
--cc=pawel.moll@arm.com \
--cc=plagnioj@jcrosoft.com \
--cc=rob.herring@calxeda.com \
--cc=rob@landley.net \
--cc=srinivas.kandagatla@st.com \
--cc=stephen.gallimore@st.com \
--cc=stuart.menefy@st.com \
--cc=swarren@wwwdotorg.org \
--cc=wsa@the-dreams.de \
/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.