All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFCv3 1/2] device: add dma_params->max_segment_count
@ 2015-01-27  8:25 ` Sumit Semwal
  0 siblings, 0 replies; 262+ messages in thread
From: Sumit Semwal @ 2015-01-27  8:25 UTC (permalink / raw)
  To: linux-kernel, linux-media, dri-devel, linaro-mm-sig,
	linux-arm-kernel, linux-mm
  Cc: linaro-kernel, robdclark, daniel, m.szyprowski,
	stanislawski.tomasz, robin.murphy, Sumit Semwal

From: Rob Clark <robdclark@gmail.com>

For devices which have constraints about maximum number of segments in
an sglist.  For example, a device which could only deal with contiguous
buffers would set max_segment_count to 1.

The initial motivation is for devices sharing buffers via dma-buf,
to allow the buffer exporter to know the constraints of other
devices which have attached to the buffer.  The dma_mask and fields
in 'struct device_dma_parameters' tell the exporter everything else
that is needed, except whether the importer has constraints about
maximum number of segments.

Signed-off-by: Rob Clark <robdclark@gmail.com>
 [sumits: Minor updates wrt comments]
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
---

v3: include Robin Murphy's fix[1] for handling '0' as a value for
     max_segment_count
v2: minor updates wrt comments on the first version

[1]: http://article.gmane.org/gmane.linux.kernel.iommu/8175/

 include/linux/device.h      |  1 +
 include/linux/dma-mapping.h | 19 +++++++++++++++++++
 2 files changed, 20 insertions(+)

diff --git a/include/linux/device.h b/include/linux/device.h
index fb506738f7b7..a32f9b67315c 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -647,6 +647,7 @@ struct device_dma_parameters {
 	 * sg limitations.
 	 */
 	unsigned int max_segment_size;
+	unsigned int max_segment_count;    /* INT_MAX for unlimited */
 	unsigned long segment_boundary_mask;
 };
 
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index c3007cb4bfa6..d3351a36d5ec 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -154,6 +154,25 @@ static inline unsigned int dma_set_max_seg_size(struct device *dev,
 		return -EIO;
 }
 
+#define DMA_SEGMENTS_MAX_SEG_COUNT ((unsigned int) INT_MAX)
+
+static inline unsigned int dma_get_max_seg_count(struct device *dev)
+{
+	if (dev->dma_parms && dev->dma_parms->max_segment_count)
+		return dev->dma_parms->max_segment_count;
+	return DMA_SEGMENTS_MAX_SEG_COUNT;
+}
+
+static inline int dma_set_max_seg_count(struct device *dev,
+						unsigned int count)
+{
+	if (dev->dma_parms) {
+		dev->dma_parms->max_segment_count = count;
+		return 0;
+	}
+	return -EIO;
+}
+
 static inline unsigned long dma_get_seg_boundary(struct device *dev)
 {
 	return dev->dma_parms ?
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 262+ messages in thread

end of thread, other threads:[~2015-06-04  5:24 UTC | newest]

Thread overview: 262+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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

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.