Mauro Carvalho Chehab wrote:
> On Mon, 28 Apr 2008 22:42:40 +0200
> Hans Verkuil <hverkuil at xs4all.nl> wrote:
>
> > Hi Mauro,
> >
> > Please pull from http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-cx18 for
> > the following:
> >
> > - cx18: new driver for the Conexant CX23418 MPEG encoder chip
> > - cx18: add new cx18-ctl control utility
> >
>
> Also: there are duplicated symbols on ivtv and cx18:
>
> drivers/media/video/cx18/built-in.o: In function `get_service_set':
> /home/v4l/tokernel/git/drivers/media/video/cx18/cx18-ioctl.c:118: multiple
> definition of `get_service_set'
> drivers/media/video/ivtv/built-in.o:/home/v4l/tokernel/git/drivers/media/video/ivtv/ivtv-ioctl.c:119:
> first defined here
> drivers/media/video/cx18/built-in.o: In function `expand_service_set':
> /home/v4l/tokernel/git/drivers/media/video/cx18/cx18-ioctl.c:92: multiple
> definition of `expand_service_set'
> drivers/media/video/ivtv/built-in.o:/home/v4l/tokernel/git/drivers/media/video/ivtv/ivtv-ioctl.c:92:
> first defined here
> drivers/media/video/cx18/built-in.o: In function `service2vbi':
> /home/v4l/tokernel/git/drivers/media/video/cx18/cx18-ioctl.c:44: multiple
> definition of `service2vbi'
> drivers/media/video/ivtv/built-in.o:/home/v4l/tokernel/git/drivers/media/video/ivtv/ivtv-ioctl.c:42:
> first defined here
>
>
> Cheers,
> Mauro
Hans,
The attached patch should get rid of the symbol collision on the cx18
side of things.
I assumed the symbols were cx18 module internal and not directly used
from outside the cx18 directory. Given that the calls were spread
across source files, making them file scope by declaring them static was
not an option. Please review.
Signed-off-by: Andy Walls <[EMAIL PROTECTED]>
Regards,
Andy
diff -r 9377f0ecba44 linux/drivers/media/video/cx18/cx18-controls.c
--- a/linux/drivers/media/video/cx18/cx18-controls.c Mon Apr 28 22:27:08 2008 +0200
+++ b/linux/drivers/media/video/cx18/cx18-controls.c Tue Apr 29 18:52:37 2008 -0400
@@ -184,12 +184,12 @@ static int cx18_setup_vbi_fmt(struct cx1
if (cx->vbi.insert_mpeg == 0)
return 0;
/* Need sliced data for mpeg insertion */
- if (get_service_set(cx->vbi.sliced_in) == 0) {
+ if (cx18_get_service_set(cx->vbi.sliced_in) == 0) {
if (cx->is_60hz)
cx->vbi.sliced_in->service_set = V4L2_SLICED_CAPTION_525;
else
cx->vbi.sliced_in->service_set = V4L2_SLICED_WSS_625;
- expand_service_set(cx->vbi.sliced_in, cx->is_50hz);
+ cx18_expand_service_set(cx->vbi.sliced_in, cx->is_50hz);
}
return 0;
}
diff -r 9377f0ecba44 linux/drivers/media/video/cx18/cx18-ioctl.c
--- a/linux/drivers/media/video/cx18/cx18-ioctl.c Mon Apr 28 22:27:08 2008 +0200
+++ b/linux/drivers/media/video/cx18/cx18-ioctl.c Tue Apr 29 18:52:37 2008 -0400
@@ -40,7 +40,7 @@
#include <media/v4l2-chip-ident.h>
#include <linux/i2c-id.h>
-u16 service2vbi(int type)
+u16 cx18_service2vbi(int type)
{
switch (type) {
case V4L2_SLICED_TELETEXT_B:
@@ -88,7 +88,7 @@ static u16 select_service_from_set(int f
return 0;
}
-void expand_service_set(struct v4l2_sliced_vbi_format *fmt, int is_pal)
+void cx18_expand_service_set(struct v4l2_sliced_vbi_format *fmt, int is_pal)
{
u16 set = fmt->service_set;
int f, l;
@@ -114,7 +114,7 @@ static int check_service_set(struct v4l2
return set != 0;
}
-u16 get_service_set(struct v4l2_sliced_vbi_format *fmt)
+u16 cx18_get_service_set(struct v4l2_sliced_vbi_format *fmt)
{
int f, l;
u16 set = 0;
@@ -213,7 +213,7 @@ static int cx18_get_fmt(struct cx18 *cx,
memset(vbifmt->service_lines, 0, sizeof(vbifmt->service_lines));
cx18_av_cmd(cx, VIDIOC_G_FMT, fmt);
- vbifmt->service_set = get_service_set(vbifmt);
+ vbifmt->service_set = cx18_get_service_set(vbifmt);
break;
}
default:
@@ -291,9 +291,9 @@ static int cx18_try_or_set_fmt(struct cx
memset(vbifmt->reserved, 0, sizeof(vbifmt->reserved));
if (vbifmt->service_set)
- expand_service_set(vbifmt, cx->is_50hz);
+ cx18_expand_service_set(vbifmt, cx->is_50hz);
set = check_service_set(vbifmt, cx->is_50hz);
- vbifmt->service_set = get_service_set(vbifmt);
+ vbifmt->service_set = cx18_get_service_set(vbifmt);
if (!set_fmt)
return 0;
diff -r 9377f0ecba44 linux/drivers/media/video/cx18/cx18-ioctl.h
--- a/linux/drivers/media/video/cx18/cx18-ioctl.h Mon Apr 28 22:27:08 2008 +0200
+++ b/linux/drivers/media/video/cx18/cx18-ioctl.h Tue Apr 29 18:52:37 2008 -0400
@@ -21,9 +21,9 @@
* 02111-1307 USA
*/
-u16 service2vbi(int type);
-void expand_service_set(struct v4l2_sliced_vbi_format *fmt, int is_pal);
-u16 get_service_set(struct v4l2_sliced_vbi_format *fmt);
+u16 cx18_service2vbi(int type);
+void cx18_expand_service_set(struct v4l2_sliced_vbi_format *fmt, int is_pal);
+u16 cx18_get_service_set(struct v4l2_sliced_vbi_format *fmt);
int cx18_v4l2_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
unsigned long arg);
int cx18_v4l2_ioctls(struct cx18 *cx, struct file *filp, unsigned cmd,
diff -r 9377f0ecba44 linux/drivers/media/video/cx18/cx18-vbi.c
--- a/linux/drivers/media/video/cx18/cx18-vbi.c Mon Apr 28 22:27:08 2008 +0200
+++ b/linux/drivers/media/video/cx18/cx18-vbi.c Tue Apr 29 18:52:37 2008 -0400
@@ -58,7 +58,7 @@ static void copy_vbi_data(struct cx18 *c
linemask[0] |= (1 << l);
else
linemask[1] |= (1 << (l - 32));
- dst[sd + 12 + line * 43] = service2vbi(sdata->id);
+ dst[sd + 12 + line * 43] = cx18_service2vbi(sdata->id);
memcpy(dst + sd + 12 + line * 43 + 1, sdata->data, 42);
line++;
}
_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel