[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 06 May 2016 08:02:54 +1000
From: Benjamin Herrenschmidt <benh@...nel.crashing.org>
To: Yinghai Lu <yinghai@...nel.org>,
Bjorn Helgaas <helgaas@...nel.org>,
David Miller <davem@...emloft.net>
Cc: Bjorn Helgaas <bhelgaas@...gle.com>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Wei Yang <weiyang@...ux.vnet.ibm.com>, TJ <linux@....tj>,
Yijing Wang <wangyijing@...wei.com>,
Khalid Aziz <khalid.aziz@...cle.com>,
"linux-pci@...r.kernel.org" <linux-pci@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Michael Ellerman <mpe@...erman.id.au>
Subject: Re: [PATCH v11 04/60] sparc/PCI: Use correct offset for bus address
to resource
On Thu, 2016-05-05 at 08:53 -0700, Yinghai Lu wrote:
> For powerpc io port, we still need extra offset from resource address
> to final address.
>
> resource_size_t offset =
> ((resource_size_t)vma->vm_pgoff) << PAGE_SHIFT;
>
> + if (mmap_state == pci_mmap_io) {
> + struct pci_controller *hose = pci_bus_to_host(dev->bus);
> +
> + /* hose should never be NULL */
> + offset += hose->io_base_phys -
> + ((unsigned long)hose->io_base_virt - _IO_BASE);
> + }
>
> vma->vm_pgoff = offset >> PAGE_SHIFT;
>
> but sparc does not need that trick.
I'm not sure how sparc handles IO space but on powerpc, the IO resource
is not a physical address, it's a virtual address (coming from
ioremap).
Cheers,
Ben.
Powered by blists - more mailing lists