Messages in this thread |  | | Date | Wed, 04 Dec 2013 14:09:14 +0100 | From | Oliver Schinagl <> | Subject | Re: [PATCH 1/3] RFC: AHCI: libahci is missing DMA |
| |
On 04-12-13 13:47, Sergei Shtylyov wrote: > Hello. > > On 04-12-2013 16:10, 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 > [...] >> @@ -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), > > Why not shift it right by PORT_DMA_SETUP_OFFSET if you do it in the > next file anyway? Verbosity and clarity I suppose, try to reduce the number of magic values. I don't know what the preferred way is as we know so little about the IP. > > [...] >> 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 >> + > > I don't think #ifdef is appropriate here. It's not, but I was hoping Smarter devs then me would point me the right way ;)
Oliver > > WBR, Sergei >
|  |