From: Oliver Schinagl <oliver-dxLnbx3+1qmEVqv0pETR8A@public.gmane.org>
To: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org,
linux-ide-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
dev-3kdeTeqwOZ9EV1b7eY7vFQ@public.gmane.org,
maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org,
ijc-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org,
hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
oliver+list-dxLnbx3+1qmEVqv0pETR8A@public.gmane.org
Subject: Re: [PATCH 1/3] RFC: AHCI: libahci is missing DMA
Date: Wed, 04 Dec 2013 13:36:06 +0100 [thread overview]
Message-ID: <529F21B6.1020909@schinagl.nl> (raw)
In-Reply-To: <20131204123234.GC3158-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
Hey Tejun Heo,
On 04-12-13 13:32, Tejun Heo wrote:
> On Wed, Dec 04, 2013 at 01:10:53PM +0100, oliver-dxLnbx3+1qmEVqv0pETR8A@public.gmane.org wrote:
>> From: Oliver Schinagl <oliver-dxLnbx3+1qmEVqv0pETR8A@public.gmane.org>
>>
>> The Allwinner sunxi platforms have patched in the following to enable
>> DMA. This patch enables DMA controllers for the SUNXI Architecture.
>>
>> Signed-off-by: Olliver Schinagl <oliver-dxLnbx3+1qmEVqv0pETR8A@public.gmane.org>
>> ---
>> drivers/ata/ahci.h | 6 ++++++
>> drivers/ata/libahci.c | 8 ++++++++
>> 2 files changed, 14 insertions(+)
>>
>> diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
>> index 2289efdf..2bf2423 100644
>> --- a/drivers/ata/ahci.h
>> +++ b/drivers/ata/ahci.h
>> @@ -138,6 +138,7 @@ enum {
>> PORT_SCR_NTF = 0x3c, /* SATA phy register: SNotification */
>> PORT_FBS = 0x40, /* FIS-based Switching */
>> PORT_DEVSLP = 0x44, /* device sleep */
>> + PORT_DMA = 0x70, /* direct memory access */
>>
>> /* PORT_IRQ_{STAT,MASK} bits */
>> PORT_IRQ_COLD_PRES = (1 << 31), /* cold presence detect */
>> @@ -209,6 +210,11 @@ enum {
>> PORT_DEVSLP_DSP = (1 << 1), /* DevSlp present */
>> PORT_DEVSLP_ADSE = (1 << 0), /* Aggressive DevSlp enable */
>>
>> + /* PORT_DMA bits */
>> + PORT_DMA_SETUP_OFFSET = 8, /* dma setup offset */
>> + PORT_DMA_SETUP_MASK = (0xff << PORT_DMA_SETUP_OFFSET),/* dma mask */
>> + PORT_DMA_SETUP_INIT = (0x44 << 0),
> Ummm... this doesn't belong to ahci proper, right?
I have no idea why Allwinner added that and what it really does. We have
no documentation, only code drops.
I had high hopes someone around here knows what it could mean and where
it does belong.
>
>> +
>> /* hpriv->flags bits */
>>
>> #define AHCI_HFLAGS(flags) .private_data = (void *)(flags)
>> diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
>> index c482f8c..d697a74 100644
>> --- a/drivers/ata/libahci.c
>> +++ b/drivers/ata/libahci.c
>> @@ -570,6 +570,14 @@ void ahci_start_engine(struct ata_port *ap)
>> void __iomem *port_mmio = ahci_port_base(ap);
>> u32 tmp;
>>
>> +#ifdef CONFIG_ARCH_SUNXI
>> + /* Setup DMA before DMA start */
>> + tmp = readl(port_mmio + PORT_DMA);
>> + tmp &= ~PORT_DMA_SETUP_MASK;
>> + tmp |= PORT_DMA_SETUP_INIT << PORT_DMA_SETUP_OFFSET;
>> + writel(tmp, port_mmio + PORT_DMA);
>> +#endif
> If this is something platform device specific, wouldn't overriding
> ->port_start() which wraps around ahci_port_start() make more sense?
Again, I don't know, this is where Allwinner had put it. We don't even
know who's IP they use. I'm happy to start experimenting moving this
around a bit and will take your clue to figure out what you mean and if
it could work.
Oliver
>
> Thanks.
>
WARNING: multiple messages have this Message-ID (diff)
From: Oliver Schinagl <oliver@schinagl.nl>
To: Tejun Heo <tj@kernel.org>
Cc: grant.likely@linaro.org, rob.herring@calxeda.com,
linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org,
devicetree@vger.kernel.org, dev@linux-sunxi.org,
maxime.ripard@free-electrons.com, ijc@hellion.org.uk,
hdegoede@redhat.com, oliver+list@schinagl.nl
Subject: Re: [PATCH 1/3] RFC: AHCI: libahci is missing DMA
Date: Wed, 04 Dec 2013 13:36:06 +0100 [thread overview]
Message-ID: <529F21B6.1020909@schinagl.nl> (raw)
In-Reply-To: <20131204123234.GC3158@htj.dyndns.org>
Hey Tejun Heo,
On 04-12-13 13:32, Tejun Heo wrote:
> On Wed, Dec 04, 2013 at 01:10:53PM +0100, oliver@schinagl.nl wrote:
>> From: Oliver Schinagl <oliver@schinagl.nl>
>>
>> The Allwinner sunxi platforms have patched in the following to enable
>> DMA. This patch enables DMA controllers for the SUNXI Architecture.
>>
>> Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
>> ---
>> drivers/ata/ahci.h | 6 ++++++
>> drivers/ata/libahci.c | 8 ++++++++
>> 2 files changed, 14 insertions(+)
>>
>> diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
>> index 2289efdf..2bf2423 100644
>> --- a/drivers/ata/ahci.h
>> +++ b/drivers/ata/ahci.h
>> @@ -138,6 +138,7 @@ enum {
>> PORT_SCR_NTF = 0x3c, /* SATA phy register: SNotification */
>> PORT_FBS = 0x40, /* FIS-based Switching */
>> PORT_DEVSLP = 0x44, /* device sleep */
>> + PORT_DMA = 0x70, /* direct memory access */
>>
>> /* PORT_IRQ_{STAT,MASK} bits */
>> PORT_IRQ_COLD_PRES = (1 << 31), /* cold presence detect */
>> @@ -209,6 +210,11 @@ enum {
>> PORT_DEVSLP_DSP = (1 << 1), /* DevSlp present */
>> PORT_DEVSLP_ADSE = (1 << 0), /* Aggressive DevSlp enable */
>>
>> + /* PORT_DMA bits */
>> + PORT_DMA_SETUP_OFFSET = 8, /* dma setup offset */
>> + PORT_DMA_SETUP_MASK = (0xff << PORT_DMA_SETUP_OFFSET),/* dma mask */
>> + PORT_DMA_SETUP_INIT = (0x44 << 0),
> Ummm... this doesn't belong to ahci proper, right?
I have no idea why Allwinner added that and what it really does. We have
no documentation, only code drops.
I had high hopes someone around here knows what it could mean and where
it does belong.
>
>> +
>> /* hpriv->flags bits */
>>
>> #define AHCI_HFLAGS(flags) .private_data = (void *)(flags)
>> diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
>> index c482f8c..d697a74 100644
>> --- a/drivers/ata/libahci.c
>> +++ b/drivers/ata/libahci.c
>> @@ -570,6 +570,14 @@ void ahci_start_engine(struct ata_port *ap)
>> void __iomem *port_mmio = ahci_port_base(ap);
>> u32 tmp;
>>
>> +#ifdef CONFIG_ARCH_SUNXI
>> + /* Setup DMA before DMA start */
>> + tmp = readl(port_mmio + PORT_DMA);
>> + tmp &= ~PORT_DMA_SETUP_MASK;
>> + tmp |= PORT_DMA_SETUP_INIT << PORT_DMA_SETUP_OFFSET;
>> + writel(tmp, port_mmio + PORT_DMA);
>> +#endif
> If this is something platform device specific, wouldn't overriding
> ->port_start() which wraps around ahci_port_start() make more sense?
Again, I don't know, this is where Allwinner had put it. We don't even
know who's IP they use. I'm happy to start experimenting moving this
around a bit and will take your clue to figure out what you mean and if
it could work.
Oliver
>
> Thanks.
>
next prev parent reply other threads:[~2013-12-04 12:36 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-04 12:10 [PATCH 0/3] AHCI: sunxi: Add sunxi AHCI driver oliver-dxLnbx3+1qmEVqv0pETR8A
2013-12-04 12:10 ` oliver
[not found] ` <1386159055-10264-1-git-send-email-oliver-dxLnbx3+1qmEVqv0pETR8A@public.gmane.org>
2013-12-04 12:10 ` [PATCH 1/3] RFC: AHCI: libahci is missing DMA oliver-dxLnbx3+1qmEVqv0pETR8A
2013-12-04 12:10 ` oliver
2013-12-04 12:32 ` Tejun Heo
[not found] ` <20131204123234.GC3158-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
2013-12-04 12:36 ` Oliver Schinagl [this message]
2013-12-04 12:36 ` Oliver Schinagl
2013-12-04 12:47 ` Sergei Shtylyov
[not found] ` <529F2463.8080907-M4DtvfQ/ZS1MRgGoP+s0PdBPR1lH4CV8@public.gmane.org>
2013-12-04 13:09 ` Oliver Schinagl
2013-12-04 13:09 ` Oliver Schinagl
2013-12-04 12:10 ` [PATCH 2/3] ARM: sunxi: Add an ahci-platform compatible AHCI driver for the Allwinner SUNXi series of SoCs oliver-dxLnbx3+1qmEVqv0pETR8A
2013-12-04 12:10 ` oliver
[not found] ` <1386159055-10264-3-git-send-email-oliver-dxLnbx3+1qmEVqv0pETR8A@public.gmane.org>
2013-12-04 12:26 ` Mark Rutland
2013-12-04 12:26 ` Mark Rutland
[not found] ` <20131204122602.GN16025-NuALmloUBlrZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2013-12-04 12:49 ` Oliver Schinagl
2013-12-04 12:49 ` Oliver Schinagl
2013-12-04 12:37 ` Tejun Heo
[not found] ` <20131204123708.GD3158-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
2013-12-04 12:56 ` Oliver Schinagl
2013-12-04 12:56 ` Oliver Schinagl
[not found] ` <529F2677.3070208-dxLnbx3+1qmEVqv0pETR8A@public.gmane.org>
2013-12-04 13:14 ` Tejun Heo
2013-12-04 13:14 ` Tejun Heo
[not found] ` <20131204131402.GG3158-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
2013-12-04 13:16 ` Olliver Schinagl
2013-12-04 13:16 ` Olliver Schinagl
[not found] ` <529F2B41.8090009-dxLnbx3+1qmEVqv0pETR8A@public.gmane.org>
2013-12-04 13:23 ` Tejun Heo
2013-12-04 13:23 ` Tejun Heo
2013-12-06 9:01 ` Thomas Petazzoni
2013-12-06 9:12 ` Oliver Schinagl
2013-12-06 9:12 ` Oliver Schinagl
2013-12-06 11:06 ` Hans de Goede
[not found] ` <52A19502.1090409-dxLnbx3+1qmEVqv0pETR8A@public.gmane.org>
2013-12-06 9:18 ` Thomas Petazzoni
2013-12-06 9:18 ` Thomas Petazzoni
2013-12-15 19:00 ` Hans de Goede
2013-12-15 19:00 ` Hans de Goede
2013-12-15 19:04 ` Tejun Heo
2013-12-16 6:21 ` Oliver Schinagl
[not found] ` <20131204132312.GH3158-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
2013-12-11 14:51 ` Olliver Schinagl
2013-12-11 14:51 ` Olliver Schinagl
2013-12-12 6:40 ` Shawn Guo
2013-12-12 6:40 ` Shawn Guo
2013-12-12 8:47 ` Olliver Schinagl
2013-12-04 12:10 ` [PATCH 3/3] ARM: sunxi: dts: Add ahci support to a few A10 and A20 boards oliver-dxLnbx3+1qmEVqv0pETR8A
2013-12-04 12:10 ` oliver
[not found] ` <1386159055-10264-4-git-send-email-oliver-dxLnbx3+1qmEVqv0pETR8A@public.gmane.org>
2013-12-06 18:33 ` Maxime Ripard
2013-12-06 18:33 ` Maxime Ripard
2013-12-07 11:47 ` Olliver Schinagl
2013-12-07 11:47 ` Olliver Schinagl
[not found] ` <52A30ADB.7090106-dxLnbx3+1qmEVqv0pETR8A@public.gmane.org>
2013-12-07 13:11 ` Michal Suchanek
2013-12-07 13:11 ` [linux-sunxi] " Michal Suchanek
2013-12-09 19:16 ` Maxime Ripard
2013-12-09 19:16 ` Maxime Ripard
2013-12-04 12:14 ` [PATCH 0/3] AHCI: sunxi: Add sunxi AHCI driver Olliver Schinagl
2013-12-04 12:14 ` Olliver Schinagl
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=529F21B6.1020909@schinagl.nl \
--to=oliver-dxlnbx3+1qmevqv0petr8a@public.gmane.org \
--cc=dev-3kdeTeqwOZ9EV1b7eY7vFQ@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=ijc-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org \
--cc=linux-ide-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-sunxi-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
--cc=maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=oliver+list-dxLnbx3+1qmEVqv0pETR8A@public.gmane.org \
--cc=rob.herring-bsGFqQB8/DxBDgjK7y7TUQ@public.gmane.org \
--cc=tj-DgEjT+Ai2ygdnm+yROfE0A@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.