1*e7b8153eSMauro Carvalho Chehab /* SPDX-License-Identifier: GPL-2.0 */ 2*e7b8153eSMauro Carvalho Chehab /* 3*e7b8153eSMauro Carvalho Chehab * c8sectpfe-common.h - C8SECTPFE STi DVB driver 4*e7b8153eSMauro Carvalho Chehab * 5*e7b8153eSMauro Carvalho Chehab * Copyright (c) STMicroelectronics 2015 6*e7b8153eSMauro Carvalho Chehab * 7*e7b8153eSMauro Carvalho Chehab * Author: Peter Griffin <peter.griffin@linaro.org> 8*e7b8153eSMauro Carvalho Chehab * 9*e7b8153eSMauro Carvalho Chehab */ 10*e7b8153eSMauro Carvalho Chehab #ifndef _C8SECTPFE_COMMON_H_ 11*e7b8153eSMauro Carvalho Chehab #define _C8SECTPFE_COMMON_H_ 12*e7b8153eSMauro Carvalho Chehab 13*e7b8153eSMauro Carvalho Chehab #include <linux/dvb/dmx.h> 14*e7b8153eSMauro Carvalho Chehab #include <linux/dvb/frontend.h> 15*e7b8153eSMauro Carvalho Chehab #include <linux/gpio.h> 16*e7b8153eSMauro Carvalho Chehab 17*e7b8153eSMauro Carvalho Chehab #include <media/dmxdev.h> 18*e7b8153eSMauro Carvalho Chehab #include <media/dvb_demux.h> 19*e7b8153eSMauro Carvalho Chehab #include <media/dvb_frontend.h> 20*e7b8153eSMauro Carvalho Chehab #include <media/dvb_net.h> 21*e7b8153eSMauro Carvalho Chehab 22*e7b8153eSMauro Carvalho Chehab /* Maximum number of channels */ 23*e7b8153eSMauro Carvalho Chehab #define C8SECTPFE_MAXADAPTER (4) 24*e7b8153eSMauro Carvalho Chehab #define C8SECTPFE_MAXCHANNEL 64 25*e7b8153eSMauro Carvalho Chehab #define STPTI_MAXCHANNEL 64 26*e7b8153eSMauro Carvalho Chehab 27*e7b8153eSMauro Carvalho Chehab #define MAX_INPUTBLOCKS 7 28*e7b8153eSMauro Carvalho Chehab 29*e7b8153eSMauro Carvalho Chehab struct c8sectpfe; 30*e7b8153eSMauro Carvalho Chehab struct stdemux; 31*e7b8153eSMauro Carvalho Chehab 32*e7b8153eSMauro Carvalho Chehab struct stdemux { 33*e7b8153eSMauro Carvalho Chehab struct dvb_demux dvb_demux; 34*e7b8153eSMauro Carvalho Chehab struct dmxdev dmxdev; 35*e7b8153eSMauro Carvalho Chehab struct dmx_frontend hw_frontend; 36*e7b8153eSMauro Carvalho Chehab struct dmx_frontend mem_frontend; 37*e7b8153eSMauro Carvalho Chehab int tsin_index; 38*e7b8153eSMauro Carvalho Chehab int running_feed_count; 39*e7b8153eSMauro Carvalho Chehab struct c8sectpfei *c8sectpfei; 40*e7b8153eSMauro Carvalho Chehab }; 41*e7b8153eSMauro Carvalho Chehab 42*e7b8153eSMauro Carvalho Chehab struct c8sectpfe { 43*e7b8153eSMauro Carvalho Chehab struct stdemux demux[MAX_INPUTBLOCKS]; 44*e7b8153eSMauro Carvalho Chehab struct mutex lock; 45*e7b8153eSMauro Carvalho Chehab struct dvb_adapter adapter; 46*e7b8153eSMauro Carvalho Chehab struct device *device; 47*e7b8153eSMauro Carvalho Chehab int mapping; 48*e7b8153eSMauro Carvalho Chehab int num_feeds; 49*e7b8153eSMauro Carvalho Chehab }; 50*e7b8153eSMauro Carvalho Chehab 51*e7b8153eSMauro Carvalho Chehab /* Channel registration */ 52*e7b8153eSMauro Carvalho Chehab int c8sectpfe_tuner_register_frontend(struct c8sectpfe **c8sectpfe, 53*e7b8153eSMauro Carvalho Chehab struct c8sectpfei *fei, 54*e7b8153eSMauro Carvalho Chehab void *start_feed, 55*e7b8153eSMauro Carvalho Chehab void *stop_feed); 56*e7b8153eSMauro Carvalho Chehab 57*e7b8153eSMauro Carvalho Chehab void c8sectpfe_tuner_unregister_frontend(struct c8sectpfe *c8sectpfe, 58*e7b8153eSMauro Carvalho Chehab struct c8sectpfei *fei); 59*e7b8153eSMauro Carvalho Chehab 60*e7b8153eSMauro Carvalho Chehab #endif 61