From 4790b14b99719fb44513b82217a6bbb6abca47fb Mon Sep 17 00:00:00 2001 From: "hongyu.chen" Date: Thu, 1 Dec 2022 11:25:53 +0800 Subject: [PATCH] demux: uapi header file rectification. [1/4] PD#SWPL-103754 Problem: uapi header file rectification. Solution: uapi header file rectification. Verify: AH212/S905X4 Signed-off-by: hongyu.chen Change-Id: I9856b1424b9ebd25f9fdb6bf478d6304cbaf8ab5 --- drivers/media/dvb-core/dmxdev.c | 55 +++++++++++++++++++-------------- include/media/aml_demux_ext.h | 35 +++++++++++++++++++++ include/media/demux.h | 22 ------------- 3 files changed, 66 insertions(+), 46 deletions(-) create mode 100644 include/media/aml_demux_ext.h diff --git a/drivers/media/dvb-core/dmxdev.c b/drivers/media/dvb-core/dmxdev.c index e0b1917785ce..db09405b3581 100644 --- a/drivers/media/dvb-core/dmxdev.c +++ b/drivers/media/dvb-core/dmxdev.c @@ -32,6 +32,7 @@ #ifdef CONFIG_AMLOGIC_DVB_COMPAT #include +#include #endif static int debug; @@ -1045,6 +1046,9 @@ static int dvb_demux_do_ioctl(struct file *file, { struct dmxdev_filter *dmxdevfilter = file->private_data; struct dmxdev *dmxdev = dmxdevfilter->dev; +#ifdef CONFIG_AMLOGIC_DVB_COMPAT + struct dmx_demux_ext *dmx_ext = container_of(dmxdev->demux, struct dmx_demux_ext, dmx); +#endif unsigned long arg = (unsigned long)parg; int ret = 0; @@ -1121,11 +1125,11 @@ static int dvb_demux_do_ioctl(struct file *file, #ifdef CONFIG_AMLOGIC_DVB_COMPAT case DMX_SET_INPUT: - if (!dmxdev->demux->set_input) { + if (!dmx_ext->set_input) { ret = -EINVAL; break; } - ret = dmxdev->demux->set_input(dmxdev->demux, arg); + ret = dmx_ext->set_input(dmxdev->demux, arg); break; case DMX_GET_MEM_INFO: if (mutex_lock_interruptible(&dmxdevfilter->mutex)) { @@ -1140,22 +1144,22 @@ static int dvb_demux_do_ioctl(struct file *file, dvb_ringbuffer_free(&dmxdevfilter->buffer); if (dmxdevfilter->type == DMXDEV_TYPE_SEC) { - if (dmxdev->demux->get_sec_mem_info) { + if (dmx_ext->get_sec_mem_info) { struct dmx_section_feed *sec_feed = dmxdevfilter->feed.sec; ret = - dmxdev->demux->get_sec_mem_info(dmxdev->demux, + dmx_ext->get_sec_mem_info(dmxdev->demux, sec_feed, info); } } else if (dmxdevfilter->type == DMXDEV_TYPE_PES) { - if (dmxdev->demux->get_ts_mem_info) { + if (dmx_ext->get_ts_mem_info) { struct dmxdev_feed *feed; list_for_each_entry(feed, &dmxdevfilter->feed.ts, next) { ret = - dmxdev->demux->get_ts_mem_info(dmxdev->demux, + dmx_ext->get_ts_mem_info(dmxdev->demux, feed->ts, info); break; @@ -1173,53 +1177,53 @@ static int dvb_demux_do_ioctl(struct file *file, { struct dmx_filter_mem_info *info = parg; - if (dmxdev->demux->get_dmx_mem_info) + if (dmx_ext->get_dmx_mem_info) ret = - dmxdev->demux->get_dmx_mem_info(dmxdev->demux, info); + dmx_ext->get_dmx_mem_info(dmxdev->demux, info); } mutex_unlock(&dmxdevfilter->mutex); break; case DMX_SET_HW_SOURCE: - if (!dmxdev->demux->set_hw_source) { + if (!dmx_ext->set_hw_source) { ret = -EINVAL; break; } - ret = dmxdev->demux->set_hw_source(dmxdev->demux, arg); + ret = dmx_ext->set_hw_source(dmxdev->demux, arg); break; case DMX_GET_HW_SOURCE: - if (!dmxdev->demux->get_hw_source) { + if (!dmx_ext->get_hw_source) { ret = -EINVAL; break; } - ret = dmxdev->demux->get_hw_source(dmxdev->demux, parg); + ret = dmx_ext->get_hw_source(dmxdev->demux, parg); break; case DMX_SET_SEC_MEM: - if (!dmxdev->demux->set_sec_mem) { + if (!dmx_ext->set_sec_mem) { ret = -EINVAL; break; } - ret = dmxdev->demux->set_sec_mem(dmxdev->demux, parg); + ret = dmx_ext->set_sec_mem(dmxdev->demux, parg); break; case DMX_GET_DVR_MEM: - if (!dmxdev->demux->get_dvr_mem) { + if (!dmx_ext->get_dvr_mem) { ret = -EINVAL; break; } - ret = dmxdev->demux->get_dvr_mem(dmxdev->demux, parg); + ret = dmx_ext->get_dvr_mem(dmxdev->demux, parg); break; case DMX_REMAP_PID: - if (!dmxdev->demux->remap_pid) { + if (!dmx_ext->remap_pid) { ret = -EINVAL; break; } - ret = dmxdev->demux->remap_pid(dmxdev->demux, parg); + ret = dmx_ext->remap_pid(dmxdev->demux, parg); break; case DMX_SET_DECODE_INFO: - if (!dmxdev->demux->decode_info) { + if (!dmx_ext->decode_info) { ret = -EINVAL; break; } - ret = dmxdev->demux->decode_info(dmxdev->demux, parg); + ret = dmx_ext->decode_info(dmxdev->demux, parg); break; #endif @@ -1403,6 +1407,9 @@ static int dvb_dvr_do_ioctl(struct file *file, { struct dvb_device *dvbdev = file->private_data; struct dmxdev *dmxdev = dvbdev->priv; +#ifdef CONFIG_AMLOGIC_DVB_COMPAT + struct dmx_demux_ext *dmx_ext = container_of(dmxdev->demux, struct dmx_demux_ext, dmx); +#endif unsigned long arg = (unsigned long)parg; int ret; @@ -1415,18 +1422,18 @@ static int dvb_dvr_do_ioctl(struct file *file, break; #ifdef CONFIG_AMLOGIC_DVB_COMPAT case DMX_SET_INPUT: - if (!dmxdev->demux->set_input) { + if (!dmx_ext->set_input) { ret = -EINVAL; break; } - ret = dmxdev->demux->set_input(dmxdev->demux, arg); + ret = dmx_ext->set_input(dmxdev->demux, arg); break; case DMX_GET_DVR_MEM: - if (!dmxdev->demux->get_dvr_mem) { + if (!dmx_ext->get_dvr_mem) { ret = -EINVAL; break; } - ret = dmxdev->demux->get_dvr_mem(dmxdev->demux, parg); + ret = dmx_ext->get_dvr_mem(dmxdev->demux, parg); break; #endif #ifdef CONFIG_DVB_MMAP diff --git a/include/media/aml_demux_ext.h b/include/media/aml_demux_ext.h new file mode 100644 index 000000000000..971d61e11324 --- /dev/null +++ b/include/media/aml_demux_ext.h @@ -0,0 +1,35 @@ +/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */ +/* + * Copyright (c) 2019 Amlogic, Inc. All rights reserved. + */ + +#ifndef AML_DEMUX_EXT_H_ +#define AML_DEMUX_EXT_H_ + +#include +#include + +struct dmx_demux_ext { + struct dmx_demux dmx; + int (*set_input)(struct dmx_demux *demux, int source); + int (*get_ts_mem_info)(struct dmx_demux *demux, + void *feed, + void *info); + int (*get_sec_mem_info)(struct dmx_demux *demux, + void *feed, + void *info); + int (*set_hw_source)(struct dmx_demux *demux, int hw_source); + int (*get_hw_source)(struct dmx_demux *demux, int *hw_source); + int (*get_dmx_mem_info)(struct dmx_demux *demux, + void *info); + int (*set_sec_mem)(struct dmx_demux *demux, + void *sec_mem); + int (*get_dvr_mem)(struct dmx_demux *demux, + void *info); + int (*remap_pid)(struct dmx_demux *demux, + u16 pids[2]); + int (*decode_info)(struct dmx_demux *demux, + void *info); +}; + +#endif diff --git a/include/media/demux.h b/include/media/demux.h index c6d6dbe3a497..bf00a5a41a90 100644 --- a/include/media/demux.h +++ b/include/media/demux.h @@ -595,28 +595,6 @@ struct dmx_demux { */ int (*get_stc)(struct dmx_demux *demux, unsigned int num, u64 *stc, unsigned int *base); - -#ifdef CONFIG_AMLOGIC_DVB_COMPAT - int (*set_input)(struct dmx_demux *demux, int source); - int (*get_ts_mem_info)(struct dmx_demux *demux, - void *feed, - void *info); - int (*get_sec_mem_info)(struct dmx_demux *demux, - void *feed, - void *info); - int (*set_hw_source)(struct dmx_demux *demux, int hw_source); - int (*get_hw_source)(struct dmx_demux *demux, int *hw_source); - int (*get_dmx_mem_info)(struct dmx_demux *demux, - void *info); - int (*set_sec_mem)(struct dmx_demux *demux, - void *sec_mem); - int (*get_dvr_mem)(struct dmx_demux *demux, - void *info); - int (*remap_pid)(struct dmx_demux *demux, - u16 pids[2]); - int (*decode_info)(struct dmx_demux *demux, - void *info); -#endif }; #endif /* #ifndef __DEMUX_H */