From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from lb3-smtp-cloud6.xs4all.net ([194.109.24.31]:41745 "EHLO lb3-smtp-cloud6.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751433AbbHaMaZ (ORCPT ); Mon, 31 Aug 2015 08:30:25 -0400 Message-ID: <55E448A8.6060004@xs4all.nl> Date: Mon, 31 Aug 2015 14:29:28 +0200 From: Hans Verkuil MIME-Version: 1.0 To: Mauro Carvalho Chehab , Linux Media Mailing List CC: Mauro Carvalho Chehab Subject: Re: [PATCH v8 48/55] [media] media_device: add a topology version field References: In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-media-owner@vger.kernel.org List-ID: On 08/30/2015 05:06 AM, Mauro Carvalho Chehab wrote: > Every time a graph object is added or removed, the version > of the topology changes. That's a requirement for the new > MEDIA_IOC_G_TOPOLOGY, in order to allow userspace to know > that the topology has changed after a previous call to it. > > Signed-off-by: Mauro Carvalho Chehab I think this should be postponed until we actually have dynamic reconfigurable graphs. I would also like to reserve version 0: if 0 is returned, then the graph is static. In G_TOPOLOGY we'd return always 0 for now. Regards, Hans > > diff --git a/drivers/media/media-entity.c b/drivers/media/media-entity.c > index c89f51bc688d..c18f4af52771 100644 > --- a/drivers/media/media-entity.c > +++ b/drivers/media/media-entity.c > @@ -185,6 +185,9 @@ void media_gobj_init(struct media_device *mdev, > list_add_tail(&gobj->list, &mdev->interfaces); > break; > } > + > + mdev->topology_version++; > + > dev_dbg_obj(__func__, gobj); > } > > @@ -199,6 +202,8 @@ void media_gobj_remove(struct media_gobj *gobj) > { > dev_dbg_obj(__func__, gobj); > > + gobj->mdev->topology_version++; > + > /* Remove the object from mdev list */ > list_del(&gobj->list); > } > diff --git a/include/media/media-device.h b/include/media/media-device.h > index 0d1b9c687454..1b12774a9ab4 100644 > --- a/include/media/media-device.h > +++ b/include/media/media-device.h > @@ -41,6 +41,8 @@ struct device; > * @bus_info: Unique and stable device location identifier > * @hw_revision: Hardware device revision > * @driver_version: Device driver version > + * @topology_version: Monotonic counter for storing the version of the graph > + * topology. Should be incremented each time the topology changes. > * @entity_id: Unique ID used on the last entity registered > * @pad_id: Unique ID used on the last pad registered > * @link_id: Unique ID used on the last link registered > @@ -74,6 +76,8 @@ struct media_device { > u32 hw_revision; > u32 driver_version; > > + u32 topology_version; > + > u32 entity_id; > u32 pad_id; > u32 link_id; >