diff options
author | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2016-10-13 06:14:38 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2016-10-21 06:43:24 -0400 |
commit | dd79d27e1bbded7366ade6d25fbfde305e33fad8 (patch) | |
tree | 36418da9a4f875830d93fad51f86854ab1f8de4b | |
parent | 801edd6bb9b223390028dc7f565904a2833d20e1 (diff) |
[media] dvb-core: get rid of demux optional circular buffer
There is a provision at the dvb_demux.c to use a vmalloc'ed
circular buffer, enabled via an extra #ifdef option that it
is not at Kconfig. Enabling it will only make the Kernel to
allocate/deallocate such buffer, but no code would actually
use it. So, no practical effect, except for sparing some
memory without any good reason.
So, get rid of such dead code.
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
-rw-r--r-- | drivers/media/dvb-core/demux.h | 5 | ||||
-rw-r--r-- | drivers/media/dvb-core/dmxdev.c | 4 | ||||
-rw-r--r-- | drivers/media/dvb-core/dvb_demux.c | 42 | ||||
-rw-r--r-- | drivers/media/dvb-core/dvb_demux.h | 2 | ||||
-rw-r--r-- | drivers/media/dvb-core/dvb_net.c | 3 |
5 files changed, 6 insertions, 50 deletions
diff --git a/drivers/media/dvb-core/demux.h b/drivers/media/dvb-core/demux.h index aeda2b64931c..f8adf4506a45 100644 --- a/drivers/media/dvb-core/demux.h +++ b/drivers/media/dvb-core/demux.h | |||
@@ -103,7 +103,6 @@ struct dmx_ts_feed { | |||
103 | u16 pid, | 103 | u16 pid, |
104 | int type, | 104 | int type, |
105 | enum dmx_ts_pes pes_type, | 105 | enum dmx_ts_pes pes_type, |
106 | size_t circular_buffer_size, | ||
107 | ktime_t timeout); | 106 | ktime_t timeout); |
108 | int (*start_filtering)(struct dmx_ts_feed *feed); | 107 | int (*start_filtering)(struct dmx_ts_feed *feed); |
109 | int (*stop_filtering)(struct dmx_ts_feed *feed); | 108 | int (*stop_filtering)(struct dmx_ts_feed *feed); |
@@ -181,7 +180,6 @@ struct dmx_section_feed { | |||
181 | /* public: */ | 180 | /* public: */ |
182 | int (*set)(struct dmx_section_feed *feed, | 181 | int (*set)(struct dmx_section_feed *feed, |
183 | u16 pid, | 182 | u16 pid, |
184 | size_t circular_buffer_size, | ||
185 | int check_crc); | 183 | int check_crc); |
186 | int (*allocate_filter)(struct dmx_section_feed *feed, | 184 | int (*allocate_filter)(struct dmx_section_feed *feed, |
187 | struct dmx_section_filter **filter); | 185 | struct dmx_section_filter **filter); |
@@ -206,8 +204,7 @@ struct dmx_section_feed { | |||
206 | * the &dmx_demux. | 204 | * the &dmx_demux. |
207 | * Any TS packets that match the filter settings are copied to a circular | 205 | * Any TS packets that match the filter settings are copied to a circular |
208 | * buffer. The filtered TS packets are delivered to the client using this | 206 | * buffer. The filtered TS packets are delivered to the client using this |
209 | * callback function. The size of the circular buffer is controlled by the | 207 | * callback function. |
210 | * circular_buffer_size parameter of the &dmx_ts_feed.@set function. | ||
211 | * It is expected that the @buffer1 and @buffer2 callback parameters point to | 208 | * It is expected that the @buffer1 and @buffer2 callback parameters point to |
212 | * addresses within the circular buffer, but other implementations are also | 209 | * addresses within the circular buffer, but other implementations are also |
213 | * possible. Note that the called party should not try to free the memory | 210 | * possible. Note that the called party should not try to free the memory |
diff --git a/drivers/media/dvb-core/dmxdev.c b/drivers/media/dvb-core/dmxdev.c index 1e96a6f1b6f0..efe55a3e80d0 100644 --- a/drivers/media/dvb-core/dmxdev.c +++ b/drivers/media/dvb-core/dmxdev.c | |||
@@ -595,7 +595,7 @@ static int dvb_dmxdev_start_feed(struct dmxdev *dmxdev, | |||
595 | tsfeed = feed->ts; | 595 | tsfeed = feed->ts; |
596 | tsfeed->priv = filter; | 596 | tsfeed->priv = filter; |
597 | 597 | ||
598 | ret = tsfeed->set(tsfeed, feed->pid, ts_type, ts_pes, 32768, timeout); | 598 | ret = tsfeed->set(tsfeed, feed->pid, ts_type, ts_pes, timeout); |
599 | if (ret < 0) { | 599 | if (ret < 0) { |
600 | dmxdev->demux->release_ts_feed(dmxdev->demux, tsfeed); | 600 | dmxdev->demux->release_ts_feed(dmxdev->demux, tsfeed); |
601 | return ret; | 601 | return ret; |
@@ -666,7 +666,7 @@ static int dvb_dmxdev_filter_start(struct dmxdev_filter *filter) | |||
666 | return ret; | 666 | return ret; |
667 | } | 667 | } |
668 | 668 | ||
669 | ret = (*secfeed)->set(*secfeed, para->pid, 32768, | 669 | ret = (*secfeed)->set(*secfeed, para->pid, |
670 | (para->flags & DMX_CHECK_CRC) ? 1 : 0); | 670 | (para->flags & DMX_CHECK_CRC) ? 1 : 0); |
671 | if (ret < 0) { | 671 | if (ret < 0) { |
672 | pr_err("DVB (%s): could not set feed\n", | 672 | pr_err("DVB (%s): could not set feed\n", |
diff --git a/drivers/media/dvb-core/dvb_demux.c b/drivers/media/dvb-core/dvb_demux.c index 51bf5eb2df49..3ad0b2cd26b1 100644 --- a/drivers/media/dvb-core/dvb_demux.c +++ b/drivers/media/dvb-core/dvb_demux.c | |||
@@ -36,8 +36,6 @@ | |||
36 | 36 | ||
37 | #include "dvb_demux.h" | 37 | #include "dvb_demux.h" |
38 | 38 | ||
39 | #define NOBUFS | ||
40 | |||
41 | static int dvb_demux_tscheck; | 39 | static int dvb_demux_tscheck; |
42 | module_param(dvb_demux_tscheck, int, 0644); | 40 | module_param(dvb_demux_tscheck, int, 0644); |
43 | MODULE_PARM_DESC(dvb_demux_tscheck, | 41 | MODULE_PARM_DESC(dvb_demux_tscheck, |
@@ -663,8 +661,7 @@ out: | |||
663 | } | 661 | } |
664 | 662 | ||
665 | static int dmx_ts_feed_set(struct dmx_ts_feed *ts_feed, u16 pid, int ts_type, | 663 | static int dmx_ts_feed_set(struct dmx_ts_feed *ts_feed, u16 pid, int ts_type, |
666 | enum dmx_ts_pes pes_type, | 664 | enum dmx_ts_pes pes_type, ktime_t timeout) |
667 | size_t circular_buffer_size, ktime_t timeout) | ||
668 | { | 665 | { |
669 | struct dvb_demux_feed *feed = (struct dvb_demux_feed *)ts_feed; | 666 | struct dvb_demux_feed *feed = (struct dvb_demux_feed *)ts_feed; |
670 | struct dvb_demux *demux = feed->demux; | 667 | struct dvb_demux *demux = feed->demux; |
@@ -694,23 +691,10 @@ static int dmx_ts_feed_set(struct dmx_ts_feed *ts_feed, u16 pid, int ts_type, | |||
694 | dvb_demux_feed_add(feed); | 691 | dvb_demux_feed_add(feed); |
695 | 692 | ||
696 | feed->pid = pid; | 693 | feed->pid = pid; |
697 | feed->buffer_size = circular_buffer_size; | ||
698 | feed->timeout = timeout; | 694 | feed->timeout = timeout; |
699 | feed->ts_type = ts_type; | 695 | feed->ts_type = ts_type; |
700 | feed->pes_type = pes_type; | 696 | feed->pes_type = pes_type; |
701 | 697 | ||
702 | if (feed->buffer_size) { | ||
703 | #ifdef NOBUFS | ||
704 | feed->buffer = NULL; | ||
705 | #else | ||
706 | feed->buffer = vmalloc(feed->buffer_size); | ||
707 | if (!feed->buffer) { | ||
708 | mutex_unlock(&demux->mutex); | ||
709 | return -ENOMEM; | ||
710 | } | ||
711 | #endif | ||
712 | } | ||
713 | |||
714 | feed->state = DMX_STATE_READY; | 698 | feed->state = DMX_STATE_READY; |
715 | mutex_unlock(&demux->mutex); | 699 | mutex_unlock(&demux->mutex); |
716 | 700 | ||
@@ -799,7 +783,6 @@ static int dvbdmx_allocate_ts_feed(struct dmx_demux *dmx, | |||
799 | feed->demux = demux; | 783 | feed->demux = demux; |
800 | feed->pid = 0xffff; | 784 | feed->pid = 0xffff; |
801 | feed->peslen = 0xfffa; | 785 | feed->peslen = 0xfffa; |
802 | feed->buffer = NULL; | ||
803 | 786 | ||
804 | (*ts_feed) = &feed->feed.ts; | 787 | (*ts_feed) = &feed->feed.ts; |
805 | (*ts_feed)->parent = dmx; | 788 | (*ts_feed)->parent = dmx; |
@@ -836,10 +819,6 @@ static int dvbdmx_release_ts_feed(struct dmx_demux *dmx, | |||
836 | mutex_unlock(&demux->mutex); | 819 | mutex_unlock(&demux->mutex); |
837 | return -EINVAL; | 820 | return -EINVAL; |
838 | } | 821 | } |
839 | #ifndef NOBUFS | ||
840 | vfree(feed->buffer); | ||
841 | feed->buffer = NULL; | ||
842 | #endif | ||
843 | 822 | ||
844 | feed->state = DMX_STATE_FREE; | 823 | feed->state = DMX_STATE_FREE; |
845 | feed->filter->state = DMX_STATE_FREE; | 824 | feed->filter->state = DMX_STATE_FREE; |
@@ -891,8 +870,7 @@ static int dmx_section_feed_allocate_filter(struct dmx_section_feed *feed, | |||
891 | } | 870 | } |
892 | 871 | ||
893 | static int dmx_section_feed_set(struct dmx_section_feed *feed, | 872 | static int dmx_section_feed_set(struct dmx_section_feed *feed, |
894 | u16 pid, size_t circular_buffer_size, | 873 | u16 pid, int check_crc) |
895 | int check_crc) | ||
896 | { | 874 | { |
897 | struct dvb_demux_feed *dvbdmxfeed = (struct dvb_demux_feed *)feed; | 875 | struct dvb_demux_feed *dvbdmxfeed = (struct dvb_demux_feed *)feed; |
898 | struct dvb_demux *dvbdmx = dvbdmxfeed->demux; | 876 | struct dvb_demux *dvbdmx = dvbdmxfeed->demux; |
@@ -906,19 +884,8 @@ static int dmx_section_feed_set(struct dmx_section_feed *feed, | |||
906 | dvb_demux_feed_add(dvbdmxfeed); | 884 | dvb_demux_feed_add(dvbdmxfeed); |
907 | 885 | ||
908 | dvbdmxfeed->pid = pid; | 886 | dvbdmxfeed->pid = pid; |
909 | dvbdmxfeed->buffer_size = circular_buffer_size; | ||
910 | dvbdmxfeed->feed.sec.check_crc = check_crc; | 887 | dvbdmxfeed->feed.sec.check_crc = check_crc; |
911 | 888 | ||
912 | #ifdef NOBUFS | ||
913 | dvbdmxfeed->buffer = NULL; | ||
914 | #else | ||
915 | dvbdmxfeed->buffer = vmalloc(dvbdmxfeed->buffer_size); | ||
916 | if (!dvbdmxfeed->buffer) { | ||
917 | mutex_unlock(&dvbdmx->mutex); | ||
918 | return -ENOMEM; | ||
919 | } | ||
920 | #endif | ||
921 | |||
922 | dvbdmxfeed->state = DMX_STATE_READY; | 889 | dvbdmxfeed->state = DMX_STATE_READY; |
923 | mutex_unlock(&dvbdmx->mutex); | 890 | mutex_unlock(&dvbdmx->mutex); |
924 | return 0; | 891 | return 0; |
@@ -1077,7 +1044,6 @@ static int dvbdmx_allocate_section_feed(struct dmx_demux *demux, | |||
1077 | dvbdmxfeed->feed.sec.secbufp = dvbdmxfeed->feed.sec.seclen = 0; | 1044 | dvbdmxfeed->feed.sec.secbufp = dvbdmxfeed->feed.sec.seclen = 0; |
1078 | dvbdmxfeed->feed.sec.tsfeedp = 0; | 1045 | dvbdmxfeed->feed.sec.tsfeedp = 0; |
1079 | dvbdmxfeed->filter = NULL; | 1046 | dvbdmxfeed->filter = NULL; |
1080 | dvbdmxfeed->buffer = NULL; | ||
1081 | 1047 | ||
1082 | (*feed) = &dvbdmxfeed->feed.sec; | 1048 | (*feed) = &dvbdmxfeed->feed.sec; |
1083 | (*feed)->is_filtering = 0; | 1049 | (*feed)->is_filtering = 0; |
@@ -1106,10 +1072,6 @@ static int dvbdmx_release_section_feed(struct dmx_demux *demux, | |||
1106 | mutex_unlock(&dvbdmx->mutex); | 1072 | mutex_unlock(&dvbdmx->mutex); |
1107 | return -EINVAL; | 1073 | return -EINVAL; |
1108 | } | 1074 | } |
1109 | #ifndef NOBUFS | ||
1110 | vfree(dvbdmxfeed->buffer); | ||
1111 | dvbdmxfeed->buffer = NULL; | ||
1112 | #endif | ||
1113 | dvbdmxfeed->state = DMX_STATE_FREE; | 1075 | dvbdmxfeed->state = DMX_STATE_FREE; |
1114 | 1076 | ||
1115 | dvb_demux_feed_del(dvbdmxfeed); | 1077 | dvb_demux_feed_del(dvbdmxfeed); |
diff --git a/drivers/media/dvb-core/dvb_demux.h b/drivers/media/dvb-core/dvb_demux.h index 5ed3cab4ad28..9235b008ea0a 100644 --- a/drivers/media/dvb-core/dvb_demux.h +++ b/drivers/media/dvb-core/dvb_demux.h | |||
@@ -80,8 +80,6 @@ struct dvb_demux_feed { | |||
80 | int type; | 80 | int type; |
81 | int state; | 81 | int state; |
82 | u16 pid; | 82 | u16 pid; |
83 | u8 *buffer; | ||
84 | int buffer_size; | ||
85 | 83 | ||
86 | ktime_t timeout; | 84 | ktime_t timeout; |
87 | struct dvb_demux_filter *filter; | 85 | struct dvb_demux_filter *filter; |
diff --git a/drivers/media/dvb-core/dvb_net.c b/drivers/media/dvb-core/dvb_net.c index 063f63563919..b9a46d5a1bb5 100644 --- a/drivers/media/dvb-core/dvb_net.c +++ b/drivers/media/dvb-core/dvb_net.c | |||
@@ -969,7 +969,7 @@ static int dvb_net_feed_start(struct net_device *dev) | |||
969 | goto error; | 969 | goto error; |
970 | } | 970 | } |
971 | 971 | ||
972 | ret = priv->secfeed->set(priv->secfeed, priv->pid, 32768, 1); | 972 | ret = priv->secfeed->set(priv->secfeed, priv->pid, 1); |
973 | 973 | ||
974 | if (ret<0) { | 974 | if (ret<0) { |
975 | pr_err("%s: could not set section feed\n", dev->name); | 975 | pr_err("%s: could not set section feed\n", dev->name); |
@@ -1023,7 +1023,6 @@ static int dvb_net_feed_start(struct net_device *dev) | |||
1023 | priv->pid, /* pid */ | 1023 | priv->pid, /* pid */ |
1024 | TS_PACKET, /* type */ | 1024 | TS_PACKET, /* type */ |
1025 | DMX_PES_OTHER, /* pes type */ | 1025 | DMX_PES_OTHER, /* pes type */ |
1026 | 32768, /* circular buffer size */ | ||
1027 | timeout /* timeout */ | 1026 | timeout /* timeout */ |
1028 | ); | 1027 | ); |
1029 | 1028 | ||