rpmsg: omx: use different device id for each rproc in id_table
authorJuan Gutierrez <jgutierrez@ti.com>
Mon, 5 Sep 2011 16:47:30 +0000 (11:47 -0500)
committerSuman Anna <s-anna@ti.com>
Fri, 23 Mar 2012 20:30:18 +0000 (15:30 -0500)
commit5407d38451af55bcc37d52755134360a77116028
tree6926438c5242e59cd81d6b6a038f8d1b8f3afd7e
parentd682da0738ade1eb01843647ad1ab7cb70df135d
rpmsg: omx: use different device id for each rproc in id_table

Device id is the same for all remote processors currently, so
there is no way to know which remote proc is being registered
every time an rpmsg-omx channel is created. The devices being
created are simply created using an incremental minor number
in the boot/service registration order.

Userspace is assuming that the second cdev registered is always
for ipu_c1 (/dev/rpmsg-omx1 is used for omx video). This remains
true if ipu is the only remote processor present. ipu_c1 always
gets created second today due to the boot-up sequence of the
ipu cores and the images they are executing, but this may not
be valid always.

When dsp is being used, the dsp boot is quicker and usually
publishes the OMX service first (and creates the cdev as
rpmsg-omx0), then the ipu cores gets registered (as rpmsg-omx1
and rpmsg-omx2 respecitvely). This breaks the whole multimedia
use-cases, since the application is talking to an incorrect
remote processor.

The device id table is updated to match specific names to
specific processors, so that they always remain the same
irrespective of the boot sequence.
 "rpmsg-omx0"    ipu_c0
 "rpmsg-omx1"    ipu_c1
 "rpmsg-omx2"    dsp

Signed-off-by: Juan Gutierrez <jgutierrez@ti.com>
drivers/rpmsg/rpmsg_omx.c