media: mc: Provide a helper for setting bus_info field

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>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
This commit is contained in:
Sakari Ailus 2022-01-22 11:25:57 +00:00 committed by Mauro Carvalho Chehab
parent db1fa290a3
commit 78a171e587

View File

@ -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
@ -502,4 +502,27 @@ 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)
/**
* media_set_bus_info() - Set bus_info field
*
* @bus_info: Variable where to write the bus info (char array)
* @bus_info_size: Length of the bus_info
* @dev: Related struct device
*
* Sets bus information based on &dev. This is currently done for PCI and
* platform devices. dev is required to be non-NULL for this to happen.
*
* This function is not meant to be called from drivers.
*/
static inline void
media_set_bus_info(char *bus_info, size_t bus_info_size, struct device *dev)
{
if (!dev)
strscpy(bus_info, "no bus info", bus_info_size);
else 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));
}
#endif