brintos

brintos / linux-shallow public Read only

0
0
Text · 1.5 KiB · bb4926d Raw
59 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/* Copyright (C) 2013 - 2024 Intel Corporation */3 4#ifndef IPU6_BUS_H5#define IPU6_BUS_H6 7#include <linux/auxiliary_bus.h>8#include <linux/container_of.h>9#include <linux/device.h>10#include <linux/irqreturn.h>11#include <linux/list.h>12#include <linux/scatterlist.h>13#include <linux/types.h>14 15struct firmware;16struct pci_dev;17 18#define IPU6_BUS_NAME	IPU6_NAME "-bus"19 20struct ipu6_buttress_ctrl;21 22struct ipu6_bus_device {23	struct auxiliary_device auxdev;24	const struct auxiliary_driver *auxdrv;25	const struct ipu6_auxdrv_data *auxdrv_data;26	struct list_head list;27	void *pdata;28	struct ipu6_mmu *mmu;29	struct ipu6_device *isp;30	struct ipu6_buttress_ctrl *ctrl;31	u64 dma_mask;32	const struct firmware *fw;33	struct sg_table fw_sgt;34	u64 *pkg_dir;35	dma_addr_t pkg_dir_dma_addr;36	unsigned int pkg_dir_size;37};38 39struct ipu6_auxdrv_data {40	irqreturn_t (*isr)(struct ipu6_bus_device *adev);41	irqreturn_t (*isr_threaded)(struct ipu6_bus_device *adev);42	bool wake_isr_thread;43};44 45#define to_ipu6_bus_device(_dev) \46	container_of(to_auxiliary_dev(_dev), struct ipu6_bus_device, auxdev)47#define auxdev_to_adev(_auxdev) \48	container_of(_auxdev, struct ipu6_bus_device, auxdev)49#define ipu6_bus_get_drvdata(adev) dev_get_drvdata(&(adev)->auxdev.dev)50 51struct ipu6_bus_device *52ipu6_bus_initialize_device(struct pci_dev *pdev, struct device *parent,53			   void *pdata, struct ipu6_buttress_ctrl *ctrl,54			   char *name);55int ipu6_bus_add_device(struct ipu6_bus_device *adev);56void ipu6_bus_del_devices(struct pci_dev *pdev);57 58#endif59