#include <linux/bitfield.h>
#include <linux/bits.h>
#include <linux/dma-mapping.h>
#include <linux/err.h>
#include <linux/firmware.h>
#include <linux/kernel.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/pci-ats.h>
#include <linux/pm_runtime.h>
#include <linux/property.h>
#include <linux/scatterlist.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <media/ipu-bridge.h>
#include <media/ipu6-pci-table.h>
#include "ipu6.h"
#include "ipu6-bus.h"
#include "ipu6-buttress.h"
#include "ipu6-cpd.h"
#include "ipu6-isys.h"
#include "ipu6-mmu.h"
#include "ipu6-platform-buttress-regs.h"
#include "ipu6-platform-isys-csi2-reg.h"
#include "ipu6-platform-regs.h"
#define IPU6_PCI_BAR …
struct ipu6_cell_program { … };
static struct ipu6_isys_internal_pdata isys_ipdata = …;
static struct ipu6_psys_internal_pdata psys_ipdata = …;
static const struct ipu6_buttress_ctrl isys_buttress_ctrl = …;
static const struct ipu6_buttress_ctrl psys_buttress_ctrl = …;
static void
ipu6_pkg_dir_configure_spc(struct ipu6_device *isp,
const struct ipu6_hw_variants *hw_variant,
int pkg_dir_idx, void __iomem *base,
u64 *pkg_dir, dma_addr_t pkg_dir_vied_address)
{ … }
void ipu6_configure_spc(struct ipu6_device *isp,
const struct ipu6_hw_variants *hw_variant,
int pkg_dir_idx, void __iomem *base, u64 *pkg_dir,
dma_addr_t pkg_dir_dma_addr)
{ … }
EXPORT_SYMBOL_NS_GPL(…);
#define IPU6_ISYS_CSI2_NPORTS …
#define IPU6SE_ISYS_CSI2_NPORTS …
#define IPU6_TGL_ISYS_CSI2_NPORTS …
#define IPU6EP_MTL_ISYS_CSI2_NPORTS …
static void ipu6_internal_pdata_init(struct ipu6_device *isp)
{ … }
static struct ipu6_bus_device *
ipu6_isys_init(struct pci_dev *pdev, struct device *parent,
struct ipu6_buttress_ctrl *ctrl, void __iomem *base,
const struct ipu6_isys_internal_pdata *ipdata)
{ … }
static struct ipu6_bus_device *
ipu6_psys_init(struct pci_dev *pdev, struct device *parent,
struct ipu6_buttress_ctrl *ctrl, void __iomem *base,
const struct ipu6_psys_internal_pdata *ipdata)
{ … }
static int ipu6_pci_config_setup(struct pci_dev *dev, u8 hw_ver)
{ … }
static void ipu6_configure_vc_mechanism(struct ipu6_device *isp)
{ … }
static int ipu6_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
{ … }
static void ipu6_pci_remove(struct pci_dev *pdev)
{ … }
static void ipu6_pci_reset_prepare(struct pci_dev *pdev)
{ … }
static void ipu6_pci_reset_done(struct pci_dev *pdev)
{ … }
static int ipu6_suspend(struct device *dev)
{ … }
static int ipu6_resume(struct device *dev)
{ … }
static int ipu6_runtime_resume(struct device *dev)
{ … }
static const struct dev_pm_ops ipu6_pm_ops = …;
MODULE_DEVICE_TABLE(pci, ipu6_pci_tbl);
static const struct pci_error_handlers pci_err_handlers = …;
static struct pci_driver ipu6_pci_driver = …;
module_pci_driver(…) …;
MODULE_IMPORT_NS(…);
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;