linux-stable/drivers/media/usb/pvrusb2/pvrusb2-dvb.h
Brad Love 6f6be37160 media: pvrusb2: Add i2c client demod/tuner support
i2c client device is the "new" method to attach to dvb modules, include
support for this functionality. Cleanup code has been added to init in
case of failure, as well as to frontend exit.

Required by Hauppauge HVR-1975

Signed-off-by: Brad Love <brad@nextdimension.cc>
Reviewed-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
2019-06-13 14:29:37 -04:00

45 lines
1 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __PVRUSB2_DVB_H__
#define __PVRUSB2_DVB_H__
#include <media/dvb_frontend.h>
#include <media/dvb_demux.h>
#include <media/dvb_net.h>
#include <media/dmxdev.h>
#include "pvrusb2-context.h"
#define PVR2_DVB_BUFFER_COUNT 32
#define PVR2_DVB_BUFFER_SIZE PAGE_ALIGN(0x4000)
struct pvr2_dvb_adapter {
struct pvr2_channel channel;
struct dvb_adapter dvb_adap;
struct dmxdev dmxdev;
struct dvb_demux demux;
struct dvb_net dvb_net;
struct dvb_frontend *fe[2];
struct i2c_client *i2c_client_demod[2];
struct i2c_client *i2c_client_tuner;
int feedcount;
int max_feed_count;
struct task_struct *thread;
struct mutex lock;
unsigned int stream_run:1;
wait_queue_head_t buffer_wait_data;
char *buffer_storage[PVR2_DVB_BUFFER_COUNT];
};
struct pvr2_dvb_props {
int (*frontend_attach) (struct pvr2_dvb_adapter *);
int (*tuner_attach) (struct pvr2_dvb_adapter *);
};
struct pvr2_dvb_adapter *pvr2_dvb_create(struct pvr2_context *pvr);
#endif /* __PVRUSB2_DVB_H__ */