All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: linux-media@vger.kernel.org, hverkuil@xs4all.nl
Subject: Re: [PATCH 1/3] media: Provide a helper for setting bus_info field
Date: Mon, 24 Jan 2022 17:55:32 +0200	[thread overview]
Message-ID: <Ye7L9My5CmarNMLB@paasikivi.fi.intel.com> (raw)
In-Reply-To: <YeyWwp/0lmfImJ7t@pendragon.ideasonboard.com>

Hi Laurent,

Thanks for the review.

On Sun, Jan 23, 2022 at 01:44:02AM +0200, Laurent Pinchart wrote:
> Hi Sakari,
> 
> Thank you for the patch.
> 
> On Sat, Jan 22, 2022 at 06:36:54PM +0200, Sakari Ailus wrote:
> > The bus_info or a similar field exists in a lot of structs, yet drivers
> > tend to set the value of that field by themselves in a determinable way.
> > Thus provide a helper for doing this. To be used in subsequent patches.
> > 
> > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
> > ---
> >  include/media/media-device.h | 30 +++++++++++++++++++++++++++---
> >  1 file changed, 27 insertions(+), 3 deletions(-)
> > 
> > diff --git a/include/media/media-device.h b/include/media/media-device.h
> > index 1345e6da688a..9f0458068196 100644
> > --- a/include/media/media-device.h
> > +++ b/include/media/media-device.h
> > @@ -13,12 +13,13 @@
> >  
> >  #include <linux/list.h>
> >  #include <linux/mutex.h>
> > +#include <linux/pci.h>
> > +#include <linux/platform_device.h>
> >  
> >  #include <media/media-devnode.h>
> >  #include <media/media-entity.h>
> >  
> >  struct ida;
> > -struct device;
> >  struct media_device;
> >  
> >  /**
> > @@ -181,8 +182,7 @@ struct media_device {
> >  	atomic_t request_id;
> >  };
> >  
> > -/* We don't need to include pci.h or usb.h here */
> > -struct pci_dev;
> > +/* We don't need to include usb.h here */
> >  struct usb_device;
> >  
> >  #ifdef CONFIG_MEDIA_CONTROLLER
> > @@ -496,4 +496,28 @@ static inline void __media_device_usb_init(struct media_device *mdev,
> >  #define media_device_usb_init(mdev, udev, name) \
> >  	__media_device_usb_init(mdev, udev, name, KBUILD_MODNAME)
> >  
> > +static inline void
> > +__media_set_bus_info(char *bus_info, size_t bus_info_size, struct device *dev)
> > +{
> > +	if (!dev || *bus_info)
> > +		return;
> > +
> > +	if (dev_is_platform(dev))
> > +		snprintf(bus_info, bus_info_size, "platform:%s", dev_name(dev));
> > +	else if (dev_is_pci(dev))
> > +		snprintf(bus_info, bus_info_size, "PCI:%s", dev_name(dev));
> > +}
> 
> Does this have to be inline ?

Not necessarily. But we'll need a new module if it isn't --- this code will
be needed in both MC and V4L2 separately.

> 
> > +
> > +/**
> > + * media_set_bus_info() - Conditionally set bus_info
> > + *
> > + * @bus_info:	Variable where to write the bus info (char array)
> > + * @dev:	Related struct device
> > + *
> > + * Sets bus information based on device conditionally, if the first character of
> > + * &bus_info is not '\0' and dev is non-NULL.
> > + */
> > +#define media_set_bus_info(bus_info, dev) \
> > +	__media_set_bus_info(bus_info, sizeof(bus_info), dev)
> 
> I like the idea, but if the bus_info passed to the macro is a char *
> instead of a char[], I think this will still compile, with
> sizeof(bus_info) not giving the expected value. Could we either get a
> compilation failure in that case, of maybe turn this into two inline
> functions, one for media_device and the other one for v4l2_capability,
> that would both call __media_set_bus_info() ? The latter may be better.

The latter, yes. There will be so few users that's entirely fine.

-- 
Kind regards,

Sakari Ailus

  reply	other threads:[~2022-01-24 15:55 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-22 16:36 [PATCH 0/3] Set bus_info field in framework Sakari Ailus
2022-01-22 16:36 ` [PATCH 1/3] media: Provide a helper for setting bus_info field Sakari Ailus
2022-01-22 23:44   ` Laurent Pinchart
2022-01-24 15:55     ` Sakari Ailus [this message]
2022-01-25 12:54   ` Hans Verkuil
2022-01-26 16:07     ` Sakari Ailus
2022-01-22 16:36 ` [PATCH 2/3] media: Set bus_info in media_device_init() Sakari Ailus
2022-01-22 23:48   ` Laurent Pinchart
2022-01-24 15:59     ` Sakari Ailus
2022-01-24 16:21       ` Laurent Pinchart
2022-01-22 16:36 ` [PATCH 3/3] v4l: ioctl: Set bus_info in v4l_querycap() Sakari Ailus
2022-01-22 23:51   ` Laurent Pinchart
2022-01-24 16:02     ` Sakari Ailus
2022-01-24 16:23       ` Laurent Pinchart
2022-01-24 16:47         ` Sakari Ailus
2022-01-24 22:23   ` kernel test robot
2022-01-24 22:23     ` kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Ye7L9My5CmarNMLB@paasikivi.fi.intel.com \
    --to=sakari.ailus@linux.intel.com \
    --cc=hverkuil@xs4all.nl \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.