summaryrefslogtreecommitdiff
Diffstat
-rw-r--r--[-rwxr-xr-x]Media.mk1
-rw-r--r--drivers/amvdec_ports/Makefile1
-rw-r--r--drivers/amvdec_ports/aml_vcodec_adapt.c112
-rw-r--r--drivers/amvdec_ports/aml_vcodec_adapt.h5
-rw-r--r--drivers/amvdec_ports/aml_vcodec_dec.c992
-rw-r--r--drivers/amvdec_ports/aml_vcodec_dec.h2
-rw-r--r--drivers/amvdec_ports/aml_vcodec_dec_drv.c122
-rw-r--r--drivers/amvdec_ports/aml_vcodec_dec_pm.c206
-rw-r--r--drivers/amvdec_ports/aml_vcodec_dec_pm.h34
-rw-r--r--drivers/amvdec_ports/aml_vcodec_drv.h188
-rw-r--r--drivers/amvdec_ports/aml_vcodec_util.c34
-rw-r--r--drivers/amvdec_ports/aml_vcodec_util.h90
-rw-r--r--drivers/amvdec_ports/aml_vcodec_vfm.c28
-rw-r--r--drivers/amvdec_ports/decoder/aml_h264_parser.c81
-rw-r--r--drivers/amvdec_ports/decoder/aml_h264_parser.h1
-rw-r--r--drivers/amvdec_ports/decoder/aml_hevc_parser.c133
-rw-r--r--drivers/amvdec_ports/decoder/aml_hevc_parser.h1
-rw-r--r--drivers/amvdec_ports/decoder/aml_mjpeg_parser.c34
-rw-r--r--drivers/amvdec_ports/decoder/aml_mjpeg_parser.h1
-rw-r--r--drivers/amvdec_ports/decoder/aml_mpeg12_parser.h1
-rw-r--r--drivers/amvdec_ports/decoder/aml_mpeg4_parser.c178
-rw-r--r--drivers/amvdec_ports/decoder/aml_mpeg4_parser.h1
-rw-r--r--drivers/amvdec_ports/decoder/aml_vp9_parser.c26
-rw-r--r--drivers/amvdec_ports/decoder/aml_vp9_parser.h1
-rw-r--r--drivers/amvdec_ports/decoder/vdec_h264_if.c223
-rw-r--r--drivers/amvdec_ports/decoder/vdec_hevc_if.c194
-rw-r--r--drivers/amvdec_ports/decoder/vdec_mjpeg_if.c210
-rw-r--r--drivers/amvdec_ports/decoder/vdec_mpeg12_if.c304
-rw-r--r--drivers/amvdec_ports/decoder/vdec_mpeg4_if.c209
-rw-r--r--drivers/amvdec_ports/decoder/vdec_vp9_if.c195
-rw-r--r--drivers/amvdec_ports/vdec_drv_if.c6
-rw-r--r--drivers/amvdec_ports/vdec_drv_if.h21
-rw-r--r--drivers/common/chips/chips.c1
-rw-r--r--drivers/common/chips/decoder_cpu_ver_info.c8
-rw-r--r--drivers/common/chips/decoder_cpu_ver_info.h1
-rw-r--r--drivers/common/firmware/firmware_drv.c9
-rw-r--r--drivers/common/firmware/firmware_type.c1
-rw-r--r--drivers/common/firmware/firmware_type.h1
-rw-r--r--drivers/common/media_clock/clk/clk.c3
-rw-r--r--drivers/common/media_clock/clk/clkg12.c5
-rw-r--r--drivers/frame_provider/decoder/Makefile1
-rw-r--r--drivers/frame_provider/decoder/avs/avs.c60
-rw-r--r--drivers/frame_provider/decoder/avs2/avs2_bufmgr.c12
-rw-r--r--drivers/frame_provider/decoder/avs2/avs2_global.h3
-rw-r--r--drivers/frame_provider/decoder/avs2/vavs2.c115
-rw-r--r--drivers/frame_provider/decoder/avs_multi/Makefile2
-rw-r--r--drivers/frame_provider/decoder/avs_multi/avs_multi.c1633
-rw-r--r--drivers/frame_provider/decoder/avs_multi/avsp_trans_multi.c5065
-rw-r--r--drivers/frame_provider/decoder/h264/vh264.c58
-rw-r--r--drivers/frame_provider/decoder/h264_multi/h264_dpb.c50
-rw-r--r--drivers/frame_provider/decoder/h264_multi/h264_dpb.h34
-rw-r--r--drivers/frame_provider/decoder/h264_multi/vmh264.c1043
-rw-r--r--drivers/frame_provider/decoder/h265/vh265.c707
-rw-r--r--drivers/frame_provider/decoder/mjpeg/vmjpeg_multi.c60
-rw-r--r--drivers/frame_provider/decoder/mpeg12/vmpeg12_multi.c595
-rw-r--r--drivers/frame_provider/decoder/mpeg4/vmpeg4.c5
-rw-r--r--drivers/frame_provider/decoder/mpeg4/vmpeg4_multi.c80
-rw-r--r--drivers/frame_provider/decoder/utils/amvdec.c5
-rw-r--r--drivers/frame_provider/decoder/utils/frame_check.c178
-rw-r--r--drivers/frame_provider/decoder/utils/frame_check.h4
-rw-r--r--drivers/frame_provider/decoder/utils/vdec.c530
-rw-r--r--drivers/frame_provider/decoder/utils/vdec.h18
-rw-r--r--drivers/frame_provider/decoder/utils/vdec_input.c12
-rw-r--r--drivers/frame_provider/decoder/utils/vdec_input.h3
-rw-r--r--drivers/frame_provider/decoder/utils/vdec_v4l2_buffer_ops.c92
-rw-r--r--drivers/frame_provider/decoder/utils/vdec_v4l2_buffer_ops.h7
-rw-r--r--drivers/frame_provider/decoder/vav1/Makefile2
-rw-r--r--drivers/frame_provider/decoder/vav1/aom_av1_define.h171
-rw-r--r--drivers/frame_provider/decoder/vav1/av1_bufmgr.c3392
-rw-r--r--drivers/frame_provider/decoder/vav1/av1_global.h2310
-rw-r--r--drivers/frame_provider/decoder/vav1/vav1.c9946
-rw-r--r--drivers/frame_provider/decoder/vav1/vav1.h22
-rw-r--r--drivers/frame_provider/decoder/vc1/vvc1.c46
-rw-r--r--drivers/frame_provider/decoder/vp9/vvp9.c449
-rw-r--r--drivers/frame_sink/encoder/h264/encoder.c2
-rw-r--r--drivers/stream_input/Makefile5
-rw-r--r--drivers/stream_input/amports/amstream.c263
-rw-r--r--drivers/stream_input/parser/demux/aml_dvb.h5
-rw-r--r--drivers/stream_input/parser/demux/hw_demux/demod_gt.h62
-rw-r--r--drivers/stream_input/parser/demux/hw_demux/frontend.c293
-rw-r--r--drivers/stream_input/parser/dvb_common.c17
-rw-r--r--drivers/stream_input/parser/dvb_common.h26
-rw-r--r--drivers/stream_input/parser/esparser.c15
-rw-r--r--drivers/stream_input/parser/hw_demux/aml_demod_gt.h87
-rw-r--r--drivers/stream_input/parser/hw_demux/aml_dmx.c270
-rw-r--r--drivers/stream_input/parser/hw_demux/aml_dvb.c445
-rw-r--r--drivers/stream_input/parser/hw_demux/aml_dvb.h32
-rw-r--r--drivers/stream_input/parser/streambuf.c9
-rw-r--r--drivers/stream_input/parser/tsdemux.c14
-rw-r--r--drivers/stream_input/parser/tsdemux.h1
-rw-r--r--drivers/stream_input/tv_frontend/Makefile16
-rw-r--r--drivers/stream_input/tv_frontend/aml_fe.c1372
-rw-r--r--drivers/stream_input/tv_frontend/aml_fe.h213
-rw-r--r--drivers/stream_input/tv_frontend/atv_demod/atvdemod_frontend.c791
-rw-r--r--drivers/stream_input/tv_frontend/atv_demod/atvdemod_func.c2163
-rw-r--r--drivers/stream_input/tv_frontend/atv_demod/atvdemod_func.h323
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/aml_demod.c725
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/amlfrontend.c1402
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/demod_func.c2996
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/dvbc_func.c1331
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/dvbt_func.c2188
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/i2c_func.c42
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/include/acf_filter_coefficient.h414
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/include/addr_dtmb_che.h77
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/include/addr_dtmb_che_bit.h266
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/include/addr_dtmb_front.h70
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/include/addr_dtmb_front_bit.h331
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/include/addr_dtmb_sync.h53
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/include/addr_dtmb_sync_bit.h110
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/include/addr_dtmb_top.h90
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/include/addr_dtmb_top_bit.h178
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/include/aml_dtv_demod_reg.h28
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/include/amlfrontend.h86
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/include/demod_func.h626
-rw-r--r--drivers/stream_input/tv_frontend/dtv_demod/tuner_func.c189
-rw-r--r--firmware/video_ucode.bin14148
116 files changed, 25845 insertions, 36303 deletions
diff --git a/drivers/stream_input/tv_frontend/aml_fe.h b/drivers/stream_input/tv_frontend/aml_fe.h
deleted file mode 100644
index f38c646..0000000
--- a/drivers/stream_input/tv_frontend/aml_fe.h
+++ b/dev/null
@@ -1,213 +0,0 @@
-/*
-* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful, but WITHOUT
-* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
-* more details.
-*
-* You should have received a copy of the GNU General Public License along
-* with this program; if not, write to the Free Software Foundation, Inc.,
-* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-*
-* Description:
-*/
-#ifndef _AML_FE_H_
-#define _AML_FE_H_
-
-
-#include <linux/interrupt.h>
-#include <linux/socket.h>
-#include <linux/netdevice.h>
-#include <linux/i2c.h>
-
-#include <linux/dvb/video.h>
-#include <linux/dvb/audio.h>
-#include <linux/dvb/dmx.h>
-#include <linux/dvb/ca.h>
-#include <linux/dvb/osd.h>
-#include <linux/dvb/net.h>
-#include <linux/mutex.h>
-#include <linux/spinlock.h>
-#include <linux/interrupt.h>
-
-#ifdef CONFIG_HAS_EARLYSUSPEND
-#include <linux/earlysuspend.h>
-#endif
-
-#include <dvbdev.h>
-#include <demux.h>
-#include <dvb_demux.h>
-#include <dmxdev.h>
-#include <dvb_filter.h>
-#include <dvb_net.h>
-#include <dvb_ringbuffer.h>
-#include <dvb_frontend.h>
-
-#include <linux/videodev2.h>
-#include <linux/amlogic/aml_gpio_consumer.h>
-
-#include <linux/of.h>
-#include <linux/of_fdt.h>
-#include <linux/pinctrl/consumer.h>
-#include <linux/amlogic/cpu_version.h>
-#include <linux/of_reserved_mem.h>
-
-#include "../parser/hw_demux/aml_dvb.h"
-
-enum aml_tuner_type_t {
- AM_TUNER_NONE = 0,
- AM_TUNER_SI2176 = 1,
- AM_TUNER_SI2196 = 2,
- AM_TUNER_FQ1216 = 3,
- AM_TUNER_HTM = 4,
- AM_TUNER_CTC703 = 5,
- AM_TUNER_SI2177 = 6,
- AM_TUNER_R840 = 7,
- AM_TUNER_SI2157 = 8,
- AM_TUNER_SI2151 = 9,
- AM_TUNER_MXL661 = 10,
- AM_TUNER_MXL608 = 11,
- AM_TUNER_SI2159 = 12,
- AM_TUNER_R842 = 13,
- AM_TUNER_ATBM2040 = 14,
-};
-
-enum aml_atv_demod_type_t {
- AM_ATV_DEMOD_SI2176 = 1,
- AM_ATV_DEMOD_SI2196 = 2,
- AM_ATV_DEMOD_FQ1216 = 3,
- AM_ATV_DEMOD_HTM = 4,
- AM_ATV_DEMOD_CTC703 = 5,
- AM_ATV_DEMOD_SI2177 = 6,
- AM_ATV_DEMOD_AML = 7,
- AM_ATV_DEMOD_R840 = 8
-};
-
-enum aml_dtv_demod_type_t {
- AM_DTV_DEMOD_M1 = 0,
- AM_DTV_DEMOD_SI2176 = 1,
- AM_DTV_DEMOD_MXL101 = 2,
- AM_DTV_DEMOD_SI2196 = 3,
- AM_DTV_DEMOD_AVL6211 = 4,
- AM_DTV_DEMOD_SI2168 = 5,
- AM_DTV_DEMOD_ITE9133 = 6,
- AM_DTV_DEMOD_ITE9173 = 7,
- AM_DTV_DEMOD_DIB8096 = 8,
- AM_DTV_DEMOD_ATBM8869 = 9,
- AM_DTV_DEMOD_MXL241 = 10,
- AM_DTV_DEMOD_AVL68xx = 11,
- AM_DTV_DEMOD_MXL683 = 12,
- AM_DTV_DEMOD_ATBM8881 = 13
-};
-
-enum aml_fe_dev_type_t {
- AM_DEV_TUNER,
- AM_DEV_ATV_DEMOD,
- AM_DEV_DTV_DEMOD
-};
-
-struct aml_fe_dev;
-struct aml_fe_man;
-struct aml_fe;
-
-struct aml_fe_drv {
- struct module *owner;
- struct aml_fe_drv *next;
- enum aml_tuner_type_t id;
- char *name;
- int (*init)(struct aml_fe_dev *dev);
- int (*release)(struct aml_fe_dev *dev);
- int (*resume)(struct aml_fe_dev *dev);
- int (*suspend)(struct aml_fe_dev *dev);
- int (*support)(struct aml_fe_dev *dev, enum fe_delivery_system sys);
- int (*get_ops)(struct aml_fe_dev *dev, enum fe_delivery_system sys,
- struct dvb_frontend_ops *ops);
- int (*init_sys)(struct aml_fe_dev *dev, enum fe_delivery_system sys);
- int (*release_sys)(struct aml_fe_dev *dev, enum fe_delivery_system sys);
- int (*start_blind_scan)(struct aml_fe_dev *dev);
- int (*stop_blind_scan)(struct aml_fe_dev *dev);
- int ref;
-};
-
-struct aml_fe_dev {
- /*point to parent aml_fe */
- enum aml_fe_dev_type_t type;
- int dev_id;
- struct aml_fe *fe;
- struct aml_fe_man *man;
- struct aml_fe_drv *drv;
- void *priv_data;
- /*i2c and reset gpio for all demod and tune*/
- int i2c_adap_id;
- int i2c_addr;
- struct i2c_adapter *i2c_adap;
- int reset_gpio;
- int reset_value;
-};
-
-struct aml_fe {
- struct dvb_frontend *fe;
- struct aml_fe_man *man;
-#ifdef CONFIG_HAS_EARLYSUSPEND
- struct early_suspend es;
-#endif /*CONFIG_HAS_EARLYSUSPEND */
- spinlock_t slock;
- int init;
- int dev_id;
- enum fe_delivery_system sys;
- int sub_sys;
-/*used to identify T T2 OR C-A C-B C-C,S S2,ISDBT ISDBS ISDBC*/
- enum aml_ts_source_t ts;
- struct aml_fe_dev *tuner;
- struct aml_fe_dev *atv_demod;
- struct aml_fe_dev *dtv_demod;
- struct workqueue_struct *work_q;
- wait_queue_head_t wait_q;
- struct work_struct work;
- int work_running;
- struct dvbsx_blindscanpara blind_scan_para;
-
- /*Driver's work function.*/
- void (*do_work)(struct aml_fe *fe);
- /*Driver's property function.*/
- int (*get_property)(struct dvb_frontend *fe, struct dtv_property *tvp);
- int (*set_property)(struct dvb_frontend *fe, struct dtv_property *tvp);
-};
-
-struct aml_fe_man {
- struct aml_dvb *dvb;
- struct aml_fe fe[FE_DEV_COUNT];
- struct aml_fe_dev tuner[FE_DEV_COUNT];
- struct aml_fe_dev atv_demod[FE_DEV_COUNT];
- struct aml_fe_dev dtv_demod[FE_DEV_COUNT];
- struct dvb_frontend dev[FE_DEV_COUNT];
- struct pinctrl *pinctrl;
- struct platform_device *pdev;
-};
-
-extern int aml_register_fe_drv(enum aml_fe_dev_type_t type,
- struct aml_fe_drv *drv);
-extern int aml_unregister_fe_drv(enum aml_fe_dev_type_t type,
- struct aml_fe_drv *drv);
-
-extern int aml_fe_of_property_string(struct aml_fe_dev *dev,
- const char *name, const char **str);
-extern int aml_fe_of_property_u32(struct aml_fe_dev *dev,
- const char *name, u32 *v);
-
-extern void aml_fe_set_pdata(struct aml_fe_dev *dev, void *pdata);
-extern void *aml_fe_get_pdata(struct aml_fe_dev *dev);
-
-extern void aml_fe_schedule_work(struct aml_fe *fe,
- void (*func)(struct aml_fe *fe));
-extern void aml_fe_cancel_work(struct aml_fe *fe);
-extern int aml_fe_work_cancelled(struct aml_fe *fe);
-extern int aml_fe_work_sleep(struct aml_fe *fe, unsigned long delay);
-
-#endif /*_AML_FE_H_*/