<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/media/platform/omap3isp/isp.c, branch linux-4.5.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.5.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.5.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-01-11T14:19:20Z</updated>
<entry>
<title>[media] v4l: omap3isp: Use media entity enumeration interface</title>
<updated>2016-01-11T14:19:20Z</updated>
<author>
<name>Sakari Ailus</name>
</author>
<published>2015-12-16T13:32:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=17d3d4058a61329a6a4384054da6a57c65c7e8ba'/>
<id>urn:sha1:17d3d4058a61329a6a4384054da6a57c65c7e8ba</id>
<content type='text'>
Instead of using a bitmap directly in a driver, use the new media entity
enumeration interface to perform the same.

Signed-off-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>[media] v4l: omap3isp: Use the new media graph walk interface</title>
<updated>2016-01-11T14:19:19Z</updated>
<author>
<name>Sakari Ailus</name>
</author>
<published>2015-12-16T13:32:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=28461451c0fc943fa9271e653483857f20d9b489'/>
<id>urn:sha1:28461451c0fc943fa9271e653483857f20d9b489</id>
<content type='text'>
The media graph walk requires initialisation and cleanup soon. Update the
users to perform the soon necessary API calls.

Signed-off-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>[media] media-device: split media initialization and registration</title>
<updated>2016-01-11T14:19:15Z</updated>
<author>
<name>Javier Martinez Canillas</name>
</author>
<published>2015-12-11T22:57:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9832e155f1ed3030fdfaa19e72c06472dc2ecb1d'/>
<id>urn:sha1:9832e155f1ed3030fdfaa19e72c06472dc2ecb1d</id>
<content type='text'>
The media device node is registered and so made visible to user-space
before entities are registered and links created which means that the
media graph obtained by user-space could be only partially enumerated
if that happens too early before all the graph has been created.

To avoid this race condition, split the media init and registration
in separate functions and only register the media device node when
all the pending subdevices have been registered, either explicitly
by the driver or asynchronously using v4l2_async_register_subdev().

The media_device_register() had a check for drivers not filling dev
and model fields but all drivers in mainline set them and not doing
it will be a driver bug so change the function return to void and
add a BUG_ON() for dev being NULL instead.

Also, add a media_device_cleanup() function that will destroy the
graph_mutex that is initialized in media_device_init().

[mchehab@osg.samsung.com: Fix compilation if !CONFIG_MEDIA_CONTROLLER
 and remove two warnings added by this changeset]
Suggested-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Signed-off-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Acked-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>[media] omap3isp: consistently use v4l2_dev var in complete notifier</title>
<updated>2016-01-11T14:19:08Z</updated>
<author>
<name>Javier Martinez Canillas</name>
</author>
<published>2015-12-11T17:16:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=06a1368faf2184c71f086bfc13e81ea153d98798'/>
<id>urn:sha1:06a1368faf2184c71f086bfc13e81ea153d98798</id>
<content type='text'>
The isp_subdev_notifier_complete() complete callback defines a struct
v4l2_device *v4l2_dev to avoid needing two level of indirections to
access the V4L2 subdevs but the var is not always used when possible
as when calling v4l2_device_register_subdev_nodes().

So change that to consistently use the defined v4l2_dev pointer var.

Suggested-by: Sakari Ailus &lt;sakari.ailus@linux.intel.com&gt;
Signed-off-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>[media] omap3isp: remove pads prefix from isp_create_pads_links()</title>
<updated>2016-01-11T14:19:07Z</updated>
<author>
<name>Javier Martinez Canillas</name>
</author>
<published>2015-12-11T17:16:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b285d5afcf80270fafc57b1a7f1ffab9e77e4686'/>
<id>urn:sha1:b285d5afcf80270fafc57b1a7f1ffab9e77e4686</id>
<content type='text'>
The function that creates the links between ISP internal and external
entities is called isp_create_pads_links() but the "pads" prefix is
redundant since the driver doesn't handle any other kind of link so
it can just be removed.

While being there, fix the function's kernel-doc since is not using
a proper format.

Suggested-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Signed-off-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>[media] omap3isp: remove per ISP module link creation functions</title>
<updated>2016-01-11T14:19:07Z</updated>
<author>
<name>Javier Martinez Canillas</name>
</author>
<published>2015-12-11T17:16:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b5f6df0607b767fe48b179c6ccee204ee17c3373'/>
<id>urn:sha1:b5f6df0607b767fe48b179c6ccee204ee17c3373</id>
<content type='text'>
The entities to video nodes links were created on separate functions for
each ISP module but since the only thing that these functions do is to
call media_create_pad_link(), there's no need for that indirection level
and all link creation logic can be just inlined in the caller function.

Also, since the only possible failure for the link creation is a memory
allocation, there is no need for error messages since the core already
reports a very verbose message in that case.

Suggested-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Signed-off-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>[media] media: use macros to check for V4L2 subdev entities</title>
<updated>2016-01-11T14:18:50Z</updated>
<author>
<name>Mauro Carvalho Chehab</name>
</author>
<published>2015-05-08T01:12:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3efdf62c5f68007020ef935ad2887e7fc4e31c36'/>
<id>urn:sha1:3efdf62c5f68007020ef935ad2887e7fc4e31c36</id>
<content type='text'>
Instead of relying on media subtype, use the new macros to detect
if an entity is a subdev or an A/V DMA entity.

Please note that most drivers assume that there's just AV_DMA or
V4L2 subdevs. This is not true anymore, as we've added MC support
for DVB, and there are plans to add support for ALSA and FB/DRM
too.

Ok, on the current pipelines supported by those drivers, just V4L
stuff are there, but, assuming that some day a pipeline that also
works with other subsystems will ever added, it is better to add
explicit checks for the AV_DMA stuff.

Acked-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>[media] omap3isp: create links after all subdevs have been bound</title>
<updated>2016-01-11T14:18:44Z</updated>
<author>
<name>Javier Martinez Canillas</name>
</author>
<published>2015-08-28T09:28:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=68a57fa93a9f7776ab502db389469dd1ac6a1c66'/>
<id>urn:sha1:68a57fa93a9f7776ab502db389469dd1ac6a1c66</id>
<content type='text'>
The omap3isp driver parses the graph endpoints to know how many subdevices
needs to be registered async and register notifiers callbacks for to know
when these are bound and when the async registrations are completed.

Currently the entities pad are linked with the correct ISP input interface
when the subdevs are bound but it happens before entitities are registered
with the media device so that won't work now that the entity links list is
initialized on device registration.

So instead creating the pad links when the subdevice is bound, create them
on the complete callback once all the subdevices have been bound but only
try to create for the ones that have a bus configuration set during bound.

Signed-off-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>[media] omap3isp: separate links creation from entities init</title>
<updated>2016-01-11T14:18:44Z</updated>
<author>
<name>Javier Martinez Canillas</name>
</author>
<published>2015-08-26T12:24:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f2f6da0d77027d05bf8a06eb8b80fe139f9cc853'/>
<id>urn:sha1:f2f6da0d77027d05bf8a06eb8b80fe139f9cc853</id>
<content type='text'>
The omap3isp driver initializes the entities and creates the pads links
before the entities are registered with the media device. This does not
work now that object IDs are used to create links so the media_device
has to be set.

Split out the pads links creation from the entity initialization so the links
are created after the entities have been registered with the media device.

Suggested-by: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
Signed-off-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
</content>
</entry>
<entry>
<title>[media] media: use entity.graph_obj.mdev instead of .parent</title>
<updated>2016-01-11T14:18:43Z</updated>
<author>
<name>Javier Martinez Canillas</name>
</author>
<published>2015-08-19T15:35:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d10c98949d1a1fff14d750fe5162213bb5b39e11'/>
<id>urn:sha1:d10c98949d1a1fff14d750fe5162213bb5b39e11</id>
<content type='text'>
The struct media_entity has a .parent field that stores a pointer
to the parent struct media_device. But recently a media_gobj was
embedded into the entities and since struct media_gojb already has
a pointer to a struct media_device in the .mdev field, the .parent
field becomes redundant and can be removed.

This patch replaces all the usage of .parent by .graph_obj.mdev so
that field will become unused and can be removed on a later patch.

No functional changes.

The transformation was made using the following coccinelle spatch:

@@
struct media_entity *me;
@@

- me-&gt;parent
+ me-&gt;graph_obj.mdev

@@
struct media_entity *link;
@@

- link-&gt;source-&gt;entity-&gt;parent
+ link-&gt;source-&gt;entity-&gt;graph_obj.mdev

@@
struct exynos_video_entity *ve;
@@

- ve-&gt;vdev.entity.parent
+ ve-&gt;vdev.entity.graph_obj.mdev

Suggested-by: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
Signed-off-by: Javier Martinez Canillas &lt;javier@osg.samsung.com&gt;
Acked-by: Hans Verkuil &lt;hans.verkuil@cisco.com&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@osg.samsung.com&gt;
</content>
</entry>
</feed>
