All of lore.kernel.org
 help / color / mirror / Atom feed
From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linaro-mm-sig@lists.linaro.org,
	Linaro Kernel Mailman List <linaro-kernel@lists.linaro.org>,
	Robin Murphy <robin.murphy@arm.com>,
	LKML <linux-kernel@vger.kernel.org>,
	DRI mailing list <dri-devel@lists.freedesktop.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Rob Clark <robdclark@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
	Tomasz Stanislawski <stanislawski.tomasz@googlemail.com>,
	linux-arm-kernel@lists.infradead.org,
	"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>
Subject: Re: [Linaro-mm-sig] [RFCv3 2/2] dma-buf: add helpers for sharing attacher constraints with dma-parms
Date: Tue, 3 Feb 2015 15:54:04 +0000	[thread overview]
Message-ID: <20150203155404.GV8656@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <3783167.LiVXgA35gN@wuerfel>

On Tue, Feb 03, 2015 at 04:31:13PM +0100, Arnd Bergmann wrote:
> On Tuesday 03 February 2015 15:22:05 Russell King - ARM Linux wrote:
> > Don't we already have those in the DMA API?  dma_sync_*() ?
> >
> > dma_map_sg() - sets up the system MMU and deals with initial cache
> > coherency handling.  Device IOMMU being the responsibility of the
> > GPU driver.
> 
> dma_sync_*() works with whatever comes out of dma_map_*(), true,
> but this is not what they want to do here.
>  
> > The GPU can then do dma_sync_*() on the scatterlist as is necessary
> > to synchronise the cache coherency (while respecting the ownership
> > rules - which are very important on ARM to follow as some sync()s are
> > destructive to any dirty data in the CPU cache.)
> > 
> > dma_unmap_sg() tears down the system MMU and deals with the final cache
> > handling.
> > 
> > Why do we need more DMA API interfaces?
> 
> The dma_map_* interfaces assign the virtual addresses internally,
> using typically either a global address space for all devices, or one
> address space per device.

We shouldn't be doing one address space per device for precisely this
reason.  We should be doing one address space per *bus*.  I did have
a nice diagram to illustrate the point in my previous email, but I
deleted it, I wish I hadn't... briefly:

Fig. 1.
                                                 +------------------+
                                                 |+-----+  device   |
CPU--L1cache--L2cache--Memory--SysMMU---<iobus>----IOMMU-->         |
                                                 |+-----+           |
                                                 +------------------+

Fig.1 represents what I'd call the "GPU" issue that we're talking about
in this thread.

Fig. 2.
CPU--L1cache--L2cache--Memory--SysMMU---<iobus>--IOMMU--device

The DMA API should be responsible (at the very least) for everything on
the left of "<iobus>" in and should be providing a dma_addr_t which is
representative of what the device (in Fig.1) as a whole sees.  That's
the "system" part.  

I believe this is the approach which is taken by x86 and similar platforms,
simply because they tend not to have an IOMMU on individual devices (and
if they did, eg, on a PCI card, it's clearly the responsibility of the
device driver.)

Whether the DMA API also handles the IOMMU in Fig.1 or 2 is questionable.
For fig.2, it is entirely possible that the same device could appear
without an IOMMU, and in that scenario, you would want the IOMMU to be
handled transparently.

However, by doing so for everything, you run into exactly the problem
which is being discussed here - the need to separate out the cache
coherency from the IOMMU aspects.  You probably also have a setup very
similar to fig.1 (which is certainly true of Vivante GPUs.)

If you have the need to separately control both, then using the DMA API
to encapsulate both does not make sense - at which point, the DMA API
should be responsible for the minimum only - in other words, everything
to the left of <iobus> (so including the system MMU.)  The control of
the device IOMMU should be the responsibility of device driver in this
case.

So, dma_map_sg() would be responsible for dealing with the CPU cache
coherency issues, and setting up the system MMU.  dma_sync_*() would
be responsible for the CPU cache coherency issues, and dma_unmap_sg()
would (again) deal with the CPU cache and tear down the system MMU
mappings.

Meanwhile, the device driver has ultimate control over its IOMMU, the
creation and destruction of mappings and context switches at the
appropriate times.

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.

WARNING: multiple messages have this Message-ID (diff)
From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linaro-mm-sig@lists.linaro.org,
	Linaro Kernel Mailman List <linaro-kernel@lists.linaro.org>,
	Robin Murphy <robin.murphy@arm.com>,
	LKML <linux-kernel@vger.kernel.org>,
	DRI mailing list <dri-devel@lists.freedesktop.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Rob Clark <robdclark@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
	Tomasz Stanislawski <stanislawski.tomasz@googlemail.com>,
	linux-arm-kernel@lists.infradead.org,
	"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>
Subject: Re: [Linaro-mm-sig] [RFCv3 2/2] dma-buf: add helpers for sharing attacher constraints with dma-parms
Date: Tue, 3 Feb 2015 15:54:04 +0000	[thread overview]
Message-ID: <20150203155404.GV8656@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <3783167.LiVXgA35gN@wuerfel>

On Tue, Feb 03, 2015 at 04:31:13PM +0100, Arnd Bergmann wrote:
> On Tuesday 03 February 2015 15:22:05 Russell King - ARM Linux wrote:
> > Don't we already have those in the DMA API?  dma_sync_*() ?
> >
> > dma_map_sg() - sets up the system MMU and deals with initial cache
> > coherency handling.  Device IOMMU being the responsibility of the
> > GPU driver.
> 
> dma_sync_*() works with whatever comes out of dma_map_*(), true,
> but this is not what they want to do here.
>  
> > The GPU can then do dma_sync_*() on the scatterlist as is necessary
> > to synchronise the cache coherency (while respecting the ownership
> > rules - which are very important on ARM to follow as some sync()s are
> > destructive to any dirty data in the CPU cache.)
> > 
> > dma_unmap_sg() tears down the system MMU and deals with the final cache
> > handling.
> > 
> > Why do we need more DMA API interfaces?
> 
> The dma_map_* interfaces assign the virtual addresses internally,
> using typically either a global address space for all devices, or one
> address space per device.

We shouldn't be doing one address space per device for precisely this
reason.  We should be doing one address space per *bus*.  I did have
a nice diagram to illustrate the point in my previous email, but I
deleted it, I wish I hadn't... briefly:

Fig. 1.
                                                 +------------------+
                                                 |+-----+  device   |
CPU--L1cache--L2cache--Memory--SysMMU---<iobus>----IOMMU-->         |
                                                 |+-----+           |
                                                 +------------------+

Fig.1 represents what I'd call the "GPU" issue that we're talking about
in this thread.

Fig. 2.
CPU--L1cache--L2cache--Memory--SysMMU---<iobus>--IOMMU--device

The DMA API should be responsible (at the very least) for everything on
the left of "<iobus>" in and should be providing a dma_addr_t which is
representative of what the device (in Fig.1) as a whole sees.  That's
the "system" part.  

I believe this is the approach which is taken by x86 and similar platforms,
simply because they tend not to have an IOMMU on individual devices (and
if they did, eg, on a PCI card, it's clearly the responsibility of the
device driver.)

Whether the DMA API also handles the IOMMU in Fig.1 or 2 is questionable.
For fig.2, it is entirely possible that the same device could appear
without an IOMMU, and in that scenario, you would want the IOMMU to be
handled transparently.

However, by doing so for everything, you run into exactly the problem
which is being discussed here - the need to separate out the cache
coherency from the IOMMU aspects.  You probably also have a setup very
similar to fig.1 (which is certainly true of Vivante GPUs.)

If you have the need to separately control both, then using the DMA API
to encapsulate both does not make sense - at which point, the DMA API
should be responsible for the minimum only - in other words, everything
to the left of <iobus> (so including the system MMU.)  The control of
the device IOMMU should be the responsibility of device driver in this
case.

So, dma_map_sg() would be responsible for dealing with the CPU cache
coherency issues, and setting up the system MMU.  dma_sync_*() would
be responsible for the CPU cache coherency issues, and dma_unmap_sg()
would (again) deal with the CPU cache and tear down the system MMU
mappings.

Meanwhile, the device driver has ultimate control over its IOMMU, the
creation and destruction of mappings and context switches at the
appropriate times.

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [Linaro-mm-sig] [RFCv3 2/2] dma-buf: add helpers for sharing attacher constraints with dma-parms
Date: Tue, 3 Feb 2015 15:54:04 +0000	[thread overview]
Message-ID: <20150203155404.GV8656@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <3783167.LiVXgA35gN@wuerfel>

On Tue, Feb 03, 2015 at 04:31:13PM +0100, Arnd Bergmann wrote:
> On Tuesday 03 February 2015 15:22:05 Russell King - ARM Linux wrote:
> > Don't we already have those in the DMA API?  dma_sync_*() ?
> >
> > dma_map_sg() - sets up the system MMU and deals with initial cache
> > coherency handling.  Device IOMMU being the responsibility of the
> > GPU driver.
> 
> dma_sync_*() works with whatever comes out of dma_map_*(), true,
> but this is not what they want to do here.
>  
> > The GPU can then do dma_sync_*() on the scatterlist as is necessary
> > to synchronise the cache coherency (while respecting the ownership
> > rules - which are very important on ARM to follow as some sync()s are
> > destructive to any dirty data in the CPU cache.)
> > 
> > dma_unmap_sg() tears down the system MMU and deals with the final cache
> > handling.
> > 
> > Why do we need more DMA API interfaces?
> 
> The dma_map_* interfaces assign the virtual addresses internally,
> using typically either a global address space for all devices, or one
> address space per device.

We shouldn't be doing one address space per device for precisely this
reason.  We should be doing one address space per *bus*.  I did have
a nice diagram to illustrate the point in my previous email, but I
deleted it, I wish I hadn't... briefly:

Fig. 1.
                                                 +------------------+
                                                 |+-----+  device   |
CPU--L1cache--L2cache--Memory--SysMMU---<iobus>----IOMMU-->         |
                                                 |+-----+           |
                                                 +------------------+

Fig.1 represents what I'd call the "GPU" issue that we're talking about
in this thread.

Fig. 2.
CPU--L1cache--L2cache--Memory--SysMMU---<iobus>--IOMMU--device

The DMA API should be responsible (at the very least) for everything on
the left of "<iobus>" in and should be providing a dma_addr_t which is
representative of what the device (in Fig.1) as a whole sees.  That's
the "system" part.  

I believe this is the approach which is taken by x86 and similar platforms,
simply because they tend not to have an IOMMU on individual devices (and
if they did, eg, on a PCI card, it's clearly the responsibility of the
device driver.)

Whether the DMA API also handles the IOMMU in Fig.1 or 2 is questionable.
For fig.2, it is entirely possible that the same device could appear
without an IOMMU, and in that scenario, you would want the IOMMU to be
handled transparently.

However, by doing so for everything, you run into exactly the problem
which is being discussed here - the need to separate out the cache
coherency from the IOMMU aspects.  You probably also have a setup very
similar to fig.1 (which is certainly true of Vivante GPUs.)

If you have the need to separately control both, then using the DMA API
to encapsulate both does not make sense - at which point, the DMA API
should be responsible for the minimum only - in other words, everything
to the left of <iobus> (so including the system MMU.)  The control of
the device IOMMU should be the responsibility of device driver in this
case.

So, dma_map_sg() would be responsible for dealing with the CPU cache
coherency issues, and setting up the system MMU.  dma_sync_*() would
be responsible for the CPU cache coherency issues, and dma_unmap_sg()
would (again) deal with the CPU cache and tear down the system MMU
mappings.

Meanwhile, the device driver has ultimate control over its IOMMU, the
creation and destruction of mappings and context switches at the
appropriate times.

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.

WARNING: multiple messages have this Message-ID (diff)
From: Russell King - ARM Linux <linux@arm.linux.org.uk>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Linaro Kernel Mailman List <linaro-kernel@lists.linaro.org>,
	Tomasz Stanislawski <stanislawski.tomasz@googlemail.com>,
	LKML <linux-kernel@vger.kernel.org>,
	DRI mailing list <dri-devel@lists.freedesktop.org>,
	linaro-mm-sig@lists.linaro.org,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Robin Murphy <robin.murphy@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>
Subject: Re: [Linaro-mm-sig] [RFCv3 2/2] dma-buf: add helpers for sharing attacher constraints with dma-parms
Date: Tue, 3 Feb 2015 15:54:04 +0000	[thread overview]
Message-ID: <20150203155404.GV8656@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <3783167.LiVXgA35gN@wuerfel>

On Tue, Feb 03, 2015 at 04:31:13PM +0100, Arnd Bergmann wrote:
> On Tuesday 03 February 2015 15:22:05 Russell King - ARM Linux wrote:
> > Don't we already have those in the DMA API?  dma_sync_*() ?
> >
> > dma_map_sg() - sets up the system MMU and deals with initial cache
> > coherency handling.  Device IOMMU being the responsibility of the
> > GPU driver.
> 
> dma_sync_*() works with whatever comes out of dma_map_*(), true,
> but this is not what they want to do here.
>  
> > The GPU can then do dma_sync_*() on the scatterlist as is necessary
> > to synchronise the cache coherency (while respecting the ownership
> > rules - which are very important on ARM to follow as some sync()s are
> > destructive to any dirty data in the CPU cache.)
> > 
> > dma_unmap_sg() tears down the system MMU and deals with the final cache
> > handling.
> > 
> > Why do we need more DMA API interfaces?
> 
> The dma_map_* interfaces assign the virtual addresses internally,
> using typically either a global address space for all devices, or one
> address space per device.

We shouldn't be doing one address space per device for precisely this
reason.  We should be doing one address space per *bus*.  I did have
a nice diagram to illustrate the point in my previous email, but I
deleted it, I wish I hadn't... briefly:

Fig. 1.
                                                 +------------------+
                                                 |+-----+  device   |
CPU--L1cache--L2cache--Memory--SysMMU---<iobus>----IOMMU-->         |
                                                 |+-----+           |
                                                 +------------------+

Fig.1 represents what I'd call the "GPU" issue that we're talking about
in this thread.

Fig. 2.
CPU--L1cache--L2cache--Memory--SysMMU---<iobus>--IOMMU--device

The DMA API should be responsible (at the very least) for everything on
the left of "<iobus>" in and should be providing a dma_addr_t which is
representative of what the device (in Fig.1) as a whole sees.  That's
the "system" part.  

I believe this is the approach which is taken by x86 and similar platforms,
simply because they tend not to have an IOMMU on individual devices (and
if they did, eg, on a PCI card, it's clearly the responsibility of the
device driver.)

Whether the DMA API also handles the IOMMU in Fig.1 or 2 is questionable.
For fig.2, it is entirely possible that the same device could appear
without an IOMMU, and in that scenario, you would want the IOMMU to be
handled transparently.

However, by doing so for everything, you run into exactly the problem
which is being discussed here - the need to separate out the cache
coherency from the IOMMU aspects.  You probably also have a setup very
similar to fig.1 (which is certainly true of Vivante GPUs.)

If you have the need to separately control both, then using the DMA API
to encapsulate both does not make sense - at which point, the DMA API
should be responsible for the minimum only - in other words, everything
to the left of <iobus> (so including the system MMU.)  The control of
the device IOMMU should be the responsibility of device driver in this
case.

So, dma_map_sg() would be responsible for dealing with the CPU cache
coherency issues, and setting up the system MMU.  dma_sync_*() would
be responsible for the CPU cache coherency issues, and dma_unmap_sg()
would (again) deal with the CPU cache and tear down the system MMU
mappings.

Meanwhile, the device driver has ultimate control over its IOMMU, the
creation and destruction of mappings and context switches at the
appropriate times.

-- 
FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up
according to speedtest.net.
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2015-02-03 15:54 UTC|newest]

Thread overview: 262+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-27  8:25 [RFCv3 1/2] device: add dma_params->max_segment_count Sumit Semwal
2015-01-27  8:25 ` Sumit Semwal
2015-01-27  8:25 ` Sumit Semwal
2015-01-27  8:25 ` [RFCv3 2/2] dma-buf: add helpers for sharing attacher constraints with dma-parms Sumit Semwal
2015-01-27  8:25   ` Sumit Semwal
2015-01-27  8:25   ` Sumit Semwal
2015-01-27  8:25   ` Sumit Semwal
2015-01-29 14:16   ` Maarten Lankhorst
2015-01-29 14:16     ` Maarten Lankhorst
2015-01-29 14:16     ` Maarten Lankhorst
2015-01-29 14:16     ` Maarten Lankhorst
2015-01-29 14:39   ` Russell King - ARM Linux
2015-01-29 14:39     ` Russell King - ARM Linux
2015-01-29 14:39     ` Russell King - ARM Linux
2015-01-29 14:39     ` Russell King - ARM Linux
2015-01-29 15:30     ` Sumit Semwal
2015-01-29 15:30       ` Sumit Semwal
2015-01-29 15:30       ` Sumit Semwal
2015-01-29 15:30       ` Sumit Semwal
2015-01-29 15:47       ` Russell King - ARM Linux
2015-01-29 15:47         ` Russell King - ARM Linux
2015-01-29 15:47         ` Russell King - ARM Linux
2015-01-29 15:47         ` Russell King - ARM Linux
2015-01-29 15:47         ` Russell King - ARM Linux
2015-01-29 16:55         ` Sumit Semwal
2015-01-29 16:55           ` Sumit Semwal
2015-01-29 16:55           ` Sumit Semwal
2015-01-29 16:55           ` Sumit Semwal
2015-01-29 18:52         ` Rob Clark
2015-01-29 18:52           ` Rob Clark
2015-01-29 18:52           ` Rob Clark
2015-01-29 18:52           ` Rob Clark
2015-01-29 18:52           ` Rob Clark
2015-01-29 19:26           ` Russell King - ARM Linux
2015-01-29 19:26             ` Russell King - ARM Linux
2015-01-29 19:26             ` Russell King - ARM Linux
2015-01-29 19:26             ` Russell King - ARM Linux
2015-01-29 19:26             ` Russell King - ARM Linux
2015-01-29 22:18             ` Rob Clark
2015-01-29 22:18               ` Rob Clark
2015-01-29 22:18               ` Rob Clark
2015-01-29 22:18               ` Rob Clark
2015-01-29 22:31               ` Russell King - ARM Linux
2015-01-29 22:31                 ` Russell King - ARM Linux
2015-01-29 22:31                 ` Russell King - ARM Linux
2015-01-29 22:31                 ` Russell King - ARM Linux
2015-01-29 23:19                 ` Rob Clark
2015-01-29 23:19                   ` Rob Clark
2015-01-29 23:19                   ` Rob Clark
2015-01-29 23:19                   ` Rob Clark
2015-02-02 16:54               ` Daniel Vetter
2015-02-02 16:54                 ` Daniel Vetter
2015-02-02 16:54                 ` Daniel Vetter
2015-02-02 16:54                 ` Daniel Vetter
2015-02-02 20:30                 ` Rob Clark
2015-02-02 20:30                   ` Rob Clark
2015-02-02 20:30                   ` Rob Clark
2015-02-02 20:30                   ` Rob Clark
2015-02-02 21:46                   ` Russell King - ARM Linux
2015-02-02 21:46                     ` Russell King - ARM Linux
2015-02-02 21:46                     ` Russell King - ARM Linux
2015-02-02 21:46                     ` Russell King - ARM Linux
2015-02-02 22:36                     ` Rob Clark
2015-02-02 22:36                       ` Rob Clark
2015-02-02 22:36                       ` Rob Clark
2015-02-02 22:36                       ` Rob Clark
2015-02-02 22:36                       ` Rob Clark
2015-02-03  7:50                       ` Daniel Vetter
2015-02-03  7:50                         ` Daniel Vetter
2015-02-03  7:50                         ` Daniel Vetter
2015-02-03  7:50                         ` Daniel Vetter
2015-02-03  7:46                     ` Daniel Vetter
2015-02-03  7:46                       ` Daniel Vetter
2015-02-03  7:46                       ` Daniel Vetter
2015-02-03  7:46                       ` Daniel Vetter
2015-02-03  7:48                   ` Daniel Vetter
2015-02-03  7:48                     ` Daniel Vetter
2015-02-03  7:48                     ` Daniel Vetter
2015-02-03  7:48                     ` Daniel Vetter
2015-02-03 12:28                     ` Russell King - ARM Linux
2015-02-03 12:28                       ` Russell King - ARM Linux
2015-02-03 12:28                       ` Russell King - ARM Linux
2015-02-03 12:28                       ` Russell King - ARM Linux
2015-02-03 13:00                       ` Daniel Vetter
2015-02-03 13:00                         ` Daniel Vetter
2015-02-03 13:00                         ` Daniel Vetter
2015-02-03 13:00                         ` Daniel Vetter
2015-02-03 13:28                       ` Christian Gmeiner
2015-02-03 13:28                         ` Christian Gmeiner
2015-02-03 13:28                         ` Christian Gmeiner
2015-02-03 13:28                         ` Christian Gmeiner
2015-02-03 13:28                         ` Christian Gmeiner
2015-02-03 14:32                         ` Russell King - ARM Linux
2015-02-03 14:32                           ` Russell King - ARM Linux
2015-02-03 14:32                           ` Russell King - ARM Linux
2015-02-03 14:32                           ` Russell King - ARM Linux
2015-02-03 14:32                           ` Russell King - ARM Linux
2015-02-03 14:25                       ` Rob Clark
2015-02-03 14:25                         ` Rob Clark
2015-02-03 14:25                         ` Rob Clark
2015-02-03 14:25                         ` Rob Clark
2015-02-03 14:04                     ` Rob Clark
2015-02-03 14:04                       ` Rob Clark
2015-02-03 14:04                       ` Rob Clark
2015-02-03 14:04                       ` Rob Clark
2015-02-03 14:17                       ` Arnd Bergmann
2015-02-03 14:17                         ` Arnd Bergmann
2015-02-03 14:17                         ` Arnd Bergmann
2015-02-03 14:17                         ` Arnd Bergmann
2015-02-03 14:41                         ` Russell King - ARM Linux
2015-02-03 14:41                           ` Russell King - ARM Linux
2015-02-03 14:41                           ` Russell King - ARM Linux
2015-02-03 14:41                           ` Russell King - ARM Linux
2015-02-03 14:52                           ` Arnd Bergmann
2015-02-03 14:52                             ` Arnd Bergmann
2015-02-03 14:52                             ` Arnd Bergmann
2015-02-03 15:22                             ` Russell King - ARM Linux
2015-02-03 15:22                               ` Russell King - ARM Linux
2015-02-03 15:22                               ` Russell King - ARM Linux
2015-02-03 15:22                               ` Russell King - ARM Linux
2015-02-03 15:31                               ` [Linaro-mm-sig] " Arnd Bergmann
2015-02-03 15:31                                 ` Arnd Bergmann
2015-02-03 15:31                                 ` Arnd Bergmann
2015-02-03 15:54                                 ` Russell King - ARM Linux [this message]
2015-02-03 15:54                                   ` Russell King - ARM Linux
2015-02-03 15:54                                   ` Russell King - ARM Linux
2015-02-03 15:54                                   ` Russell King - ARM Linux
2015-02-03 16:12                                   ` Arnd Bergmann
2015-02-03 16:12                                     ` Arnd Bergmann
2015-02-03 16:12                                     ` Arnd Bergmann
2015-02-03 16:12                                     ` Arnd Bergmann
2015-02-03 16:22                                     ` Rob Clark
2015-02-03 16:22                                       ` Rob Clark
2015-02-03 16:22                                       ` Rob Clark
2015-02-03 16:22                                       ` Rob Clark
2015-02-03 16:36                                       ` Arnd Bergmann
2015-02-03 16:36                                         ` Arnd Bergmann
2015-02-03 16:36                                         ` Arnd Bergmann
2015-02-03 16:36                                         ` Arnd Bergmann
2015-02-03 16:36                                         ` Arnd Bergmann
2015-02-03 20:04                                         ` Daniel Vetter
2015-02-03 20:04                                           ` Daniel Vetter
2015-02-03 20:04                                           ` Daniel Vetter
2015-02-03 20:04                                           ` Daniel Vetter
2015-02-03 21:42                                           ` Arnd Bergmann
2015-02-03 21:42                                             ` Arnd Bergmann
2015-02-03 21:42                                             ` Arnd Bergmann
2015-02-03 21:42                                             ` Arnd Bergmann
2015-02-03 21:42                                             ` Arnd Bergmann
2015-02-03 22:07                                             ` Daniel Vetter
2015-02-03 22:07                                               ` Daniel Vetter
2015-02-03 22:07                                               ` Daniel Vetter
2015-02-03 22:07                                               ` Daniel Vetter
2015-02-04  0:14                                             ` Russell King - ARM Linux
2015-02-04  0:14                                               ` Russell King - ARM Linux
2015-02-04  0:14                                               ` Russell King - ARM Linux
2015-02-04  0:14                                               ` Russell King - ARM Linux
2015-02-03 17:01                                       ` Russell King - ARM Linux
2015-02-03 17:01                                         ` Russell King - ARM Linux
2015-02-03 17:01                                         ` Russell King - ARM Linux
2015-02-03 17:01                                         ` Russell King - ARM Linux
2015-02-03 17:01                                         ` Russell King - ARM Linux
2015-02-03 16:58                                     ` Russell King - ARM Linux
2015-02-03 16:58                                       ` Russell King - ARM Linux
2015-02-03 16:58                                       ` Russell King - ARM Linux
2015-02-03 16:58                                       ` Russell King - ARM Linux
2015-02-03 17:35                                       ` Rob Clark
2015-02-03 17:35                                         ` Rob Clark
2015-02-03 17:35                                         ` Rob Clark
2015-02-03 17:35                                         ` Rob Clark
2015-02-03 20:08                                         ` Daniel Vetter
2015-02-03 20:08                                           ` Daniel Vetter
2015-02-03 20:08                                           ` Daniel Vetter
2015-02-03 20:08                                           ` Daniel Vetter
2015-02-03 20:08                                           ` Daniel Vetter
2015-02-03 21:44                                         ` Arnd Bergmann
2015-02-03 21:44                                           ` Arnd Bergmann
2015-02-03 21:44                                           ` Arnd Bergmann
2015-02-03 21:44                                           ` Arnd Bergmann
2015-02-03 21:44                                           ` Arnd Bergmann
2015-02-03 15:25                             ` Rob Clark
2015-02-03 15:25                               ` Rob Clark
2015-02-03 15:25                               ` Rob Clark
2015-02-03 15:25                               ` Rob Clark
2015-02-03 15:19                           ` Rob Clark
2015-02-03 15:19                             ` Rob Clark
2015-02-03 15:19                             ` Rob Clark
2015-02-03 15:19                             ` Rob Clark
2015-02-03 14:37                       ` Russell King - ARM Linux
2015-02-03 14:37                         ` Russell King - ARM Linux
2015-02-03 14:37                         ` Russell King - ARM Linux
2015-02-03 14:37                         ` Russell King - ARM Linux
2015-02-03 14:37                         ` Russell King - ARM Linux
2015-02-03 14:44                         ` Rob Clark
2015-02-03 14:44                           ` Rob Clark
2015-02-03 14:44                           ` Rob Clark
2015-02-03 14:44                           ` Rob Clark
2015-02-03 14:58                           ` Russell King - ARM Linux
2015-02-03 14:58                             ` Russell King - ARM Linux
2015-02-03 14:58                             ` Russell King - ARM Linux
2015-02-03 14:58                             ` Russell King - ARM Linux
2015-02-03 14:58                             ` Russell King - ARM Linux
2015-02-02  5:53             ` Sumit Semwal
2015-02-02  5:53               ` Sumit Semwal
2015-02-02  5:53               ` Sumit Semwal
2015-02-02  5:53               ` Sumit Semwal
2015-02-11  8:28   ` Marek Szyprowski
2015-02-11  8:28     ` Marek Szyprowski
2015-02-11  8:28     ` Marek Szyprowski
2015-02-11 11:12     ` Russell King - ARM Linux
2015-02-11 11:12       ` Russell King - ARM Linux
2015-02-11 11:12       ` Russell King - ARM Linux
2015-02-11 11:12       ` Russell King - ARM Linux
2015-02-11 11:23       ` Rob Clark
2015-02-11 11:23         ` Rob Clark
2015-02-11 11:23         ` Rob Clark
2015-02-11 11:23         ` Rob Clark
2015-02-11 11:23         ` Rob Clark
2015-02-11 12:56         ` Daniel Vetter
2015-02-11 12:56           ` Daniel Vetter
2015-02-11 12:56           ` Daniel Vetter
2015-02-11 12:56           ` Daniel Vetter
2015-02-11 12:56           ` Daniel Vetter
2015-02-11 13:30           ` Rob Clark
2015-02-11 13:30             ` Rob Clark
2015-02-11 13:30             ` Rob Clark
2015-02-11 13:30             ` Rob Clark
2015-02-11 13:30             ` Rob Clark
2015-02-11 12:20       ` Marek Szyprowski
2015-02-11 12:20         ` Marek Szyprowski
2015-02-11 12:20         ` Marek Szyprowski
2015-02-11 16:23         ` Russell King - ARM Linux
2015-02-11 16:23           ` Russell King - ARM Linux
2015-02-11 16:23           ` Russell King - ARM Linux
2015-02-11 16:23           ` Russell King - ARM Linux
2015-05-05 14:41           ` Sumit Semwal
2015-05-05 14:41             ` Sumit Semwal
2015-05-05 14:41             ` Sumit Semwal
2015-05-05 14:41             ` Sumit Semwal
2015-06-03  6:39             ` [Linaro-mm-sig] " Hans Verkuil
2015-06-03  6:39               ` Hans Verkuil
2015-06-03  6:39               ` Hans Verkuil
2015-06-03  6:39               ` Hans Verkuil
2015-06-03  8:41               ` Russell King - ARM Linux
2015-06-03  8:41                 ` Russell King - ARM Linux
2015-06-03  8:41                 ` Russell King - ARM Linux
2015-06-03  8:41                 ` Russell King - ARM Linux
2015-06-03  8:41                 ` Russell King - ARM Linux
2015-06-03  9:37                 ` Hans Verkuil
2015-06-03  9:37                   ` Hans Verkuil
2015-06-03  9:37                   ` Hans Verkuil
2015-06-03  9:37                   ` Hans Verkuil
2015-06-04  5:24                   ` Sumit Semwal
2015-06-04  5:24                     ` Sumit Semwal
2015-06-04  5:24                     ` Sumit Semwal
2015-06-04  5:24                     ` Sumit Semwal
2015-01-28 14:09 ` [RFCv3 1/2] device: add dma_params->max_segment_count Marek Szyprowski
2015-01-28 14:09   ` Marek Szyprowski
2015-01-28 14:09   ` Marek Szyprowski
2015-06-03  6:13 ` [Linaro-mm-sig] " Hans Verkuil
2015-06-03  6:13   ` Hans Verkuil
2015-06-03  6:13   ` Hans Verkuil

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=20150203155404.GV8656@n2100.arm.linux.org.uk \
    --to=linux@arm.linux.org.uk \
    --cc=arnd@arndb.de \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linaro-kernel@lists.linaro.org \
    --cc=linaro-mm-sig@lists.linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=robdclark@gmail.com \
    --cc=robin.murphy@arm.com \
    --cc=stanislawski.tomasz@googlemail.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.