Files
linux/include/linux
Ohad Ben-Cohen b5ab5e24e9 remoteproc: maintain a generic child device for each rproc
For each registered rproc, maintain a generic remoteproc device whose
parent is the low level platform-specific device (commonly a pdev, but
it may certainly be any other type of device too).

With this in hand, the resulting device hierarchy might then look like:

omap-rproc.0
 |
 - remoteproc0  <---- new !
    |
    - virtio0
    |
    - virtio1
       |
       - rpmsg0
       |
       - rpmsg1
       |
       - rpmsg2

Where:
- omap-rproc.0 is the low level device that's bound to the
  driver which invokes rproc_register()
- remoteproc0 is the result of this patch, and will be added by the
  remoteproc framework when rproc_register() is invoked
- virtio0 and virtio1 are vdevs that are registered by remoteproc
  when it realizes that they are supported by the firmware
  of the physical remote processor represented by omap-rproc.0
- rpmsg0, rpmsg1 and rpmsg2 are rpmsg devices that represent rpmsg
  channels, and are registerd by the rpmsg bus when it gets notified
  about their existence

Technically, this patch:
- changes 'struct rproc' to contain this generic remoteproc.x device
- creates a new "remoteproc" type, to which this new generic remoteproc.x
  device belong to.
- adds a super simple enumeration method for the indices of the
  remoteproc.x devices
- updates all dev_* messaging to use the generic remoteproc.x device
  instead of the low level platform-specific device
- updates all dma_* allocations to use the parent of remoteproc.x (where
  the platform-specific memory pools, most commonly CMA, are to be found)

Adding this generic device has several merits:
- we can now add remoteproc runtime PM support simply by hooking onto the
  new "remoteproc" type
- all remoteproc log messages will now carry a common name prefix
  instead of having a platform-specific one
- having a device as part of the rproc struct makes it possible to simplify
  refcounting (see subsequent patch)

Thanks to Stephen Boyd <sboyd@codeaurora.org> for suggesting and
discussing these ideas in one of the remoteproc review threads and
to Fernando Guzman Lugo <fernando.lugo@ti.com> for trying them out
with the (upcoming) runtime PM support for remoteproc.

Cc: Fernando Guzman Lugo <fernando.lugo@ti.com>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
2012-07-06 00:53:03 +03:00
..
2012-05-07 15:39:35 -07:00
2012-04-23 14:23:32 +03:00
2012-05-15 17:30:30 -04:00
2012-03-20 21:29:46 -04:00
2012-05-08 14:13:25 -07:00
2012-03-29 15:38:31 +10:30
2012-03-23 16:58:38 -07:00
2012-04-14 15:24:26 -04:00
2012-05-02 14:15:27 -05:00
2012-05-25 12:46:23 +05:30
2012-05-10 12:00:56 +02:00
2012-04-30 15:30:18 -07:00
2012-05-17 15:36:35 -04:00
2012-05-29 23:28:33 -04:00
2012-04-25 12:25:05 +02:00
2012-04-27 10:46:45 +08:00
2012-05-22 11:32:31 +02:00
2012-03-26 21:47:19 +02:00
2012-03-26 21:47:19 +02:00
2012-03-26 21:47:19 +02:00
2012-05-12 14:28:14 +02:00
2012-03-26 21:47:19 +02:00
2012-03-27 22:45:26 -04:00
2012-04-21 16:26:33 -04:00
2012-03-20 12:47:48 +01:00
2012-05-07 10:58:57 -06:00
2012-03-20 12:47:47 +01:00
2012-05-21 21:09:38 +02:00
2012-04-09 11:16:55 -07:00
2012-05-31 17:49:30 -07:00
2012-05-31 17:49:32 -07:00
2012-05-31 17:49:26 -07:00
2012-05-31 17:49:30 -07:00
2012-05-11 10:56:56 +01:00
2012-05-29 23:28:41 -04:00
2012-03-15 21:41:34 +01:00
2012-05-09 13:58:06 -07:00
2012-05-22 15:20:28 -04:00
2012-05-29 16:22:19 -07:00
2012-05-29 22:33:55 -04:00
2012-05-08 20:25:42 +02:00
2012-04-12 15:10:33 -04:00
2012-05-26 14:17:30 -04:00
2012-06-05 18:38:47 -04:00
2012-05-16 15:17:08 -04:00
2012-05-21 14:31:48 +01:00
2012-03-21 17:55:01 -07:00
2012-05-14 14:15:32 -07:00
2012-06-06 17:08:00 +02:00
2012-05-12 15:53:42 -04:00
2012-05-17 08:51:59 -07:00
2012-03-20 21:29:38 -04:00
2012-03-28 18:30:03 +01:00
2012-04-18 15:57:31 -07:00
2012-06-01 12:58:52 -04:00
2012-05-31 17:49:26 -07:00
2012-05-08 12:35:06 +02:00
2012-03-19 16:53:08 -04:00
2012-04-15 12:44:40 -04:00
2012-05-14 18:53:19 -04:00
2012-05-21 16:16:58 -07:00
2012-03-22 19:43:43 -07:00
2012-05-22 12:16:16 +09:30
2012-03-31 08:09:50 +05:30
2012-03-28 18:30:03 +01:00