diff mbox

Automatic device driver back-porting with media_build

Message ID 5672C713.6090101@free.fr (mailing list archive)
State New, archived
Headers show

Commit Message

Mason Dec. 17, 2015, 2:30 p.m. UTC
On 17/12/2015 15:08, Mauro Carvalho Chehab wrote:

> Then I guess you're not using vanilla 3.4 Kernel, but some heavily
> modified version. You're on your own here.

#ifdef NEED_KVFREE
#include <linux/mm.h>
static inline void kvfree(const void *addr)
{
	if (is_vmalloc_addr(addr))
		vfree(addr);
	else
		kfree(addr);
}
#endif

/tmp/sandbox/media_build/v4l/compat.h: In function 'kvfree':
/tmp/sandbox/media_build/v4l/compat.h:1631:3: error: implicit declaration of function 'vfree' [-Werror=implicit-function-declaration]
   vfree(addr);
   ^

vfree is declared in linux/vmalloc.h

The fix is trivial:



--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Mauro Carvalho Chehab Dec. 17, 2015, 2:55 p.m. UTC | #1
Em Thu, 17 Dec 2015 15:30:43 +0100
Mason <slash.tmp@free.fr> escreveu:

> On 17/12/2015 15:08, Mauro Carvalho Chehab wrote:
> 
> > Then I guess you're not using vanilla 3.4 Kernel, but some heavily
> > modified version. You're on your own here.
> 
> #ifdef NEED_KVFREE
> #include <linux/mm.h>
> static inline void kvfree(const void *addr)
> {
> 	if (is_vmalloc_addr(addr))
> 		vfree(addr);
> 	else
> 		kfree(addr);
> }
> #endif
> 
> /tmp/sandbox/media_build/v4l/compat.h: In function 'kvfree':
> /tmp/sandbox/media_build/v4l/compat.h:1631:3: error: implicit declaration of function 'vfree' [-Werror=implicit-function-declaration]
>    vfree(addr);
>    ^
> 
> vfree is declared in linux/vmalloc.h
> 
> The fix is trivial:
> 
> diff --git a/v4l/compat.h b/v4l/compat.h
> index c225c07d6caa..7f3f1d5f9d11 100644
> --- a/v4l/compat.h
> +++ b/v4l/compat.h
> @@ -1625,6 +1625,7 @@ static inline void eth_zero_addr(u8 *addr)
>  
>  #ifdef NEED_KVFREE
>  #include <linux/mm.h>
> +#include <linux/vmalloc.h>
>  static inline void kvfree(const void *addr)
>  {
>         if (is_vmalloc_addr(addr))
> 
> 

Well, it doesn't hurt to add it to the media_build tree, since
vmalloc.h exists at least since 2.6.11.

Added upstream.

Did the driver compile fine?

Regards,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mason Dec. 18, 2015, 5:10 p.m. UTC | #2
On 17/12/2015 15:55, Mauro Carvalho Chehab wrote:

> Did the driver compile fine?

Once all the modules finish building, I have many *.ko files in v4l.

I copy them to my target's /lib/modules/3.4.39.13/kernel
and run depmod -a

It seems modprobe rc-dvbsky doesn't bring in all the stuff needed
to actually use the device.

I added a few more modules at random:

Module                  Size  Used by
dvb_core               73479  0 
v4l2_common             1628  0 
videodev              111886  1 v4l2_common
media                   9838  1 videodev
rc_dvbsky                815  0 
rc_core                15521  1 rc_dvbsky

Probably needs dvb_usb but I don't see it built...

$ grep -rn '\<CONFIG_DVB_USB\>'
linux/drivers/media/usb/dvb-usb/Makefile:3:obj-$(CONFIG_DVB_USB) += dvb-usb.o
v4l/.myconfig:245:CONFIG_DVB_USB                               := n
v4l/Makefile.media:1010:obj-$(CONFIG_DVB_USB) += dvb-usb.o
v4l/config-compat.h:548:#undef CONFIG_DVB_USB
v4l/.config:183:# CONFIG_DVB_USB is not set

(All these files are generated by the build process.)

Am I doing something wrong?

Regards.

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mason Dec. 18, 2015, 7:42 p.m. UTC | #3
On 18/12/2015 18:10, Mason wrote:

> Am I doing something wrong?

Yes, I didn't have I2C enabled.

By running 'make menuconfig' in a recent kernel, I could see which
Kconfig options are required to build the dvbsky driver.

Mauro, I hope you'll find time to address my remaining bug reports.

Issue #1
check_files_for_func("writel_relaxed", "NEED_WRITEL_RELAXED", "include/asm-generic/io.h");
is definitely incorrect for older kernels.

Issue #2
WARNING: "nsecs_to_jiffies" [/tmp/sandbox/media_build/v4l/gpio-ir-recv.ko] undefined!

Regards.

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/v4l/compat.h b/v4l/compat.h
index c225c07d6caa..7f3f1d5f9d11 100644
--- a/v4l/compat.h
+++ b/v4l/compat.h
@@ -1625,6 +1625,7 @@  static inline void eth_zero_addr(u8 *addr)
 
 #ifdef NEED_KVFREE
 #include <linux/mm.h>
+#include <linux/vmalloc.h>
 static inline void kvfree(const void *addr)
 {
        if (is_vmalloc_addr(addr))