linux/drivers/media/pci/intel/ipu6/ipu6.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2013--2024 Intel Corporation
 */

#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)
{}

/*
 * PCI base driver code requires driver to provide these to enable
 * PCI device level PM state transitions (D0<->D3)
 */
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();