diff options
Diffstat (limited to 'drivers/media/video/ivtv')
-rw-r--r-- | drivers/media/video/ivtv/Kconfig | 4 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-controls.c | 4 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-driver.c | 8 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-fileops.c | 2 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-ioctl.c | 16 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-ioctl.h | 6 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-queue.c | 12 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-streams.c | 13 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-streams.h | 2 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-vbi.c | 3 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtv-yuv.c | 2 | ||||
-rw-r--r-- | drivers/media/video/ivtv/ivtvfb.c | 6 |
12 files changed, 47 insertions, 31 deletions
diff --git a/drivers/media/video/ivtv/Kconfig b/drivers/media/video/ivtv/Kconfig index eec115bf9517..5d7ee8fcdd50 100644 --- a/drivers/media/video/ivtv/Kconfig +++ b/drivers/media/video/ivtv/Kconfig | |||
@@ -1,10 +1,12 @@ | |||
1 | config VIDEO_IVTV | 1 | config VIDEO_IVTV |
2 | tristate "Conexant cx23416/cx23415 MPEG encoder/decoder support" | 2 | tristate "Conexant cx23416/cx23415 MPEG encoder/decoder support" |
3 | depends on VIDEO_V4L1 && VIDEO_V4L2 && PCI && I2C && EXPERIMENTAL | 3 | depends on VIDEO_V4L1 && VIDEO_V4L2 && PCI && I2C && EXPERIMENTAL |
4 | depends on INPUT # due to VIDEO_IR | ||
5 | depends on HOTPLUG # due to FW_LOADER | ||
4 | select I2C_ALGOBIT | 6 | select I2C_ALGOBIT |
5 | select FW_LOADER | 7 | select FW_LOADER |
6 | select VIDEO_IR | 8 | select VIDEO_IR |
7 | select MEDIA_TUNER | 9 | select VIDEO_TUNER |
8 | select VIDEO_TVEEPROM | 10 | select VIDEO_TVEEPROM |
9 | select VIDEO_CX2341X | 11 | select VIDEO_CX2341X |
10 | select VIDEO_CX25840 | 12 | select VIDEO_CX25840 |
diff --git a/drivers/media/video/ivtv/ivtv-controls.c b/drivers/media/video/ivtv/ivtv-controls.c index 8c02fa661591..c7e449f6397b 100644 --- a/drivers/media/video/ivtv/ivtv-controls.c +++ b/drivers/media/video/ivtv/ivtv-controls.c | |||
@@ -181,12 +181,12 @@ static int ivtv_setup_vbi_fmt(struct ivtv *itv, enum v4l2_mpeg_stream_vbi_fmt fm | |||
181 | return 0; | 181 | return 0; |
182 | } | 182 | } |
183 | /* Need sliced data for mpeg insertion */ | 183 | /* Need sliced data for mpeg insertion */ |
184 | if (get_service_set(itv->vbi.sliced_in) == 0) { | 184 | if (ivtv_get_service_set(itv->vbi.sliced_in) == 0) { |
185 | if (itv->is_60hz) | 185 | if (itv->is_60hz) |
186 | itv->vbi.sliced_in->service_set = V4L2_SLICED_CAPTION_525; | 186 | itv->vbi.sliced_in->service_set = V4L2_SLICED_CAPTION_525; |
187 | else | 187 | else |
188 | itv->vbi.sliced_in->service_set = V4L2_SLICED_WSS_625; | 188 | itv->vbi.sliced_in->service_set = V4L2_SLICED_WSS_625; |
189 | expand_service_set(itv->vbi.sliced_in, itv->is_50hz); | 189 | ivtv_expand_service_set(itv->vbi.sliced_in, itv->is_50hz); |
190 | } | 190 | } |
191 | return 0; | 191 | return 0; |
192 | } | 192 | } |
diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c index ed020f722b05..797e636771da 100644 --- a/drivers/media/video/ivtv/ivtv-driver.c +++ b/drivers/media/video/ivtv/ivtv-driver.c | |||
@@ -853,6 +853,7 @@ static int ivtv_setup_pci(struct ivtv *itv, struct pci_dev *dev, | |||
853 | return 0; | 853 | return 0; |
854 | } | 854 | } |
855 | 855 | ||
856 | #ifdef MODULE | ||
856 | static u32 ivtv_request_module(struct ivtv *itv, u32 hw, | 857 | static u32 ivtv_request_module(struct ivtv *itv, u32 hw, |
857 | const char *name, u32 id) | 858 | const char *name, u32 id) |
858 | { | 859 | { |
@@ -865,12 +866,14 @@ static u32 ivtv_request_module(struct ivtv *itv, u32 hw, | |||
865 | IVTV_DEBUG_INFO("Loaded module %s\n", name); | 866 | IVTV_DEBUG_INFO("Loaded module %s\n", name); |
866 | return hw; | 867 | return hw; |
867 | } | 868 | } |
869 | #endif | ||
868 | 870 | ||
869 | static void ivtv_load_and_init_modules(struct ivtv *itv) | 871 | static void ivtv_load_and_init_modules(struct ivtv *itv) |
870 | { | 872 | { |
871 | u32 hw = itv->card->hw_all; | 873 | u32 hw = itv->card->hw_all; |
872 | unsigned i; | 874 | unsigned i; |
873 | 875 | ||
876 | #ifdef MODULE | ||
874 | /* load modules */ | 877 | /* load modules */ |
875 | #ifndef CONFIG_MEDIA_TUNER | 878 | #ifndef CONFIG_MEDIA_TUNER |
876 | hw = ivtv_request_module(itv, hw, "tuner", IVTV_HW_TUNER); | 879 | hw = ivtv_request_module(itv, hw, "tuner", IVTV_HW_TUNER); |
@@ -911,6 +914,7 @@ static void ivtv_load_and_init_modules(struct ivtv *itv) | |||
911 | #ifndef CONFIG_VIDEO_M52790 | 914 | #ifndef CONFIG_VIDEO_M52790 |
912 | hw = ivtv_request_module(itv, hw, "m52790", IVTV_HW_M52790); | 915 | hw = ivtv_request_module(itv, hw, "m52790", IVTV_HW_M52790); |
913 | #endif | 916 | #endif |
917 | #endif | ||
914 | 918 | ||
915 | /* check which i2c devices are actually found */ | 919 | /* check which i2c devices are actually found */ |
916 | for (i = 0; i < 32; i++) { | 920 | for (i = 0; i < 32; i++) { |
@@ -1228,7 +1232,7 @@ static int __devinit ivtv_probe(struct pci_dev *dev, | |||
1228 | return 0; | 1232 | return 0; |
1229 | 1233 | ||
1230 | free_streams: | 1234 | free_streams: |
1231 | ivtv_streams_cleanup(itv); | 1235 | ivtv_streams_cleanup(itv, 1); |
1232 | free_irq: | 1236 | free_irq: |
1233 | free_irq(itv->dev->irq, (void *)itv); | 1237 | free_irq(itv->dev->irq, (void *)itv); |
1234 | free_i2c: | 1238 | free_i2c: |
@@ -1373,7 +1377,7 @@ static void ivtv_remove(struct pci_dev *pci_dev) | |||
1373 | flush_workqueue(itv->irq_work_queues); | 1377 | flush_workqueue(itv->irq_work_queues); |
1374 | destroy_workqueue(itv->irq_work_queues); | 1378 | destroy_workqueue(itv->irq_work_queues); |
1375 | 1379 | ||
1376 | ivtv_streams_cleanup(itv); | 1380 | ivtv_streams_cleanup(itv, 1); |
1377 | ivtv_udma_free(itv); | 1381 | ivtv_udma_free(itv); |
1378 | 1382 | ||
1379 | exit_ivtv_i2c(itv); | 1383 | exit_ivtv_i2c(itv); |
diff --git a/drivers/media/video/ivtv/ivtv-fileops.c b/drivers/media/video/ivtv/ivtv-fileops.c index 2b74b0ab1477..f2fa434b677b 100644 --- a/drivers/media/video/ivtv/ivtv-fileops.c +++ b/drivers/media/video/ivtv/ivtv-fileops.c | |||
@@ -987,6 +987,8 @@ int ivtv_v4l2_open(struct inode *inode, struct file *filp) | |||
987 | /* Find which card this open was on */ | 987 | /* Find which card this open was on */ |
988 | spin_lock(&ivtv_cards_lock); | 988 | spin_lock(&ivtv_cards_lock); |
989 | for (x = 0; itv == NULL && x < ivtv_cards_active; x++) { | 989 | for (x = 0; itv == NULL && x < ivtv_cards_active; x++) { |
990 | if (ivtv_cards[x] == NULL) | ||
991 | continue; | ||
990 | /* find out which stream this open was on */ | 992 | /* find out which stream this open was on */ |
991 | for (y = 0; y < IVTV_MAX_STREAMS; y++) { | 993 | for (y = 0; y < IVTV_MAX_STREAMS; y++) { |
992 | s = &ivtv_cards[x]->streams[y]; | 994 | s = &ivtv_cards[x]->streams[y]; |
diff --git a/drivers/media/video/ivtv/ivtv-ioctl.c b/drivers/media/video/ivtv/ivtv-ioctl.c index d508b5d0538c..26cc0f6699fd 100644 --- a/drivers/media/video/ivtv/ivtv-ioctl.c +++ b/drivers/media/video/ivtv/ivtv-ioctl.c | |||
@@ -38,7 +38,7 @@ | |||
38 | #include <linux/dvb/audio.h> | 38 | #include <linux/dvb/audio.h> |
39 | #include <linux/i2c-id.h> | 39 | #include <linux/i2c-id.h> |
40 | 40 | ||
41 | u16 service2vbi(int type) | 41 | u16 ivtv_service2vbi(int type) |
42 | { | 42 | { |
43 | switch (type) { | 43 | switch (type) { |
44 | case V4L2_SLICED_TELETEXT_B: | 44 | case V4L2_SLICED_TELETEXT_B: |
@@ -88,7 +88,7 @@ static u16 select_service_from_set(int field, int line, u16 set, int is_pal) | |||
88 | return 0; | 88 | return 0; |
89 | } | 89 | } |
90 | 90 | ||
91 | void expand_service_set(struct v4l2_sliced_vbi_format *fmt, int is_pal) | 91 | void ivtv_expand_service_set(struct v4l2_sliced_vbi_format *fmt, int is_pal) |
92 | { | 92 | { |
93 | u16 set = fmt->service_set; | 93 | u16 set = fmt->service_set; |
94 | int f, l; | 94 | int f, l; |
@@ -115,7 +115,7 @@ static int check_service_set(struct v4l2_sliced_vbi_format *fmt, int is_pal) | |||
115 | return set != 0; | 115 | return set != 0; |
116 | } | 116 | } |
117 | 117 | ||
118 | u16 get_service_set(struct v4l2_sliced_vbi_format *fmt) | 118 | u16 ivtv_get_service_set(struct v4l2_sliced_vbi_format *fmt) |
119 | { | 119 | { |
120 | int f, l; | 120 | int f, l; |
121 | u16 set = 0; | 121 | u16 set = 0; |
@@ -466,7 +466,7 @@ static int ivtv_get_fmt(struct ivtv *itv, int streamtype, struct v4l2_format *fm | |||
466 | vbifmt->service_lines[0][23] = V4L2_SLICED_WSS_625; | 466 | vbifmt->service_lines[0][23] = V4L2_SLICED_WSS_625; |
467 | vbifmt->service_lines[0][16] = V4L2_SLICED_VPS; | 467 | vbifmt->service_lines[0][16] = V4L2_SLICED_VPS; |
468 | } | 468 | } |
469 | vbifmt->service_set = get_service_set(vbifmt); | 469 | vbifmt->service_set = ivtv_get_service_set(vbifmt); |
470 | break; | 470 | break; |
471 | } | 471 | } |
472 | 472 | ||
@@ -481,12 +481,12 @@ static int ivtv_get_fmt(struct ivtv *itv, int streamtype, struct v4l2_format *fm | |||
481 | if (streamtype == IVTV_DEC_STREAM_TYPE_VBI) { | 481 | if (streamtype == IVTV_DEC_STREAM_TYPE_VBI) { |
482 | vbifmt->service_set = itv->is_50hz ? V4L2_SLICED_VBI_625 : | 482 | vbifmt->service_set = itv->is_50hz ? V4L2_SLICED_VBI_625 : |
483 | V4L2_SLICED_VBI_525; | 483 | V4L2_SLICED_VBI_525; |
484 | expand_service_set(vbifmt, itv->is_50hz); | 484 | ivtv_expand_service_set(vbifmt, itv->is_50hz); |
485 | break; | 485 | break; |
486 | } | 486 | } |
487 | 487 | ||
488 | itv->video_dec_func(itv, VIDIOC_G_FMT, fmt); | 488 | itv->video_dec_func(itv, VIDIOC_G_FMT, fmt); |
489 | vbifmt->service_set = get_service_set(vbifmt); | 489 | vbifmt->service_set = ivtv_get_service_set(vbifmt); |
490 | break; | 490 | break; |
491 | } | 491 | } |
492 | case V4L2_BUF_TYPE_VBI_OUTPUT: | 492 | case V4L2_BUF_TYPE_VBI_OUTPUT: |
@@ -640,9 +640,9 @@ static int ivtv_try_or_set_fmt(struct ivtv *itv, int streamtype, | |||
640 | memset(vbifmt->reserved, 0, sizeof(vbifmt->reserved)); | 640 | memset(vbifmt->reserved, 0, sizeof(vbifmt->reserved)); |
641 | 641 | ||
642 | if (vbifmt->service_set) | 642 | if (vbifmt->service_set) |
643 | expand_service_set(vbifmt, itv->is_50hz); | 643 | ivtv_expand_service_set(vbifmt, itv->is_50hz); |
644 | set = check_service_set(vbifmt, itv->is_50hz); | 644 | set = check_service_set(vbifmt, itv->is_50hz); |
645 | vbifmt->service_set = get_service_set(vbifmt); | 645 | vbifmt->service_set = ivtv_get_service_set(vbifmt); |
646 | 646 | ||
647 | if (!set_fmt) | 647 | if (!set_fmt) |
648 | return 0; | 648 | return 0; |
diff --git a/drivers/media/video/ivtv/ivtv-ioctl.h b/drivers/media/video/ivtv/ivtv-ioctl.h index a03351b6853d..4e67f0ed1fc0 100644 --- a/drivers/media/video/ivtv/ivtv-ioctl.h +++ b/drivers/media/video/ivtv/ivtv-ioctl.h | |||
@@ -21,9 +21,9 @@ | |||
21 | #ifndef IVTV_IOCTL_H | 21 | #ifndef IVTV_IOCTL_H |
22 | #define IVTV_IOCTL_H | 22 | #define IVTV_IOCTL_H |
23 | 23 | ||
24 | u16 service2vbi(int type); | 24 | u16 ivtv_service2vbi(int type); |
25 | void expand_service_set(struct v4l2_sliced_vbi_format *fmt, int is_pal); | 25 | void ivtv_expand_service_set(struct v4l2_sliced_vbi_format *fmt, int is_pal); |
26 | u16 get_service_set(struct v4l2_sliced_vbi_format *fmt); | 26 | u16 ivtv_get_service_set(struct v4l2_sliced_vbi_format *fmt); |
27 | int ivtv_v4l2_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, | 27 | int ivtv_v4l2_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, |
28 | unsigned long arg); | 28 | unsigned long arg); |
29 | int ivtv_v4l2_ioctls(struct ivtv *itv, struct file *filp, unsigned int cmd, void *arg); | 29 | int ivtv_v4l2_ioctls(struct ivtv *itv, struct file *filp, unsigned int cmd, void *arg); |
diff --git a/drivers/media/video/ivtv/ivtv-queue.c b/drivers/media/video/ivtv/ivtv-queue.c index 3e1deec67a5e..fc8b1eaa333b 100644 --- a/drivers/media/video/ivtv/ivtv-queue.c +++ b/drivers/media/video/ivtv/ivtv-queue.c | |||
@@ -203,14 +203,14 @@ int ivtv_stream_alloc(struct ivtv_stream *s) | |||
203 | s->dma != PCI_DMA_NONE ? "DMA " : "", | 203 | s->dma != PCI_DMA_NONE ? "DMA " : "", |
204 | s->name, s->buffers, s->buf_size, s->buffers * s->buf_size / 1024); | 204 | s->name, s->buffers, s->buf_size, s->buffers * s->buf_size / 1024); |
205 | 205 | ||
206 | s->sg_pending = kzalloc(SGsize, GFP_KERNEL); | 206 | s->sg_pending = kzalloc(SGsize, GFP_KERNEL|__GFP_NOWARN); |
207 | if (s->sg_pending == NULL) { | 207 | if (s->sg_pending == NULL) { |
208 | IVTV_ERR("Could not allocate sg_pending for %s stream\n", s->name); | 208 | IVTV_ERR("Could not allocate sg_pending for %s stream\n", s->name); |
209 | return -ENOMEM; | 209 | return -ENOMEM; |
210 | } | 210 | } |
211 | s->sg_pending_size = 0; | 211 | s->sg_pending_size = 0; |
212 | 212 | ||
213 | s->sg_processing = kzalloc(SGsize, GFP_KERNEL); | 213 | s->sg_processing = kzalloc(SGsize, GFP_KERNEL|__GFP_NOWARN); |
214 | if (s->sg_processing == NULL) { | 214 | if (s->sg_processing == NULL) { |
215 | IVTV_ERR("Could not allocate sg_processing for %s stream\n", s->name); | 215 | IVTV_ERR("Could not allocate sg_processing for %s stream\n", s->name); |
216 | kfree(s->sg_pending); | 216 | kfree(s->sg_pending); |
@@ -219,7 +219,8 @@ int ivtv_stream_alloc(struct ivtv_stream *s) | |||
219 | } | 219 | } |
220 | s->sg_processing_size = 0; | 220 | s->sg_processing_size = 0; |
221 | 221 | ||
222 | s->sg_dma = kzalloc(sizeof(struct ivtv_sg_element), GFP_KERNEL); | 222 | s->sg_dma = kzalloc(sizeof(struct ivtv_sg_element), |
223 | GFP_KERNEL|__GFP_NOWARN); | ||
223 | if (s->sg_dma == NULL) { | 224 | if (s->sg_dma == NULL) { |
224 | IVTV_ERR("Could not allocate sg_dma for %s stream\n", s->name); | 225 | IVTV_ERR("Could not allocate sg_dma for %s stream\n", s->name); |
225 | kfree(s->sg_pending); | 226 | kfree(s->sg_pending); |
@@ -235,11 +236,12 @@ int ivtv_stream_alloc(struct ivtv_stream *s) | |||
235 | 236 | ||
236 | /* allocate stream buffers. Initially all buffers are in q_free. */ | 237 | /* allocate stream buffers. Initially all buffers are in q_free. */ |
237 | for (i = 0; i < s->buffers; i++) { | 238 | for (i = 0; i < s->buffers; i++) { |
238 | struct ivtv_buffer *buf = kzalloc(sizeof(struct ivtv_buffer), GFP_KERNEL); | 239 | struct ivtv_buffer *buf = kzalloc(sizeof(struct ivtv_buffer), |
240 | GFP_KERNEL|__GFP_NOWARN); | ||
239 | 241 | ||
240 | if (buf == NULL) | 242 | if (buf == NULL) |
241 | break; | 243 | break; |
242 | buf->buf = kmalloc(s->buf_size + 256, GFP_KERNEL); | 244 | buf->buf = kmalloc(s->buf_size + 256, GFP_KERNEL|__GFP_NOWARN); |
243 | if (buf->buf == NULL) { | 245 | if (buf->buf == NULL) { |
244 | kfree(buf); | 246 | kfree(buf); |
245 | break; | 247 | break; |
diff --git a/drivers/media/video/ivtv/ivtv-streams.c b/drivers/media/video/ivtv/ivtv-streams.c index 4ab8d36831ba..c47c2b945147 100644 --- a/drivers/media/video/ivtv/ivtv-streams.c +++ b/drivers/media/video/ivtv/ivtv-streams.c | |||
@@ -244,7 +244,7 @@ int ivtv_streams_setup(struct ivtv *itv) | |||
244 | return 0; | 244 | return 0; |
245 | 245 | ||
246 | /* One or more streams could not be initialized. Clean 'em all up. */ | 246 | /* One or more streams could not be initialized. Clean 'em all up. */ |
247 | ivtv_streams_cleanup(itv); | 247 | ivtv_streams_cleanup(itv, 0); |
248 | return -ENOMEM; | 248 | return -ENOMEM; |
249 | } | 249 | } |
250 | 250 | ||
@@ -304,12 +304,12 @@ int ivtv_streams_register(struct ivtv *itv) | |||
304 | return 0; | 304 | return 0; |
305 | 305 | ||
306 | /* One or more streams could not be initialized. Clean 'em all up. */ | 306 | /* One or more streams could not be initialized. Clean 'em all up. */ |
307 | ivtv_streams_cleanup(itv); | 307 | ivtv_streams_cleanup(itv, 1); |
308 | return -ENOMEM; | 308 | return -ENOMEM; |
309 | } | 309 | } |
310 | 310 | ||
311 | /* Unregister v4l2 devices */ | 311 | /* Unregister v4l2 devices */ |
312 | void ivtv_streams_cleanup(struct ivtv *itv) | 312 | void ivtv_streams_cleanup(struct ivtv *itv, int unregister) |
313 | { | 313 | { |
314 | int type; | 314 | int type; |
315 | 315 | ||
@@ -322,8 +322,11 @@ void ivtv_streams_cleanup(struct ivtv *itv) | |||
322 | continue; | 322 | continue; |
323 | 323 | ||
324 | ivtv_stream_free(&itv->streams[type]); | 324 | ivtv_stream_free(&itv->streams[type]); |
325 | /* Unregister device */ | 325 | /* Unregister or release device */ |
326 | video_unregister_device(vdev); | 326 | if (unregister) |
327 | video_unregister_device(vdev); | ||
328 | else | ||
329 | video_device_release(vdev); | ||
327 | } | 330 | } |
328 | } | 331 | } |
329 | 332 | ||
diff --git a/drivers/media/video/ivtv/ivtv-streams.h b/drivers/media/video/ivtv/ivtv-streams.h index 3d76a415fbd8..a653a5136417 100644 --- a/drivers/media/video/ivtv/ivtv-streams.h +++ b/drivers/media/video/ivtv/ivtv-streams.h | |||
@@ -23,7 +23,7 @@ | |||
23 | 23 | ||
24 | int ivtv_streams_setup(struct ivtv *itv); | 24 | int ivtv_streams_setup(struct ivtv *itv); |
25 | int ivtv_streams_register(struct ivtv *itv); | 25 | int ivtv_streams_register(struct ivtv *itv); |
26 | void ivtv_streams_cleanup(struct ivtv *itv); | 26 | void ivtv_streams_cleanup(struct ivtv *itv, int unregister); |
27 | 27 | ||
28 | /* Capture related */ | 28 | /* Capture related */ |
29 | int ivtv_start_v4l2_encode_stream(struct ivtv_stream *s); | 29 | int ivtv_start_v4l2_encode_stream(struct ivtv_stream *s); |
diff --git a/drivers/media/video/ivtv/ivtv-vbi.c b/drivers/media/video/ivtv/ivtv-vbi.c index c151bcf5519a..71798f0da27f 100644 --- a/drivers/media/video/ivtv/ivtv-vbi.c +++ b/drivers/media/video/ivtv/ivtv-vbi.c | |||
@@ -169,7 +169,8 @@ static void copy_vbi_data(struct ivtv *itv, int lines, u32 pts_stamp) | |||
169 | linemask[0] |= (1 << l); | 169 | linemask[0] |= (1 << l); |
170 | else | 170 | else |
171 | linemask[1] |= (1 << (l - 32)); | 171 | linemask[1] |= (1 << (l - 32)); |
172 | dst[sd + 12 + line * 43] = service2vbi(itv->vbi.sliced_data[i].id); | 172 | dst[sd + 12 + line * 43] = |
173 | ivtv_service2vbi(itv->vbi.sliced_data[i].id); | ||
173 | memcpy(dst + sd + 12 + line * 43 + 1, itv->vbi.sliced_data[i].data, 42); | 174 | memcpy(dst + sd + 12 + line * 43 + 1, itv->vbi.sliced_data[i].data, 42); |
174 | line++; | 175 | line++; |
175 | } | 176 | } |
diff --git a/drivers/media/video/ivtv/ivtv-yuv.c b/drivers/media/video/ivtv/ivtv-yuv.c index 62f70bd5e3cb..a9417f6e4087 100644 --- a/drivers/media/video/ivtv/ivtv-yuv.c +++ b/drivers/media/video/ivtv/ivtv-yuv.c | |||
@@ -908,7 +908,7 @@ static void ivtv_yuv_init(struct ivtv *itv) | |||
908 | } | 908 | } |
909 | 909 | ||
910 | /* We need a buffer for blanking when Y plane is offset - non-fatal if we can't get one */ | 910 | /* We need a buffer for blanking when Y plane is offset - non-fatal if we can't get one */ |
911 | yi->blanking_ptr = kzalloc(720 * 16, GFP_KERNEL); | 911 | yi->blanking_ptr = kzalloc(720 * 16, GFP_KERNEL|__GFP_NOWARN); |
912 | if (yi->blanking_ptr) { | 912 | if (yi->blanking_ptr) { |
913 | yi->blanking_dmaptr = pci_map_single(itv->dev, yi->blanking_ptr, 720*16, PCI_DMA_TODEVICE); | 913 | yi->blanking_dmaptr = pci_map_single(itv->dev, yi->blanking_ptr, 720*16, PCI_DMA_TODEVICE); |
914 | } else { | 914 | } else { |
diff --git a/drivers/media/video/ivtv/ivtvfb.c b/drivers/media/video/ivtv/ivtvfb.c index df789f683e63..73be154f7f05 100644 --- a/drivers/media/video/ivtv/ivtvfb.c +++ b/drivers/media/video/ivtv/ivtvfb.c | |||
@@ -948,7 +948,8 @@ static int ivtvfb_init_vidmode(struct ivtv *itv) | |||
948 | } | 948 | } |
949 | 949 | ||
950 | /* Allocate the pseudo palette */ | 950 | /* Allocate the pseudo palette */ |
951 | oi->ivtvfb_info.pseudo_palette = kmalloc(sizeof(u32) * 16, GFP_KERNEL); | 951 | oi->ivtvfb_info.pseudo_palette = |
952 | kmalloc(sizeof(u32) * 16, GFP_KERNEL|__GFP_NOWARN); | ||
952 | 953 | ||
953 | if (!oi->ivtvfb_info.pseudo_palette) { | 954 | if (!oi->ivtvfb_info.pseudo_palette) { |
954 | IVTVFB_ERR("abort, unable to alloc pseudo pallete\n"); | 955 | IVTVFB_ERR("abort, unable to alloc pseudo pallete\n"); |
@@ -1056,7 +1057,8 @@ static int ivtvfb_init_card(struct ivtv *itv) | |||
1056 | return -EBUSY; | 1057 | return -EBUSY; |
1057 | } | 1058 | } |
1058 | 1059 | ||
1059 | itv->osd_info = kzalloc(sizeof(struct osd_info), GFP_ATOMIC); | 1060 | itv->osd_info = kzalloc(sizeof(struct osd_info), |
1061 | GFP_ATOMIC|__GFP_NOWARN); | ||
1060 | if (itv->osd_info == NULL) { | 1062 | if (itv->osd_info == NULL) { |
1061 | IVTVFB_ERR("Failed to allocate memory for osd_info\n"); | 1063 | IVTVFB_ERR("Failed to allocate memory for osd_info\n"); |
1062 | return -ENOMEM; | 1064 | return -ENOMEM; |