public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: "Hans Werner" <HWerner4@gmx.de>
To: wk <handygewinnspiel@gmx.de>
Cc: linux-dvb@linuxtv.org
Subject: Re: [linux-dvb] [PATCH] wscan: improved frontend autodetection
Date: Thu, 06 Nov 2008 18:37:37 +0100	[thread overview]
Message-ID: <20081106173737.16850@gmx.net> (raw)
In-Reply-To: <49131C19.1080404@gmx.de>

[-- Attachment #1: Type: text/plain, Size: 2122 bytes --]

> Hi,
> 
> Hans Werner wrote:
> > Currently wscan will not autodetect frontends which which have frontend
> != 0,
> > i.e. it only detects /dev/dvb/adapterN/frontend0 where N=0-3.
> >
> > Since multiple frontends per adapter are supported in 2.6.28, this means
> the correct
> > frontend may not be found. For example with the HVR4000, DVB-T is always
> at frontend1.
> >
> > The attached patch fixes this, searching for frontend 0-3 for each
> adapter 0-3.
> >
> > Signed-off-by: Hans Werner <hwerner4@gmx.de>
> Good idea. :)
> But while testing your patch it seems that it doesn't work as expected. 
> Here some example:
> 
> w_scan version 20081106
> Info: using DVB adapter auto detection.
>    Found DVB-C frontend. Using adapter /dev/dvb/adapter0/frontend0
>    Found DVB-C frontend. Using adapter /dev/dvb/adapter1/frontend0
>    Found DVB-C frontend. Using adapter /dev/dvb/adapter2/frontend0
> Info: unable to open frontend /dev/dvb/adapter3/frontend1'
> Info: unable to open frontend /dev/dvb/adapter3/frontend2'
> Info: unable to open frontend /dev/dvb/adapter3/frontend3'
> -_-_-_-_ Getting frontend capabilities-_-_-_-_
> 
> I'm using three dvb-c frontends.
> The detection doesnt stop anymore with your patch if a matching frontend 
> was found, because it doesnt leave the outer loop.
> Normally this search has to stop at /dev/dvb/adapter0/frontend0.

OK I see, you want to use the first usable card found, not the last as in my patch.

> That means we have to change your patch a little. I also increased the 
> number of adapters to 8, since i use more than 4.
> 
> Can you please test the attached patch and give some feedback? If it 
> works fine for you, i would apply to w_scan.
> 
> -Winfried
> 
> PS: What is actually the maximum number of adapters and frontends per 
> adapter? Can anybody give some hint?

Your patch works fine for me. I would add one thing though: close the frontend if it
is the wrong type. I have attached a new patch.

Thanks,
Hans
-- 
Release early, release often.

"Feel free" - 5 GB Mailbox, 50 FreeSMS/Monat ...
Jetzt GMX ProMail testen: http://www.gmx.net/de/go/promail

[-- Attachment #2: patch_wscan_fixautodetection3.diff --]
[-- Type: text/x-patch, Size: 2167 bytes --]

diff -Nur w_scan-20080815/scan.c w_scan-20080815_patch3/scan.c
--- w_scan-20080815/scan.c	2008-08-16 09:02:01.000000000 +0100
+++ w_scan-20080815_patch3/scan.c	2008-11-06 17:31:23.000000000 +0000
@@ -77,7 +77,7 @@
 	.type = -1
 };
 
-uint version = 20080815;
+uint version = 20081106;
 int verbosity = 2;
 
 #define ATSC_VSB	0x01
@@ -2579,7 +2579,7 @@
 {
 	char frontend_devname [80];
 	int adapter = 999, frontend = 0, demux = 0;
-	int opt, i;
+	int opt, i, j;
 	int frontend_fd;
 	int fe_open_mode;
 	int frontend_type = FE_OFDM;
@@ -2715,19 +2715,20 @@
 	if ( adapter == 999 ) {
 		info("Info: using DVB adapter auto detection.\n");
 		fe_open_mode = O_RDWR | O_NONBLOCK;
-		for (i=0; i < 4; i++) {
-		  snprintf (frontend_devname, sizeof(frontend_devname),  		"/dev/dvb/adapter%i/frontend0", i);
-		  if ((frontend_fd = open (frontend_devname, fe_open_mode)) < 0) {
-		  	info("Info: unable to open frontend %s'\n", frontend_devname);
+
+		for (i=0; i < 8; i++) {
+		  for (j=0; j < 4; j++) {
+		    snprintf (frontend_devname, sizeof(frontend_devname), "/dev/dvb/adapter%i/frontend%i", i, j);
+		    if ((frontend_fd = open (frontend_devname, fe_open_mode)) < 0) {
 			continue;
 			}
-		/* determine FE type and caps */
-		if (ioctl(frontend_fd, FE_GET_INFO, &fe_info) == -1) {
+		    /* determine FE type and caps */
+		    if (ioctl(frontend_fd, FE_GET_INFO, &fe_info) == -1) {
 			info("   ERROR: unable to determine frontend type\n");
 			close (frontend_fd);
 			continue;
-			}		  
-		if (fe_info.type==frontend_type) {
+			}
+		    if (fe_info.type == frontend_type) {
 			if (fe_info.type == FE_OFDM) 
 			  info("   Found DVB-T frontend. Using adapter %s\n",frontend_devname);
                         else if (fe_info.type == FE_ATSC)
@@ -2736,9 +2737,16 @@
 			  info("   Found DVB-C frontend. Using adapter %s\n",frontend_devname);                     
 			close (frontend_fd);
 			adapter=i;
+			frontend=j;
+			i=999;
 			break;
-			} 		
+			}
+                     else {
+ 			info("   Wrong type, ignoring frontend %s\n",frontend_devname);
+			close (frontend_fd);
+			}
 
+		  }
 		}
 	}
 	snprintf (frontend_devname, sizeof(frontend_devname),

[-- Attachment #3: Type: text/plain, Size: 150 bytes --]

_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

  reply	other threads:[~2008-11-06 17:38 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-06 12:47 [linux-dvb] [PATCH] wscan: improved frontend autodetection Hans Werner
2008-11-06 14:43 ` Hans Werner
2008-11-06 20:40   ` wk
     [not found]   ` <200811081130.21951.liplianin@tut.by>
     [not found]     ` <1a297b360811081323k61c0dd44vf3834ba965b20466@mail.gmail.com>
2008-11-09 18:25       ` [linux-dvb] [PATCH] stb0899: Set min symbol rate to 1000000 Goga777
2008-11-19 13:40         ` Morgan Tørvolt
2008-11-21 20:45         ` Manu Abraham
2008-11-06 16:32 ` [linux-dvb] [PATCH] wscan: improved frontend autodetection wk
2008-11-06 17:37   ` Hans Werner [this message]
2008-11-06 20:44     ` wk
2008-11-06 17:39   ` Darron Broad

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081106173737.16850@gmx.net \
    --to=hwerner4@gmx.de \
    --cc=handygewinnspiel@gmx.de \
    --cc=linux-dvb@linuxtv.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox