Loading drivers/media/platform/msm/dvb/adapter/mpq_stream_buffer.c +26 −7 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ int mpq_streambuffer_init( sbuff->buffers = data_buffers; sbuff->pending_buffers_count = 0; sbuff->buffers_num = data_buff_num; sbuff->cb = NULL; dvb_ringbuffer_init(&sbuff->packet_data, packet_buff, packet_buff_size); return 0; Loading Loading @@ -222,9 +223,6 @@ int mpq_streambuffer_pkt_dispose( spin_unlock(&sbuff->raw_data.lock); spin_unlock(&sbuff->packet_data.lock); if (sbuff->cb) sbuff->cb(sbuff, &packet, sbuff->cb_user_data); return 0; } EXPORT_SYMBOL(mpq_streambuffer_pkt_dispose); Loading Loading @@ -414,6 +412,7 @@ ssize_t mpq_streambuffer_data_read( u8 *buf, size_t len) { ssize_t actual_len = 0; u32 offset; if ((NULL == sbuff) || (NULL == buf)) return -EINVAL; Loading @@ -436,6 +435,7 @@ ssize_t mpq_streambuffer_data_read( return -EPERM; } offset = sbuff->raw_data.pread; actual_len = dvb_ringbuffer_avail(&sbuff->raw_data); if (actual_len < len) len = actual_len; Loading Loading @@ -463,10 +463,15 @@ ssize_t mpq_streambuffer_data_read( if (actual_len < len) len = actual_len; memcpy(buf, desc->base + desc->read_ptr, len); offset = desc->read_ptr; desc->read_ptr += len; } spin_unlock(&sbuff->raw_data.lock); if (sbuff->cb) sbuff->cb(sbuff, offset, len, sbuff->cb_user_data); return len; } EXPORT_SYMBOL(mpq_streambuffer_data_read); Loading @@ -477,6 +482,7 @@ ssize_t mpq_streambuffer_data_read_user( u8 __user *buf, size_t len) { ssize_t actual_len = 0; u32 offset; if ((NULL == sbuff) || (NULL == buf)) return -EINVAL; Loading @@ -493,6 +499,7 @@ ssize_t mpq_streambuffer_data_read_user( if (NULL == sbuff->raw_data.data) return -EPERM; offset = sbuff->raw_data.pread; actual_len = dvb_ringbuffer_avail(&sbuff->raw_data); if (actual_len < len) len = actual_len; Loading @@ -519,9 +526,13 @@ ssize_t mpq_streambuffer_data_read_user( if (copy_to_user(buf, desc->base + desc->read_ptr, len)) return -EFAULT; offset = desc->read_ptr; desc->read_ptr += len; } if (sbuff->cb) sbuff->cb(sbuff, offset, len, sbuff->cb_user_data); return len; } EXPORT_SYMBOL(mpq_streambuffer_data_read_user); Loading @@ -530,6 +541,8 @@ int mpq_streambuffer_data_read_dispose( struct mpq_streambuffer *sbuff, size_t len) { u32 offset; if (NULL == sbuff) return -EINVAL; Loading @@ -547,6 +560,7 @@ int mpq_streambuffer_data_read_dispose( return -EINVAL; } offset = sbuff->raw_data.pread; DVB_RINGBUFFER_SKIP(&sbuff->raw_data, len); wake_up_all(&sbuff->raw_data.queue); } else { Loading @@ -554,6 +568,8 @@ int mpq_streambuffer_data_read_dispose( desc = (struct mpq_streambuffer_buffer_desc *) &sbuff->raw_data.data[sbuff->raw_data.pread]; offset = desc->read_ptr; if ((desc->read_ptr + len) > desc->size) desc->read_ptr = desc->size; else Loading @@ -562,6 +578,9 @@ int mpq_streambuffer_data_read_dispose( spin_unlock(&sbuff->raw_data.lock); if (sbuff->cb) sbuff->cb(sbuff, offset, len, sbuff->cb_user_data); return 0; } EXPORT_SYMBOL(mpq_streambuffer_data_read_dispose); Loading Loading @@ -604,9 +623,9 @@ int mpq_streambuffer_get_buffer_handle( EXPORT_SYMBOL(mpq_streambuffer_get_buffer_handle); int mpq_streambuffer_register_pkt_dispose( int mpq_streambuffer_register_data_dispose( struct mpq_streambuffer *sbuff, mpq_streambuffer_pkt_dispose_cb cb_func, mpq_streambuffer_dispose_cb cb_func, void *user_data) { if ((NULL == sbuff) || (NULL == cb_func)) Loading @@ -617,7 +636,7 @@ int mpq_streambuffer_register_pkt_dispose( return 0; } EXPORT_SYMBOL(mpq_streambuffer_register_pkt_dispose); EXPORT_SYMBOL(mpq_streambuffer_register_data_dispose); ssize_t mpq_streambuffer_data_free( Loading drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_tspp_v2.c +3 −4 Original line number Diff line number Diff line Loading @@ -4639,8 +4639,7 @@ static int mpq_dmx_tspp2_notify_data_read(struct dmx_ts_feed *ts_feed, } static void mpq_dmx_tspp2_streambuffer_cb(struct mpq_streambuffer *sbuff, struct mpq_streambuffer_packet_header *packet, void *user_data) u32 offset, size_t len, void *user_data) { int ret; struct pipe_info *pipe_info = user_data; Loading @@ -4654,7 +4653,7 @@ static void mpq_dmx_tspp2_streambuffer_cb(struct mpq_streambuffer *sbuff, return; } ret = mpq_dmx_release_data(pipe_info, packet->raw_data_len); ret = mpq_dmx_release_data(pipe_info, len); if (ret) MPQ_DVB_ERR_PRINT("%s: mpq_dmx_release_data failed, ret=%d\n", __func__, ret); Loading Loading @@ -5449,7 +5448,7 @@ static int mpq_dmx_tspp2_start_filtering(struct dvb_demux_feed *feed) } if (dvb_dmx_is_video_feed(feed)) { ret = mpq_streambuffer_register_pkt_dispose( ret = mpq_streambuffer_register_data_dispose( mpq_feed->video_info.video_buffer, mpq_dmx_tspp2_streambuffer_cb, tspp2_feed->main_pipe); Loading drivers/media/platform/msm/dvb/include/mpq_stream_buffer.h +11 −11 Original line number Diff line number Diff line Loading @@ -103,19 +103,19 @@ * - Disposal of packets: * mpq_streambuffer_pkt_dispose(...) * * For linear buffer mode, disposing of a packet with data size > 0, causes * the current buffer to be marked as free for writing, and triggers moving to * For linear buffer mode, disposing of a packet with data size > 0, * regardless of the 'dispose_data' parameter, causes the current buffer's * data to be disposed and marked as free for writing, and triggers moving to * the next available buffer, that shall now be the current read buffer. * */ struct mpq_streambuffer; struct mpq_streambuffer_packet_header; typedef void (*mpq_streambuffer_pkt_dispose_cb) ( typedef void (*mpq_streambuffer_dispose_cb) ( struct mpq_streambuffer *sbuff, struct mpq_streambuffer_packet_header *packet, u32 offset, size_t len, void *user_data); enum mpq_streambuffer_mode { Loading Loading @@ -143,7 +143,7 @@ struct mpq_streambuffer { enum mpq_streambuffer_mode mode; u32 buffers_num; u32 pending_buffers_count; mpq_streambuffer_pkt_dispose_cb cb; mpq_streambuffer_dispose_cb cb; void *cb_user_data; }; Loading Loading @@ -422,9 +422,9 @@ ssize_t mpq_streambuffer_data_avail( * Returns error status * -EINVAL if arguments are invalid */ int mpq_streambuffer_register_pkt_dispose( int mpq_streambuffer_register_data_dispose( struct mpq_streambuffer *sbuff, mpq_streambuffer_pkt_dispose_cb cb_func, mpq_streambuffer_dispose_cb cb_func, void *user_data); /** Loading Loading
drivers/media/platform/msm/dvb/adapter/mpq_stream_buffer.c +26 −7 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ int mpq_streambuffer_init( sbuff->buffers = data_buffers; sbuff->pending_buffers_count = 0; sbuff->buffers_num = data_buff_num; sbuff->cb = NULL; dvb_ringbuffer_init(&sbuff->packet_data, packet_buff, packet_buff_size); return 0; Loading Loading @@ -222,9 +223,6 @@ int mpq_streambuffer_pkt_dispose( spin_unlock(&sbuff->raw_data.lock); spin_unlock(&sbuff->packet_data.lock); if (sbuff->cb) sbuff->cb(sbuff, &packet, sbuff->cb_user_data); return 0; } EXPORT_SYMBOL(mpq_streambuffer_pkt_dispose); Loading Loading @@ -414,6 +412,7 @@ ssize_t mpq_streambuffer_data_read( u8 *buf, size_t len) { ssize_t actual_len = 0; u32 offset; if ((NULL == sbuff) || (NULL == buf)) return -EINVAL; Loading @@ -436,6 +435,7 @@ ssize_t mpq_streambuffer_data_read( return -EPERM; } offset = sbuff->raw_data.pread; actual_len = dvb_ringbuffer_avail(&sbuff->raw_data); if (actual_len < len) len = actual_len; Loading Loading @@ -463,10 +463,15 @@ ssize_t mpq_streambuffer_data_read( if (actual_len < len) len = actual_len; memcpy(buf, desc->base + desc->read_ptr, len); offset = desc->read_ptr; desc->read_ptr += len; } spin_unlock(&sbuff->raw_data.lock); if (sbuff->cb) sbuff->cb(sbuff, offset, len, sbuff->cb_user_data); return len; } EXPORT_SYMBOL(mpq_streambuffer_data_read); Loading @@ -477,6 +482,7 @@ ssize_t mpq_streambuffer_data_read_user( u8 __user *buf, size_t len) { ssize_t actual_len = 0; u32 offset; if ((NULL == sbuff) || (NULL == buf)) return -EINVAL; Loading @@ -493,6 +499,7 @@ ssize_t mpq_streambuffer_data_read_user( if (NULL == sbuff->raw_data.data) return -EPERM; offset = sbuff->raw_data.pread; actual_len = dvb_ringbuffer_avail(&sbuff->raw_data); if (actual_len < len) len = actual_len; Loading @@ -519,9 +526,13 @@ ssize_t mpq_streambuffer_data_read_user( if (copy_to_user(buf, desc->base + desc->read_ptr, len)) return -EFAULT; offset = desc->read_ptr; desc->read_ptr += len; } if (sbuff->cb) sbuff->cb(sbuff, offset, len, sbuff->cb_user_data); return len; } EXPORT_SYMBOL(mpq_streambuffer_data_read_user); Loading @@ -530,6 +541,8 @@ int mpq_streambuffer_data_read_dispose( struct mpq_streambuffer *sbuff, size_t len) { u32 offset; if (NULL == sbuff) return -EINVAL; Loading @@ -547,6 +560,7 @@ int mpq_streambuffer_data_read_dispose( return -EINVAL; } offset = sbuff->raw_data.pread; DVB_RINGBUFFER_SKIP(&sbuff->raw_data, len); wake_up_all(&sbuff->raw_data.queue); } else { Loading @@ -554,6 +568,8 @@ int mpq_streambuffer_data_read_dispose( desc = (struct mpq_streambuffer_buffer_desc *) &sbuff->raw_data.data[sbuff->raw_data.pread]; offset = desc->read_ptr; if ((desc->read_ptr + len) > desc->size) desc->read_ptr = desc->size; else Loading @@ -562,6 +578,9 @@ int mpq_streambuffer_data_read_dispose( spin_unlock(&sbuff->raw_data.lock); if (sbuff->cb) sbuff->cb(sbuff, offset, len, sbuff->cb_user_data); return 0; } EXPORT_SYMBOL(mpq_streambuffer_data_read_dispose); Loading Loading @@ -604,9 +623,9 @@ int mpq_streambuffer_get_buffer_handle( EXPORT_SYMBOL(mpq_streambuffer_get_buffer_handle); int mpq_streambuffer_register_pkt_dispose( int mpq_streambuffer_register_data_dispose( struct mpq_streambuffer *sbuff, mpq_streambuffer_pkt_dispose_cb cb_func, mpq_streambuffer_dispose_cb cb_func, void *user_data) { if ((NULL == sbuff) || (NULL == cb_func)) Loading @@ -617,7 +636,7 @@ int mpq_streambuffer_register_pkt_dispose( return 0; } EXPORT_SYMBOL(mpq_streambuffer_register_pkt_dispose); EXPORT_SYMBOL(mpq_streambuffer_register_data_dispose); ssize_t mpq_streambuffer_data_free( Loading
drivers/media/platform/msm/dvb/demux/mpq_dmx_plugin_tspp_v2.c +3 −4 Original line number Diff line number Diff line Loading @@ -4639,8 +4639,7 @@ static int mpq_dmx_tspp2_notify_data_read(struct dmx_ts_feed *ts_feed, } static void mpq_dmx_tspp2_streambuffer_cb(struct mpq_streambuffer *sbuff, struct mpq_streambuffer_packet_header *packet, void *user_data) u32 offset, size_t len, void *user_data) { int ret; struct pipe_info *pipe_info = user_data; Loading @@ -4654,7 +4653,7 @@ static void mpq_dmx_tspp2_streambuffer_cb(struct mpq_streambuffer *sbuff, return; } ret = mpq_dmx_release_data(pipe_info, packet->raw_data_len); ret = mpq_dmx_release_data(pipe_info, len); if (ret) MPQ_DVB_ERR_PRINT("%s: mpq_dmx_release_data failed, ret=%d\n", __func__, ret); Loading Loading @@ -5449,7 +5448,7 @@ static int mpq_dmx_tspp2_start_filtering(struct dvb_demux_feed *feed) } if (dvb_dmx_is_video_feed(feed)) { ret = mpq_streambuffer_register_pkt_dispose( ret = mpq_streambuffer_register_data_dispose( mpq_feed->video_info.video_buffer, mpq_dmx_tspp2_streambuffer_cb, tspp2_feed->main_pipe); Loading
drivers/media/platform/msm/dvb/include/mpq_stream_buffer.h +11 −11 Original line number Diff line number Diff line Loading @@ -103,19 +103,19 @@ * - Disposal of packets: * mpq_streambuffer_pkt_dispose(...) * * For linear buffer mode, disposing of a packet with data size > 0, causes * the current buffer to be marked as free for writing, and triggers moving to * For linear buffer mode, disposing of a packet with data size > 0, * regardless of the 'dispose_data' parameter, causes the current buffer's * data to be disposed and marked as free for writing, and triggers moving to * the next available buffer, that shall now be the current read buffer. * */ struct mpq_streambuffer; struct mpq_streambuffer_packet_header; typedef void (*mpq_streambuffer_pkt_dispose_cb) ( typedef void (*mpq_streambuffer_dispose_cb) ( struct mpq_streambuffer *sbuff, struct mpq_streambuffer_packet_header *packet, u32 offset, size_t len, void *user_data); enum mpq_streambuffer_mode { Loading Loading @@ -143,7 +143,7 @@ struct mpq_streambuffer { enum mpq_streambuffer_mode mode; u32 buffers_num; u32 pending_buffers_count; mpq_streambuffer_pkt_dispose_cb cb; mpq_streambuffer_dispose_cb cb; void *cb_user_data; }; Loading Loading @@ -422,9 +422,9 @@ ssize_t mpq_streambuffer_data_avail( * Returns error status * -EINVAL if arguments are invalid */ int mpq_streambuffer_register_pkt_dispose( int mpq_streambuffer_register_data_dispose( struct mpq_streambuffer *sbuff, mpq_streambuffer_pkt_dispose_cb cb_func, mpq_streambuffer_dispose_cb cb_func, void *user_data); /** Loading