IR mce remote

2012-03-06 Thread Issa Gorissen
Hi,

I'm having this trouble with a MCE USB remote from SMK Manufacturing (USB ID
0609:0334). Kernel version is 3.1.9 on opensuse 12.1 32bit.
The remote itself is a Sony RM-MCE20E (RC6 compatible). But problems also
arise with the Hauppauge I've got.

Whenever I push the same button rapidly, it will trigger itself more than 2
times. Currently, this is happening with the arrows under xbmc (it will scroll
a lot more than what I pressed on the buttons). It also happens under the
small tool 'input-events' where I can get results like




21:51:55.631200: EV_MSC MSC_SCAN -2146499551
21:51:55.631205: EV_KEY KEY_RIGHT pressed
21:51:55.631205: EV_SYN code=0 value=0
^[[C21:51:55.738203: EV_MSC MSC_SCAN -2146499551
21:51:55.738204: EV_SYN code=0 value=0
21:51:55.844201: EV_MSC MSC_SCAN -2146499551
21:51:55.844202: EV_SYN code=0 value=0
21:51:55.951199: EV_MSC MSC_SCAN -2146499551
21:51:55.951201: EV_SYN code=0 value=0
21:51:56.057202: EV_MSC MSC_SCAN -2146499551
21:51:56.057203: EV_SYN code=0 value=0
^[[C21:51:56.163202: EV_MSC MSC_SCAN -2146499551
21:51:56.163203: EV_SYN code=0 value=0
^[[C^[[C^[[C^[[C21:51:56.270203: EV_MSC MSC_SCAN -2146499551
21:51:56.270205: EV_SYN code=0 value=0
^[[C^[[C^[[C21:51:56.376204: EV_MSC MSC_SCAN -2146499551
21:51:56.376206: EV_SYN code=0 value=0
^[[C^[[C^[[C^[[C21:51:56.482206: EV_MSC MSC_SCAN -2146499551
21:51:56.482207: EV_SYN code=0 value=0
^[[C^[[C^[[C^[[C21:51:56.615205: EV_MSC MSC_SCAN -2146499551
21:51:56.615207: EV_SYN code=0 value=0
^[[C^[[C^[[C^[[C^[[C^[[C^[[C^[[C21:51:56.864515: EV_KEY KEY_RIGHT released
21:51:56.864516: EV_SYN code=0 value=0




I tried increasing the delay/period value, but it does not help

ir-keytable output
...
Protocols changed to RC-6 
Repeat delay = 1000 ms, repeat period = 1000 ms
Changed Repeat delay to 2000 ms and repeat period to 5000 ms

It seems like the events are being queued somewhere and released at once and
in full (without any being discarded to respect the delay/period conditions).

Any help would be welcome.

Thx
--
Issa

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


Re: LinuxTV ported to Windows

2011-12-02 Thread Issa Gorissen
 Hello,
 
 We have ported linuxtv's cx23885+CAM en50221+Diseq to Windows OS (Vista, 
 XP, win7 tested). Results available under GPL and can be checkout from 
 git repository:
 https://github.com/netup/netup-dvb-s2-ci-dual
 
 Binary builds (ready to install) available in build directory. Currently 
 NetUP Dual DVB-S2 CI card supported ( 
 http://www.netup.tv/en-EN/dual_dvb-s2-ci_card.php ).
 
 Driver based on Microsoft BDA standard, but some features (DiSEqC, CI) 
 supported by custom API, for more details see netup_bda_api.h file.
 
 Any comments, suggestions are welcome.
 
 -- 
 Abylai Ospanaos...@netup.ru
 NetUP Inc.

Yes indeed, it is a pity but it seems this work is in violation of the GPL.

--
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
--

[http://www.gnu.org/philosophy/why-not-lgpl.html]
[http://www.gnu.org/copyleft/gpl.html]

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


RE: [DVB] CXD2099 - Question about the CAM clock

2011-10-04 Thread Issa Gorissen
 
 I managed to find a series of values that are working correctly for MCLKI:
 
 MCLKI = 0x5554 - i * 0x0c
 
 In my case I can go down to 0x5338 before having TS errors.
 

From CXD2099 specs
--
It is a requirement for the frequency of MCLKI to be set higher than the input
data rate. ie 8
times TICLK. If this condition is not met then the internal buffer will
overflow and the register
TSIN_FIFO_OVFL is set to 1. This register should be read at regular intervals
to ensure reliable
operation.
--

Watch out that you're not slowly overflowing the internal buffer if MCLKI is
not fast enough...

Are you working with the ddbridge ?

--
Issa

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


Re: [DVB] CXD2099 - Question about the CAM clock

2011-10-03 Thread Issa Gorissen
 Dear Oliver,
 
 I’ve done some tests with the CAM reader from Digital Devices based on
Sony
 CXD2099 chip and I noticed some issues with some CAM:
 * SMIT CAM: working fine
 * ASTON CAM   : working fine, except that it's crashing quite regularly
 * NEOTION CAM : no stream going out but access to the CAM menu is ok
 
 When looking at the CXD2099 driver code, I noticed the CAM clock (fMCLKI)
is
 fixed at 9MHz using the 27MHz onboard oscillator and using the integer
 divider set to 3 (as MCLKI_FREQ=2).
 
 I was wondering if some CAM were not able to work correctly at such high
 clock frequency.
 
 So, I've tried to enable the NCO (numeric controlled oscillator) in order
to
 setup a lower frequency for the CAM clock, but I wasn't successful, it's
 looking like the frequency must be around the 9MHz or I can't get any
 stream.
 
 Do you know a way to decrease this CAM clock frequency to do some testing?
 
 Best regards,
 Sebastien.

Weird that the frequency would pose a problem for those CAMs. The CI spec [1]
explains that the minimum byte transfer clock period must be 111ns. This gives
us a frequency of ~9MHz.

Anyway, wouldn't it be wiser to base MCLKI on TICLK ?

--
Issa

[1] http://www.dvb.org/technology/standards/En50221.V1.pdf

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


Re: [PATCH 15/16] ngene: Update for latest cxd2099

2011-07-04 Thread Issa Gorissen
From: Oliver Endriss o.endr...@gmx.de

 Modifications for latest cxd2099.
 
 Signed-off-by: Oliver Endriss o.endr...@gmx.de
 ---
  drivers/media/dvb/ngene/ngene-core.c |9 -
  1 files changed, 8 insertions(+), 1 deletions(-)
 
 diff --git a/drivers/media/dvb/ngene/ngene-core.c
b/drivers/media/dvb/ngene/ngene-core.c
 index fa4b3eb..df0f0bd 100644
 --- a/drivers/media/dvb/ngene/ngene-core.c
 +++ b/drivers/media/dvb/ngene/ngene-core.c
 @@ -1582,11 +1582,18 @@ static int init_channels(struct ngene *dev)
   return 0;
  }
  
 +static struct cxd2099_cfg cxd_cfg = {
 + .bitrate = 62000,


bitrate's never used anywhere (yet ?), why keeping it ?

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


Re: [PATCH 13/16] cxd2099: Update to latest version

2011-07-04 Thread Issa Gorissen
On 03/07/2011 19:00, Oliver Endriss wrote:
 @@ -284,53 +313,84 @@ static int init(struct cxd *ci)
   CHK_ERROR(write_reg(ci, 0x08, 0x28));
   CHK_ERROR(write_reg(ci, 0x14, 0x20));
  
 - CHK_ERROR(write_reg(ci, 0x09, 0x4D)); /* Input Mode C, BYPass 
 Serial, TIVAL = low, MSB */
 + /* CHK_ERROR(write_reg(ci, 0x09, 0x4D));*/ /* Input Mode C, 
 BYPass Serial, TIVAL = low, MSB */
   CHK_ERROR(write_reg(ci, 0x0A, 0xA7)); /* TOSTRT = 8, Mode B 
 (gated clock), falling Edge, Serial, POL=HIGH, MSB */
  
 - /* Sync detector */
   CHK_ERROR(write_reg(ci, 0x0B, 0x33));
   CHK_ERROR(write_reg(ci, 0x0C, 0x33));
  
   CHK_ERROR(write_regm(ci, 0x14, 0x00, 0x0F));
   CHK_ERROR(write_reg(ci, 0x15, ci-clk_reg_b));
   CHK_ERROR(write_regm(ci, 0x16, 0x00, 0x0F));
 - CHK_ERROR(write_reg(ci, 0x17, ci-clk_reg_f));
 + CHK_ERROR(write_reg(ci, 0x17,ci-clk_reg_f));
  
 - CHK_ERROR(write_reg(ci, 0x20, 0x28)); /* Integer Divider, 
 Falling Edge, Internal Sync, */
 - CHK_ERROR(write_reg(ci, 0x21, 0x00)); /* MCLKI = TICLK/8 */
 - CHK_ERROR(write_reg(ci, 0x22, 0x07)); /* MCLKI = TICLK/8 */
 + if (ci-cfg.clock_mode) {
 + if (ci-cfg.polarity) {
 + CHK_ERROR(write_reg(ci, 0x09, 0x6f));
 + } else {
 + CHK_ERROR(write_reg(ci, 0x09, 0x6d));
 + }
 + CHK_ERROR(write_reg(ci, 0x20, 0x68));
 + CHK_ERROR(write_reg(ci, 0x21, 0x00));
 + CHK_ERROR(write_reg(ci, 0x22, 0x02));

When clock_mode = 1, you set MKCLI to 9MHz. Comments in this code would
be really nice. Used by ddbrige it seems.

 + } else {
 + if (ci-cfg.polarity) {
 + CHK_ERROR(write_reg(ci, 0x09, 0x4f));
 + } else {
 + CHK_ERROR(write_reg(ci, 0x09, 0x4d));
 + }
  
 + CHK_ERROR(write_reg(ci, 0x20, 0x28));
 + CHK_ERROR(write_reg(ci, 0x21, 0x00));
 + CHK_ERROR(write_reg(ci, 0x22, 0x07));
 + }

When clock_mode = 0, input ts is in serial mode C, MCLKI = TICLK / 8 ;
why not set register 0x20 to 0x8 only ? Also, no need to set 0x21 nor
0x22 which are only for serial input mode D. And only used by ngene it
seems. Is TICLK equal to the bitrate variable (6200) ? If yes, then
MCLKI can only reach a value of ~7,8MHz, which is not the maximum speed
of CAMs. Is this on purpose ? Ngene chip limitation ?
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [DVB] Possible regression in stb6100 module for DVBS2 transponders

2011-07-04 Thread Issa Gorissen
On 01/07/2011 10:44, Sébastien RAILLARD (COEXSI) wrote:
 Dear Manu,

 I think there is a regression in your patch from December 2010 regarding the
 stb6100 module.
 With the latest version of stb6100 published in media_build git branch, we
 can't tune the TT-S2-3200 on some DVBS2 transponders like Hotbird 13E
 11681-H-27500 or Hotbird 13E 12692-H-27500.
 After reverting to the previous stb6100_set_frequency function, it's working
 fine.
 So, there is maybe in issue in the last December code refactoring.

 Reference of the patch: [media] stb6100: Improve tuner performance
 http://git.linuxtv.org/media_tree.git?a=history;f=drivers/media/dvb/frontend
 s/stb6100.c;h=bc1a8af4f6e105181670ee33ebe111f98425e0ff;hb=HEAD

 See below for the code removed from the stb6100.c file (the
 stb6100_set_frequency function) and the code added (the previous
 stb6100_set_frequency function and the stb6100_write_regs function).

 Best regards,
 Sebastien.

Reported back in may
[http://www.mail-archive.com/linux-media@vger.kernel.org/msg31334.html]
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] vtunerc - virtual DVB device driver

2011-06-21 Thread Issa Gorissen
I hope this driver will be included if it can be useful for some and if
it follows the GPL rules.

But really, +1 to Sebastien's comment - this project is a frustrating
one it seems. And at the point where I am, I would rather pay for a
working driver for a S2 + CI card, instead of trying to debug existing
drivers for which the maintainers are virtually non existent.

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


Re: Fwd: [PATCH] ngene: blocking and nonblocking io for sec0

2011-06-21 Thread Issa Gorissen
Haven't fully understood the usage of wake_event_interruptible, now I have read 
its description. Sorry for the lame patch.

Please find a fixed version below.


Patch allows for blocking or nonblocking io on the ngene sec0 device.
It also enforces one reader and one writer at a time.

Signed-off-by: Issa Gorissen flo...@usa.net
--

--- a/linux/drivers/media/dvb/ngene/ngene-dvb.c 2011-05-10 19:11:21.0 
+0200
+++ b/linux/drivers/media/dvb/ngene/ngene-dvb.c 2011-06-21 23:46:09.0 
+0200
@@ -53,15 +53,30 @@ static ssize_t ts_write(struct file *fil
struct dvb_device *dvbdev = file-private_data;
struct ngene_channel *chan = dvbdev-priv;
struct ngene *dev = chan-dev;
+   int avail = 0;
+   char nonblock = file-f_flags  O_NONBLOCK;
 
-   if (wait_event_interruptible(dev-tsout_rbuf.queue,
-dvb_ringbuffer_free
-(dev-tsout_rbuf) = count)  0)
+   if (!count)
return 0;
 
-   dvb_ringbuffer_write(dev-tsout_rbuf, buf, count);
+   if (nonblock) {
+   avail = dvb_ringbuffer_free(dev-tsout_rbuf);
+   if (!avail)
+   return -EAGAIN;
+   if (count  avail)
+   avail = count;
+   } else {
+   if (wait_event_interruptible(dev-tsout_rbuf.queue,
+dvb_ringbuffer_free
+(dev-tsout_rbuf) = count)  0)
+   return -EINTR;
+
+   avail = count;
+   }
+
+   dvb_ringbuffer_write(dev-tsout_rbuf, buf, avail);
+   return avail;
 
-   return count;
 }
 
 static ssize_t ts_read(struct file *file, char *buf,
@@ -70,22 +85,29 @@ static ssize_t ts_read(struct file *file
struct dvb_device *dvbdev = file-private_data;
struct ngene_channel *chan = dvbdev-priv;
struct ngene *dev = chan-dev;
-   int left, avail;
+   int avail = 0;
+   char nonblock = file-f_flags  O_NONBLOCK;
 
-   left = count;
-   while (left) {
-   if (wait_event_interruptible(
-   dev-tsin_rbuf.queue,
-   dvb_ringbuffer_avail(dev-tsin_rbuf)  0)  0)
-   return -EAGAIN;
+   if (!count)
+   return 0;
+
+   if (nonblock) {
avail = dvb_ringbuffer_avail(dev-tsin_rbuf);
-   if (avail  left)
-   avail = left;
-   dvb_ringbuffer_read_user(dev-tsin_rbuf, buf, avail);
-   left -= avail;
-   buf += avail;
+   if (!avail)
+   return -EAGAIN;
+   if (avail  count)
+   avail = count;
+   } else {
+   if (wait_event_interruptible(dev-tsin_rbuf.queue,
+dvb_ringbuffer_avail
+(dev-tsin_rbuf) = count)  0)
+   return -EINTR;
+
+   avail = count;
}
-   return count;
+
+   dvb_ringbuffer_read_user(dev-tsin_rbuf, buf, avail);
+   return avail;
 }
 
 static const struct file_operations ci_fops = {
@@ -98,9 +120,9 @@ static const struct file_operations ci_f
 
 struct dvb_device ngene_dvbdev_ci = {
.priv= 0,
-   .readers = -1,
-   .writers = -1,
-   .users   = -1,
+   .readers = 1,
+   .writers = 1,
+   .users   = 2,
.fops= ci_fops,
 };
 


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


Re: dvb_ca adaptor 0: PC card did not respond :( with Technotrend S2-3200

2011-06-14 Thread Issa Gorissen
On 13/06/2011 00:30, Bart Coninckx wrote:
 Hi all,


 hope you can help me this one, because there's not a whole of info
 about similar problems to be found.

 I have a Technotrend S2-3200 with CI and on three different distros I
 get this

 dvb_ca adaptor 0: PC card did not respond :(


 in /var/log/messages.

Hi Bart,

I've got the same card running under OpenSuse 11.4 and Mythtv 0.24.1

I also have the same warning message, but somehow, when Mythtv grabs the
device, the CAM will be reset successfully (at least, in my case).

In the past, I solved this annoyance by adding a sleep in the CAM init
code [1] relevant to the S2-3200 until I found out Mythtv does something
about it.

[1] drivers/media/dvb/dvb-core/dvb_ca_en50221.c in function
dvb_ca_en50221_thread(void) add a sleep of 5 or 10 secs between the 1st
dprintk and the main loop.

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


Re: dvb_ca adaptor 0: PC card did not respond :( with Technotrend S2-3200

2011-06-14 Thread Issa Gorissen
On 14/06/2011 12:48, Bart Coninckx wrote:

 I will try your suggestion though. Off topic, but would you advice
 11.4 in favor of 11.3? As a secondary route, I was thinking about
 using sasc-ng (softcamming, legal in this case) and the code seems not
 to want to compile on 11.4. Also 11.4 broke after updating the kernel.

Except from the different kernel version, you can go for 11.3, as far as
you're concerned only by TV related stuff.

You might want to recompile the kernel with a newer version to get all
the patches related to the S2 3200.

Also, do not hesitate to try out different versions of the kernel if you
stumble upon problem with the S2 3200; I had some trouble with it and
some recent patches do not suit my setup (dish, cable length, diseqc
switch, etc ...)

For the sasc-ng matter, I did play with it last year but figured it is a
time black hole when it does not work. I guess you have a legal
subscription card. Then unless you like to play around, just drop
softcams. And CAMs are not that expensive.

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


Re: [DVB] In research of chip's datasheets

2011-05-20 Thread Issa Gorissen
On 20/05/2011 18:01, Sébastien RAILLARD (COEXSI) wrote:
 I'm in research of datasheets of the following chips:
 - tuner STV6110A from ST
 - dual demodulator STV0900B from ST
 - CI interface CXD2099AR from SONY

Hi Sebastien,

If you're targeting the ngene based cards, I think you will also need
the spec for the ngene chip and my guess is that it has been programmed
(not generic like the 3 other chips). So as Ralph is already in contact
with digital devices, I wonder if you will get this information.

For the cxd2099ar, talk to sony europe CXD2099_supporteu./sony/.com

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


Re: [libdvben50221] [PATCH] Assign same resource_id in open_session_response when resource non-existent

2011-05-19 Thread Issa Gorissen
On 19/05/11 23:01, Sébastien RAILLARD (COEXSI) wrote:

 Yes, of course, but I don't find information that can help me to provide the
 correct format.
 Is-there a documentation somewhere that explains how patches must be
 formatted to be correctly tracked?

This should help
[http://www.linuxtv.org/wiki/index.php/Development:_How_to_submit_patches]
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ngene CI problems

2011-05-12 Thread Issa Gorissen
On 11/05/2011 20:59, Oliver Endriss wrote:
 I reworked the driver to strip those null packets. Please try
 http://linuxtv.org/hg/~endriss/ngene-octopus-test/raw-rev/f0dc4237ad08

 CU
 Oliver
Great!

Will give it a try tonight and report.

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


[PATCH] ngene: blocking and nonblocking io for sec0

2011-05-12 Thread Issa Gorissen
Patch allows for blocking or nonblocking io on the ngene sec0 device.
It also enforces one reader and one writer at a time.

Signed-off-by: Issa Gorissen flo...@usa.net
--

--- a/linux/drivers/media/dvb/ngene/ngene-dvb.c 2011-05-10 19:11:21.0 
+0200
+++ b/linux/drivers/media/dvb/ngene/ngene-dvb.c 2011-05-12 15:28:53.573185365 
+0200
@@ -53,15 +53,29 @@ static ssize_t ts_write(struct file *fil
struct dvb_device *dvbdev = file-private_data;
struct ngene_channel *chan = dvbdev-priv;
struct ngene *dev = chan-dev;
+   int avail = 0;
+   char nonblock = file-f_flags  O_NONBLOCK;
 
-   if (wait_event_interruptible(dev-tsout_rbuf.queue,
-dvb_ringbuffer_free
-(dev-tsout_rbuf) = count)  0)
+   if (!count)
return 0;
 
-   dvb_ringbuffer_write(dev-tsout_rbuf, buf, count);
+   if (nonblock) {
+   avail = dvb_ringbuffer_avail(dev-tsout_rbuf);
+   if (!avail)
+   return -EAGAIN;
+   } else {
+   while (1) {
+   if (wait_event_interruptible(dev-tsout_rbuf.queue,
+dvb_ringbuffer_free
+(dev-tsout_rbuf) = 
count) = 0)
+   break;
+   }
+   avail = count;
+   }
+
+   dvb_ringbuffer_write(dev-tsout_rbuf, buf, avail);
+   return avail;
 
-   return count;
 }
 
 static ssize_t ts_read(struct file *file, char *buf,
@@ -70,22 +84,35 @@ static ssize_t ts_read(struct file *file
struct dvb_device *dvbdev = file-private_data;
struct ngene_channel *chan = dvbdev-priv;
struct ngene *dev = chan-dev;
-   int left, avail;
+   int avail = 0;
+   char nonblock = file-f_flags  O_NONBLOCK;
 
-   left = count;
-   while (left) {
-   if (wait_event_interruptible(
-   dev-tsin_rbuf.queue,
-   dvb_ringbuffer_avail(dev-tsin_rbuf)  0)  0)
-   return -EAGAIN;
+   if (!count)
+   return 0;
+
+   if (nonblock) {
avail = dvb_ringbuffer_avail(dev-tsin_rbuf);
-   if (avail  left)
-   avail = left;
-   dvb_ringbuffer_read_user(dev-tsin_rbuf, buf, avail);
-   left -= avail;
-   buf += avail;
+   } else {
+   while (!avail) {
+   if (wait_event_interruptible(
+   dev-tsin_rbuf.queue,
+   dvb_ringbuffer_avail(dev-tsin_rbuf)  0) 
 0)
+   continue;
+
+   avail = dvb_ringbuffer_avail(dev-tsin_rbuf);
+   }
}
-   return count;
+
+   if (avail  count)
+   avail = count;
+   if (avail  0)
+   dvb_ringbuffer_read_user(dev-tsin_rbuf, buf, avail);
+
+   if (!avail)
+   return -EAGAIN;
+   else
+   return avail;
+
 }
 
 static const struct file_operations ci_fops = {
@@ -98,9 +125,9 @@ static const struct file_operations ci_f
 
 struct dvb_device ngene_dvbdev_ci = {
.priv= 0,
-   .readers = -1,
-   .writers = -1,
-   .users   = -1,
+   .readers = 1,
+   .writers = 1,
+   .users   = 2,
.fops= ci_fops,
 };
 


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


Re: DVB nGene CI : TS Discontinuities issues

2011-05-12 Thread Issa Gorissen
On 11/05/11 15:12, Issa Gorissen wrote:
 From: Ralph Metzler r...@metzlerbros.de
 Issa Gorissen writes:
   Could you please take a look at the cxd2099 issues ?
   
   I have attached a version with my changes. I have tested a lot of
   different settings with the help of the chip datasheet.
   
   Scrambled programs are not handled correctly. I don't know if it is the
   TICLK/MCLKI which is too high or something, or the sync detector ? Also,
   as we have to set the TOCLK to max of 72MHz, there are way too much null
   packets added. Is there a way to solve this ?

 I do not have any cxd2099 issues.
 I have a simple test program which includes a 32bit counter as payload 
 and can pump data through the CI with full speed and have no packet
 loss. I only tested decoding with an ORF stream and an Alphacrypt CAM
 but also had no problems with this.

 Please take care not to write data faster than it is read. Starting two
 dds will not guarantee this. To be certain you could write a small
 program which never writes more packets than input buffer size minus
 the number of read packets (and minus the stuffing null packets on ngene).

 Before blaming packet loss on the CI data path also please make
 certain that you have no buffer overflows in the input part of 
 the sec device.
 In the ngene driver you can e.g. add a printk in tsin_exchange():

 if (dvb_ringbuffer_free(dev-tsin_rbuf)  len) {
 ...
 } else
 printk (buffer overflow \n);


 Regards,
 Ralph
Ralph,

Done some more tests, from by test tool, I found out that I have to skip
(rather often) bytes to find the sync one when reading from sec0. I
thought I only needed to do that at the start of the stream, not in the
middle; because I always read/write 188 bytes from it.

Could you share your test code ? I'm finding it difficult to interact
with this sec0 implementation.

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


dvb demux: isolating the pids related to a scrambled channel

2011-05-11 Thread Issa Gorissen
Hi,

To decramble a channel with a ngene based card, you either need to:

1) send the full ts to sec0;

2) send a filtered ts to sec0.

The latter case shall permit the descrambling of 2 channels transmitted from 2
different ts/tuners.

I'm interested in knowing how to do this: filter a ts so that I only keep the
needed pids for the cam.

Can anyone help ?

Thx
--
Issa

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


Re: DVB nGene CI : TS Discontinuities issues

2011-05-11 Thread Issa Gorissen
From: Ralph Metzler r...@metzlerbros.de
 Issa Gorissen writes:
   Could you please take a look at the cxd2099 issues ?
   
   I have attached a version with my changes. I have tested a lot of
   different settings with the help of the chip datasheet.
   
   Scrambled programs are not handled correctly. I don't know if it is the
   TICLK/MCLKI which is too high or something, or the sync detector ? Also,
   as we have to set the TOCLK to max of 72MHz, there are way too much null
   packets added. Is there a way to solve this ?
 
 I do not have any cxd2099 issues.
 I have a simple test program which includes a 32bit counter as payload 
 and can pump data through the CI with full speed and have no packet
 loss. I only tested decoding with an ORF stream and an Alphacrypt CAM
 but also had no problems with this.
 
 Please take care not to write data faster than it is read. Starting two
 dds will not guarantee this. To be certain you could write a small
 program which never writes more packets than input buffer size minus
 the number of read packets (and minus the stuffing null packets on ngene).
 
 Before blaming packet loss on the CI data path also please make
 certain that you have no buffer overflows in the input part of 
 the sec device.
 In the ngene driver you can e.g. add a printk in tsin_exchange():
 
 if (dvb_ringbuffer_free(dev-tsin_rbuf)  len) {
 ...
 } else
 printk (buffer overflow \n);
 
 
 Regards,
 Ralph


Ralph,

Please find my testing tool for the decryption attached. The idea is to write
5 packets and read them back from the CAM.

My input is a raw ts captured with a gnutv I modified with a demux filter of
0x2000. Gnutv outputs at dvr and dvbloop reads from it, process via sec0 and
writes output to a file.

The channel I selected has been decrypted. Only problem is I have artifacts in
the image and the sound.

Do you have any idea of what I should improve from my test tool to fix that
issue ?


Thx,
--
Issa

#include sys/types.h
#include sys/stat.h
#include fcntl.h
#include signal.h
#include stdlib.h
#include stdio.h
#include unistd.h
#include time.h

static void signal_handler(int _signal);
static int quit_app = 0;

int main(int argc, char *argv[])
{
	signal(SIGINT, signal_handler);

	if (argc = 3)
		exit(1);	

	int in_fd = open(argv[1], O_RDONLY);
	int out_fd = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
	int tsi_fd = open(argv[3], O_RDWR);

	int rlen = 0;
	int wlen = 0;
	int rtsilen = 0;
	int wtsilen = 0;

	int BUFFY = 188 * 5;
	unsigned char buf[BUFFY];
	struct timespec sl[1];
	sl[0].tv_nsec = 25;
	
	while (!quit_app)
	{
		// read from input (DVR or other)
		rlen = 0;
		while (rlen  BUFFY) {
			int i = read(in_fd, buf + rlen, BUFFY - rlen);
			if (!i) {
quit_app = 1;
continue;
			}
			rlen += i;
		}
		
		// write data to caio device
		wlen = write(tsi_fd, buf, rlen);
		if (wlen != rlen)
		{
			perror(Did not write same amount of data from input to caio!!!);
			exit(1);
		}/* else
			printf(written %d bytes in tsi\n, wlen);
	*/

		// read data from caio device - should be decrypted
		// finding sync byte
		do {
			buf[0] = 0;
			while (buf[0] != 0x47) {
rtsilen = read(tsi_fd, buf, 1);
			}
			
			if (buf[0] == 0x47) {
do {
	int i = read(tsi_fd, buf + rtsilen, 188 - rtsilen);
	rtsilen += i;
//	printf(reading %d bytes from tsi\n, i);
} while (rtsilen  188);

break;
			}
		} while (1);

//printf(sync byte found: %02x \n, buf[0]);

		wtsilen = 0;
		int nulls = 0;
		do {
			if (buf[0] == 0x47  buf[1] == 0x1F  buf[2] == 0xFF) {
++nulls;
if (nulls  100)
	break;

//printf(null packet );
// DVB null packet, discard
			} else {
//			printf(\nfrom tsi out: %x %x %x \n, buf[0], buf[1], buf[2]);
// write packet to output
int i = write(out_fd, buf, 188);
if (i  188) {
	perror(Did not write 188 bytes to output file!!!);
}
wtsilen += i;
			}

			if (rlen == wtsilen || quit_app)
break;

			rtsilen = 0;
			do {
rtsilen += read(tsi_fd, buf + rtsilen, 188 - rtsilen);
			} while (rtsilen  188);
		} while (1);
	}

	close(in_fd);
	close(out_fd);
	close(tsi_fd);

	exit(0);
}


static void signal_handler(int _signal)
{
	if (!quit_app)
	{
		quit_app = 1;
	}
}


Re: DVB nGene CI : TS Discontinuities issues

2011-05-09 Thread Issa Gorissen
On 09/05/11 09:04, Sébastien RAILLARD (COEXSI) wrote:
 I don't know if CAT needs to be in the stream passed through sec0 as
 Sebastien mentioned, so I modified gnutv to add it to dvr.

 Yes, the CAT table is mandatory, it must be sent to the CAM, as well as :
 * the EMM PID referenced in the CAT
 * all the private descriptors (binary blobs) in the PMT and, of course
 * the ECM PID referenced in the PMT

 Of course, the CAM must be initialized, all the necessary CAM resources must
 be initialized and a CA_PMT object must be sent through the CAM command
 channel to ask for unscrambling of needed channels.

 That why it's better to send directly the raw TS output of the demodulator
 directly in the CAM.
 And then doing the demux filtering stuff on the TS stream coming from the
 CAM (once unscrambled).

Thx Sebastien,

Will check this out with gnutv and report.

I think gnutv does all the init stuff you mentioned about the CAM. I
will check for the possibly missing PSI packets gnutv might exclude.

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


Re: [PATCH] Ngene cam device name

2011-05-08 Thread Issa Gorissen
On 08/05/11 11:53, Andreas Oberritter wrote:
 Hello Issa,

 On 05/06/2011 08:29 PM, Issa Gorissen wrote:
 From: Andreas Oberritter o...@linuxtv.org
 On 05/06/2011 03:47 PM, Issa Gorissen wrote:
 Also, it seems linux en50221 stack provides for the slot selection. So,
 why
 would you need two ca nodes ?
 Because it's the most obvious way to use it. And more importantly
 because the API sucks, if you have more than one device per node. You
 can have only one reader, one writer, one poll function per node. For
 example, you can't use one instance of mplayer to watch one channel with
 fe0+dmx0+ca0 and a second instance of mplayer to watch or record another
 channel with fe1+dmx1+ca0. You won't know which device has an event if
 you use poll. The API even allows mixing multiple CI slots and built-in
 descramblers in the same node. But try calling CA_RESET on a specific
 slot or on a descrambler. It won't work. It's broken by design.

 You need to write a userspace soft which will handle the concurrent access of
 your ca device...
 ... to gain what exactly over using two distinct nodes?

 How do you propose solving the problem with CA_RESET with a userspace soft?

Well, solving your problem of having two mplayer instances!

The CA_RESET ioctl will not reset one slot at a time obviously. But you
can do an interface reset via the control register, no ? In cases when
you remove/add a second/third/... module from one of the slot of a CI
device, then I guess the CA_RESET is broken because it will reset
everything... Have you got patches for that ?


 But for your given example, is there any card allowing you to do that (one ci
 slot, two tuners) ?
 You don't seem to have understood my example. I was explaining some
 drawbacks of having more than one CI slot, but only one node, answering
 your prior question.

 Besides that, it's highly probable that such a card exists. It wouldn't
 make much sense to hardwire CI slots to tuners, if multiple tuners exist
 on a board.

 Disregarding the term cards, there are variants of the Dreambox with
 1, 2 or 4 CI slots combined with 1 to 4 tuners.

 Regards,
 Andreas


I guess your point is valid, maybe the improvement you would like to see
will pop up when the need will be created...
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: DVB nGene CI : TS Discontinuities issues

2011-05-08 Thread Issa Gorissen
On 07/05/11 23:34, Ralph Metzler wrote:
 Before blaming packet loss on the CI data path also please make
 certain that you have no buffer overflows in the input part of 
 the sec device.
 In the ngene driver you can e.g. add a printk in tsin_exchange():

 if (dvb_ringbuffer_free(dev-tsin_rbuf)  len) {
 ...
 } else
 printk (buffer overflow \n);

Ralph,

void *tsin_exchange(void *priv, void *buf, u32 len, u32 clock, u32 flags)
{
struct ngene_channel *chan = priv;
struct ngene *dev = chan-dev;


if (flags  DF_SWAP32)
swap_buffer(buf, len);
if (dev-ci.en  chan-number == 2) {
if (dvb_ringbuffer_free(dev-tsin_rbuf)  len) {
dvb_ringbuffer_write(dev-tsin_rbuf, buf, len);
wake_up_interruptible(dev-tsin_rbuf.queue);
} else
printk (KERN_WARNING ngene transport interface:
tsin_exchange: buffer overflow \n);

return 0;
}
if (chan-users  0) {
dvb_dmx_swfilter(chan-demux, buf, len);
}
return NULL;
}



just prints the buffer overflow warning just after the module is loaded,
no other action made.
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: DVB nGene CI : TS Discontinuities issues

2011-05-08 Thread Issa Gorissen
On 07/05/11 23:34, Ralph Metzler wrote:
 I do not have any cxd2099 issues.
 I have a simple test program which includes a 32bit counter as payload 
 and can pump data through the CI with full speed and have no packet
 loss. I only tested decoding with an ORF stream and an Alphacrypt CAM
 but also had no problems with this.

 Please take care not to write data faster than it is read. Starting two
 dds will not guarantee this. To be certain you could write a small
 program which never writes more packets than input buffer size minus
 the number of read packets (and minus the stuffing null packets on ngene).

 Before blaming packet loss on the CI data path also please make
 certain that you have no buffer overflows in the input part of 
 the sec device.
 In the ngene driver you can e.g. add a printk in tsin_exchange():

 if (dvb_ringbuffer_free(dev-tsin_rbuf)  len) {
 ...
 } else
 printk (buffer overflow \n);


 Regards,
 Ralph

Ralph,

As mentioned earlier, the warning message in tsin_exchange() is somewhat
useless because it is printed endlessly at module start.

However, I've written the small test (attached) and took care to not
write more than read (not taking account of null packets).

I still cannot descrambled channels. I'm using the source from 2.6.39 rc
5 with the fix from Oliver
[http://linuxtv.org/hg/~endriss/v4l-dvb/rev/3d3e6ec2d0a7].  I launched
gnutv with output to dvr, and launched my tool to read from dvr,
write/read from sec0, write to a file.

The end result is a file which is clean of null packets, but cannot be
played by mplayer (no audio, or no video, or both...)

I don't know if CAT needs to be in the stream passed through sec0 as
Sebastien mentioned, so I modified gnutv to add it to dvr.

Sebastien, Martin, could you try Ralph suggestion and post results as
well. Thx.


Please also find an update of ngene-dvb.c, the sec device now handles
blocking/non blocking access.

--
Issa
#include sys/types.h
#include sys/stat.h
#include fcntl.h
#include signal.h
#include stdlib.h
#include stdio.h
#include unistd.h
#include time.h

static void signal_handler(int _signal);
static int quit_app = 0;

int main(int argc, char *argv[])
{
	signal(SIGINT, signal_handler);

	if (argc = 3)
		exit(1);	

	int in_fd = open(argv[1], O_RDONLY);
	int out_fd = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR);
	int tsi_fd = open(argv[3], O_RDWR);

	int rlen = 0;
	int wlen = 0;
	int rtsilen = 0;
	int wtsilen = 0;

	int BUFFY = 188 * 20;
	unsigned char buf[BUFFY];
	struct timespec sl[1];
	sl[0].tv_nsec = 25;
	
	while (!quit_app)
	{
		// read from input (DVR or other)
		rlen = read(in_fd, buf, BUFFY);
		if (rlen  0)
		{
			// write data to caio device
			wlen = write(tsi_fd, buf, rlen);
			if (wlen != rlen)
			{
perror(Did not write same amount of data from input to caio!!!);
exit(1);
			}/* else
printf(written %d bytes in tsi\n, wlen);
	*/	}

		if (rlen  BUFFY)
		{
			nanosleep(sl, NULL);
		}

		if (rlen  188)
			continue;


		// read data from caio device - should be decrypted
		// finding sync byte
		do {
			rtsilen = read(tsi_fd, buf, 1);
		//	printf(reading one byte: %02x from tsi\n, buf[0]);
			if (rtsilen  (buf[0] == 0x47)) {
do {
	int i = read(tsi_fd, buf + rtsilen, 188 - rtsilen);
	rtsilen += i;
		//			printf(reading %d bytes from tsi\n, i);
} while (rtsilen  188);

break;
			}
		} while (1);

//printf(sync byte found: %02x \n, buf[0]);

		wtsilen = 0;
		do {
//			printf(from tsi out: %x %x %x \n, buf[0], buf[1], buf[2]);
			if (buf[0] == 0x47  buf[1] == 0x1F  buf[2] == 0xFF) {
// DVB null packet, discard
			} else {
// write packet to output
wtsilen += write(out_fd, buf, 188);
			}

			if (rlen == wtsilen)
break;

			rtsilen = 0;
			do {
rtsilen += read(tsi_fd, buf + rtsilen, 188 - rtsilen);
			} while (rtsilen  188);
		} while (1);
	}

	close(in_fd);
	close(out_fd);
	close(tsi_fd);

	exit(0);
}


static void signal_handler(int _signal)
{
	if (!quit_app)
	{
		quit_app = 1;
	}
}
/*
 * ngene-dvb.c: nGene PCIe bridge driver - DVB functions
 *
 * Copyright (C) 2005-2007 Micronas
 *
 * Copyright (C) 2008-2009 Ralph Metzler r...@metzlerbros.de
 * Modifications for new nGene firmware,
 * support for EEPROM-copying,
 * support for new dual DVB-S2 card prototype
 *
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * version 2 only, as published by the Free Software Foundation.
 *
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 

Re: DVB nGene CI : TS Discontinuities issues

2011-05-07 Thread Issa Gorissen
On 03/05/11 12:59, Sébastien RAILLARD (COEXSI) wrote:
 Dear all,

 I'm doing some tests with the CI interface of the Linux4Media cineS2 DVB-S2
 Twin Tuner (v5) card.
 I notice some TS discontinuities during my tests.

 My setup:
 - Aston Viaccess Pro CAM
 - Linux4Media cineS2 DVB-S2 Twin Tuner (v5) card
 - Latest git media_build source with DF_SWAP32 patch
 - DVB-S source from ASTRA 19.2E / 12285.00-V-27500

 Test #1: (idle)
 Reading from sec0 (without CI init or sec0 input stream) using dd give me
 a stream of NULL TS packets of roughly 62mbps or 7.8MB/s (seems normal
 behavior)
 Command line: dd if=/dev/dvb/adapter14/sec0 of=/root/test.ts bs=18800
 count=1

 Test #2: (CAM removal)
 After CAM initialization and some tests, if CAM is removed, the output sec0
 bandwidth isn't anymore 62mbps of NULL TS packets
 Same command line as Test #1 is used.
 It seems that the CI is badly reacting after hot remove of CAM.
 After rebooting, everything is fine again.

 Test #3: (Test dvr0 stream)
 - Setting up the DVB-S reception: gnutv -adapter 14 -channels channels.conf
 -out dvr CHAINE
 - Channel configuration: CHAINE:12285:v:0:27500:170:120:17030
 - Dumping the dvr0 output: dd if=/dev/dvb/adapter14/dvr0 of=/root/test.ts
 bs=1880 count=1000
 = The dvr0 output bandwidth is roughly 300kB/s (normal for one filtered
 channel)
 = The resulting TS file is correct (no sync missing, no continuity error)

 Test #4: (Loop mode - No CAM inserted)
 - Sending all TS packets from dvr0 to sec0: dd if=/dev/dvb/adapter14/dvr0
 of=/dev/dvb/adapter14/sec0 bs=1880
 - Setting up the DVB-S reception: gnutv -adapter 14 -channels channels.conf
 -out dvr CHAINE
 - Channel configuration: CHAINE:12285:v:0:27500:170:120:17030
 - Dumping the sec0 output: dd if=/dev/dvb/adapter14/sec0 of=/root/test.ts
 bs=18800 count=1
 = The sec0 output bandwidth is roughly 7.8MB/s (normal as the CI output is
 always 62mbps)
 = The resulting TS file is filled at 96% by NULL TS packets (normal,
 regarding the input stream bandwidth of 300kB/S)
 = All the input PID seem to present in the output file
 = But, there are some discontinuities in the TS packets (a lot and for all
 the PID)

 Test #5: (Trough CAM - CAM is inserted)
 - Sending all TS packets from dvr0 to sec0: dd if=/dev/dvb/adapter14/dvr0
 of=/dev/dvb/adapter14/sec0 bs=1880
 - Setting up the DVB-S reception: gnutv -adapter 14 -channels channels.conf
 -out dvr CHAINE
 - Channel configuration: CHAINE:12285:v:0:27500:170:120:17030
 - Waiting for CAM initialization (the CAM is correctly initialized and the
 PMT packet is send to the CAM)
 - Dumping the sec0 output: dd if=/dev/dvb/adapter14/sec0 of=/root/test.ts
 bs=18800 count=1
 = The sec0 output bandwidth is roughly 7.8MB/s (normal as the CI output is
 always 62mbps)
 = The resulting TS file is filled at 96% by NULL TS packets (normal,
 regarding the input stream bandwidth of 300kB/S)
 = All the input PID seem to present in the output file
 = The stream isn't decoded (normal as the CAT table isn't outputted by
 gnutv)
 = But, there are some discontinuities in the TS packets (a lot and for all
 the PID)

 So, in summary, I'm observing discontinues when stream is going through the
 sec0 device, if CAM is present or not.
 Also, the CI adapter doesn't seem to react correctly when the CAM is hot
 removed.
 I can provide the TS files (from dvr0, from sec0 with CAM and without CAM)
 if someone is interested.

 Does someone has a setup that show no discontinuities when a TS stream is
 going through sec0? (with an input TS file)
 I would like to test it as for me the CI interface doesn't seem to work for
 the nGene cards.

 Best regards,
 Sebastien.
Ralph,

Could you please take a look at the cxd2099 issues ?

I have attached a version with my changes. I have tested a lot of
different settings with the help of the chip datasheet.

Scrambled programs are not handled correctly. I don't know if it is the
TICLK/MCLKI which is too high or something, or the sync detector ? Also,
as we have to set the TOCLK to max of 72MHz, there are way too much null
packets added. Is there a way to solve this ?

Thx
--
Issa
/*
 * cxd2099.c: Driver for the CXD2099AR Common Interface Controller
 *
 * Copyright (C) 2010 DigitalDevices UG
 *
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * version 2 only, as published by the Free Software Foundation.
 *
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 * 02110-1301, USA
 * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
 */

#include 

Re: [PATCH] Ngene cam device name

2011-05-06 Thread Issa Gorissen
From: Andreas Oberritter o...@linuxtv.org
  The best would be to create independent adapters for each independent CA
  device (ca0/caio0 pair) - they are independent after all (physically and
  in the way they're used).
 
 Physically, it's a general purpose TS I/O interface of the nGene
 chipset. It just happens to be connected to a CI slot. On another board,
 it might be connected to a modulator or just to some kind of socket.
 
 If the next version gets a connector for two switchable CI modules, then
 the physical independence is gone. You'd have two ca nodes but only one
 caio node. Or two caio nodes, that can't be used concurrently.
 
 Maybe the next version gets the ability to directly connect the TS input
 from the frontend to the TS output to the CI slot to save copying around
 the data, by using some kind of pin mux. Not physically independent either.
 
 It just looks physically independent in the one configuration
 implemented now.


When I read the cxd2099ar datasheet, I can see that in dual slot
configuration, there is still one communication channel for the TS and one for
the control.
Also, it seems linux en50221 stack provides for the slot selection. So, why
would you need two ca nodes ?

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


Re: [PATCH] Ngene cam device name

2011-05-06 Thread Issa Gorissen
From: Andreas Oberritter o...@linuxtv.org
 On 05/06/2011 03:47 PM, Issa Gorissen wrote:
  From: Andreas Oberritter o...@linuxtv.org
  The best would be to create independent adapters for each independent
CA
  device (ca0/caio0 pair) - they are independent after all (physically
and
  in the way they're used).
 
  Physically, it's a general purpose TS I/O interface of the nGene
  chipset. It just happens to be connected to a CI slot. On another board,
  it might be connected to a modulator or just to some kind of socket.
 
  If the next version gets a connector for two switchable CI modules, then
  the physical independence is gone. You'd have two ca nodes but only one
  caio node. Or two caio nodes, that can't be used concurrently.
 
  Maybe the next version gets the ability to directly connect the TS input
  from the frontend to the TS output to the CI slot to save copying around
  the data, by using some kind of pin mux. Not physically independent
either.
 
  It just looks physically independent in the one configuration
  implemented now.
  
  
  When I read the cxd2099ar datasheet, I can see that in dual slot
  configuration, there is still one communication channel for the TS and one
for
  the control.
 
 It doesn't matter how the cxd2099ar works, because I'm talking about the
 nGene chipset in place of any chipset having at least two TS inputs and
 one TS output.


Don't know the ngene bridge enough to comment on this.


 
 Btw., I don't think the cxd2099 driver has any obvious problems. It's
 the nGene driver that registers the sec/caio interface.
 
  Also, it seems linux en50221 stack provides for the slot selection. So,
why
  would you need two ca nodes ?
 
 Because it's the most obvious way to use it. And more importantly
 because the API sucks, if you have more than one device per node. You
 can have only one reader, one writer, one poll function per node. For
 example, you can't use one instance of mplayer to watch one channel with
 fe0+dmx0+ca0 and a second instance of mplayer to watch or record another
 channel with fe1+dmx1+ca0. You won't know which device has an event if
 you use poll. The API even allows mixing multiple CI slots and built-in
 descramblers in the same node. But try calling CA_RESET on a specific
 slot or on a descrambler. It won't work. It's broken by design.


You need to write a userspace soft which will handle the concurrent access of
your ca device...

But for your given example, is there any card allowing you to do that (one ci
slot, two tuners) ?

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


Re: [PATCH] Ngene cam device name

2011-05-04 Thread Issa Gorissen
From: Andreas Oberritter o...@linuxtv.org
 Also, there's still no mapping between ca and caio devices. Imagine a
 built-in descrambler ca0 and two CI slots ca1 and ca2.
 
 ca0 won't get a caio device, at least for now.
 ca1 and ca2 might or might not have a caio device.
 
 If there is caio0, how am I supposed to know that it's related to ca1 or
 ca2 (or ca0, if someone implements a caio device to bypass the software
 demux to use a built-in descrambler)? You must not assume that there are
 either none or two (or three) caio interfaces. You need to be able to
 detect (or set up) the connection between the interfaces. Otherwise this
 API will be a mess.
 
 Regards,
 Andreas


To my understanding, in such a described case, 

- ca0 would be reached from /dev/dvb/adapter0/ca0
- ca[12], depending on if they are connected to the same physical adapter
(PCI, USB, ...), would be reached from /dev/dvb/adapter1/ca[12] or
/dev/dvb/adapter1/ca1 and /dev/dvb/adapter2/ca2 and there respective caio
devices.

- If the 3 ca devices are on the same adapter, then the driver writer should
take care of the order of the mapping so that ca1 always map caio1 and
ca2/caio2, ...; and if this is not feasable, then the driver writer should
span the ca/caio devices on different /dev/dvb/adapter folders.

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


Re: [PATCH] Ngene cam device name

2011-05-04 Thread Issa Gorissen
From: Andreas Oberritter o...@linuxtv.org
 
 Of course I'm referring to devices connected to the same physical
 adapter. Otherwise they would all be called ca0. Device enumeration
 always starts at 0, for each adapter. What you're describing just
 doesn't make sense.


Yes indeed you're right, I answered too quickly.


 Last but not least, using a different adapter number wouldn't fit
 either, because a DVB adapter is supposed to
 - be one independent piece of hardware
 - provide at least a frontend and a demux device


How would you support device like the Hauppauge WinTV-CI ? This one comes on a
USB port and does not provide any frontend and demux device.


 
 At least on embedded devices, it simply isn't feasible to copy a TS to
 userspace from a demux, just to copy it back to the kernel and again
 back to userspace through a caio device, when live streaming. But you
 may want to provide a way to use the caio device for
 offline-descrambling. Unless you want to force users to buy multiple
 modules and multiple subscriptions for a single receiver, which in turn
 would need multiple CI slots, you need a way to make sure caio can not
 be used during live streaming. If this dependency is between different
 adapters, then something is really, really wrong.


With the transmitted keys changed frequently (at least for viaccess), what's
the point in supporting offline descrambling when it will not work reliably
for all ?

As for descrambling multiple tv channels from different transponders with only
one cam, this is already possible. An example is what Digital Devices calls
MTD (Multi Transponder Decrypting). But this is CAM dependent, some do not
support it.

Question is, where does this belong ? kernel or userspace ?


 
 Why don't you just create a new device, e.g. ciX, deprecate the use of
 caX for CI devices, inherit CI-related existing ioctls from the CA API,
 translate the existing read and write funtions to ioctls and then use
 read and write for TS I/O? IIRC, Ralph suggested something similar. I'm
 pretty sure this can be done without too much code and in a backwards
 compatible way.


I'm open to this idea, but is there a consensus on this big API change ?
(deprecating ca device) If yes, I will try to prepare something.

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


Re: [PATCH] Ngene cam device name

2011-05-04 Thread Issa Gorissen
From: Mauro Carvalho Chehab mche...@redhat.com
 
 It is not that simple. The question is not just how to name the interface, 
 but that such interface will work on a different way than the current 
 ca interface.
 
 In other words, the DVB API should clearly explain why this
 interface is different, when it should be used and how.
 
 Cheers,
 Mauro.
 

Ok, please give me the location of the DVB API. Could not find it under the
linux/Documentation folder.

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


Re: TT-budget S2-3200 cannot tune on HB13E DVBS2 transponder

2011-05-04 Thread Issa Gorissen
From: Lutz Sammer john...@gmx.net
 On 05/04/11 01:16, Mauro Carvalho Chehab wrote:
  Em 13-04-2011 21:05, Lutz Sammer escreveu:
  On 05/04/11 21:07, Steffen Barszus wrote:
  On Tue, 05 Apr 2011 13:00:14 +0200
  Issa Gorissen flop.m@xxx wrote:
 
  Hi,
 
  Eutelsat made a recent migration from DVB-S to DVB-S2 (since
  31/3/2011) on two transponders on HB13E
 
  - HOT BIRD 6 13° Est TP 159 Freq 11,681 Ghz DVB-S2 FEC 3/4 27500
  Msymb/s 0.2 Pilot off Polar H
 
  - HOT BIRD 9 13° Est TP 99 Freq 12,692 Ghz DVB-S2 FEC 3/4 27500
  Msymb/s 0.2 Pilot off Polar H
 
 
  Before those changes, with my TT S2 3200, I was able to watch TV on
  those transponders. Now, I cannot even tune on those transponders. I
  have tried with scan-s2 and w_scan and the latest drivers from git.
  They both find the transponders but cannot tune onto it.
 
  Something noteworthy is that my other card, a DuoFlex S2 can tune
  fine on those transponders.
 
  My question is; can someone try this as well with a TT S2 3200 and
  post the results ?
  i read something about it lately here (german!): 
 
http://www.vdr-portal.de/board16-video-disk-recorder/board85-hdtv-dvb-s2/p977938-stb0899-fec-3-4-tester-gesucht/#post977938
 
  It says in stb0899_drv.c function:
  static void stb0899_set_iterations(struct stb0899_state *state) 
 
  This:
  reg = STB0899_READ_S2REG(STB0899_S2DEMOD, MAX_ITER);
  STB0899_SETFIELD_VAL(MAX_ITERATIONS, reg, iter_scale);
  stb0899_write_s2reg(state, STB0899_S2DEMOD, STB0899_BASE_MAX_ITER,
STB0899_OFF0_MAX_ITER, reg);
 
  should be replaced with this:
 
  reg = STB0899_READ_S2REG(STB0899_S2FEC, MAX_ITER);
  STB0899_SETFIELD_VAL(MAX_ITERATIONS, reg, iter_scale);
  stb0899_write_s2reg(state, STB0899_S2FEC, STB0899_BASE_MAX_ITER,
STB0899_OFF0_MAX_ITER, reg);
 
  Basically replace STB0899_S2DEMOD with STB0899_S2FEC in this 2 lines
  affected.
 
  Kind Regards 
 
  Steffen
  Hi Steffen,
 
  Unfortunately, it does not help in my case. Thx anyway.
 
  Try my locking fix. With above patch I can lock the
  channels without problem.
  
  Can someone confirm that such patch would fix the issue? If so, please
  forward it in a way that it could be applied (patch is currently
line-wrapped),
  and submit with some comments/description and your SOB.
  
  As the patch is currently broken, I'm just marking it as rejected at
patchwork.
  
  Manu,
  
  Please take a look on this trouble report.
  
 
 Sorry, the things are mixed here. My patch (resend and hopefully this
 time not broken) handles only DVB-S transponders.
 
 The FEC fix patch fixed locking on 11,681 Ghz, but not on 12,692 Ghz for
 me.  But I have very weak receiption,
 
 Johns

Thank you Johns,

I got out of patience and reverted back to kernel 2.6.37. Added an amplifier
on the line and repositionned my dish. It works now. But very difficult to get
both Hotbird 6 and 9 sats! Maybe they transmit a weak signal ???

--
Issa

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


Re: [PATCH] Ngene cam device name

2011-05-04 Thread Issa Gorissen
From: Andreas Oberritter o...@linuxtv.org
  Last but not least, using a different adapter number wouldn't fit
  either, because a DVB adapter is supposed to
  - be one independent piece of hardware
  - provide at least a frontend and a demux device
  
  
  How would you support device like the Hauppauge WinTV-CI ? This one comes
on a
  USB port and does not provide any frontend and demux device.
 
 Yes, as an exception, this device indeed wouldn't have a frontend,
 because it doesn't exist physycally.
 
 It wouldn't have multiple adapters numbers either.


What do you mean by they shouldn't have mulitple adapters numbers ? Multiple
WinTV-CI devices should have distinct node parents, ie
/dev/dvb/adapter[01]/node



  With the transmitted keys changed frequently (at least for viaccess),
what's
  the point in supporting offline descrambling when it will not work
reliably
  for all ?
 
 The reliability of offline descrambling depends on the network operators
 policy. So while it won't be useful for everybody in the world, it might
 well be useful to all customers of certain operators.
 
  As for descrambling multiple tv channels from different transponders with
only
  one cam, this is already possible. An example is what Digital Devices
calls
  MTD (Multi Transponder Decrypting). But this is CAM dependent, some do
not
  support it.
 
 What's the point if it doesn't work reliably for everybody? ;-)


Well, isn't it easier to change a CAM than an operator ? For many of us in
France/Belgium, you might even have no choice at all for the operator.


  Why don't you just create a new device, e.g. ciX, deprecate the use of
  caX for CI devices, inherit CI-related existing ioctls from the CA API,
  translate the existing read and write funtions to ioctls and then use
  read and write for TS I/O? IIRC, Ralph suggested something similar. I'm
  pretty sure this can be done without too much code and in a backwards
  compatible way.
  
  
  I'm open to this idea, but is there a consensus on this big API change ?
  (deprecating ca device) If yes, I will try to prepare something.
 
 The existing API could be copied to linux/dvb/ci.h and then simplified
 and reviewed.
 

As I said, if you can create a consensus behind your idea, then I will try to
prepare something.

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


Re: [PATCH] Ngene cam device name

2011-05-04 Thread Issa Gorissen
From: Andreas Oberritter o...@linuxtv.org
 
 I don't think this is going to happen, as nobody really seems to care
 (me included). I was just pointing out ways that I consider more likely
 to succeed.
 
 Regards,
 Andreas


If you don't care, why fueling all this fuss ???


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


Re: [PATCH] Ngene cam device name

2011-04-24 Thread Issa Gorissen
On 28/03/11 23:40, Mauro Carvalho Chehab wrote:
 Em 27-03-2011 21:44, Ralph Metzler escreveu:
 Hi,

 since I just saw cxd2099 appear in staging in the latest git kernel, a
 simple question which has been pointed out to me before:

 Why is cxd2099.c in staging regarding the device name question?
 It has nothing to do with the naming.
 It is not just because of naming. A NACK was given to it, as is, at:

 http://www.spinics.net/lists/linux-media/msg28004.html

 A previous discussion about this subject were started at:
   http://www.mail-archive.com/linux-media@vger.kernel.org/msg22196.html

 The point is that an interface meant to be used by satellite were
 used as a ci interface, due to the lack of handling independent CA devices.

 As there were no final decision about a proper way to address it, Oliver
 decided to keep it as-is, and I decided to move it to staging while we
 don't properly address the question, extending the DVB API in order to
support
 independent CA devs.

 Having the driver at staging allow us to rework at the API and change the
 driver when API changes are done, without needing to pass through kernel 
 process of deprecating old API stuff.

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

Hello all,

Here is the patch for the NGene card family and the new caio device.
Can cxd2099 be removed from staging as this patch fixes the raised issue.

Signed-off-by: Issa Gorissen flo...@usa.net
---
 drivers/media/dvb/dvb-core/dvbdev.c  |2 +-
 drivers/media/dvb/dvb-core/dvbdev.h  |1 +
 drivers/media/dvb/ngene/ngene-core.c |2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/media/dvb/dvb-core/dvbdev.c
b/drivers/media/dvb/dvb-core/dvbdev.c
index f732877..7a64b81 100644
--- a/drivers/media/dvb/dvb-core/dvbdev.c
+++ b/drivers/media/dvb/dvb-core/dvbdev.c
@@ -47,7 +47,7 @@ static DEFINE_MUTEX(dvbdev_register_lock);
 
 static const char * const dnames[] = {
video, audio, sec, frontend, demux, dvr, ca,
-   net, osd
+   net, osd, caio
 };
 
 #ifdef CONFIG_DVB_DYNAMIC_MINORS
diff --git a/drivers/media/dvb/dvb-core/dvbdev.h
b/drivers/media/dvb/dvb-core/dvbdev.h
index fcc6ae9..c63c70d 100644
--- a/drivers/media/dvb/dvb-core/dvbdev.h
+++ b/drivers/media/dvb/dvb-core/dvbdev.h
@@ -47,6 +47,7 @@
 #define DVB_DEVICE_CA 6
 #define DVB_DEVICE_NET7
 #define DVB_DEVICE_OSD8
+#define DVB_DEVICE_CAIO   9
 
 #define DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr) \
static short adapter_nr[] = \
diff --git a/drivers/media/dvb/ngene/ngene-core.c
b/drivers/media/dvb/ngene/ngene-core.c
index 175a0f6..17cdd38 100644
--- a/drivers/media/dvb/ngene/ngene-core.c
+++ b/drivers/media/dvb/ngene/ngene-core.c
@@ -1523,7 +1523,7 @@ static int init_channel(struct ngene_channel *chan)
set_transfer(chan-dev-channel[2], 1);
dvb_register_device(adapter, chan-ci_dev,
ngene_dvbdev_ci, (void *) chan,
-   DVB_DEVICE_SEC);
+   DVB_DEVICE_CAIO);
if (!chan-ci_dev)
goto err;
}

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


Re: stb0899/stb6100 tuning problems

2011-04-24 Thread Issa Gorissen
On 24/04/11 09:44, Steffen Barszus wrote:
 On Sat, 23 Apr 2011 22:55:27 +0200
 Issa Gorissen flo...@usa.net wrote:

 Hi,

 Running kernel 2.6.39rc4. I've got trouble with tuning some
 transponders on Hotbird 13°E with a TT S2-3200.
 The transponders have been emitting DVB-S until end of march when they
 now emit DVB-S2 signals. They are:
 - 11681.00H 27500 3/4 8psk nid:319 tid:15900 on Hotbird 6
 - 12692.00H 27500 3/4 8psk nid:319 tid:9900 on Hotbird 9


 [1] https://patchwork.kernel.org/patch/244201/
 [2]
 http://www.mail-archive.com/linuxtv-commits@linuxtv.org/msg09214.html

 1) Patch [2] is merged into kernel 2.6.39rc4. Using scan-s2, I get no
 service available.

 2) I applied patch [1] and still could not get any service with
 scan-s2 from those transponders.

 3) I *reverted* patch[2] and now scan-s2 returns partial results.
 scan-s2 can tune onto the transponder on Hotbird 6 really quick and
 gives back the full services list.
 But I have to run scan-s2 with scan iterations count set to as high as
 100 to be able to get results from the transponder on Hotbird 9.

 When those transponders were emitting in DVB-S, I had no problem at
 all.

 Can someone try the same thing on those transponders and report
 please ?
 As mentioned before, try to use [1] + [2] + following patch. I would
 expect this to be working. Please confirm. 

 --- a/linux/drivers/media/dvb/frontends/stb0899_drv.c   2011-02-26 
 06:44:11.0 +
 +++ b/linux/drivers/media/dvb/frontends/stb0899_drv.c   2011-04-24 
 07:39:06.0 +
 @@ -1426,9 +1426,9 @@ static void stb0899_set_iterations(struc
 if (iter_scale  config-ldpc_max_iter)
 iter_scale = config-ldpc_max_iter;

 -   reg = STB0899_READ_S2REG(STB0899_S2DEMOD, MAX_ITER);
 +   reg = STB0899_READ_S2REG(STB0899_S2FEC, MAX_ITER);
 STB0899_SETFIELD_VAL(MAX_ITERATIONS, reg, iter_scale);
 -   stb0899_write_s2reg(state, STB0899_S2DEMOD, STB0899_BASE_MAX_ITER, 
 STB0899_OFF0_MAX_ITER, reg);
 +   stb0899_write_s2reg(state, STB0899_S2FEC, STB0899_BASE_MAX_ITER, 
 STB0899_OFF0_MAX_ITER, reg);
  }

  static enum dvbfe_search stb0899_search(struct dvb_frontend *fe, struct 
 dvb_frontend_parameters *p)

Thx for your reply.

Applied [1] + [2] + your path.

Unfortunately, this does not work for me. scan-s2 can tune only on the
1st of those 3 transponders on HB13E

S1  12654000 H 2750  3/4
S2 12692000 H 2750  3/4 35   8PSK
S2 11681000 H 2750  3/4 35   8PSK

Please note that I can tune quick/fast on those 3 transponders with a
ngene based card. szap will report a signal of 60% and snr of 70% for
them. Problem is the CI support does not work for me.

I am wondering if there is a dvb-s2 card with ci support which
flawlessly works on linux... ?
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Ngene cam device name

2011-04-24 Thread Issa Gorissen
On 28/03/11 23:40, Mauro Carvalho Chehab wrote:
 Em 27-03-2011 21:44, Ralph Metzler escreveu:
 Hi,

 since I just saw cxd2099 appear in staging in the latest git kernel, a
 simple question which has been pointed out to me before:

 Why is cxd2099.c in staging regarding the device name question?
 It has nothing to do with the naming.
 It is not just because of naming. A NACK was given to it, as is, at:

 http://www.spinics.net/lists/linux-media/msg28004.html

 A previous discussion about this subject were started at:
   http://www.mail-archive.com/linux-media@vger.kernel.org/msg22196.html

 The point is that an interface meant to be used by satellite were
 used as a ci interface, due to the lack of handling independent CA devices.

 As there were no final decision about a proper way to address it, Oliver
 decided to keep it as-is, and I decided to move it to staging while we
 don't properly address the question, extending the DVB API in order to support
 independent CA devs.

 Having the driver at staging allow us to rework at the API and change the
 driver when API changes are done, without needing to pass through kernel 
 process of deprecating old API stuff.

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

Hello all,

Here is the patch for the NGene card family and the new caio device.
Can cxd2099 be removed from staging as this patch fixes the raised issue.

Signed-off-by: Issa Gorissen flo...@usa.net
---
 drivers/media/dvb/dvb-core/dvbdev.c  |2 +-
 drivers/media/dvb/dvb-core/dvbdev.h  |1 +
 drivers/media/dvb/ngene/ngene-core.c |2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/media/dvb/dvb-core/dvbdev.c 
b/drivers/media/dvb/dvb-core/dvbdev.c
index f732877..7a64b81 100644
--- a/drivers/media/dvb/dvb-core/dvbdev.c
+++ b/drivers/media/dvb/dvb-core/dvbdev.c
@@ -47,7 +47,7 @@ static DEFINE_MUTEX(dvbdev_register_lock);
 
 static const char * const dnames[] = {
video, audio, sec, frontend, demux, dvr, ca,
-   net, osd
+   net, osd, caio
 };
 
 #ifdef CONFIG_DVB_DYNAMIC_MINORS
diff --git a/drivers/media/dvb/dvb-core/dvbdev.h 
b/drivers/media/dvb/dvb-core/dvbdev.h
index fcc6ae9..c63c70d 100644
--- a/drivers/media/dvb/dvb-core/dvbdev.h
+++ b/drivers/media/dvb/dvb-core/dvbdev.h
@@ -47,6 +47,7 @@
 #define DVB_DEVICE_CA 6
 #define DVB_DEVICE_NET7
 #define DVB_DEVICE_OSD8
+#define DVB_DEVICE_CAIO   9
 
 #define DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr) \
static short adapter_nr[] = \
diff --git a/drivers/media/dvb/ngene/ngene-core.c 
b/drivers/media/dvb/ngene/ngene-core.c
index 175a0f6..17cdd38 100644
--- a/drivers/media/dvb/ngene/ngene-core.c
+++ b/drivers/media/dvb/ngene/ngene-core.c
@@ -1523,7 +1523,7 @@ static int init_channel(struct ngene_channel *chan)
set_transfer(chan-dev-channel[2], 1);
dvb_register_device(adapter, chan-ci_dev,
ngene_dvbdev_ci, (void *) chan,
-   DVB_DEVICE_SEC);
+   DVB_DEVICE_CAIO);
if (!chan-ci_dev)
goto err;
}


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


Re: stb0899/stb6100 tuning problems

2011-04-24 Thread Issa Gorissen
On 24/04/11 09:44, Steffen Barszus wrote:
 On Sat, 23 Apr 2011 22:55:27 +0200
 Issa Gorissen flo...@usa.net wrote:

 Hi,

 Running kernel 2.6.39rc4. I've got trouble with tuning some
 transponders on Hotbird 13°E with a TT S2-3200.
 The transponders have been emitting DVB-S until end of march when they
 now emit DVB-S2 signals. They are:
 - 11681.00H 27500 3/4 8psk nid:319 tid:15900 on Hotbird 6
 - 12692.00H 27500 3/4 8psk nid:319 tid:9900 on Hotbird 9


 [1] https://patchwork.kernel.org/patch/244201/
 [2]
 http://www.mail-archive.com/linuxtv-commits@linuxtv.org/msg09214.html

 1) Patch [2] is merged into kernel 2.6.39rc4. Using scan-s2, I get no
 service available.

 2) I applied patch [1] and still could not get any service with
 scan-s2 from those transponders.

 3) I *reverted* patch[2] and now scan-s2 returns partial results.
 scan-s2 can tune onto the transponder on Hotbird 6 really quick and
 gives back the full services list.
 But I have to run scan-s2 with scan iterations count set to as high as
 100 to be able to get results from the transponder on Hotbird 9.

 When those transponders were emitting in DVB-S, I had no problem at
 all.

 Can someone try the same thing on those transponders and report
 please ?
 As mentioned before, try to use [1] + [2] + following patch. I would
 expect this to be working. Please confirm. 

 --- a/linux/drivers/media/dvb/frontends/stb0899_drv.c   2011-02-26
06:44:11.0 +
 +++ b/linux/drivers/media/dvb/frontends/stb0899_drv.c   2011-04-24
07:39:06.0 +
 @@ -1426,9 +1426,9 @@ static void stb0899_set_iterations(struc
 if (iter_scale  config-ldpc_max_iter)
 iter_scale = config-ldpc_max_iter;

 -   reg = STB0899_READ_S2REG(STB0899_S2DEMOD, MAX_ITER);
 +   reg = STB0899_READ_S2REG(STB0899_S2FEC, MAX_ITER);
 STB0899_SETFIELD_VAL(MAX_ITERATIONS, reg, iter_scale);
 -   stb0899_write_s2reg(state, STB0899_S2DEMOD, STB0899_BASE_MAX_ITER,
STB0899_OFF0_MAX_ITER, reg);
 +   stb0899_write_s2reg(state, STB0899_S2FEC, STB0899_BASE_MAX_ITER,
STB0899_OFF0_MAX_ITER, reg);
  }

  static enum dvbfe_search stb0899_search(struct dvb_frontend *fe, struct
dvb_frontend_parameters *p)

Thx for your reply.

Applied [1] + [2] + your path.

Unfortunately, this does not work for me. scan-s2 can tune only on the
1st of those 3 transponders on HB13E

S1  12654000 H 2750  3/4
S2 12692000 H 2750  3/4 35   8PSK
S2 11681000 H 2750  3/4 35   8PSK

Please note that I can tune quick/fast on those 3 transponders with a
ngene based card. szap will report a signal of 60% and snr of 70% for
them. Problem is the CI support does not work for me.

I am wondering if there is a dvb-s2 card with ci support which
flawlessly works on linux... ?


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


Re: ngene CI problems

2011-04-23 Thread Issa Gorissen
On 23/04/11 00:16, Issa Gorissen wrote:
 Hi all!

 I'm trying to make the DVB_DEVICE_SEC approach work, however I'm 
 experiencing certain problems with the following setup:

 Software:
 Linux 2.6.34.8 (vanilla)
 drivers from http://linuxtv.org/hg/~endriss/v4l-dvb/ 
 http://linuxtv.org/hg/%7Eendriss/v4l-dvb/

 Hardware:
 Digital Devices CineS2 + CI Module

 Problems:

 - Packets get lost in SEC device:

 I write complete TS to SEC, but when reading from SEC there are 
 discontinuities on the CC.

 - SEC device generates NULL packets (ad infinitum):

 When reading from SEC, NULL packets are read and interleaved with 
 expected packets. They can be even read with dd(1) when nobody is 
 writing to SEC and even when CAM is not ready.

 - SEC device blocks on CAM re-insertion:

 When CAM is removed from the slot and inserted again, all read() 
 operations just hang. Rebooting resolves the problem.

 - SEC device does not respect O_NONBLOCK:

 In connection to the previous problem, SEC device blocks even if opened 
 with O_NONBLOCK.

 Best regards,
 Martin Vidovic

 Hi,

 Running a bunch of test with gnutv and a DuoFLEX S2.

 I saw the same problem concerning the decryption with a CAM.

 I'm running kern 2.6.39 rc 4 with the latest patches from Oliver. Also
 applied the patch moving from SEC to CAIO.

 I would run gnutv  like 'gnutv -out stdout channelname 
 /dev/dvb/adapter0/caio0' and then 'cat /dev/dvb/adapter0/caio0 | mplayer -'
 Mplayer would complain the file is invalid. Simply running simply 'cat
 /dev/dvb/adapter0/caio0' will show me the same data pattern over and over.

 Anyone using ngene based card with a CAM running successfully ?

Hi Ralph,

Could you enlighten us on the following matter please ?

I took a look inside cxd2099.c and I found that the method I suspect to
read/write data from/to the CAM are not activated.

static struct dvb_ca_en50221 en_templ = {
.read_attribute_mem  = read_attribute_mem,
.write_attribute_mem = write_attribute_mem,
.read_cam_control= read_cam_control,
.write_cam_control   = write_cam_control,
.slot_reset  = slot_reset,
.slot_shutdown   = slot_shutdown,
.slot_ts_enable  = slot_ts_enable,
.poll_slot_status= poll_slot_status,
#ifdef BUFFER_MODE
.read_data   = read_data,
.write_data  = write_data,
#endif

};

Methods read_data and write_data are both enclosed inside the
BUFFER_MODE test. Also, current version of struct dvb_ca_en50221 does
not provide for read_data/write_data methods, right ?

If I recall right, you once told that you manage to test the CAM
http://www.mail-archive.com/linux-media@vger.kernel.org/msg22196.html,
how did you do ?

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


Re: ngene CI problems

2011-04-23 Thread Issa Gorissen
On 23/04/11 13:37, Martin Vidovic wrote:
 Hi Issa,
 Running a bunch of test with gnutv and a DuoFLEX S2.
   
 I have a DuoFlex S2 running with CI, but not nGene based (it's
 attached to Octopus card - ddbridge module).

 I would run gnutv  like 'gnutv -out stdout channelname 
 /dev/dvb/adapter0/caio0' and then 'cat /dev/dvb/adapter0/caio0 |
 mplayer -'
 Mplayer would complain the file is invalid. Simply running simply 'cat
 /dev/dvb/adapter0/caio0' will show me the same data pattern over and
 over.
   
 I suspect the problem is that reads/writes are not aligned to 188
 bytes with such invocation of commands. Maybe if you tried replacing
 'cat' and '' with 'dd' (bs=188). Other important thing seems to be,
 to read from the caio0 fast enough or real data is overwritten with
 null packets (haven't proved it, but it looks this way on nGene).

 Hope this helps.

 Best regards,
 Martin Vidovic

Okay, but have you managed to decode any channel yet ?

I find some code odd, maybe you can take a look as well...

init_channel in ngene-core.c creates the device sec0/caio0 with the
struct ngene_dvbdev_ci. In ngene-dvb.c you can see that this struct
declares the methods ts_read/ts_write to handle r/w operations on the
device sec0/caio0.

Now take a look at those methods (ts_read/ts_write). I don't see how
they 'connect' to the file cxd2099.c which contains the methods handling
the i/o to the cam.

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


Re: ngene CI problems

2011-04-23 Thread Issa Gorissen
On 23/04/11 14:39, Martin Vidovic wrote:
 Hi,
 Okay, but have you managed to decode any channel yet ?
   
 Yes, I managed to descramble programmes without any problem.
 I find some code odd, maybe you can take a look as well...

 init_channel in ngene-core.c creates the device sec0/caio0 with the
 struct ngene_dvbdev_ci. In ngene-dvb.c you can see that this struct
 declares the methods ts_read/ts_write to handle r/w operations on the
 device sec0/caio0.

 Now take a look at those methods (ts_read/ts_write). I don't see how
 they 'connect' to the file cxd2099.c which contains the methods handling
 the i/o to the cam
 They don't connect explicitly. Transfers are done implicitly
 through nGene ring-buffers. See demux_tasklet(). CXD code
 seems to be used only for CAM commands and setup (only) of
 data transfers.

I have taken a look into the ddbrigde module code from
http://linuxtv.org/hg/~endriss/ngene-octopus-test/rev/6b400d63c481

The ts_read/ts_write methods are different from the ngene module's. So I
guess were are having entirely different problems.
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ngene CI problems

2011-04-23 Thread Issa Gorissen
On 23/04/11 19:40, Oliver Endriss wrote:
 On Saturday 23 April 2011 00:16:56 Issa Gorissen wrote:
 Running a bunch of test with gnutv and a DuoFLEX S2.

 I saw the same problem concerning the decryption with a CAM.

 I'm running kern 2.6.39 rc 4 with the latest patches from Oliver. Also
 applied the patch moving from SEC to CAIO.
 If you are running 2.6.39rc4, you must apply patch
 http://www.mail-archive.com/linux-media@vger.kernel.org/msg29870.html
 Otherwise the data will be garbled.

Oliver, this patch was applied already. I'm hacking the ts_read/ts_write
method, but so far, haven't manage to get it work.
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] Fixes stb0899 not locking

2011-04-23 Thread Issa Gorissen
 Fixes stb0899 not locking.

 See http://www.spinics.net/lists/linux-media/msg30486.html ...

 When stb0899_check_data is entered, it could happen, that the data is
 already locked and the data search looped.  stb0899_check_data fails to
 lock on a good frequency.  stb0899_search_data uses an extrem big search
 step and fails to lock.

 The new code checks for lock before starting a new search.
 The first read ignores the loop bit, for the case that the loop bit is
 set during the search setup.  I also added the msleep to reduce the
 traffic on the i2c bus.

 Johns

 Signed-off-by: Lutz Sammer johns98 at gmx.net
 diff --git a/drivers/media/dvb/frontends/stb0899_algo.c
 b/drivers/media/dvb/frontends/stb0899_algo.c
 index 2da55ec..55f0c4e 100644
 --- a/drivers/media/dvb/frontends/stb0899_algo.c
 +++ b/drivers/media/dvb/frontends/stb0899_algo.c
 @@ -338,36 +338,42 @@ static enum stb0899_status
 stb0899_check_data(struct stb0899_state *state)
 int lock = 0, index = 0, dataTime = 500, loop;
 u8 reg;

 -   internal-status = NODATA;
 +   reg = stb0899_read_reg(state, STB0899_VSTATUS);
 +   lock = STB0899_GETFIELD(VSTATUS_LOCKEDVIT, reg);
 +   if ( !lock ) {

 -   /* RESET FEC*/
 -   reg = stb0899_read_reg(state, STB0899_TSTRES);
 -   STB0899_SETFIELD_VAL(FRESACS, reg, 1);
 -   stb0899_write_reg(state, STB0899_TSTRES, reg);
 -   msleep(1);
 -   reg = stb0899_read_reg(state, STB0899_TSTRES);
 -   STB0899_SETFIELD_VAL(FRESACS, reg, 0);
 -   stb0899_write_reg(state, STB0899_TSTRES, reg);
 +   internal-status = NODATA;

 -   if (params-srate = 200)
 -   dataTime = 2000;
 -   else if (params-srate = 500)
 -   dataTime = 1500;
 -   else if (params-srate = 1500)
 -   dataTime = 1000;
 -   else
 -   dataTime = 500;
 -
 -   stb0899_write_reg(state, STB0899_DSTATUS2, 0x00); /* force
 search loop  */
 -   while (1) {
 -   /* WARNING! VIT LOCKED has to be tested before
 VIT_END_LOOOP*/
 -   reg = stb0899_read_reg(state, STB0899_VSTATUS);
 -   lock = STB0899_GETFIELD(VSTATUS_LOCKEDVIT, reg);
 -   loop = STB0899_GETFIELD(VSTATUS_END_LOOPVIT, reg);
 +   /* RESET FEC*/
 +   reg = stb0899_read_reg(state, STB0899_TSTRES);
 +   STB0899_SETFIELD_VAL(FRESACS, reg, 1);
 +   stb0899_write_reg(state, STB0899_TSTRES, reg);
 +   msleep(1);
 +   reg = stb0899_read_reg(state, STB0899_TSTRES);
 +   STB0899_SETFIELD_VAL(FRESACS, reg, 0);
 +   stb0899_write_reg(state, STB0899_TSTRES, reg);

 -   if (lock || loop || (index  dataTime))
 -   break;
 -   index++;
 +   msleep(1);
 +   }
 }

 if (lock) { /* DATA LOCK indicator  */

Hi Johns,

I've tried your path but I had to remove the last } that you added after
the msleep(1);

The patch had not make any better the tuning of transponders on HB13E
for me.

Thanks anyway.
--
Issa

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


Re: ngene CI problems

2011-04-23 Thread Issa Gorissen
On 23/04/11 21:14, Oliver Endriss wrote:
 If you are running 2.6.39rc4, you must apply patch
 http://www.mail-archive.com/linux-media@vger.kernel.org/msg29870.html
 Otherwise the data will be garbled.
 Oliver, this patch was applied already. I'm hacking the ts_read/ts_write
 method, but so far, haven't manage to get it work.
 Basically you should not have to hack anything.

 - Setup the CI as with any conventional device.
 - Write the encrypted stream into sec0.
 - Read the decrypted stream from sec0.

 This should work. (Please note that I could do some loopback tests only,
 as I am not watching paytv.)
Oliver,

Is there a preferred way to do this (read/write from sec0) ? I mean, does a

'gnutv -channels file -out stdout  channelname  sec0'

and

'cat sec0 | mplayer -'

should work according to your tests ?
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


stb0899/stb6100 tuning problems

2011-04-23 Thread Issa Gorissen
Hi,

Running kernel 2.6.39rc4. I've got trouble with tuning some transponders
on Hotbird 13°E with a TT S2-3200.
The transponders have been emitting DVB-S until end of march when they
now emit DVB-S2 signals. They are:
- 11681.00H 27500 3/4 8psk nid:319 tid:15900 on Hotbird 6
- 12692.00H 27500 3/4 8psk nid:319 tid:9900 on Hotbird 9


[1] https://patchwork.kernel.org/patch/244201/
[2] http://www.mail-archive.com/linuxtv-commits@linuxtv.org/msg09214.html

1) Patch [2] is merged into kernel 2.6.39rc4. Using scan-s2, I get no
service available.

2) I applied patch [1] and still could not get any service with scan-s2
from those transponders.

3) I *reverted* patch[2] and now scan-s2 returns partial results.
scan-s2 can tune onto the transponder on Hotbird 6 really quick and
gives back the full services list.
But I have to run scan-s2 with scan iterations count set to as high as
100 to be able to get results from the transponder on Hotbird 9.

When those transponders were emitting in DVB-S, I had no problem at all.

Can someone try the same thing on those transponders and report please ?

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


Re: ngene CI problems

2011-04-23 Thread Issa Gorissen
On 23/04/11 21:14, Oliver Endriss wrote:
 Basically you should not have to hack anything.
 - Setup the CI as with any conventional device.
 - Write the encrypted stream into sec0.
 - Read the decrypted stream from sec0.

 This should work. (Please note that I could do some loopback tests only,
 as I am not watching paytv.)

 CU
 Oliver


Oliver,

This does not work.

I have launch gnutv like this: 'gnutv -adapter 0 -channels hb.conf -out
dvr -timeout 30 TF1'

Then on dd

tv@tv:~ dd if=188 if=/dev/dvb/adapter0/dvr0 of=/dev/dvb/adapter0/caio0
^C36071+1 records in
36071+0 records out
18468352 bytes (18 MB) copied, 76.4947 s, 241 kB/s


And another dd

tv@tv:~ dd bs=188 if=/dev/dvb/adapter0/caio0 of=test.mpeg
^Cdd: reading `/dev/dvb/adapter0/caio0': Resource temporarily unavailable
1338880+0 records in
1338880+0 records out
251709440 bytes (252 MB) copied, 34.3276 s, 7.3 MB/s
dd: closing input file `/dev/dvb/adapter0/caio0': Bad file descriptor


The first dd reports a more/less correct size for 30sec of encrypted tv
~ 18MB.
But the 2nd dd shows a big generated file out of the device. Plus it
mostly contains the following pattern : lots of FF separated by 47 1F FF 10.

I hope you can guide me to solve this - it is getting painful. Can we
review the code together ? The starting point should be the
ts_write/read methods.
--
Issa
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


ngene CI problems

2011-04-22 Thread Issa Gorissen
 Hi all!

 I'm trying to make the DVB_DEVICE_SEC approach work, however I'm 
 experiencing certain problems with the following setup:

 Software:
 Linux 2.6.34.8 (vanilla)
 drivers from http://linuxtv.org/hg/~endriss/v4l-dvb/ 
 http://linuxtv.org/hg/%7Eendriss/v4l-dvb/

 Hardware:
 Digital Devices CineS2 + CI Module

 Problems:

 - Packets get lost in SEC device:

 I write complete TS to SEC, but when reading from SEC there are 
 discontinuities on the CC.

 - SEC device generates NULL packets (ad infinitum):

 When reading from SEC, NULL packets are read and interleaved with 
 expected packets. They can be even read with dd(1) when nobody is 
 writing to SEC and even when CAM is not ready.

 - SEC device blocks on CAM re-insertion:

 When CAM is removed from the slot and inserted again, all read() 
 operations just hang. Rebooting resolves the problem.

 - SEC device does not respect O_NONBLOCK:

 In connection to the previous problem, SEC device blocks even if opened 
 with O_NONBLOCK.

 Best regards,
 Martin Vidovic

Hi,

Running a bunch of test with gnutv and a DuoFLEX S2.

I saw the same problem concerning the decryption with a CAM.

I'm running kern 2.6.39 rc 4 with the latest patches from Oliver. Also
applied the patch moving from SEC to CAIO.

I would run gnutv  like 'gnutv -out stdout channelname 
/dev/dvb/adapter0/caio0' and then 'cat /dev/dvb/adapter0/caio0 | mplayer -'
Mplayer would complain the file is invalid. Simply running simply 'cat
/dev/dvb/adapter0/caio0' will show me the same data pattern over and over.

Anyone using ngene based card with a CAM running successfully ?

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


Re: TT-budget S2-3200 cannot tune on HB13E DVBS2 transponder

2011-04-06 Thread Issa Gorissen
On 05/04/11 21:07, Steffen Barszus wrote:
 On Tue, 05 Apr 2011 13:00:14 +0200
 Issa Gorissen flo...@usa.net wrote:

 Hi,

 Eutelsat made a recent migration from DVB-S to DVB-S2 (since
 31/3/2011) on two transponders on HB13E

 - HOT BIRD 6 13° Est TP 159 Freq 11,681 Ghz DVB-S2 FEC 3/4 27500
 Msymb/s 0.2 Pilot off Polar H

 - HOT BIRD 9 13° Est TP 99 Freq 12,692 Ghz DVB-S2 FEC 3/4 27500
 Msymb/s 0.2 Pilot off Polar H


 Before those changes, with my TT S2 3200, I was able to watch TV on
 those transponders. Now, I cannot even tune on those transponders. I
 have tried with scan-s2 and w_scan and the latest drivers from git.
 They both find the transponders but cannot tune onto it.

 Something noteworthy is that my other card, a DuoFlex S2 can tune
 fine on those transponders.

 My question is; can someone try this as well with a TT S2 3200 and
 post the results ?
 i read something about it lately here (german!): 
 http://www.vdr-portal.de/board16-video-disk-recorder/board85-hdtv-dvb-s2/p977938-stb0899-fec-3-4-tester-gesucht/#post977938

 It says in stb0899_drv.c function:
 static void stb0899_set_iterations(struct stb0899_state *state) 

 This:
 reg = STB0899_READ_S2REG(STB0899_S2DEMOD, MAX_ITER);
 STB0899_SETFIELD_VAL(MAX_ITERATIONS, reg, iter_scale);
 stb0899_write_s2reg(state, STB0899_S2DEMOD, STB0899_BASE_MAX_ITER, 
 STB0899_OFF0_MAX_ITER, reg);

 should be replaced with this:

 reg = STB0899_READ_S2REG(STB0899_S2FEC, MAX_ITER);
 STB0899_SETFIELD_VAL(MAX_ITERATIONS, reg, iter_scale);
 stb0899_write_s2reg(state, STB0899_S2FEC, STB0899_BASE_MAX_ITER, 
 STB0899_OFF0_MAX_ITER, reg);

 Basically replace STB0899_S2DEMOD with STB0899_S2FEC in this 2 lines
 affected.

 Kind Regards 

 Steffen
Hi Steffen,

Unfortunately, it does not help in my case. Thx anyway.

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


TT-budget S2-3200 cannot tune on HB13E DVBS2 transponder

2011-04-05 Thread Issa Gorissen
Hi,

Eutelsat made a recent migration from DVB-S to DVB-S2 (since 31/3/2011) on two
transponders on HB13E

- HOT BIRD 6 13° Est TP 159 Freq 11,681 Ghz DVB-S2 FEC 3/4 27500 Msymb/s 0.2
Pilot off Polar H

- HOT BIRD 9 13° Est TP 99 Freq 12,692 Ghz DVB-S2 FEC 3/4 27500 Msymb/s 0.2
Pilot off Polar H


Before those changes, with my TT S2 3200, I was able to watch TV on those
transponders. Now, I cannot even tune on those transponders. I have tried with
scan-s2 and w_scan and the latest drivers from git. They both find the
transponders but cannot tune onto it.

Something noteworthy is that my other card, a DuoFlex S2 can tune fine on
those transponders.

My question is; can someone try this as well with a TT S2 3200 and post the
results ?

Thank you a lot,
--
Issa

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


Re: [PATCH] Ngene cam device name

2011-04-05 Thread Issa Gorissen
Hello all,

Here is the patch for the NGene card family and the new caio device

Signed-off-by: Issa Gorissen flo...@usa.net
---
 drivers/media/dvb/dvb-core/dvbdev.c  |2 +-
 drivers/media/dvb/dvb-core/dvbdev.h  |1 +
 drivers/media/dvb/ngene/ngene-core.c |2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/media/dvb/dvb-core/dvbdev.c 
b/drivers/media/dvb/dvb-core/dvbdev.c
index f732877..7a64b81 100644
--- a/drivers/media/dvb/dvb-core/dvbdev.c
+++ b/drivers/media/dvb/dvb-core/dvbdev.c
@@ -47,7 +47,7 @@ static DEFINE_MUTEX(dvbdev_register_lock);
 
 static const char * const dnames[] = {
video, audio, sec, frontend, demux, dvr, ca,
-   net, osd
+   net, osd, caio
 };
 
 #ifdef CONFIG_DVB_DYNAMIC_MINORS
diff --git a/drivers/media/dvb/dvb-core/dvbdev.h 
b/drivers/media/dvb/dvb-core/dvbdev.h
index fcc6ae9..c63c70d 100644
--- a/drivers/media/dvb/dvb-core/dvbdev.h
+++ b/drivers/media/dvb/dvb-core/dvbdev.h
@@ -47,6 +47,7 @@
 #define DVB_DEVICE_CA 6
 #define DVB_DEVICE_NET7
 #define DVB_DEVICE_OSD8
+#define DVB_DEVICE_CAIO   9
 
 #define DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr) \
static short adapter_nr[] = \
diff --git a/drivers/media/dvb/ngene/ngene-core.c 
b/drivers/media/dvb/ngene/ngene-core.c
index 175a0f6..17cdd38 100644
--- a/drivers/media/dvb/ngene/ngene-core.c
+++ b/drivers/media/dvb/ngene/ngene-core.c
@@ -1523,7 +1523,7 @@ static int init_channel(struct ngene_channel *chan)
set_transfer(chan-dev-channel[2], 1);
dvb_register_device(adapter, chan-ci_dev,
ngene_dvbdev_ci, (void *) chan,
-   DVB_DEVICE_SEC);
+   DVB_DEVICE_CAIO);
if (!chan-ci_dev)
goto err;
}

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


Re: [PATCH] Ngene cam device name

2011-03-16 Thread Issa Gorissen
On 13/03/11 11:47, Martin Vidovic wrote:

 Btw, we should choose a more meaningful name for 'camX'.
 I would prefer something like cainoutX or caioX or cinoutX or cioX.
   


 I agree, camX could be misleading since it's not necessarily a CAM
 application.

 According to EN 50221 the two interfaces are named Command Interface
 (for caX)
 and Transport Stream Interface (for camX). Then maybe 'tsiX' would be
 an appropriate
 name?

 Anyway, 'cioX' sounds good too.

I'll prepare the patch with caio (for conditional access I/O) if all
agrees on it. tsi is a good candidate as it perfectly matches the
standard specification, but then, ca should have been ci...

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


Re: [PATCH] Ngene cam device name

2011-03-12 Thread Issa Gorissen
From: Andreas Oberritter o...@linuxtv.org
 On 03/11/2011 10:44 PM, Martin Vidovic wrote:
  Andreas Oberritter wrote:
  It's rather unintuitive that some CAMs appear as ca0, while others as
  cam0.

  Ngene CI appears as both ca0 and cam0 (or sec0). The ca0 node is used
  as usual, to setup the CAM. The cam0 (or sec0) node is used to read/write
  transport stream. To me it  looks like an extension of the current API.
 
 I see. This raises another problem. How to find out, which ca device
 cam0 relates to, in case there are more ca devices than cam devices?
 

Are you sure there can be more ca devices than cam devices ? Shouldn't they
come by pair ?

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


Re: [PATCH] Ngene cam device name

2011-03-12 Thread Issa Gorissen
From: Ralph Metzler r...@metzlerbros.de
 Andreas Oberritter writes:
Unless you want to move the writing to/reading from the CI module into
ioctls of the ci device you need another node. 
Even nicer would be having the control messages moved to ioctls and
the
TS IO in read/write of ci, but this would break the old interface.
   
   It's possible to keep compatibility. Just add ioctls to get and set the
   interface version. Default to the current version, not supporting TS
   I/O. If the version is set to e.g. 1, switch from the current interface
   to the new one, using ioctls for control messages.
 
 A possibility, but also requires rewrites in existing software like
libdvben50221.
 Right now you can e.g. tune with /dev/dvb/adapter0/frontend0, point an
unchanged
 libdvben50221 to /dev/dvb/adapter1/ci0 (separate adapter since it can even
 be on a different card) and pipe all PIDs of cam_pmt of the program
 you are watching through /dev/dvb/adapter1/sec0(cam0) and it is decoded.

This is KISS compliant by the way.

Andreas, please explain what *really* bothers you with this architecture
choice of having a new node, leaving the current API as is.

You might find that adding a new node is lazy, but there are advantages:
- current API isn't broken, namely, ca devices are still used for the control
messages, nothing more;
- for applications using the DVB API, it is also easier to debug while reading
the code, in my opinion, because of the usage of two distinct devices (ca /
cam) instead of one (ca / ioctls);


--
Issa

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


Re: [PATCH] Ngene cam device name

2011-03-12 Thread Issa Gorissen
From: Andreas Oberritter o...@linuxtv.org
 
 I'm not against adding a new node if its behaviour is well defined and
 documented and if it integrates well into the existing API.


Integration is okay; current API is left untouched.
The behaviour is defined as a write encrypted stream / read decrypted stream
device.


 
  You might find that adding a new node is lazy, but there are advantages:
  - current API isn't broken, namely, ca devices are still used for the
control
  messages, nothing more;
 
 nothing more is wrong, as ca devices are used for descramblers, too.


I don't understand your point here, do you mean these DVB descramblers
currently use ca device for more than the control messages ?


 
  - for applications using the DVB API, it is also easier to debug while
reading
  the code, in my opinion, because of the usage of two distinct devices (ca
/
  cam) instead of one (ca / ioctls);
 
 That's just a matter of taste.

Okay, so you agree that choosing ca/ioctls over ca/cam is just a matter of
taste.

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


Re: [PATCH] Ngene cam device name

2011-03-11 Thread Issa Gorissen
From: Andreas Oberritter o...@linuxtv.org
To: Issa Gorissen flo...@usa.netCc: linux-media@vger.kernel.org,
r...@metzlerbros.de
Subject: Re: [PATCH] Ngene cam device name

 On 03/10/2011 04:29 PM, Issa Gorissen wrote:
  As the cxd20099 driver is in staging due to abuse of the sec0 device,
this
  patch renames it to cam0. The sec0 device is not in use and can be
removed
 
 That doesn't solve anything. Besides, your patch doesn't even do what
 you describe.
 
 Wouldn't it be possible to extend the current CA API? If not, shouldn't
 a new API be created that covers both old and new requirements?
 
 It's rather unintuitive that some CAMs appear as ca0, while others as cam0.
 
 If it was that easy to fix, it wouldn't be in staging today.
 
 Regards,
 Andreas


Yes indeed, this patch is missing the update of dnames arrays in dvbdev.c

Now, according to Mauro comments, he has put this code into staging because of
the usage of sec0 name for a cam device.

Please comment on Oliver's explanations from this thread

http://www.mail-archive.com/linux-media@vger.kernel.org/msg26901.html


Thx
--
Issa


 
  Signed-off-by: Issa Gorissen flo...@usa.net
  ---
   drivers/media/dvb/dvb-core/dvbdev.h  |2 +-
   drivers/media/dvb/ngene/ngene-core.c |2 +-
   2 files changed, 2 insertions(+), 2 deletions(-)
  
  diff --git a/drivers/media/dvb/dvb-core/dvbdev.h 
  b/drivers/media/dvb/dvb-core/dvbdev.h
  index fcc6ae9..dcac27d 100644
  --- a/drivers/media/dvb/dvb-core/dvbdev.h
  +++ b/drivers/media/dvb/dvb-core/dvbdev.h
  @@ -40,7 +40,7 @@
   
   #define DVB_DEVICE_VIDEO  0
   #define DVB_DEVICE_AUDIO  1
  -#define DVB_DEVICE_SEC2
  +#define DVB_DEVICE_CAM2
   #define DVB_DEVICE_FRONTEND   3
   #define DVB_DEVICE_DEMUX  4
   #define DVB_DEVICE_DVR5
  diff --git a/drivers/media/dvb/ngene/ngene-core.c 
  b/drivers/media/dvb/ngene/ngene-core.c
  index 175a0f6..6be2d7c 100644
  --- a/drivers/media/dvb/ngene/ngene-core.c
  +++ b/drivers/media/dvb/ngene/ngene-core.c
  @@ -1523,7 +1523,7 @@ static int init_channel(struct ngene_channel *chan)
  set_transfer(chan-dev-channel[2], 1);
  dvb_register_device(adapter, chan-ci_dev,
  ngene_dvbdev_ci, (void *) chan,
  -   DVB_DEVICE_SEC);
  +   DVB_DEVICE_CAM);
  if (!chan-ci_dev)
  goto err;
  }
  --
  To unsubscribe from this list: send the line unsubscribe linux-media in
  the body of a message to majord...@vger.kernel.org
  More majordomo info at  http://vger.kernel.org/majordomo-info.html
 


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


[PATCH] Ngene cam device name

2011-03-10 Thread Issa Gorissen
As the cxd20099 driver is in staging due to abuse of the sec0 device, this
patch renames it to cam0. The sec0 device is not in use and can be removed

Signed-off-by: Issa Gorissen flo...@usa.net
---
 drivers/media/dvb/dvb-core/dvbdev.h  |2 +-
 drivers/media/dvb/ngene/ngene-core.c |2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/media/dvb/dvb-core/dvbdev.h 
b/drivers/media/dvb/dvb-core/dvbdev.h
index fcc6ae9..dcac27d 100644
--- a/drivers/media/dvb/dvb-core/dvbdev.h
+++ b/drivers/media/dvb/dvb-core/dvbdev.h
@@ -40,7 +40,7 @@
 
 #define DVB_DEVICE_VIDEO  0
 #define DVB_DEVICE_AUDIO  1
-#define DVB_DEVICE_SEC2
+#define DVB_DEVICE_CAM2
 #define DVB_DEVICE_FRONTEND   3
 #define DVB_DEVICE_DEMUX  4
 #define DVB_DEVICE_DVR5
diff --git a/drivers/media/dvb/ngene/ngene-core.c 
b/drivers/media/dvb/ngene/ngene-core.c
index 175a0f6..6be2d7c 100644
--- a/drivers/media/dvb/ngene/ngene-core.c
+++ b/drivers/media/dvb/ngene/ngene-core.c
@@ -1523,7 +1523,7 @@ static int init_channel(struct ngene_channel *chan)
set_transfer(chan-dev-channel[2], 1);
dvb_register_device(adapter, chan-ci_dev,
ngene_dvbdev_ci, (void *) chan,
-   DVB_DEVICE_SEC);
+   DVB_DEVICE_CAM);
if (!chan-ci_dev)
goto err;
}
--
To unsubscribe from this list: send the line unsubscribe linux-media in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Sony CXD2099AR support

2011-02-28 Thread Issa Gorissen
Hi,

I have read that this CI chip driver is in staging because some questions on
how to handle it are still not answered.

I volunteer to handle this one. I'm a regular java developer, but I'm willing
to put effort in learning linux drivers writing.

So Ralph, can you give me some pointers on where the discussion should resume
?

Do we put people of Mythtv and VDR in the discussion ? I guess so.

I don't see anything related to MTD in the DVB CSA documents. I guess this
should be left out of the driver.

Thx,
--
Issa 

-- Original Message --
Received: 11:48 AM CET, 02/25/2011
From: Issa Gorissen flo...@usa.net
To: linux-media@vger.kernel.org
Subject: Re: Sony CXD2099AR decryption failing

 Follow up on the trouble with Digital Devices DuoFlex S2, CI, SMIT Viaccess
 CAM and Bis.tv card.
 
 The whole combination works under Windows 7 with Media Center. I have been
 able to watch and change channels I'm entitled to in the Bis.TV package.
Only
 condition was to disable CI for tuner no 2. If the CI is activated for tuner
1
 and tuner 2, Media Center will not be able to change the channels.
 
 Anything I can do to make progress for this issue under linux ?
 
 
 Thx
 --
 Issa

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


Re: Sony CXD2099AR decryption failing

2011-02-25 Thread Issa Gorissen
Follow up on the trouble with Digital Devices DuoFlex S2, CI, SMIT Viaccess
CAM and Bis.tv card.

The whole combination works under Windows 7 with Media Center. I have been
able to watch and change channels I'm entitled to in the Bis.TV package. Only
condition was to disable CI for tuner no 2. If the CI is activated for tuner 1
and tuner 2, Media Center will not be able to change the channels.

Anything I can do to make progress for this issue under linux ?


Thx
--
Issa

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


Re: Sony CXD2099AR decryption failing

2011-02-24 Thread Issa Gorissen
Hi Oliver,

I have managed to make a test under Windows. It worked.

I only managed to watch France 2 with BIS.TV card and SMIT Viaccess CAM with
MediaPortal 1.2.0 Alpha.

What's the next step, shall I do another test ?


Support from DD tells me this

 Name: Manfred Völkel
 
 Message:
 
 Hello Issa
 
 The SMIT Viaccess has originally been testet with a SRG card. After
restesting now i
 have indeed found a problem with the BIS Card and the SMIT Viaccess module.
 This combination does not work reliable with MTD. It however works in single
transponder
 mode, which is the only mode currently supported with Linux (until someone
writes 
 plugins for VDR etc tu remux). Please assign only one tuner to the CI and
also configure
 WMC with only one tuner and retest. This worked here.
 
 My BIS card's serial starts with 400 00 xxx
 
 The SMIT Viaccess:

 Hardware Version 1.3.0(221)
 Loader Version: 4.2.3 seq:2
 Software version: 1.6.1(166)m2
 UA: 000 000 000 000
 STB identifier: .
 ACS Version: 463-2.1.2.11

 Gruß
 DD-Guru

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


Re: Sony CXD2099AR decryption failing

2011-02-21 Thread Issa Gorissen
Hello Oliver,

I've managed to run Win 7 on the computer. Tested the encrypted channels with
WIndows Media Center and the DigitalDevices driver version 2.1.0.30. I cannot
get the channels to show up. MCE shows an error stating that those channels
are encrypted or there are no signals for them.

FTA works.

Any suggestion from here ?

I've read on the digital devices FAQ that the SMIT viaccess CAM has been
successfully tested...

Thx
--
Issa

-- Original Message --
Received: 11:55 AM CET, 02/15/2011
From: Issa Gorissen flo...@usa.net
To: linux-media@vger.kernel.org
Subject: Re: Sony CXD2099AR decryption failing

 Hi Oliver,
 
 Thx for your reply. This will be a bit hard. But I will give it a try. I
will
 try to boot from a USB key with Windows on it.
 
 Any preferences for Windows ? XP, Vista or 7 ?
 
 --
 Issa
 
 -- Original Message --
 Received: 04:04 AM CET, 02/15/2011
 From: Oliver Endriss o.endr...@gmx.de
 To: Issa Gorissen flo...@usa.netCc: linux-media@vger.kernel.org
 Subject: Re: Sony CXD2099AR decryption failing
 
  Hello,
  
  On Monday 14 February 2011 17:42:55 Issa Gorissen wrote:
   Hi,
   
   I am having some trouble with the Sony CXD2099AR CI chip.
   
   With a SMIT Viaccess CAM, I am not able to decrypt channels from the
 french
   package Bis.TV on Hotbird 13E.
   
   The CAM decrypts fine when inserted in a set top box.
   
   The drivers running are those from the branch of Oliver.
   System's running OpenSuse 11.3.
   
   May someone with the knowledge of this chip get in touch with me ?
  
  Could you please test, whether it works with the windows driver?
  
  CU
  Oliver
  
  -- 
  
  VDR Remote Plugin 0.4.0: http://www.escape-edv.de/endriss/vdr/
  4 MByte Mod: http://www.escape-edv.de/endriss/dvb-mem-mod/
  Full-TS Mod: http://www.escape-edv.de/endriss/dvb-full-ts-mod/
  
 
 
 --
 To unsubscribe from this list: send the line unsubscribe linux-media in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html


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


Re: Sony CXD2099AR decryption failing

2011-02-15 Thread Issa Gorissen
Hi Oliver,

Thx for your reply. This will be a bit hard. But I will give it a try. I will
try to boot from a USB key with Windows on it.

Any preferences for Windows ? XP, Vista or 7 ?

--
Issa

-- Original Message --
Received: 04:04 AM CET, 02/15/2011
From: Oliver Endriss o.endr...@gmx.de
To: Issa Gorissen flo...@usa.netCc: linux-media@vger.kernel.org
Subject: Re: Sony CXD2099AR decryption failing

 Hello,
 
 On Monday 14 February 2011 17:42:55 Issa Gorissen wrote:
  Hi,
  
  I am having some trouble with the Sony CXD2099AR CI chip.
  
  With a SMIT Viaccess CAM, I am not able to decrypt channels from the
french
  package Bis.TV on Hotbird 13E.
  
  The CAM decrypts fine when inserted in a set top box.
  
  The drivers running are those from the branch of Oliver.
  System's running OpenSuse 11.3.
  
  May someone with the knowledge of this chip get in touch with me ?
 
 Could you please test, whether it works with the windows driver?
 
 CU
 Oliver
 
 -- 
 
 VDR Remote Plugin 0.4.0: http://www.escape-edv.de/endriss/vdr/
 4 MByte Mod: http://www.escape-edv.de/endriss/dvb-mem-mod/
 Full-TS Mod: http://www.escape-edv.de/endriss/dvb-full-ts-mod/
 


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


Sony CXD2099AR decryption failing

2011-02-14 Thread Issa Gorissen
Hi,

I am having some trouble with the Sony CXD2099AR CI chip.

With a SMIT Viaccess CAM, I am not able to decrypt channels from the french
package Bis.TV on Hotbird 13E.

The CAM decrypts fine when inserted in a set top box.

The drivers running are those from the branch of Oliver.
System's running OpenSuse 11.3.

May someone with the knowledge of this chip get in touch with me ?

Thx,
--
Issa

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