On Wed, Feb 08, 2017 at 10:30:30PM +1100, Vincent McIntyre wrote:
> Hi
>
> I have been working with Sean on figuring out the protocol used by a
> dvico remote.
> I thought the patch he sent was at fault but I backed it out and tried again.
>
> I've attached a full dmesg but the core of it is when dvb_usb_cxusb
> tries to load:
>
> [ 7.858907] WARNING: You are using an experimental version of the
> media stack.
> As the driver is backported to an older kernel, it doesn't
> offer
> enough quality for its usage in production.
> Use it with care.
> Latest git patches (needed if you report a bug to
> [email protected]):
> 47b037a0512d9f8675ec2693bed46c8ea6a884ab [media]
> v4l2-async: failing functions shouldn't have side effects
> 79a2eda80c6dab79790c308d9f50ecd2e5021ba3 [media]
> mantis_dvb: fix some error codes in mantis_dvb_init()
> c2987aaf0c9c2bcb0d4c5902d61473d9aa018a3d [media]
> exynos-gsc: Avoid spamming the log on VIDIOC_TRY_FMT
> [ 7.861968] dvb_usb_af9035 1-4:1.0: prechip_version=83
> chip_version=02 chip_type=9135
> [ 7.887476] dvb_usb_cxusb: disagrees about version of symbol
Sorry about not getting back to you sooner, life got in the way. The
problem here is that the dvb-usb-cxusb did not get selected, so it
was not recompiled.
The problem is that DVB_USB_CXUSB Kconfig has this line:
select DVB_SI2168 if MEDIA_SUBDRV_AUTOSELECT
The make_kconfig.pl script transforms this into a dependency, but
DVB_SI2168 is only available when compiling against kernel 4.7 or later.
I think only one select line needs to match, so I created this patch.
Please apply this patch against media_build, you might need to do make
clean before building again.
Thanks,
Sean
From: Sean Young <[email protected]>
Date: Wed, 15 Feb 2017 14:58:00 +0000
Subject: [PATCH] only one select Kconfig needs to match
---
v4l/scripts/make_kconfig.pl | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/v4l/scripts/make_kconfig.pl b/v4l/scripts/make_kconfig.pl
index ba8c134..a11f820 100755
--- a/v4l/scripts/make_kconfig.pl
+++ b/v4l/scripts/make_kconfig.pl
@@ -169,6 +169,7 @@ sub depends($$)
push @{$depends{$key}}, $deps;
}
+my %selectdepends = ();
sub selects($$$)
{
my $key = shift;
@@ -181,7 +182,7 @@ sub selects($$$)
# Transform "select X if Y" into "depends on !Y || X"
$select = "!($if) || ($select)";
}
- push @{$depends{$key}}, $select;
+ push @{$selectdepends{$key}}, $select;
}
# Needs:
@@ -228,6 +229,23 @@ sub checkdeps()
return 0;
}
}
+ my $selectdeps = $selectdepends{$key};
+ if ($selectdeps) {
+ my $found = 0;
+ foreach (@$selectdeps) {
+ next if($_ eq '');
+ if (eval(toperl($_))) {
+ $found = 1;
+ last;
+ }
+ }
+ if ($found == 0) {
+ print "Disabling $key, select dependency '$_'
not met\n" if $debug;
+ $allconfig{$key} = 0;
+ return 0;
+ }
+ }
+
return 1;
}
--
2.7.4