mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
media: ipu-bridge: Add ipu_bridge_get_ipu6()
Add ipu_bridge_get_ipu6() for obtaining the IPU 6 (or soon later) PCI device. This isn't technically a job of the IPU bridge, but the functionality is required in conjunction with the firmware definitions that necessitate the use of the IPU bridge on many systems. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Reviewed-by: Antti Laakso <antti.laakso@linux.intel.com> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
This commit is contained in:
parent
27953c0449
commit
eda381fd8c
|
|
@ -15,6 +15,7 @@
|
|||
#include <linux/workqueue.h>
|
||||
|
||||
#include <media/ipu-bridge.h>
|
||||
#include <media/ipu6-pci-table.h>
|
||||
#include <media/v4l2-fwnode.h>
|
||||
|
||||
#define ADEV_DEV(adev) ACPI_PTR(&((adev)->dev))
|
||||
|
|
@ -950,6 +951,18 @@ static int ipu_bridge_check_fwnode_graph(struct fwnode_handle *fwnode)
|
|||
return ipu_bridge_check_fwnode_graph(fwnode->secondary);
|
||||
}
|
||||
|
||||
struct pci_dev *ipu_bridge_get_ipu6(void)
|
||||
{
|
||||
struct pci_dev *ipu = NULL;
|
||||
|
||||
for (unsigned int i = 0; !ipu && ipu6_pci_tbl[i].vendor; i++)
|
||||
ipu = pci_get_device(ipu6_pci_tbl[i].vendor,
|
||||
ipu6_pci_tbl[i].device, NULL);
|
||||
|
||||
return ipu;
|
||||
}
|
||||
EXPORT_SYMBOL_NS_GPL(ipu_bridge_get_ipu6, "INTEL_IPU_BRIDGE");
|
||||
|
||||
static DEFINE_MUTEX(ipu_bridge_mutex);
|
||||
|
||||
int ipu_bridge_init(struct device *dev,
|
||||
|
|
|
|||
|
|
@ -169,11 +169,13 @@ struct ipu_bridge {
|
|||
};
|
||||
|
||||
#if IS_ENABLED(CONFIG_IPU_BRIDGE)
|
||||
struct pci_dev *ipu_bridge_get_ipu6(void);
|
||||
int ipu_bridge_init(struct device *dev,
|
||||
ipu_parse_sensor_fwnode_t parse_sensor_fwnode);
|
||||
int ipu_bridge_parse_ssdb(struct acpi_device *adev, struct ipu_sensor *sensor);
|
||||
int ipu_bridge_instantiate_vcm(struct device *sensor);
|
||||
#else
|
||||
static inline struct pci_dev *ipu_bridge_get_ipu6(void) { return NULL; }
|
||||
/* Use a define to avoid the @parse_sensor_fwnode argument getting evaluated */
|
||||
#define ipu_bridge_init(dev, parse_sensor_fwnode) (0)
|
||||
static inline int ipu_bridge_instantiate_vcm(struct device *s) { return 0; }
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user