All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: linux-arm-kernel@lists.infradead.org
Cc: Mark Rutland <mark.rutland@arm.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Jassi Brar <jassisinghbrar@gmail.com>,
	Russell King <linux@arm.linux.org.uk>,
	Pawel Moll <pawel.moll@arm.com>,
	Mathias Nyman <mathias.nyman@intel.com>,
	Stephen Warren <swarren@wwwdotorg.org>,
	Andrew Bresticker <abrestic@chromium.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Kishon Vijay Abraham I <kishon@ti.com>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	David Laight <David.Laight@aculab.com>,
	'Thierry Reding' <thierry.reding@gmail.com>,
	Kumar Gala <galak@codeaurora.org>,
	Grant Likely <grant.likely@linaro.org>
Subject: Re: [PATCH v2 2/9] mailbox: Add NVIDIA Tegra XUSB mailbox driver
Date: Tue, 26 Aug 2014 12:04:18 +0200	[thread overview]
Message-ID: <4609609.i9jPXymFJZ@wuerfel> (raw)
In-Reply-To: <063D6719AE5E284EB5DD2968C1650D6D17481234@AcuExch.aculab.com>

On Tuesday 26 August 2014 08:54:53 David Laight wrote:
> From: Thierry Reding
> ...
> > > Is _nocache required? I don't see other drivers using it. I assume there's
> > > nothing special about the mbox registers.
> > 
> > Most drivers should be using devm_ioremap_resource() which will use the
> > _nocache variant of devm_ioremap() when appropriate. Usually the region
> > will not be marked cacheable (IORESOURCE_CACHEABLE) and therefore be
> > remapped uncached.
> 
> A related question:
> Is there any way for a driver to force that part of a PCIe BAR be mapped
> through the data cache even when the BAR isn't actually marked cacheable?

No. BARs are not actually marked cacheable anyway, except for the ROM
BAR, which we tend to not use.

Some architectures don't even allow any caching of PCI memory ranges,
so we have no architecture independent API for that.

It's possible that ioremap_cache() works on x86 and/or ARM if you call
it manually on the physical address (rather than using a resource
API).

> Some hardware has address regions (which might not be an entire BAR)
> that are actually memory and mapping through the data cache will
> generate longer PCIe transfers [1].
> Clearly the driver will have to be very careful about cache flushes
> and invalidates to make this work.

Some framebuffer drivers use writethrough mappings, but those again
are only available on few architectures. vesafb uses ioremap_cache,
but this works because the memory is in system RAM and not on PCI.

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: linux-arm-kernel@lists.infradead.org
Cc: David Laight <David.Laight@aculab.com>,
	"'Thierry Reding'" <thierry.reding@gmail.com>,
	Stephen Warren <swarren@wwwdotorg.org>,
	Mark Rutland <mark.rutland@arm.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	Russell King <linux@arm.linux.org.uk>,
	Mathias Nyman <mathias.nyman@intel.com>,
	Pawel Moll <pawel.moll@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Andrew Bresticker <abrestic@chromium.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Jassi Brar <jassisinghbrar@gmail.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Kishon Vijay Abraham I <kishon@ti.com>,
	Grant Likely <grant.likely@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	Alan Stern <stern@rowland.harvard.edu>,
	Kumar Gala <galak@codeaurora.org>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>
Subject: Re: [PATCH v2 2/9] mailbox: Add NVIDIA Tegra XUSB mailbox driver
Date: Tue, 26 Aug 2014 12:04:18 +0200	[thread overview]
Message-ID: <4609609.i9jPXymFJZ@wuerfel> (raw)
In-Reply-To: <063D6719AE5E284EB5DD2968C1650D6D17481234@AcuExch.aculab.com>

On Tuesday 26 August 2014 08:54:53 David Laight wrote:
> From: Thierry Reding
> ...
> > > Is _nocache required? I don't see other drivers using it. I assume there's
> > > nothing special about the mbox registers.
> > 
> > Most drivers should be using devm_ioremap_resource() which will use the
> > _nocache variant of devm_ioremap() when appropriate. Usually the region
> > will not be marked cacheable (IORESOURCE_CACHEABLE) and therefore be
> > remapped uncached.
> 
> A related question:
> Is there any way for a driver to force that part of a PCIe BAR be mapped
> through the data cache even when the BAR isn't actually marked cacheable?

No. BARs are not actually marked cacheable anyway, except for the ROM
BAR, which we tend to not use.

Some architectures don't even allow any caching of PCI memory ranges,
so we have no architecture independent API for that.

It's possible that ioremap_cache() works on x86 and/or ARM if you call
it manually on the physical address (rather than using a resource
API).

> Some hardware has address regions (which might not be an entire BAR)
> that are actually memory and mapping through the data cache will
> generate longer PCIe transfers [1].
> Clearly the driver will have to be very careful about cache flushes
> and invalidates to make this work.

Some framebuffer drivers use writethrough mappings, but those again
are only available on few architectures. vesafb uses ioremap_cache,
but this works because the memory is in system RAM and not on PCI.

	Arnd

WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 2/9] mailbox: Add NVIDIA Tegra XUSB mailbox driver
Date: Tue, 26 Aug 2014 12:04:18 +0200	[thread overview]
Message-ID: <4609609.i9jPXymFJZ@wuerfel> (raw)
In-Reply-To: <063D6719AE5E284EB5DD2968C1650D6D17481234@AcuExch.aculab.com>

On Tuesday 26 August 2014 08:54:53 David Laight wrote:
> From: Thierry Reding
> ...
> > > Is _nocache required? I don't see other drivers using it. I assume there's
> > > nothing special about the mbox registers.
> > 
> > Most drivers should be using devm_ioremap_resource() which will use the
> > _nocache variant of devm_ioremap() when appropriate. Usually the region
> > will not be marked cacheable (IORESOURCE_CACHEABLE) and therefore be
> > remapped uncached.
> 
> A related question:
> Is there any way for a driver to force that part of a PCIe BAR be mapped
> through the data cache even when the BAR isn't actually marked cacheable?

No. BARs are not actually marked cacheable anyway, except for the ROM
BAR, which we tend to not use.

Some architectures don't even allow any caching of PCI memory ranges,
so we have no architecture independent API for that.

It's possible that ioremap_cache() works on x86 and/or ARM if you call
it manually on the physical address (rather than using a resource
API).

> Some hardware has address regions (which might not be an entire BAR)
> that are actually memory and mapping through the data cache will
> generate longer PCIe transfers [1].
> Clearly the driver will have to be very careful about cache flushes
> and invalidates to make this work.

Some framebuffer drivers use writethrough mappings, but those again
are only available on few architectures. vesafb uses ioremap_cache,
but this works because the memory is in system RAM and not on PCI.

	Arnd

  reply	other threads:[~2014-08-26 10:04 UTC|newest]

Thread overview: 141+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-18 17:08 [PATCH v2 0/9] Tegra xHCI support Andrew Bresticker
2014-08-18 17:08 ` Andrew Bresticker
2014-08-18 17:08 ` Andrew Bresticker
2014-08-18 17:08 ` [PATCH v2 2/9] mailbox: Add NVIDIA Tegra XUSB mailbox driver Andrew Bresticker
2014-08-18 17:08   ` Andrew Bresticker
2014-08-18 17:08   ` Andrew Bresticker
     [not found]   ` <1408381705-3623-3-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2014-08-25 19:01     ` Stephen Warren
2014-08-25 19:01       ` Stephen Warren
2014-08-25 19:01       ` Stephen Warren
     [not found]       ` <53FB8820.4010202-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-08-26  6:57         ` Thierry Reding
2014-08-26  6:57           ` Thierry Reding
2014-08-26  6:57           ` Thierry Reding
2014-08-26  7:43           ` Arnd Bergmann
2014-08-26  7:43             ` Arnd Bergmann
2014-08-26  7:43             ` Arnd Bergmann
2014-08-26  7:50             ` Thierry Reding
2014-08-26  7:50               ` Thierry Reding
2014-08-26  7:50               ` Thierry Reding
2014-08-26  8:09               ` Arnd Bergmann
2014-08-26  8:09                 ` Arnd Bergmann
2014-08-26  8:09                 ` Arnd Bergmann
2014-08-26  9:08                 ` Thierry Reding
2014-08-26  9:08                   ` Thierry Reding
2014-08-26  9:54                   ` Arnd Bergmann
2014-08-26  9:54                     ` Arnd Bergmann
2014-08-26  9:54                     ` Arnd Bergmann
2014-08-26 10:20                     ` Thierry Reding
2014-08-26 10:20                       ` Thierry Reding
2014-08-26 10:20                       ` Thierry Reding
2014-08-26 11:35                       ` Arnd Bergmann
2014-08-26 11:35                         ` Arnd Bergmann
2014-08-26 11:35                         ` Arnd Bergmann
2014-08-26 11:45                         ` Thierry Reding
2014-08-26 11:45                           ` Thierry Reding
2014-08-26 11:45                           ` Thierry Reding
2014-08-26  8:54           ` David Laight
2014-08-26  8:54             ` David Laight
2014-08-26  8:54             ` David Laight
2014-08-26 10:04             ` Arnd Bergmann [this message]
2014-08-26 10:04               ` Arnd Bergmann
2014-08-26 10:04               ` Arnd Bergmann
2014-08-27 17:38       ` Andrew Bresticker
2014-08-27 17:38         ` Andrew Bresticker
2014-08-27 17:38         ` Andrew Bresticker
2014-08-27 17:50         ` Stephen Warren
2014-08-27 17:50           ` Stephen Warren
2014-08-27 17:50           ` Stephen Warren
     [not found]           ` <53FE1A7A.4010906-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-08-27 18:13             ` Andrew Bresticker
2014-08-27 18:13               ` Andrew Bresticker
2014-08-27 18:13               ` Andrew Bresticker
     [not found]               ` <CAL1qeaGPr=BeYL1-=ddRL7rSuvYdQcd6vCEEHDrNA-KYst6bnw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-08-27 18:19                 ` Stephen Warren
2014-08-27 18:19                   ` Stephen Warren
2014-08-27 18:19                   ` Stephen Warren
2014-08-27 21:56                   ` Andrew Bresticker
2014-08-27 21:56                     ` Andrew Bresticker
2014-08-27 21:56                     ` Andrew Bresticker
     [not found]                     ` <CAL1qeaGHz1+L8r-AXetw422ZWSJX1h025YOx9kB+EE4yJpOowQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-08-27 22:30                       ` Stephen Warren
2014-08-27 22:30                         ` Stephen Warren
2014-08-27 22:30                         ` Stephen Warren
     [not found]         ` <CAL1qeaERHeKKNpqh9qHOppgT7ymvntisdjVvZheP78U6NaPz-A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-08-27 19:26           ` Jassi Brar
2014-08-27 19:26             ` Jassi Brar
2014-08-27 19:26             ` Jassi Brar
2014-08-18 17:08 ` [PATCH v2 3/9] of: Update Tegra XUSB pad controller binding for USB Andrew Bresticker
2014-08-18 17:08   ` Andrew Bresticker
2014-08-18 17:08   ` Andrew Bresticker
     [not found]   ` <1408381705-3623-4-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2014-08-25 19:12     ` Stephen Warren
2014-08-25 19:12       ` Stephen Warren
2014-08-25 19:12       ` Stephen Warren
     [not found]       ` <53FB8A8C.8040107-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-08-27 16:36         ` Andrew Bresticker
2014-08-27 16:36           ` Andrew Bresticker
2014-08-27 16:36           ` Andrew Bresticker
     [not found]           ` <CAL1qeaGHuMegpeyumD8GrFRmeufkiiUygAdqu1ECHrfSkixwOQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-08-27 16:42             ` Stephen Warren
2014-08-27 16:42               ` Stephen Warren
2014-08-27 16:42               ` Stephen Warren
2014-08-18 17:08 ` [PATCH v2 4/9] pinctrl: tegra-xusb: Add USB PHY support Andrew Bresticker
2014-08-18 17:08   ` Andrew Bresticker
     [not found]   ` <1408381705-3623-5-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2014-08-25 19:22     ` Stephen Warren
2014-08-25 19:22       ` Stephen Warren
2014-08-25 19:22       ` Stephen Warren
2014-08-26  7:29       ` Mikko Perttunen
2014-08-26  7:29         ` Mikko Perttunen
2014-08-26  7:29         ` Mikko Perttunen
     [not found]       ` <53FB8CFE.3090007-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-08-27 16:44         ` Andrew Bresticker
2014-08-27 16:44           ` Andrew Bresticker
2014-08-27 16:44           ` Andrew Bresticker
2014-08-29 13:36         ` Linus Walleij
2014-08-29 13:36           ` Linus Walleij
2014-08-29 13:36           ` Linus Walleij
2014-08-18 17:08 ` [PATCH v2 5/9] of: Add NVIDIA Tegra xHCI controller binding Andrew Bresticker
2014-08-18 17:08   ` Andrew Bresticker
2014-08-18 17:08   ` Andrew Bresticker
     [not found]   ` <1408381705-3623-6-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2014-08-25 19:26     ` Stephen Warren
2014-08-25 19:26       ` Stephen Warren
2014-08-25 19:26       ` Stephen Warren
2014-08-18 17:08 ` [PATCH v2 6/9] usb: xhci: Add NVIDIA Tegra xHCI host-controller driver Andrew Bresticker
2014-08-18 17:08   ` Andrew Bresticker
2014-08-18 17:08   ` Andrew Bresticker
     [not found]   ` <1408381705-3623-7-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2014-08-25 19:36     ` Stephen Warren
2014-08-25 19:36       ` Stephen Warren
2014-08-25 19:36       ` Stephen Warren
2014-08-30 21:15   ` Greg Kroah-Hartman
2014-08-30 21:15     ` Greg Kroah-Hartman
     [not found]     ` <20140830211558.GA13814-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2014-08-31 19:04       ` Andrew Bresticker
2014-08-31 19:04         ` Andrew Bresticker
2014-08-31 19:04         ` Andrew Bresticker
2014-08-18 17:08 ` [PATCH v2 7/9] ARM: tegra: Add Tegra124 XUSB mailbox and xHCI controller Andrew Bresticker
2014-08-18 17:08   ` Andrew Bresticker
2014-08-18 17:08 ` [PATCH v2 8/9] ARM: tegra: jetson-tk1: Add xHCI support Andrew Bresticker
2014-08-18 17:08   ` Andrew Bresticker
2014-08-18 17:08   ` Andrew Bresticker
2014-08-21 13:34 ` [PATCH v2 0/9] Tegra " Tomeu Vizoso
2014-08-21 13:34   ` Tomeu Vizoso
     [not found]   ` <CAAObsKDT4BV=fGAFkMxieQnC3HX=zm8G_qJ44yay4qG8inxoPQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-08-21 17:26     ` Andrew Bresticker
2014-08-21 17:26       ` Andrew Bresticker
2014-08-21 17:26       ` Andrew Bresticker
     [not found]       ` <CAL1qeaH=8Fgw6Zia3DuBL8wrrYMjZ8pqC2NanYtb5-YVJwmtsg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-08-22 11:23         ` Tomeu Vizoso
2014-08-22 11:23           ` Tomeu Vizoso
2014-08-22 11:23           ` Tomeu Vizoso
     [not found] ` <1408381705-3623-1-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2014-08-18 17:08   ` [PATCH v2 1/9] of: Add NVIDIA Tegra XUSB mailbox binding Andrew Bresticker
2014-08-18 17:08     ` Andrew Bresticker
2014-08-18 17:08     ` Andrew Bresticker
     [not found]     ` <1408381705-3623-2-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2014-08-25 18:48       ` Stephen Warren
2014-08-25 18:48         ` Stephen Warren
2014-08-25 18:48         ` Stephen Warren
     [not found]         ` <53FB84F7.8030509-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-08-25 19:06           ` Stephen Warren
2014-08-25 19:06             ` Stephen Warren
2014-08-25 19:06             ` Stephen Warren
2014-08-27 16:33           ` Andrew Bresticker
2014-08-27 16:33             ` Andrew Bresticker
2014-08-27 16:33             ` Andrew Bresticker
2014-08-18 17:08   ` [PATCH v2 9/9] ARM: tegra: venice2: Add xHCI support Andrew Bresticker
2014-08-18 17:08     ` Andrew Bresticker
2014-08-18 17:08     ` Andrew Bresticker
2014-08-18 17:30   ` [PATCH v2 0/9] Tegra " Stephen Warren
2014-08-18 17:30     ` Stephen Warren
2014-08-18 17:30     ` Stephen Warren
     [not found]     ` <53F2381B.8020801-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2014-08-18 19:35       ` Andrew Bresticker
2014-08-18 19:35         ` Andrew Bresticker
2014-08-18 19:35         ` Andrew Bresticker
2014-08-22 18:28   ` [PATCH 10/9] pinctrl: tegra-xusb: Support adjusted HS_CURR_LEVEL Andrew Bresticker
     [not found]     ` <1408732088-28010-1-git-send-email-abrestic-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2014-08-25 19:39       ` Stephen Warren

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=4609609.i9jPXymFJZ@wuerfel \
    --to=arnd@arndb.de \
    --cc=David.Laight@aculab.com \
    --cc=abrestic@chromium.org \
    --cc=devicetree@vger.kernel.org \
    --cc=galak@codeaurora.org \
    --cc=grant.likely@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=jassisinghbrar@gmail.com \
    --cc=kishon@ti.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mark.rutland@arm.com \
    --cc=mathias.nyman@intel.com \
    --cc=pawel.moll@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=swarren@wwwdotorg.org \
    --cc=thierry.reding@gmail.com \
    /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.