[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <201403201929.13633.arnd@arndb.de>
Date: Thu, 20 Mar 2014 19:29:13 +0100
From: Arnd Bergmann <arnd@...db.de>
To: Ben Dooks <ben.dooks@...ethink.co.uk>
Cc: Jason Gunthorpe <jgunthorpe@...idianresearch.com>,
Russell King <linux@....linux.org.uk>,
linux-sh@...r.kernel.org,
"linux-pci@...r.kernel.org" <linux-pci@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Magnus Damm <damm@...nsource.se>,
Ben Dooks <ben-linux@...ff.org>,
Bjorn Helgaas <bhelgaas@...gle.com>,
Simon Horman <horms+renesas@...ge.net.au>,
linux-arm-kernel@...ts.infradead.org
Subject: Re: DMABOUNCE in pci-rcar
On Thursday 20 March 2014, Ben Dooks wrote:
> On 20/03/14 18:31, Jason Gunthorpe wrote:
> > On Thu, Mar 20, 2014 at 06:25:25PM +0100, Ben Dooks wrote:
> >> So doing:
> >>
> >> static void pci_rcar_fixup(struct pci_dev *dev)
> >> {
> >> if (dev->bus->ops == &rcar_pci_ops) {
> >> dev_info(&dev->dev, "applying new dma mask\n");
> >> dev->dma_mask = DMA_BIT_MASK(31);
> >> }
> >> }
> >>
> >> DECLARE_PCI_FIXUP_EARLY(PCI_ANY_ID, PCI_ANY_ID, pci_rcar_fixup);
> >>
> >> Did not work for me :(
> >
> > Seems like it should work, do you have CONFIG_PCI_QUIRKS turned on?
>
> Yes, see the print happening, just still PCI OHCI dies horribly.
Shouldn't that mask be 30 instead of 31 when you only support DMA
to the first GB?
Another possibility is that 'EARLY' means it gets applied before
the normal mask is set.
Finally, setting the mask itself is not enough. As I mentioned you
also need to use the swiotlb_dma_ops. Did you already implement
those?
Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists