Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 41b44e35 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

[media] media-device: move PCI/USB helper functions from v4l2-mc



Those ancillary functions could be called even when compiled
without V4L2 support, as warned by ktest build robot:

All errors (new ones prefixed by >>):

>> ERROR: "__v4l2_mc_usb_media_device_init" [drivers/media/usb/dvb-usb/dvb-usb.ko] undefined!
>> ERROR: "__v4l2_mc_usb_media_device_init" [drivers/media/usb/dvb-usb-v2/dvb_usb_v2.ko] undefined!
>> ERROR: "__v4l2_mc_usb_media_device_init" [drivers/media/usb/au0828/au0828.ko] undefined!

Also, there's nothing there that are specific to V4L2. So, move
those ancillary functions to MC core.

No functional changes. Just function rename.

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 2ddf22ee
Loading
Loading
Loading
Loading
+74 −0
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@
#include <linux/media.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/pci.h>
#include <linux/usb.h>

#include <media/media-device.h>
#include <media/media-devnode.h>
@@ -753,4 +755,76 @@ struct media_device *media_device_find_devres(struct device *dev)
}
EXPORT_SYMBOL_GPL(media_device_find_devres);

struct media_device *media_device_pci_init(struct pci_dev *pci_dev,
					   const char *name)
{
#ifdef CONFIG_PCI
	struct media_device *mdev;

	mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
	if (!mdev)
		return NULL;

	mdev->dev = &pci_dev->dev;

	if (name)
		strlcpy(mdev->model, name, sizeof(mdev->model));
	else
		strlcpy(mdev->model, pci_name(pci_dev), sizeof(mdev->model));

	sprintf(mdev->bus_info, "PCI:%s", pci_name(pci_dev));

	mdev->hw_revision = (pci_dev->subsystem_vendor << 16)
			    | pci_dev->subsystem_device;

	mdev->driver_version = LINUX_VERSION_CODE;

	media_device_init(mdev);

	return mdev;
#else
	return NULL;
#endif
}
EXPORT_SYMBOL_GPL(media_device_pci_init);

struct media_device *__media_device_usb_init(struct usb_device *udev,
					     const char *board_name,
					     const char *driver_name)
{
#ifdef CONFIG_USB
	struct media_device *mdev;

	mdev = kzalloc(sizeof(*mdev), GFP_KERNEL);
	if (!mdev)
		return NULL;

	mdev->dev = &udev->dev;

	if (driver_name)
		strlcpy(mdev->driver_name, driver_name,
			sizeof(mdev->driver_name));

	if (board_name)
		strlcpy(mdev->model, board_name, sizeof(mdev->model));
	else if (udev->product)
		strlcpy(mdev->model, udev->product, sizeof(mdev->model));
	else
		strlcpy(mdev->model, "unknown model", sizeof(mdev->model));
	if (udev->serial)
		strlcpy(mdev->serial, udev->serial, sizeof(mdev->serial));
	usb_make_path(udev, mdev->bus_info, sizeof(mdev->bus_info));
	mdev->hw_revision = le16_to_cpu(udev->descriptor.bcdDevice);
	mdev->driver_version = LINUX_VERSION_CODE;

	media_device_init(mdev);

	return mdev;
#else
	return NULL;
#endif
}
EXPORT_SYMBOL_GPL(__media_device_usb_init);


#endif /* CONFIG_MEDIA_CONTROLLER */
+1 −1
Original line number Diff line number Diff line
@@ -1043,7 +1043,7 @@ static int saa7134_initdev(struct pci_dev *pci_dev,
	sprintf(dev->name, "saa%x[%d]", pci_dev->device, dev->nr);

#ifdef CONFIG_MEDIA_CONTROLLER
	dev->media_dev = v4l2_mc_pci_media_device_init(pci_dev, dev->name);
	dev->media_dev = media_device_pci_init(pci_dev, dev->name);
	if (!dev->media_dev) {
		err = -ENOMEM;
		goto fail0;
+2 −2
Original line number Diff line number Diff line
@@ -192,9 +192,9 @@ static int au0828_media_device_init(struct au0828_dev *dev,
	struct media_device *mdev;

	if (!dev->board.name)
		mdev = v4l2_mc_usb_media_device_init(udev, "unknown au0828");
		mdev = media_device_usb_init(udev, "unknown au0828");
	else
		mdev = v4l2_mc_usb_media_device_init(udev, dev->board.name);
		mdev = media_device_usb_init(udev, dev->board.name);
	if (!mdev)
		return -ENOMEM;

+1 −1
Original line number Diff line number Diff line
@@ -1212,7 +1212,7 @@ static int cx231xx_media_device_init(struct cx231xx *dev,
#ifdef CONFIG_MEDIA_CONTROLLER
	struct media_device *mdev;

	mdev = v4l2_mc_usb_media_device_init(udev, dev->board.name);
	mdev = media_device_usb_init(udev, dev->board.name);
	if (!mdev)
		return -ENOMEM;

+2 −2
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
 */

#include "dvb_usb_common.h"
#include <media/v4l2-mc.h>
#include <media/media-device.h>

static int dvb_usbv2_disable_rc_polling;
module_param_named(disable_rc_polling, dvb_usbv2_disable_rc_polling, int, 0644);
@@ -408,7 +408,7 @@ static int dvb_usbv2_media_device_init(struct dvb_usb_adapter *adap)
	struct dvb_usb_device *d = adap_to_d(adap);
	struct usb_device *udev = d->udev;

	mdev = v4l2_mc_usb_media_device_init(udev, d->name);
	mdev = media_device_usb_init(udev, d->name);
	if (!mdev)
		return -ENOMEM;

Loading