All of lore.kernel.org
 help / color / mirror / Atom feed
From: Grant Grundler <grundler@parisc-linux.org>
To: Arjan van de Ven <arjan@infradead.org>
Cc: Grant Grundler <grundler@parisc-linux.org>,
	linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org
Subject: Re: [PATCH] pci: introduce users of ioremap_pcibar()
Date: Mon, 29 Sep 2008 11:10:49 -0600	[thread overview]
Message-ID: <20080929171049.GA14409@colo.lackof.org> (raw)
In-Reply-To: <20080929064220.374c68a4@infradead.org>

On Mon, Sep 29, 2008 at 06:42:20AM -0700, Arjan van de Ven wrote:
...
> > This patch changes that behavior of the device driver so it uses
> > uncacheable instead of cacheable mappings.  This is the only thing
> > I'm uncertain about for this patch.
> 
> ioremap() also is uncachable today.

Ok...it was using cacheable mapping on ia64 until this commit in 2007:
    http://www.gelato.unsw.edu.au/archives/linux-ia64/0703/20211.html

I stopped paying close attention  on ia64 in 2006 for the most part.
It's always been uncacheable on parisc.

After finding willy's patch (March 2006) on lwn.net, I remember the
discussion around changing the behavior of ioremap() to be uncached:
    http://lwn.net/Articles/178084/

And I have to agree with willy/alan, pci_iomap() is already doing this.

However, pci_iomap() isn't quite right either:
        if (flags & IORESOURCE_MEM) {
                if (flags & IORESOURCE_CACHEABLE)
                        return ioremap(start, len);
                return ioremap_nocache(start, len);
        }

I expect it needs to use ioremap_cache() instead of ioremap().
One line patch below fixes that. Build-tested on x86 only.

Signed-off-by: Grant Grundler <grundler@parisc-linux.org>

> > And I have a second issue less important issue.
> > What is the result of ioremap_pcibar(pci, 1) when BAR0 is a 64-bit
> > bar? Given the name, I expect to call "ioremap_pcibar(pci,2)" to get
> > the desired result.  Maybe just document how to handle this correctly
> > in Documentation/pci.txt would be sufficient.
> 
> we should detect this and DTRT inside the implementation, not in the
> drivers.

pci_iomap() is already doing this. See lib/iomap.c:pci_iomap().

thanks,
grant


diff --git a/lib/iomap.c b/lib/iomap.c
index d322293..5565cf9 100644
--- a/lib/iomap.c
+++ b/lib/iomap.c
@@ -267,7 +267,7 @@ void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen)
 		return ioport_map(start, len);
 	if (flags & IORESOURCE_MEM) {
 		if (flags & IORESOURCE_CACHEABLE)
-			return ioremap(start, len);
+			return ioremap_cache(start, len);
 		return ioremap_nocache(start, len);
 	}
 	/* What? */

  reply	other threads:[~2008-09-29 17:11 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-26 23:36 [PATCH] pci: introduce an ioremap_pcibar(pdev, barnr) function Arjan van de Ven
2008-09-26 23:37 ` [PATCH] pci: introduce users of ioremap_pcibar() Arjan van de Ven
2008-09-29  7:26   ` Grant Grundler
2008-09-29  9:20     ` Alan Cox
2008-09-29 13:42     ` Arjan van de Ven
2008-09-29 17:10       ` Grant Grundler [this message]
2008-09-29 17:23         ` Arjan van de Ven
2008-10-01  5:24           ` Grant Grundler
2008-09-30 22:30             ` Arjan van de Ven
2008-10-01 10:33               ` Rolf Eike Beer
2008-10-01 12:42               ` Kyle McMartin
2008-10-01 12:57                 ` Matthew Wilcox
2008-10-01 13:07                   ` Kyle McMartin
2008-10-01 13:53                     ` Arjan van de Ven
2008-09-27  2:56 ` [PATCH] pci: introduce an ioremap_pcibar(pdev, barnr) function Matthew Wilcox
2008-09-27 15:35   ` Arjan van de Ven
  -- strict thread matches above, loose matches on Subject: below --
2008-09-29 18:08 [PATCH] pci: introduce users of ioremap_pcibar() Marin Mitov
2008-10-01  6:39 Marin Mitov

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=20080929171049.GA14409@colo.lackof.org \
    --to=grundler@parisc-linux.org \
    --cc=arjan@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.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.