^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #ifndef __PVRUSB2_DVB_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #define __PVRUSB2_DVB_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #include <media/dvb_frontend.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #include <media/dvb_demux.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #include <media/dvb_net.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #include <media/dmxdev.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include "pvrusb2-context.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #define PVR2_DVB_BUFFER_COUNT 32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define PVR2_DVB_BUFFER_SIZE PAGE_ALIGN(0x4000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) struct pvr2_dvb_adapter {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) struct pvr2_channel channel;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) struct dvb_adapter dvb_adap;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) struct dmxdev dmxdev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) struct dvb_demux demux;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) struct dvb_net dvb_net;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) struct dvb_frontend *fe[2];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) struct i2c_client *i2c_client_demod[2];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) struct i2c_client *i2c_client_tuner;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) int feedcount;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) int max_feed_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) struct task_struct *thread;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) struct mutex lock;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) unsigned int stream_run:1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) wait_queue_head_t buffer_wait_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) char *buffer_storage[PVR2_DVB_BUFFER_COUNT];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) struct pvr2_dvb_props {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) int (*frontend_attach) (struct pvr2_dvb_adapter *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) int (*tuner_attach) (struct pvr2_dvb_adapter *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) struct pvr2_dvb_adapter *pvr2_dvb_create(struct pvr2_context *pvr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #endif /* __PVRUSB2_DVB_H__ */