From: Thor Thayer <tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org>
To: Andy Shevchenko
<andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Cc: <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
<grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
<jkosina-AlSwsSmVLrQ@public.gmane.org>,
<pawel.moll-5wv7dgnIgG8@public.gmane.org>,
<robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
<mark.rutland-5wv7dgnIgG8@public.gmane.org>,
<ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org>,
<dinguyen-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org>,
<linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
<linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
<tthayer.linux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
<axel.lin-8E1dMatC8ynQT0dZR+AlfA@public.gmane.org>,
<baruch-NswTu9S1W3P6gbPvEgmw2w@public.gmane.org>,
<jg1.han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>,
<galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
Subject: Re: [RFC/PATCH 0/2] spi: spi-dw: Select 16b or 32b register access
Date: Thu, 5 Mar 2015 14:41:14 -0600 [thread overview]
Message-ID: <54F8BF6A.70305@opensource.altera.com> (raw)
In-Reply-To: <1425552233.14897.189.camel-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Hi Andy,
On 03/05/2015 04:43 AM, Andy Shevchenko wrote:
> On Wed, 2015-03-04 at 16:01 -0600, Thor Thayer wrote:
>> Hi Andy,
>>
>> On 03/04/2015 02:44 PM, Andy Shevchenko wrote:
>>> On Wed, 2015-03-04 at 14:31 -0600, tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org wrote:
>>>> From: Thor Thayer <tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org>
>>>>
>>>> The Altera Arria10 SoC requires 32 bit accesses to peripherals. The
>>>> DesignWare SPI peripheral registers are on 32bit boundaries so this
>>>> patch is minimal. Function pointers are used to select 32bit access
>>>> or 16bit accesses.
>>>
>>>
>>> So, what is exactly the issue when we read only half of the register?
>>> Bus lock, or what?
>>>
>>
>> The read actually works on our chip but I changed both read and write to
>> be consistent. For Arria10, on a 16 bit write the data isn't written
>> into the DesignWare register.
>
> How did you exactly check this?
>
Sorry, I should have been more clear. The architecture of the Arria10
SoC enforces 32 bit writes - even for the APB bus. The Arria10's
interconnect only allows 32 bit writes.
As a result, the solution below doesn't work for us.
I do have a much cleaner patch to re-submit but I haven't applied it on
top of your patches yet & tested yet.
>>
>> In reply to your other email, yes it does support the DW_apb_ssi but the
>> Arria10 architecture requires 32 bit access (actually as you point out,
>> 32 bit writes). We're using the original driver on our older chips but
>> Arria10 requires upstream changes.
>
> Can you check if the following helps in your case:
>
> --- a/drivers/spi/spi-dw.h
> +++ b/drivers/spi/spi-dw.h
> @@ -170,6 +170,8 @@ static inline u16 dw_readw(struct dw_spi *dws, u32 offset)
> static inline void dw_writew(struct dw_spi *dws, u32 offset, u16 val)
> {
> __raw_writew(val, dws->regs + offset);
> + mmiowb():
> + __raw_readw(dws->regs + offset);
> }
>
> static inline void spi_enable_chip(struct dw_spi *dws, int enable)
>
--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Thor Thayer <tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org>
To: Andy Shevchenko
<andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Cc: broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
jkosina-AlSwsSmVLrQ@public.gmane.org,
pawel.moll-5wv7dgnIgG8@public.gmane.org,
robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
mark.rutland-5wv7dgnIgG8@public.gmane.org,
ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org,
dinguyen-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org,
linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
tthayer.linux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
axel.lin-8E1dMatC8ynQT0dZR+AlfA@public.gmane.org,
baruch-NswTu9S1W3P6gbPvEgmw2w@public.gmane.org,
jg1.han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org
Subject: Re: [RFC/PATCH 0/2] spi: spi-dw: Select 16b or 32b register access
Date: Thu, 5 Mar 2015 14:41:14 -0600 [thread overview]
Message-ID: <54F8BF6A.70305@opensource.altera.com> (raw)
In-Reply-To: <1425552233.14897.189.camel-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
Hi Andy,
On 03/05/2015 04:43 AM, Andy Shevchenko wrote:
> On Wed, 2015-03-04 at 16:01 -0600, Thor Thayer wrote:
>> Hi Andy,
>>
>> On 03/04/2015 02:44 PM, Andy Shevchenko wrote:
>>> On Wed, 2015-03-04 at 14:31 -0600, tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org wrote:
>>>> From: Thor Thayer <tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org>
>>>>
>>>> The Altera Arria10 SoC requires 32 bit accesses to peripherals. The
>>>> DesignWare SPI peripheral registers are on 32bit boundaries so this
>>>> patch is minimal. Function pointers are used to select 32bit access
>>>> or 16bit accesses.
>>>
>>>
>>> So, what is exactly the issue when we read only half of the register?
>>> Bus lock, or what?
>>>
>>
>> The read actually works on our chip but I changed both read and write to
>> be consistent. For Arria10, on a 16 bit write the data isn't written
>> into the DesignWare register.
>
> How did you exactly check this?
>
Sorry, I should have been more clear. The architecture of the Arria10
SoC enforces 32 bit writes - even for the APB bus. The Arria10's
interconnect only allows 32 bit writes.
As a result, the solution below doesn't work for us.
I do have a much cleaner patch to re-submit but I haven't applied it on
top of your patches yet & tested yet.
>>
>> In reply to your other email, yes it does support the DW_apb_ssi but the
>> Arria10 architecture requires 32 bit access (actually as you point out,
>> 32 bit writes). We're using the original driver on our older chips but
>> Arria10 requires upstream changes.
>
> Can you check if the following helps in your case:
>
> --- a/drivers/spi/spi-dw.h
> +++ b/drivers/spi/spi-dw.h
> @@ -170,6 +170,8 @@ static inline u16 dw_readw(struct dw_spi *dws, u32 offset)
> static inline void dw_writew(struct dw_spi *dws, u32 offset, u16 val)
> {
> __raw_writew(val, dws->regs + offset);
> + mmiowb():
> + __raw_readw(dws->regs + offset);
> }
>
> static inline void spi_enable_chip(struct dw_spi *dws, int enable)
>
--
To unsubscribe from this list: send the line "unsubscribe linux-spi" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-03-05 20:41 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-04 20:31 [RFC/PATCH 0/2] spi: spi-dw: Select 16b or 32b register access tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx
2015-03-04 20:31 ` tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx
[not found] ` <1425501075-17081-1-git-send-email-tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org>
2015-03-04 20:31 ` [RFC/PATCH 1/2] dt-binding: spi: spi-dw: Select 16b or 32b access for Designware SPI tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx
2015-03-04 20:31 ` tthayer-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx
2015-03-04 20:44 ` [RFC/PATCH 0/2] spi: spi-dw: Select 16b or 32b register access Andy Shevchenko
2015-03-04 22:01 ` Thor Thayer
2015-03-04 22:01 ` Thor Thayer
[not found] ` <54F7809E.2010307-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org>
2015-03-05 10:43 ` Andy Shevchenko
[not found] ` <1425552233.14897.189.camel-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-03-05 20:41 ` Thor Thayer [this message]
2015-03-05 20:41 ` Thor Thayer
2015-03-05 21:54 ` Andy Shevchenko
2015-03-06 23:06 ` Thor Thayer
2015-03-06 23:06 ` Thor Thayer
2015-03-04 20:31 ` [RFC/PATCH 2/2] spi: dw-spi: Pointers select 16b vs. 32b DesignWare access tthayer
2015-03-04 20:31 ` tthayer
2015-03-04 20:55 ` Andy Shevchenko
[not found] ` <1425502525.14897.185.camel-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2015-03-04 22:07 ` Thor Thayer
2015-03-04 22:07 ` Thor Thayer
2015-03-04 21:02 ` [RFC/PATCH 0/2] spi: spi-dw: Select 16b or 32b register access Andy Shevchenko
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=54F8BF6A.70305@opensource.altera.com \
--to=tthayer-yzvpicuk2abmcg4ihk0kfoh6mc4mb0vx@public.gmane.org \
--cc=andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=axel.lin-8E1dMatC8ynQT0dZR+AlfA@public.gmane.org \
--cc=baruch-NswTu9S1W3P6gbPvEgmw2w@public.gmane.org \
--cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=dinguyen-yzvPICuk2ABMcg4IHK0kFoH6Mc4MB0Vx@public.gmane.org \
--cc=galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org \
--cc=jg1.han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=jkosina-AlSwsSmVLrQ@public.gmane.org \
--cc=linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=pawel.moll-5wv7dgnIgG8@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=tthayer.linux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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.