#include <linux/atomic.h>
#include <linux/clk.h>
#include <linux/completion.h>
#include <linux/delay.h>
#include <linux/device.h>
#include <linux/dma-mapping.h>
#include <linux/dvb/dmx.h>
#include <linux/dvb/frontend.h>
#include <linux/err.h>
#include <linux/errno.h>
#include <linux/firmware.h>
#include <linux/gpio/consumer.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/of_platform.h>
#include <linux/pinctrl/consumer.h>
#include <linux/pinctrl/pinctrl.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/time.h>
#include <linux/usb.h>
#include <linux/wait.h>
#include "c8sectpfe-common.h"
#include "c8sectpfe-core.h"
#include "c8sectpfe-debugfs.h"
#include <media/dmxdev.h>
#include <media/dvb_demux.h>
#include <media/dvb_frontend.h>
#include <media/dvb_net.h>
#define FIRMWARE_MEMDMA …
MODULE_FIRMWARE(…);
#define PID_TABLE_SIZE …
#define POLL_MSECS …
static int load_c8sectpfe_fw(struct c8sectpfei *fei);
#define TS_PKT_SIZE …
#define HEADER_SIZE …
#define PACKET_SIZE …
#define FEI_ALIGNMENT …
#define FEI_BUFFER_SIZE …
#define FIFO_LEN …
static void c8sectpfe_timer_interrupt(struct timer_list *t)
{ … }
static void channel_swdemux_bh_work(struct work_struct *t)
{ … }
static int c8sectpfe_start_feed(struct dvb_demux_feed *dvbdmxfeed)
{ … }
static int c8sectpfe_stop_feed(struct dvb_demux_feed *dvbdmxfeed)
{ … }
static struct channel_info *find_channel(struct c8sectpfei *fei, int tsin_num)
{ … }
static void c8sectpfe_getconfig(struct c8sectpfei *fei)
{ … }
static irqreturn_t c8sectpfe_idle_irq_handler(int irq, void *priv)
{ … }
static void free_input_block(struct c8sectpfei *fei, struct channel_info *tsin)
{ … }
#define MAX_NAME …
static int configure_memdma_and_inputblock(struct c8sectpfei *fei,
struct channel_info *tsin)
{ … }
static irqreturn_t c8sectpfe_error_irq_handler(int irq, void *priv)
{ … }
static int c8sectpfe_probe(struct platform_device *pdev)
{ … }
static void c8sectpfe_remove(struct platform_device *pdev)
{ … }
static int configure_channels(struct c8sectpfei *fei)
{ … }
static int
c8sectpfe_elf_sanity_check(struct c8sectpfei *fei, const struct firmware *fw)
{ … }
static void load_imem_segment(struct c8sectpfei *fei, Elf32_Phdr *phdr,
const struct firmware *fw, u8 __iomem *dest,
int seg_num)
{ … }
static void load_dmem_segment(struct c8sectpfei *fei, Elf32_Phdr *phdr,
const struct firmware *fw, u8 __iomem *dst, int seg_num)
{ … }
static int load_slim_core_fw(const struct firmware *fw, struct c8sectpfei *fei)
{ … }
static int load_c8sectpfe_fw(struct c8sectpfei *fei)
{ … }
static const struct of_device_id c8sectpfe_match[] = …;
MODULE_DEVICE_TABLE(of, c8sectpfe_match);
static struct platform_driver c8sectpfe_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;