Loading drivers/media/v4l2-core/v4l2-mc.c +35 −0 Original line number Diff line number Diff line Loading @@ -15,9 +15,44 @@ */ #include <linux/module.h> #include <linux/pci.h> #include <media/media-entity.h> #include <media/v4l2-mc.h> struct media_device *v4l2_mc_pci_media_device_init(struct pci_dev *pci_dev, 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(v4l2_mc_pci_media_device_init); int v4l2_mc_create_media_graph(struct media_device *mdev) { Loading include/media/v4l2-mc.h +23 −1 Original line number Diff line number Diff line Loading @@ -92,6 +92,10 @@ enum demod_pad_index { DEMOD_NUM_PADS }; struct pci_dev; /* We don't need to include pci.h here */ #ifdef CONFIG_MEDIA_CONTROLLER /** * v4l2_mc_create_media_graph() - create Media Controller links at the graph. * Loading @@ -106,11 +110,29 @@ enum demod_pad_index { * interface centric PC-consumer's hardware, V4L2 subdev centric camera * hardware should not use this routine, as it will not build the right graph. */ #ifdef CONFIG_MEDIA_CONTROLLER int v4l2_mc_create_media_graph(struct media_device *mdev); /** * v4l2_mc_pci_media_device_init() - create and initialize a * struct &media_device from a PCI device. * * @pci_dev: pointer to struct pci_dev * @name: media device name. If %NULL, the routine will use the default * name for the pci device, given by pci_name() macro. */ struct media_device *v4l2_mc_pci_media_device_init(struct pci_dev *pci_dev, char *name); #else static inline int v4l2_mc_create_media_graph(struct media_device *mdev) { return 0; } struct media_device *v4l2_mc_pci_media_device_init(struct pci_dev *pci_dev, char *name) { return NULL; } #endif Loading
drivers/media/v4l2-core/v4l2-mc.c +35 −0 Original line number Diff line number Diff line Loading @@ -15,9 +15,44 @@ */ #include <linux/module.h> #include <linux/pci.h> #include <media/media-entity.h> #include <media/v4l2-mc.h> struct media_device *v4l2_mc_pci_media_device_init(struct pci_dev *pci_dev, 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(v4l2_mc_pci_media_device_init); int v4l2_mc_create_media_graph(struct media_device *mdev) { Loading
include/media/v4l2-mc.h +23 −1 Original line number Diff line number Diff line Loading @@ -92,6 +92,10 @@ enum demod_pad_index { DEMOD_NUM_PADS }; struct pci_dev; /* We don't need to include pci.h here */ #ifdef CONFIG_MEDIA_CONTROLLER /** * v4l2_mc_create_media_graph() - create Media Controller links at the graph. * Loading @@ -106,11 +110,29 @@ enum demod_pad_index { * interface centric PC-consumer's hardware, V4L2 subdev centric camera * hardware should not use this routine, as it will not build the right graph. */ #ifdef CONFIG_MEDIA_CONTROLLER int v4l2_mc_create_media_graph(struct media_device *mdev); /** * v4l2_mc_pci_media_device_init() - create and initialize a * struct &media_device from a PCI device. * * @pci_dev: pointer to struct pci_dev * @name: media device name. If %NULL, the routine will use the default * name for the pci device, given by pci_name() macro. */ struct media_device *v4l2_mc_pci_media_device_init(struct pci_dev *pci_dev, char *name); #else static inline int v4l2_mc_create_media_graph(struct media_device *mdev) { return 0; } struct media_device *v4l2_mc_pci_media_device_init(struct pci_dev *pci_dev, char *name) { return NULL; } #endif