summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/media/dvb-core/dmxdev.c8
-rw-r--r--drivers/media/platform/msm/broadcast/tspp.c8
-rw-r--r--drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_common.c11
3 files changed, 18 insertions, 9 deletions
diff --git a/drivers/media/dvb-core/dmxdev.c b/drivers/media/dvb-core/dmxdev.c
index a9c4237d631a..9b743f5fdcf8 100644
--- a/drivers/media/dvb-core/dmxdev.c
+++ b/drivers/media/dvb-core/dmxdev.c
@@ -1615,7 +1615,7 @@ static int dvb_dvr_get_event(struct dmxdev *dmxdev,
unsigned int f_flags,
struct dmx_filter_event *event)
{
- int res;
+ int res = 0;
if (!((f_flags & O_ACCMODE) == O_RDONLY))
return -EINVAL;
@@ -2402,8 +2402,10 @@ static int dvb_dmxdev_set_playback_mode(struct dmxdev_filter *dmxdevfilter,
(playback_mode != DMX_PB_MODE_PULL))
return -EINVAL;
+ if (dmxdev->demux->set_playback_mode == NULL)
+ return -EINVAL;
+
if (((dmxdev->source < DMX_SOURCE_DVR0) ||
- !dmxdev->demux->set_playback_mode ||
!(caps.caps & DMX_CAP_PULL_MODE)) &&
(playback_mode == DMX_PB_MODE_PULL))
return -EPERM;
@@ -2520,7 +2522,7 @@ static int dvb_dmxdev_release_data(struct dmxdev_filter *dmxdevfilter,
static int dvb_dmxdev_get_event(struct dmxdev_filter *dmxdevfilter,
struct dmx_filter_event *event)
{
- int res;
+ int res = 0;
spin_lock_irq(&dmxdevfilter->dev->lock);
diff --git a/drivers/media/platform/msm/broadcast/tspp.c b/drivers/media/platform/msm/broadcast/tspp.c
index b706d598e6b8..fa566ad01d99 100644
--- a/drivers/media/platform/msm/broadcast/tspp.c
+++ b/drivers/media/platform/msm/broadcast/tspp.c
@@ -2210,7 +2210,13 @@ int tspp_remove_filter(u32 dev, u32 channel_id,
channel = &pdev->channels[channel_id];
src = channel->src;
- tspp_filter = &(pdev->filters[src]->filter[filter->priority]);
+ if ((src == TSPP_SOURCE_TSIF0) || (src == TSPP_SOURCE_TSIF1))
+ tspp_filter = &(pdev->filters[src]->filter[filter->priority]);
+ else {
+ pr_err("tspp_remove: wrong source type %d", src);
+ return -EINVAL;
+ }
+
/* disable pipe (channel) */
val = readl_relaxed(pdev->base + TSPP_PS_DISABLE);
diff --git a/drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_common.c b/drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_common.c
index 2fc3ce406c27..2d2296893140 100644
--- a/drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_common.c
+++ b/drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_common.c
@@ -6536,10 +6536,8 @@ static int mpq_sdmx_write(struct mpq_demux *mpq_demux,
const char *buf,
size_t count)
{
- struct ion_handle *ion_handle =
- mpq_demux->demux.dmx.dvr_input.priv_handle;
- struct dvb_ringbuffer *rbuf = (struct dvb_ringbuffer *)
- mpq_demux->demux.dmx.dvr_input.ringbuff;
+ struct ion_handle *ion_handle;
+ struct dvb_ringbuffer *rbuf;
struct sdmx_buff_descr buf_desc;
u32 read_offset;
int ret;
@@ -6549,10 +6547,13 @@ static int mpq_sdmx_write(struct mpq_demux *mpq_demux,
return -EINVAL;
}
+ ion_handle = mpq_demux->demux.dmx.dvr_input.priv_handle;
+ rbuf = (struct dvb_ringbuffer *)mpq_demux->demux.dmx.dvr_input.ringbuff;
+
ret = mpq_sdmx_dvr_buffer_desc(mpq_demux, &buf_desc);
if (ret) {
MPQ_DVB_ERR_PRINT(
- "%s: Failed to init input buffer descriptor. ret = %d\n",
+ "%s: Failed to init input buffer descriptor. ret = %d\n",
__func__, ret);
return ret;
}