Jason Gunthorpe
baa6d39663
fpga: Add scatterlist based programming
...
Requiring contiguous kernel memory is not a good idea, this is a limited
resource and allocation can fail under normal work loads.
This introduces a .write_sg op that supporting drivers can provide
to DMA directly from dis-contiguous memory and a new entry point
fpga_mgr_buf_load_sg that users can call to directly provide page
lists.
The full matrix of compatibility is provided, either the linear or sg
interface can be used by the user with a driver supporting either
interface.
A notable change for drivers is that the .write op can now be called
multiple times.
Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com >
Acked-by: Alan Tull <atull@opensource.altera.com >
Acked-by: Moritz Fischer <moritz.fischer@ettus.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2017-02-10 15:20:44 +01:00
..
2016-12-14 20:42:45 -08:00
2014-08-06 18:01:23 -07:00
2017-01-29 18:30:56 -05:00
2016-12-16 11:23:34 -08:00
2016-11-02 20:44:20 +01:00
2016-09-02 15:05:48 +02:00
2017-01-09 10:04:09 +09:00
2017-02-10 15:20:44 +01:00
2016-11-29 09:17:20 +01:00
2017-01-19 09:57:20 +01:00
2016-11-17 23:19:00 +01:00
2016-12-31 14:35:04 +00:00
2016-12-25 11:04:12 +01:00
2016-12-19 08:16:26 -08:00
2016-12-29 14:17:40 -05:00
2016-12-28 14:36:52 -05:00
2016-12-05 14:16:22 +01:00
2016-11-29 18:28:30 -08:00
2016-12-06 21:42:19 +01:00
2016-12-14 10:49:33 -08:00
2016-06-23 11:18:56 +02:00
2017-01-19 12:42:25 +01:00
2016-11-23 23:37:27 +01:00
2016-12-02 12:44:37 -05:00
2016-12-05 11:38:30 +00:00
2016-11-14 21:52:14 -08:00
2016-12-15 16:03:25 -08:00
2016-10-21 12:09:30 +01:00
2017-01-24 15:29:24 -05:00
2016-12-13 11:10:36 -08:00
2015-04-15 16:35:22 -07:00
2016-12-06 16:57:33 +01:00
2016-12-15 12:46:48 -08:00
2012-10-13 10:46:48 +01:00
2015-01-28 18:45:23 -05:00
2016-12-05 14:31:24 -05:00
2016-12-22 22:58:37 -05:00
2016-12-01 14:45:08 +01:00
2007-02-09 17:08:57 +00:00
2012-05-29 16:22:29 -07:00
2013-12-02 11:24:18 +00:00
2015-04-22 08:00:42 +10:00
2013-03-12 13:59:14 -07:00
2016-10-19 14:34:36 -04:00
2012-10-13 10:46:48 +01:00
2016-07-07 09:16:20 +02:00
2016-12-05 19:00:38 -05:00
2016-10-11 15:06:31 -07:00
2016-12-13 10:19:16 -08:00
2016-01-09 08:39:04 -08:00
2016-07-26 16:19:19 -07:00
2016-07-25 16:51:49 +10:00
2016-12-09 08:30:51 -07:00
2016-09-09 12:09:24 +03:00
2014-12-22 16:43:06 +00:00
2016-12-01 07:58:40 -07:00
2016-12-14 10:49:33 -08:00
2017-01-13 15:17:04 -07:00
2016-10-28 08:48:16 -06:00
2016-12-08 13:31:11 -05:00
2016-12-17 11:14:25 -05:00
2017-01-18 17:12:26 -05:00
2016-11-30 10:22:27 -05:00
2011-05-19 16:55:27 +09:30
2016-11-17 20:15:26 -05:00
2013-02-20 09:37:28 -05:00
2016-11-04 14:34:47 -06:00
2016-02-22 08:51:38 +01:00
2016-12-22 09:25:45 -08:00
2016-11-22 13:21:00 -06:00
2015-12-03 10:24:08 -05:00
2016-11-25 16:25:52 -05:00
2016-01-27 09:10:29 -05:00
2016-12-08 16:37:33 -08:00
2014-11-20 10:43:16 -04:00
2016-01-27 12:38:03 +01:00
2016-12-25 11:04:12 +01:00
2016-12-12 18:55:08 -08:00
2016-12-12 18:55:09 -08:00
2016-12-21 10:16:05 -08:00
2014-05-27 13:56:21 -07:00
2016-12-13 11:18:24 -08:00
2008-06-04 14:56:12 +01:00
2013-12-29 15:25:48 +01:00
2016-08-02 16:11:27 -04:00
2017-01-14 19:32:40 -05:00
2015-10-15 00:21:07 +02:00
2015-05-04 21:27:52 -07:00
2011-09-23 12:05:29 +05:30
2016-12-25 10:47:43 +01:00
2016-11-21 14:35:43 +01:00
2017-02-01 08:37:27 +01:00
2016-11-29 14:02:21 +01:00
2016-12-15 11:32:31 +01:00
2016-05-19 19:12:14 -07:00
2014-03-13 15:56:44 +01:00
2016-05-13 14:01:59 +02:00
2014-05-16 14:26:52 -04:00
2011-06-03 15:01:06 -04:00
2014-06-25 16:04:00 -07:00
2016-12-17 16:00:34 -08:00
2016-12-26 20:29:24 -08:00
2016-12-03 20:51:49 -05:00
2016-12-05 19:01:16 -05:00
2016-12-13 11:42:18 -08:00
2010-08-04 11:00:45 +02:00
2016-04-15 11:20:32 -07:00
2016-11-23 10:07:35 +08:00
2016-12-13 11:42:18 -08:00
2016-06-05 10:36:01 -07:00
2008-07-25 10:53:34 -07:00
2012-11-19 14:32:13 +01:00
2016-10-25 14:40:39 +02:00
2015-10-23 17:55:10 +09:00
2016-10-25 14:40:39 +02:00
2016-11-15 12:48:33 +01:00
2016-11-14 16:58:36 +01:00
2016-12-14 16:04:08 -08:00
2016-11-30 08:54:04 +05:30
2016-01-15 22:08:45 +01:00
2010-07-28 09:59:01 -04:00
2015-11-18 16:27:46 -05:00
2016-02-09 13:05:23 +01:00
2016-10-27 16:16:09 -04:00
2016-12-25 11:04:12 +01:00
2016-12-15 08:58:12 -02:00
2017-01-14 16:48:53 +01:00
2016-12-09 09:03:02 -07:00
2014-11-24 07:45:02 +01:00
2008-02-29 08:06:37 -08:00
2013-11-09 00:16:23 -05:00
2016-05-17 15:48:12 -04:00
2017-02-03 08:28:25 -08:00
2017-01-09 10:04:58 +09:00
2016-11-25 10:15:13 -08:00
2013-09-26 15:06:58 -07:00
2012-10-13 10:46:48 +01:00
2016-10-15 10:03:15 -07:00
2016-12-05 19:01:16 -05:00
2017-01-16 14:03:31 -05:00
2014-05-26 14:33:10 +02:00
2015-03-02 14:50:06 -03:00
2014-09-08 09:51:30 +09:00
2016-02-29 08:35:10 +01:00
2016-11-11 08:12:37 -08:00
2008-08-23 12:14:12 -07:00
2016-12-19 08:23:53 -08:00
2017-01-31 13:23:09 -05:00
2016-12-11 16:33:18 -05:00
2017-02-10 15:19:48 +01:00
2016-12-05 15:13:58 +01:00
2012-10-13 10:46:48 +01:00
2014-10-15 21:31:27 +05:30
2017-01-05 23:06:06 -08:00
2016-12-05 18:58:32 -05:00
2016-12-15 13:49:34 -08:00
2016-12-25 17:21:22 +01:00
2016-11-29 15:57:42 +00:00
2016-12-22 11:48:20 -07:00
2016-10-27 16:16:09 -04:00
2017-01-10 18:31:55 -08:00
2015-05-31 11:40:14 +09:00
2016-11-07 16:24:29 -08:00
2015-05-12 10:46:53 +02:00
2016-10-17 14:23:46 +02:00
2016-12-14 10:12:26 +01:00
2013-08-26 21:40:24 +02:00
2010-02-09 11:13:56 +01:00
2016-08-24 15:58:57 +02:00
2016-12-25 17:21:22 +01:00
2016-12-14 16:04:09 -08:00
2016-05-19 19:12:14 -07:00
2016-11-21 22:50:45 +08:00
2016-12-09 21:54:22 -08:00
2017-02-06 09:39:13 +01:00
2012-10-13 10:46:48 +01:00
2009-03-28 21:34:45 +01:00
2016-11-24 16:22:06 +01:00
2017-01-12 20:06:15 +01:00
2012-10-13 10:46:48 +01:00
2016-06-18 22:11:39 -07:00
2015-05-05 13:40:42 -06:00
2016-12-14 16:04:10 -08:00
2016-07-08 13:23:12 +02:00
2016-11-27 20:38:47 -05:00
2016-09-01 22:48:33 -07:00
2016-09-24 08:01:26 -04:00
2015-11-20 11:31:26 -05:00
2012-10-13 10:46:48 +01:00
2016-11-15 12:16:13 -05:00
2016-12-20 09:48:44 -08:00
2013-02-11 14:16:26 -05:00
2016-11-27 16:15:33 -08:00
2005-04-16 15:20:36 -07:00
2010-08-03 09:49:09 -04:00
2016-11-19 09:42:35 -08:00
2016-11-09 08:25:09 +01:00
2006-10-05 15:10:12 +01:00
2012-03-20 12:47:48 +01:00
2016-11-30 14:36:01 +11:00
2016-12-06 17:32:16 +01:00
2014-09-23 23:13:13 -07:00
2016-12-03 23:21:37 -05:00
2015-03-23 10:55:21 +01:00
2017-01-30 15:18:56 +01:00
2015-02-19 01:08:42 +01:00
2015-10-30 10:13:26 +01:00
2016-05-16 11:14:29 -04:00
2016-12-24 11:46:01 -08:00
2009-12-11 15:18:07 -08:00
2016-06-30 11:40:54 -04:00
2017-01-12 14:33:16 +01:00
2013-07-26 16:19:48 -07:00
2008-04-29 08:06:29 -07:00
2016-10-27 18:43:43 -07:00
2016-12-14 16:04:08 -08:00
2016-10-09 12:23:38 -07:00
2016-11-15 09:51:05 +01:00
2017-01-17 10:56:45 -08:00
2016-12-16 09:26:42 -08:00
2012-10-13 10:46:48 +01:00
2016-03-22 15:36:02 -07:00
2014-10-22 16:14:04 -06:00
2015-07-28 08:50:42 +01:00
2015-10-04 11:46:16 +01:00
2016-12-12 18:55:06 -08:00
2016-12-25 17:21:23 +01:00
2016-12-13 15:47:02 -08:00
2016-02-09 11:54:23 +01:00
2009-04-06 16:06:26 +01:00
2016-11-22 12:07:05 +01:00
2015-03-24 11:52:08 +10:30
2016-12-06 16:08:10 -08:00
2013-01-06 01:11:25 -08:00
2006-06-09 21:53:55 +02:00
2016-11-29 12:12:51 -07:00
2014-05-05 16:07:37 -07:00
2009-06-16 19:47:57 -07:00
2016-03-17 15:09:34 -07:00
2015-11-23 10:37:35 -08:00
2016-08-18 23:41:55 +02:00
2016-11-30 14:32:25 +11:00
2015-01-25 23:16:29 -05:00
2017-02-03 09:56:43 -08:00
2015-11-25 09:22:02 -07:00
2012-03-16 10:38:24 -04:00
2015-11-10 12:06:16 +01:00
2016-02-22 22:44:04 -05:00
2016-11-18 13:54:21 -05:00
2016-11-29 18:02:58 +01:00
2017-01-04 13:22:38 -07:00
2016-12-06 11:05:46 +01:00
2016-10-07 18:46:28 -07:00
2017-01-10 18:31:55 -08:00
2017-02-03 14:13:19 -08:00
2016-12-12 18:55:07 -08:00
2009-01-09 16:54:41 -08:00
2009-06-16 08:40:20 +02:00
2017-01-27 11:10:50 -05:00
2016-11-02 15:17:09 -04:00
2017-01-10 21:46:41 +01:00
2012-09-13 14:58:54 -04:00
2017-01-10 18:31:55 -08:00
2016-12-18 11:12:53 -08:00
2017-01-10 18:31:54 -08:00
2016-08-02 19:35:02 -04:00
2016-04-28 11:44:19 +02:00
2017-01-24 16:26:14 -08:00
2016-12-14 16:33:38 +01:00
2017-02-03 08:28:25 -08:00
2016-12-16 16:34:52 -05:00
2014-03-04 13:51:06 -05:00
2016-09-25 23:41:39 -04:00
2014-01-27 21:02:39 -08:00
2016-11-16 10:39:43 +01:00
2016-07-29 12:17:52 -07:00
2016-08-28 23:32:41 -04:00
2017-02-01 12:10:56 -05:00
2016-12-06 21:48:21 +01:00
2016-12-06 21:42:16 +01:00
2016-11-16 18:32:02 -05:00
2017-01-24 12:50:47 -05:00
2016-12-19 17:29:44 -05:00
2016-12-09 23:47:10 -05:00
2014-05-29 11:11:48 -04:00
2017-01-24 16:26:14 -08:00
2014-12-10 21:30:20 -05:00
2016-02-16 13:04:58 -05:00
2016-12-24 11:23:24 -08:00
2013-05-04 14:47:26 -04:00
2016-12-06 10:17:56 +02:00
2016-12-06 10:17:56 +02:00
2016-12-13 10:19:16 -08:00
2016-06-25 07:42:55 -07:00
2016-05-12 07:07:42 -05:00
2015-07-27 08:23:27 -05:00
2015-11-16 09:03:21 +05:30
2016-12-12 18:55:07 -08:00
2016-05-02 09:00:56 -05:00
2016-11-29 15:57:43 +00:00
2015-12-09 09:23:28 -06:00
2016-11-29 23:17:02 -05:00
2016-11-14 15:21:14 -06:00
2015-08-25 11:29:55 -05:00
2016-11-10 17:03:35 +01:00
2013-08-15 17:22:27 -07:00
2016-09-28 08:53:14 +05:30
2012-10-13 10:46:48 +01:00
2013-09-03 22:52:48 -04:00
2015-11-05 19:34:48 -08:00
2016-10-07 18:46:27 -07:00
2016-03-17 15:09:34 -07:00
2016-12-29 11:03:15 -08:00
2016-12-25 11:54:48 -08:00
2014-04-03 16:21:00 -07:00
2016-12-06 10:17:03 +02:00
2015-07-17 16:39:53 -07:00
2016-11-17 18:47:58 -06:00
2016-12-15 12:46:48 -08:00
2016-12-06 13:45:48 -06:00
2015-08-13 15:59:58 -05:00
2016-12-06 13:45:50 -06:00
2016-12-15 12:46:48 -08:00
2014-07-09 14:58:37 +01:00
2015-07-14 17:43:56 -04:00
2017-01-28 07:49:42 -05:00
2016-09-22 15:25:54 +02:00
2017-01-14 11:06:49 +01:00
2015-04-12 21:03:31 +02:00
2017-01-25 14:40:19 -05:00
2017-01-25 14:40:19 -05:00
2014-11-20 14:45:15 +01:00
2016-12-06 02:27:59 +01:00
2016-12-13 11:42:18 -08:00
2016-11-29 18:02:58 +01:00
2016-12-13 11:42:18 -08:00
2012-10-13 10:46:48 +01:00
2016-04-22 10:29:05 +02:00
2016-12-24 11:46:01 -08:00
2016-10-08 11:06:08 -04:00
2011-11-02 16:07:02 -07:00
2016-12-06 10:32:40 +01:00
2016-12-12 18:55:09 -08:00
2016-12-13 16:07:55 -08:00
2013-11-26 20:55:33 -08:00
2016-09-30 15:26:52 -07:00
2016-04-25 23:47:44 +02:00
2016-11-15 16:34:26 -08:00
2016-11-15 16:34:27 -08:00
2016-12-12 19:56:15 -08:00
2016-11-22 12:57:38 -06:00
2016-06-24 22:53:50 -05:00
2016-12-19 08:23:53 -08:00
2016-12-05 19:03:06 -05:00
2017-01-07 18:22:40 -08:00
2016-12-20 09:48:47 -08:00
2016-08-18 15:36:59 +02:00
2017-01-14 21:23:48 -08:00
2016-12-30 03:26:31 -08:00
2016-11-15 08:30:02 +01:00
2016-05-30 09:37:47 +02:00
2016-11-11 18:24:16 +00:00
2016-12-02 00:52:34 +01:00
2016-12-12 18:55:08 -08:00
2016-12-12 11:26:47 -08:00
2016-10-31 15:45:18 -07:00
2016-03-14 17:08:15 +01:00
2014-06-21 22:05:30 +02:00
2014-01-13 13:47:36 +01:00
2016-09-17 08:39:12 -06:00
2016-04-15 16:53:14 -04:00
2017-01-10 18:31:55 -08:00
2014-10-09 22:26:04 -04:00
2013-06-17 16:38:57 -07:00
2012-10-13 10:46:48 +01:00
2016-11-09 20:40:06 -05:00
2016-11-09 20:40:06 -05:00
2016-11-09 20:40:06 -05:00
2016-11-09 20:40:06 -05:00
2010-10-21 10:12:48 +11:00
2016-11-16 10:59:38 +01:00
2016-12-16 00:13:41 +02:00
2016-01-04 16:11:11 -05:00
2016-01-20 17:09:18 -08:00
2016-12-14 16:04:07 -08:00
2012-10-13 10:46:48 +01:00
2017-01-10 18:31:55 -08:00
2017-01-10 18:31:54 -08:00
2016-09-05 13:52:39 +02:00
2015-10-20 10:23:55 +02:00
2012-10-13 10:46:48 +01:00
2015-01-03 14:32:57 -05:00
2016-06-14 11:55:15 +02:00
2015-09-01 08:40:25 -07:00
2016-10-05 18:23:36 -04:00
2017-01-25 11:48:03 +01:00
2014-03-19 08:58:30 +00:00
2012-10-13 10:46:48 +01:00
2015-06-25 17:00:38 -07:00
2016-11-22 17:48:04 -05:00
2016-12-08 13:07:10 -05:00
2012-04-20 23:27:08 +02:00
2017-01-20 03:33:57 +01:00
2012-10-13 10:46:48 +01:00
2014-12-10 17:41:09 -08:00
2017-01-10 18:31:55 -08:00
2014-06-04 16:54:07 -07:00
2017-01-06 13:00:01 -05:00
2016-10-25 14:40:39 +02:00
2016-11-10 10:10:37 +01:00
2016-10-17 09:50:56 -07:00
2015-06-25 17:00:39 -07:00
2010-08-11 08:59:22 -07:00
2017-01-13 12:31:24 -05:00
2011-10-31 19:32:32 -04:00
2006-12-11 14:34:42 -08:00
2016-11-23 10:06:12 +08:00
2016-11-11 18:25:08 +00:00
2016-12-25 17:21:22 +01:00
2016-08-31 14:43:35 -07:00
2016-11-16 09:26:34 +01:00
2016-12-25 11:04:12 +01:00
2016-12-25 11:04:12 +01:00
2016-12-25 11:04:12 +01:00
2017-01-10 18:31:55 -08:00
2016-07-19 17:43:38 +03:00
2013-03-15 00:36:09 -04:00
2016-05-18 18:55:19 -07:00
2016-11-22 17:40:00 -05:00
2015-02-03 12:48:43 -05:00
2015-11-05 19:34:48 -08:00
2016-12-09 09:13:30 -05:00
2016-12-09 09:13:30 -05:00
2016-12-25 11:04:12 +01:00
2016-02-10 13:19:03 +00:00
2016-12-09 22:12:21 -05:00
2015-12-18 17:48:50 -08:00
2014-11-07 10:09:07 -08:00
2016-12-16 10:24:44 -08:00
2016-12-11 18:01:51 -08:00
2016-12-14 16:04:09 -08:00
2015-05-05 17:10:11 -07:00
2011-06-15 20:04:00 -07:00
2016-05-20 17:58:30 -07:00
2011-10-31 19:32:23 -04:00
2016-12-01 10:40:05 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2015-06-01 15:48:54 +02:00
2016-08-01 21:44:52 +03:00
2012-10-13 10:46:48 +01:00
2017-01-20 11:01:17 -05:00
2016-03-02 17:01:57 +02:00
2011-10-31 19:32:32 -04:00
2014-04-07 16:35:53 -07:00
2016-12-12 18:55:08 -08:00
2017-01-11 09:21:41 +01:00
2016-07-28 16:07:41 -07:00
2015-02-04 01:34:14 -05:00
2017-02-03 11:49:06 +01:00
2015-06-01 15:48:54 +02:00
2016-12-25 17:21:22 +01:00
2016-12-13 12:59:57 -08:00
2016-12-25 11:54:48 -08:00
2016-12-06 10:42:03 +01:00
2016-10-07 21:48:36 -04:00
2013-10-17 15:53:09 -04:00
2006-06-22 15:05:58 -07:00
2014-08-08 15:57:26 -07:00
2016-05-20 17:58:30 -07:00