Re: [regression] dvb_usb_cxusb (was Re: ir-keytable: infinite loops, segfaults)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
> linux-media@xxxxxxxxxxxxxxx):
>                 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 <sean@xxxxxxxx>
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




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux