brintos

brintos / linux-shallow public Read only

0
0
Text · 1.7 KiB · ebef995 Raw
72 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3	Mantis PCI bridge driver4 5	Copyright (C) Manu Abraham (abraham.manu@gmail.com)6 7*/8 9#ifndef __MANTIS_LINK_H10#define __MANTIS_LINK_H11 12#include <linux/mutex.h>13#include <linux/workqueue.h>14#include <media/dvb_ca_en50221.h>15 16enum mantis_sbuf_status {17	MANTIS_SBUF_DATA_AVAIL		= 1,18	MANTIS_SBUF_DATA_EMPTY		= 2,19	MANTIS_SBUF_DATA_OVFLW		= 320};21 22struct mantis_slot {23	u32				timeout;24	u32				slave_cfg;25	u32				bar;26};27 28/* Physical layer */29enum mantis_slot_state {30	MODULE_INSERTED			= 3,31	MODULE_XTRACTED			= 432};33 34struct mantis_ca {35	struct mantis_slot		slot[4];36 37	struct work_struct		hif_evm_work;38 39	u32				hif_event;40	wait_queue_head_t		hif_opdone_wq;41	wait_queue_head_t		hif_brrdyw_wq;42	wait_queue_head_t		hif_data_wq;43	wait_queue_head_t		hif_write_wq; /* HIF Write op */44 45	enum mantis_sbuf_status		sbuf_status;46 47	enum mantis_slot_state		slot_state;48 49	void				*ca_priv;50 51	struct dvb_ca_en50221		en50221;52	struct mutex			ca_lock;53};54 55/* CA */56extern void mantis_event_cam_plugin(struct mantis_ca *ca);57extern void mantis_event_cam_unplug(struct mantis_ca *ca);58extern int mantis_pcmcia_init(struct mantis_ca *ca);59extern void mantis_pcmcia_exit(struct mantis_ca *ca);60extern int mantis_evmgr_init(struct mantis_ca *ca);61extern void mantis_evmgr_exit(struct mantis_ca *ca);62 63/* HIF */64extern int mantis_hif_init(struct mantis_ca *ca);65extern void mantis_hif_exit(struct mantis_ca *ca);66extern int mantis_hif_read_mem(struct mantis_ca *ca, u32 addr);67extern int mantis_hif_write_mem(struct mantis_ca *ca, u32 addr, u8 data);68extern int mantis_hif_read_iom(struct mantis_ca *ca, u32 addr);69extern int mantis_hif_write_iom(struct mantis_ca *ca, u32 addr, u8 data);70 71#endif /* __MANTIS_LINK_H */72