[PATCH] cx88-dvb.c: DVB net latency using Hauppauge HVR4000

2010-12-23 Thread Ang Way Chuang

Hi linux-media developers,
We are from School On Internet Asia (SOI Asia) project that uses satellite 
communication to deliver educational content.
We used Hauppauge HVR 4000 to carry IP traffic over ULE. However, there is an 
issue with high latency jitter. My boss, Husni,
identified the problem and provided a patch for this problem. We have tested 
this patch since kernel 2.6.30 on our partner
sites and it hasn't cause any issue. The default buffer size of 32 TS frames on 
cx88 causes the high latency, so our deployment
changes that to 6 TS frames. This patch made the buffer size tunable, while 
keeping the default buffer size of 32 TS frames
unchanged. Sorry, I have to use attachment for the patch. I couldn't figure out 
how to copy and paste the patch without
converting the tab to spaces in thunderbird.

Signed-off-by: Achmad Husni Thamrin hu...@ai3.net

diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c
index 367a653..90717ee 100644
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -67,6 +67,10 @@ static unsigned int debug;
 module_param(debug, int, 0644);
 MODULE_PARM_DESC(debug,enable debug messages [dvb]);
 
+static unsigned int dvb_buf_tscnt = 32;
+module_param(dvb_buf_tscnt, int, 0644);
+MODULE_PARM_DESC(dvb_buf_tscnt, DVB Buffer TS count [dvb]);
+
 DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
 
 #define dprintk(level,fmt, arg...)	if (debug = level) \
@@ -80,10 +84,10 @@ static int dvb_buf_setup(struct videobuf_queue *q,
 	struct cx8802_dev *dev = q-priv_data;
 
 	dev-ts_packet_size  = 188 * 4;
-	dev-ts_packet_count = 32;
+	dev-ts_packet_count = dvb_buf_tscnt;
 
 	*size  = dev-ts_packet_size * dev-ts_packet_count;
-	*count = 32;
+	*count = dvb_buf_tscnt;
 	return 0;
 }
 


(no subject)

2010-07-16 Thread Ang Way Chuang

unsubscribe linux-media
--
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: hvr4000 in general

2010-06-06 Thread Ang Way Chuang

That card definitely works on DVB-S2. The only problem I had with that card is 
its fragility. I have a few burnt HVR 4000 (lite) cards in the lab.

Lars Schotte wrote:

hi all hvr4000 friends

i am wondering if someone has this card working a little more then I do.

i have dvb-s working quite good. the only thing what I can say
positively about thisc card is that it at least reports a better signal
strength and also SNR. so it is possible that the part before the
chipset from the viewpoint of the signal arriving from space it may
have a better tuner.

but so far ... has someone dvb-s2 working? (on linux/not freebsd!!)
--
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: hvr4000 in general

2010-06-06 Thread Ang Way Chuang

Lars Schotte wrote:

yes? it works definitely? and how is that? again, I need something to
see and as long as it doesnt tune in and as long as no data is flowing
i can NOT see how it could be working.


Definitely works using szap-s2. Tuning works and so is the data. I don't have 
access to the system right now.



what fragility do you mean? did she burned out/ overheating, or what
kind of fragility?


One of the chip on the board got burned for all the burnt cards.



On Sun, 06 Jun 2010 16:30:31 +0800
Ang Way Chuang wcan...@gmail.com wrote:


That card definitely works on DVB-S2. The only problem I had with
that card is its fragility. I have a few burnt HVR 4000 (lite) cards
in the lab.

Lars Schotte wrote:

hi all hvr4000 friends

i am wondering if someone has this card working a little more then
I do.

i have dvb-s working quite good. the only thing what I can say
positively about thisc card is that it at least reports a better
signal strength and also SNR. so it is possible that the part
before the chipset from the viewpoint of the signal arriving from
space it may have a better tuner.

but so far ... has someone dvb-s2 working? (on linux/not freebsd!!)
--
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] dvb-core: Fix ULE decapsulation bug when less than 4 bytes of ULE SNDU is packed into the remaining bytes of a MPEG2-TS frame

2010-05-26 Thread Ang Way Chuang
ULE (Unidirectional Lightweight Encapsulation RFC 4326) decapsulation 
code has a bug that incorrectly treats ULE SNDU packed into the 
remaining 2 or 3 bytes of a MPEG2-TS frame as having invalid pointer 
field on the subsequent MPEG2-TS frame.


This patch was generated and tested against the latest Linus's pre
2.6.35-rc1 tree. 


Signed-off-by: Ang Way Chuang wc...@nav6.org
---
diff --git a/drivers/media/dvb/dvb-core/dvb_net.c 
b/drivers/media/dvb/dvb-core/dvb_net.c
index f6dac2b..6c3a8a0 100644
--- a/drivers/media/dvb/dvb-core/dvb_net.c
+++ b/drivers/media/dvb/dvb-core/dvb_net.c
@@ -351,6 +351,7 @@ static void dvb_net_ule( struct net_device *dev, const u8 
*buf, size_t buf_len )
const u8 *ts, *ts_end, *from_where = NULL;
u8 ts_remain = 0, how_much = 0, new_ts = 1;
struct ethhdr *ethh = NULL;
+   bool error = false;

#ifdef ULE_DEBUG
/* The code inside ULE_DEBUG keeps a history of the last 100 TS cells 
processed. */
@@ -460,10 +461,16 @@ static void dvb_net_ule( struct net_device *dev, const u8 
*buf, size_t buf_len )

/* Drop partly decoded SNDU, 
reset state, resync on PUSI. */
if (priv-ule_skb) {
-   dev_kfree_skb( 
priv-ule_skb );
+   error = true;
+   
dev_kfree_skb(priv-ule_skb);
+   }
+
+   if (error || 
priv-ule_sndu_remain) {
dev-stats.rx_errors++;

dev-stats.rx_frame_errors++;
+   error = false;
}
+
reset_ule(priv);
priv-need_pusi = 1;
continue;
@@ -535,6 +542,7 @@ static void dvb_net_ule( struct net_device *dev, const u8 
*buf, size_t buf_len )
from_where += 2;
}

+   priv-ule_sndu_remain = priv-ule_sndu_len + 2;
/*
 * State of current TS:
 *   ts_remain (remaining bytes in the current TS cell)
@@ -544,6 +552,7 @@ static void dvb_net_ule( struct net_device *dev, const u8 
*buf, size_t buf_len )
 */
switch (ts_remain) {
case 1:
+   priv-ule_sndu_remain--;
priv-ule_sndu_type = from_where[0]  
8;
priv-ule_sndu_type_1 = 1; /* first 
byte of ule_type is set. */
ts_remain -= 1; from_where += 1;
@@ -557,6 +566,7 @@ static void dvb_net_ule( struct net_device *dev, const u8 
*buf, size_t buf_len )
default: /* complete ULE header is present in 
current TS. */
/* Extract ULE type field. */
if (priv-ule_sndu_type_1) {
+   priv-ule_sndu_type_1 = 0;
priv-ule_sndu_type |= 
from_where[0];
from_where += 1; /* points to 
payload start. */
ts_remain -= 1;
--
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-core: Fix ULE decapsulation bug when less than 4 bytes of ULE SNDU is packed into the remaining bytes of a MPEG2-TS frame

2010-05-21 Thread Ang Way Chuang

Jarod Wilson wrote:

On Fri, May 21, 2010 at 11:40:34AM +0800, Ang Way Chuang wrote:

Hi Jarod,
   Thanks for the review. My answers are inlined.

Jarod Wilson wrote:

On Thu, May 06, 2010 at 02:52:22PM -, Ang Way Chuang wrote:

ULE (Unidirectional Lightweight Encapsulation RFC 4326)
decapsulation code has a bug that incorrectly treats ULE SNDU
packed into the remaining 2 or 3 bytes of a MPEG2-TS frame as
having invalid pointer field on the subsequent MPEG2-TS frame.

This patch was generated and tested against v2.6.34-rc6. I
suspect that this bug was introduced in kernel version 2.6.15,
but had not verified it.

Care has been taken not to introduce more bug by fixing this bug, but
please scrutinize the code because I always produces buggy code.

...

@@ -534,6 +535,7 @@ static void dvb_net_ule( struct net_device *dev, const u8 
*buf, size_t buf_len )
from_where += 2;
}

+   priv-ule_sndu_remain = priv-ule_sndu_len + 2;
/*
 * State of current TS:
 *   ts_remain (remaining bytes in the current TS cell)

Is this *always* true? Your description says ...the remaining 2 or 3
bytes, indicating this could sometimes need to be +3. Is +0 also a
possibility?


Not sure whether I understand your question correctly. Here is my
attempt to answer your question. The encapsulation format always
mandate that at least of 2 bytes of ULE SNDU (the LENGTH field) must
be present within a MPEG2-TS frame. So, if only 1 byte of the ULE
SNDU get packed into the remaining MPEG2-TS frame, then it is
invalid. Of course, there is no issue regarding 0 byte as that would
be the case of filling MPEG2-TS frame up to its boundary. New ULE
SNDU will have to packed into the next MPEG2-TS frame in that case.

Now the problem with existing code is the interpretation of
remainder length when 2 or 3 bytes of ULE SNDU are packed into the
remainder of MPEG2-TS frame. In the 2 bytes case, only the LENGTH
field is available while in the case 3 bytes, only the 1st octet of
the 2-octets TYPE field and the LENGTH field are available. The
ule_sndu_remain should carry the value of length of ULE SNDU
following the the TYPE field. Technically, this would mean that
remainder byte of ULE SNDU that need to be received is going to be:

Value(LENGTH) + 2 (We owe 2 bytes of TYPE field here) if only 2
bytes of ULE SNDU is packed (as in the case of case 0: at line 550).
This is addressed by adding the priv-ule_sndu_remain =
priv-ule_sndu_len + 2;

Value(LENGTH) + 1 (We owe 1 byte of TYPE field here) if 3 bytes of
ULE SNDU is packed (as in the case of case 1: at 545). This is
addressed by adding priv-ule_sndu_remain--;

If complete ULE header (= 4 bytes) is available:
priv-ule_sndu_remain = priv-ule_sndu_len; at line 582 takes care
of the rest and it works just fine in the existing code.

Due to the wrong interpretation of remaining length of ULE SNDU when
2 or 3 bytes of ULE SNDU are packed into a MPEG2-TS frame, the
subsequent checking of payload pointer (line 455) always fails
leading to unnecessary packet drops.

Looking back at the fix after a few months, I had trouble
understanding how these few lines fixed the problem at first glance.


Yeah, my question was whether or not the +2 would account for both the +2
bytes and +3 bytes situations, and it seems that's handled appropriately
by the ts_remain switch. Thank you for the detailed explanation.

If you'd alter that nested check for freeing the skb and give it a quick
test, I'm happy to throw an acked-by or reviewed-by on a followup
submission.




Got it. Thank you. I shall get that patch to you next week because I'm not in 
the lab now.
--
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-core: Fix ULE decapsulation bug when less than 4 bytes of ULE SNDU is packed into the remaining bytes of a MPEG2-TS frame

2010-05-20 Thread Ang Way Chuang

Hi Jarod,
   Thanks for the review. My answers are inlined.

Jarod Wilson wrote:

On Thu, May 06, 2010 at 02:52:22PM -, Ang Way Chuang wrote:
ULE (Unidirectional Lightweight Encapsulation RFC 4326) decapsulation 
code has a bug that incorrectly treats ULE SNDU packed into the 
remaining 2 or 3 bytes of a MPEG2-TS frame as having invalid pointer 
field on the subsequent MPEG2-TS frame.


This patch was generated and tested against v2.6.34-rc6. I suspect 
that this bug was introduced in kernel version 2.6.15, but had not 
verified it.


Care has been taken not to introduce more bug by fixing this bug, but
please scrutinize the code because I always produces buggy code.

Signed-off-by: Ang Way Chuang wc...@nav6.org

---

diff --git a/drivers/media/dvb/dvb-core/dvb_net.c 
b/drivers/media/dvb/dvb-core/dvb_net.c
index 441c064..35a4afb 100644
--- a/drivers/media/dvb/dvb-core/dvb_net.c
+++ b/drivers/media/dvb/dvb-core/dvb_net.c
@@ -458,8 +458,9 @@ static void dvb_net_ule( struct net_device *dev, const u8 
*buf, size_t buf_len )
   field: %u.\n, 
priv-ts_count, *from_where);

/* Drop partly decoded SNDU, 
reset state, resync on PUSI. */
-   if (priv-ule_skb) {
-   dev_kfree_skb( 
priv-ule_skb );
+   if (priv-ule_skb || 
priv-ule_sndu_remain) {
+   if (priv-ule_skb)
+   dev_kfree_skb( 
priv-ule_skb );
dev-stats.rx_errors++;

dev-stats.rx_frame_errors++;
}


That code block looks odd that way, but after staring at it for a minute,
it makes sense. Another way to do it that might read cleaner (and reduce
excessive tab indent levels) would be to add a 'bool errors', then:

bool errors = false;
...
if (priv-ule_skb) {
errors = true;
dev_kfree_skb(priv-ule_skb);
}

if (errors || priv-ule_sndu_remain) {
dev-stats.rx_errors++;
dev-stats.rx_frame_errors++;
}




Yeap, I'm a lazy person.


@@ -534,6 +535,7 @@ static void dvb_net_ule( struct net_device *dev, const u8 
*buf, size_t buf_len )
from_where += 2;
}

+   priv-ule_sndu_remain = priv-ule_sndu_len + 2;
/*
 * State of current TS:
 *   ts_remain (remaining bytes in the current TS cell)


Is this *always* true? Your description says ...the remaining 2 or 3
bytes, indicating this could sometimes need to be +3. Is +0 also a
possibility?




Not sure whether I understand your question correctly. Here is my attempt to answer your question. 
The encapsulation format always mandate that at least of 2 bytes of ULE SNDU (the LENGTH field) must 
be present within a MPEG2-TS frame. So, if only 1 byte of the ULE SNDU get packed into the 
remaining MPEG2-TS frame, then it is invalid. Of course, there is no issue regarding 0 byte as that 
would be the case of filling MPEG2-TS frame up to its boundary. New ULE SNDU will have to packed 
into the next MPEG2-TS frame in that case.


Now the problem with existing code is the interpretation of remainder length when 2 or 3 bytes of ULE 
SNDU are packed into the remainder of MPEG2-TS frame. In the 2 bytes case, only the LENGTH field is 
available while in the case 3 bytes, only the 1st octet of the 2-octets TYPE field and the LENGTH field 
are available. The ule_sndu_remain should carry the value of length of ULE SNDU following the the TYPE 
field. Technically, this would mean that remainder byte of ULE SNDU that need to be received is going 
to be:


Value(LENGTH) + 2 (We owe 2 bytes of TYPE field here) if only 2 bytes of ULE SNDU is packed (as in the 
case of case 0: at line 550). 
This is addressed by adding the priv-ule_sndu_remain = priv-ule_sndu_len + 2;


Value(LENGTH) + 1 (We owe 1 byte of TYPE field here) if 3 bytes of ULE SNDU is packed (as in the case of 
case 1: at 545). 
This is addressed by adding priv-ule_sndu_remain--;


If complete ULE header (= 4 bytes) is available:
priv-ule_sndu_remain = priv-ule_sndu_len; at line 582 takes care of the rest and it works just fine in 
the existing code.


Due to the wrong interpretation of remaining length of ULE SNDU when 2 or 3 bytes of ULE SNDU are packed 
into a MPEG2-TS frame, the subsequent checking of payload pointer (line 455) always fails leading to 
unnecessary packet drops.


Looking back at the fix after a few months, I had trouble understanding how these few lines fixed the 
problem at first glance.




@@ -543,6

Re: [GIT PULL for 2.6.35] V4L/DVB updates

2010-05-19 Thread Ang Way Chuang

Hi Mauro/Linux DVB developers,

   Can someone please review the following patch asap?
https://patchwork.kernel.org/patch/97358/

   I may not have access to the testbed for long because I'm leaving my 
university soon. I had been using the fix introduced through this patch on my 
testbed since 2.6.32 and had not experienced any issue of dropped packets yet. 
If there is any problem with this patch, I can follow up while I'm still here. 
I would like take this opportunity to express my gratitude towards Linux DVB 
developers. Without you guys, I won't have any platform for my research. Thanks 
a lot.


Regards,
Ang Way Chuang
--
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


this is a test mail

2010-05-06 Thread Ang Way Chuang

Please ignore this email. why can't i get my email through linux media mailing 
list when i can receive 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


[PATCH] dvb-core: Fix ULE decapsulation bug when less than 4 bytes of ULE SNDU is packed into the remaining bytes of a MPEG2-TS frame

2010-05-06 Thread Ang Way Chuang
ULE (Unidirectional Lightweight Encapsulation RFC 4326) decapsulation 
code has a bug that incorrectly treats ULE SNDU packed into the 
remaining 2 or 3 bytes of a MPEG2-TS frame as having invalid pointer 
field on the subsequent MPEG2-TS frame.


This patch was generated and tested against v2.6.34-rc6. I suspect 
that this bug was introduced in kernel version 2.6.15, but had not 
verified it.


Care has been taken not to introduce more bug by fixing this bug, but
please scrutinize the code because I always produces buggy code.

Signed-off-by: Ang Way Chuang wc...@nav6.org
---
diff --git a/drivers/media/dvb/dvb-core/dvb_net.c 
b/drivers/media/dvb/dvb-core/dvb_net.c
index 441c064..35a4afb 100644
--- a/drivers/media/dvb/dvb-core/dvb_net.c
+++ b/drivers/media/dvb/dvb-core/dvb_net.c
@@ -458,8 +458,9 @@ static void dvb_net_ule( struct net_device *dev, const u8 
*buf, size_t buf_len )
   field: %u.\n, 
priv-ts_count, *from_where);

/* Drop partly decoded SNDU, 
reset state, resync on PUSI. */
-   if (priv-ule_skb) {
-   dev_kfree_skb( 
priv-ule_skb );
+   if (priv-ule_skb || 
priv-ule_sndu_remain) {
+   if (priv-ule_skb)
+   dev_kfree_skb( 
priv-ule_skb );
dev-stats.rx_errors++;

dev-stats.rx_frame_errors++;
}
@@ -534,6 +535,7 @@ static void dvb_net_ule( struct net_device *dev, const u8 
*buf, size_t buf_len )
from_where += 2;
}

+   priv-ule_sndu_remain = priv-ule_sndu_len + 2;
/*
 * State of current TS:
 *   ts_remain (remaining bytes in the current TS cell)
@@ -543,6 +545,7 @@ static void dvb_net_ule( struct net_device *dev, const u8 
*buf, size_t buf_len )
 */
switch (ts_remain) {
case 1:
+   priv-ule_sndu_remain--;
priv-ule_sndu_type = from_where[0]  
8;
priv-ule_sndu_type_1 = 1; /* first 
byte of ule_type is set. */
ts_remain -= 1; from_where += 1;
@@ -556,6 +559,7 @@ static void dvb_net_ule( struct net_device *dev, const u8 
*buf, size_t buf_len )
default: /* complete ULE header is present in 
current TS. */
/* Extract ULE type field. */
if (priv-ule_sndu_type_1) {
+   priv-ule_sndu_type_1 = 0;
priv-ule_sndu_type |= 
from_where[0];
from_where += 1; /* points to 
payload start. */
ts_remain -= 1;




--
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: this is a test mail

2010-05-06 Thread Ang Way Chuang

That's weird. You can receive my email, yet I don't receive my email from the 
mailing list. Does that mean my patch went through as well?

Jed wrote:

Try sending via your ISP's SMTP host instead of Google's.
I had issues with this list until I made the switch.

On 7/05/10 12:51 AM, Ang Way Chuang wrote:

Please ignore this email. why can't i get my email through linux media
mailing list when i can receive 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


--
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: this is a test mail

2010-05-06 Thread Ang Way Chuang
Oops, my bad. 


Jed wrote:

Anyone know why we're getting 2 emails every time one sends only to
linux-media@vger.kernel.org ?
It's a tincy bit irritating, not that I'm complaining  ;)

On 7/05/10 12:57 AM, Jed wrote:

Try sending via your ISP's SMTP host instead of Google's.
I had issues with this list until I made the switch.

On 7/05/10 12:51 AM, Ang Way Chuang wrote:

Please ignore this email. why can't i get my email through linux media
mailing list when i can receive 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


--
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



--
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: this is a test mail

2010-05-06 Thread Ang Way Chuang

Thanks. Mauro. It's there. Hope the patch will be accepted.

Mauro Carvalho Chehab wrote:

Ang Way Chuang wrote:

That's weird. You can receive my email, yet I don't receive my email
from the mailing list. Does that mean my patch went through as well?


Just check at patchwork.kernel.org. If you sent a patch correctly
(e. g., in plain text only, no html, no line wrap), your patches
should be there.

Jed wrote:

Try sending via your ISP's SMTP host instead of Google's.
I had issues with this list until I made the switch.

On 7/05/10 12:51 AM, Ang Way Chuang wrote:

Please ignore this email. why can't i get my email through linux media
mailing list when i can receive 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


--
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





--
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] dvb-core: Fix ULE decapsulation bug when less than 4 bytes of ULE SNDU is packed into the remaining bytes of a MPEG2-TS frame

2009-11-24 Thread Ang Way Chuang
Okay, resending. Hope it won't do line wrapping.

ULE (Unidirectional Lightweight Encapsulation RFC 4326) decapsulation
code has a bug that incorrectly treats ULE SNDU packed into the
remaining 2 or 3 bytes of a MPEG2-TS frame as having invalid pointer
field on the subsequent MPEG2-TS frame.

This patch was generated and tested against v2.6.32-rc8. Similar patch
was applied and tested using 2.6.27 which is similar to the latest
dvb_net.c, except for network device statistical data structure. I
suspect that this bug was introduced in kernel version 2.6.15, but had
not verified it.

Care has been taken not to introduce more bug by fixing this bug, but
please scrutinize the code for I always produces buggy code.

Signed-off-by: Ang Way Chuang wc...@nav6.org
---
diff --git a/drivers/media/dvb/dvb-core/dvb_net.c
b/drivers/media/dvb/dvb-core/dvb_net.c
index 0241a7c..7e0db86 100644
--- a/drivers/media/dvb/dvb-core/dvb_net.c
+++ b/drivers/media/dvb/dvb-core/dvb_net.c
@@ -458,8 +458,9 @@ static void dvb_net_ule( struct net_device *dev,
const u8 *buf, size_t buf_len )
   field: %u.\n, 
priv-ts_count, *from_where);

/* Drop partly decoded SNDU, 
reset state, resync on PUSI. */
-   if (priv-ule_skb) {
-   dev_kfree_skb( 
priv-ule_skb );
+   if (priv-ule_skb || 
priv-ule_sndu_remain) {
+   if (priv-ule_skb)
+   dev_kfree_skb( 
priv-ule_skb );
dev-stats.rx_errors++;

dev-stats.rx_frame_errors++;
}
@@ -533,6 +534,7 @@ static void dvb_net_ule( struct net_device *dev,
const u8 *buf, size_t buf_len )
from_where += 2;
}

+   priv-ule_sndu_remain = priv-ule_sndu_len + 2;
/*
 * State of current TS:
 *   ts_remain (remaining bytes in the current TS cell)
@@ -542,6 +544,7 @@ static void dvb_net_ule( struct net_device *dev,
const u8 *buf, size_t buf_len )
 */
switch (ts_remain) {
case 1:
+   priv-ule_sndu_remain--;
priv-ule_sndu_type = from_where[0]  
8;
priv-ule_sndu_type_1 = 1; /* first 
byte of ule_type is set. */
ts_remain -= 1; from_where += 1;
@@ -555,6 +558,7 @@ static void dvb_net_ule( struct net_device *dev,
const u8 *buf, size_t buf_len )
default: /* complete ULE header is present in 
current TS. */
/* Extract ULE type field. */
if (priv-ule_sndu_type_1) {
+   priv-ule_sndu_type_1 = 0;
priv-ule_sndu_type |= 
from_where[0];
from_where += 1; /* points to 
payload start. */
ts_remain -= 1;
--
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] dvb-core: Fix ULE decapsulation bug when less than 4 bytes of ULE SNDU is packed into the remaining bytes of a MPEG2-TS frame

2009-11-24 Thread Ang Way Chuang
Sorry, line wrap again. I shall test and fix the problem first before
resending the patch.

On Tue, Nov 24, 2009 at 4:04 PM, Ang Way Chuang wcan...@gmail.com wrote:
 Okay, resending. Hope it won't do line wrapping.

 ULE (Unidirectional Lightweight Encapsulation RFC 4326) decapsulation
 code has a bug that incorrectly treats ULE SNDU packed into the
 remaining 2 or 3 bytes of a MPEG2-TS frame as having invalid pointer
 field on the subsequent MPEG2-TS frame.

 This patch was generated and tested against v2.6.32-rc8. Similar patch
 was applied and tested using 2.6.27 which is similar to the latest
 dvb_net.c, except for network device statistical data structure. I
 suspect that this bug was introduced in kernel version 2.6.15, but had
 not verified it.

 Care has been taken not to introduce more bug by fixing this bug, but
 please scrutinize the code for I always produces buggy code.

 Signed-off-by: Ang Way Chuang wc...@nav6.org
 ---
 diff --git a/drivers/media/dvb/dvb-core/dvb_net.c
 b/drivers/media/dvb/dvb-core/dvb_net.c
 index 0241a7c..7e0db86 100644
 --- a/drivers/media/dvb/dvb-core/dvb_net.c
 +++ b/drivers/media/dvb/dvb-core/dvb_net.c
 @@ -458,8 +458,9 @@ static void dvb_net_ule( struct net_device *dev,
 const u8 *buf, size_t buf_len )
                                                       field: %u.\n, 
 priv-ts_count, *from_where);

                                                /* Drop partly decoded SNDU, 
 reset state, resync on PUSI. */
 -                                               if (priv-ule_skb) {
 -                                                       dev_kfree_skb( 
 priv-ule_skb );
 +                                               if (priv-ule_skb || 
 priv-ule_sndu_remain) {
 +                                                       if (priv-ule_skb)
 +                                                               
 dev_kfree_skb( priv-ule_skb );
                                                        dev-stats.rx_errors++;
                                                        
 dev-stats.rx_frame_errors++;
                                                }
 @@ -533,6 +534,7 @@ static void dvb_net_ule( struct net_device *dev,
 const u8 *buf, size_t buf_len )
                                from_where += 2;
                        }

 +                       priv-ule_sndu_remain = priv-ule_sndu_len + 2;
                        /*
                         * State of current TS:
                         *   ts_remain (remaining bytes in the current TS cell)
 @@ -542,6 +544,7 @@ static void dvb_net_ule( struct net_device *dev,
 const u8 *buf, size_t buf_len )
                         */
                        switch (ts_remain) {
                                case 1:
 +                                       priv-ule_sndu_remain--;
                                        priv-ule_sndu_type = from_where[0]  
 8;
                                        priv-ule_sndu_type_1 = 1; /* first 
 byte of ule_type is set. */
                                        ts_remain -= 1; from_where += 1;
 @@ -555,6 +558,7 @@ static void dvb_net_ule( struct net_device *dev,
 const u8 *buf, size_t buf_len )
                                default: /* complete ULE header is present in 
 current TS. */
                                        /* Extract ULE type field. */
                                        if (priv-ule_sndu_type_1) {
 +                                               priv-ule_sndu_type_1 = 0;
                                                priv-ule_sndu_type |= 
 from_where[0];
                                                from_where += 1; /* points to 
 payload start. */
                                                ts_remain -= 1;

--
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] dvb-core: Fix ULE decapsulation bug when less than 4 bytes of ULE SNDU is packed into the remaining bytes of a MPEG2-TS frame

2009-11-23 Thread Ang Way Chuang
ULE (Unidirectional Lightweight Encapsulation RFC 4326) decapsulation
code has a bug that incorrectly treats ULE SNDU packed into the
remaining 2 or 3 bytes of a MPEG2-TS frame as having invalid pointer
field on the subsequent MPEG2-TS frame.

This patch was generated and tested against v2.6.32-rc8. Similar patch
was applied and tested using 2.6.27 which is similar to the latest
dvb_net.c, except for network device statistical data structure. I
suspect that this bug was introduced in kernel version 2.6.15, but had
not verified it.

Care has been taken not to introduce more bug by fixing this bug, but
please scrutinize the code for I always produces buggy code.

Signed-off-by: Ang Way Chuang wc...@nav6.org
---
diff --git a/drivers/media/dvb/dvb-core/dvb_net.c
b/drivers/media/dvb/dvb-core/dvb_net.c
index 0241a7c..7e0db86 100644
--- a/drivers/media/dvb/dvb-core/dvb_net.c
+++ b/drivers/media/dvb/dvb-core/dvb_net.c
@@ -458,8 +458,9 @@ static void dvb_net_ule( struct net_device *dev,
const u8 *buf, size_t buf_len )
   field: %u.\n, 
priv-ts_count, *from_where);

/* Drop partly decoded SNDU, 
reset state, resync on PUSI. */
-   if (priv-ule_skb) {
-   dev_kfree_skb( 
priv-ule_skb );
+   if (priv-ule_skb || 
priv-ule_sndu_remain) {
+   if (priv-ule_skb)
+   dev_kfree_skb( 
priv-ule_skb );
dev-stats.rx_errors++;

dev-stats.rx_frame_errors++;
}
@@ -533,6 +534,7 @@ static void dvb_net_ule( struct net_device *dev,
const u8 *buf, size_t buf_len )
from_where += 2;
}

+   priv-ule_sndu_remain = priv-ule_sndu_len + 2;
/*
 * State of current TS:
 *   ts_remain (remaining bytes in the current TS cell)
@@ -542,6 +544,7 @@ static void dvb_net_ule( struct net_device *dev,
const u8 *buf, size_t buf_len )
 */
switch (ts_remain) {
case 1:
+   priv-ule_sndu_remain--;
priv-ule_sndu_type = from_where[0]  
8;
priv-ule_sndu_type_1 = 1; /* first 
byte of ule_type is set. */
ts_remain -= 1; from_where += 1;
@@ -555,6 +558,7 @@ static void dvb_net_ule( struct net_device *dev,
const u8 *buf, size_t buf_len )
default: /* complete ULE header is present in 
current TS. */
/* Extract ULE type field. */
if (priv-ule_sndu_type_1) {
+   priv-ule_sndu_type_1 = 0;
priv-ule_sndu_type |= 
from_where[0];
from_where += 1; /* points to 
payload start. */
ts_remain -= 1;
--
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] dvb-core: Fix ULE decapsulation bug when less than 4 bytes of ULE SNDU is packed into the remaining bytes of a MPEG2-TS frame

2009-11-23 Thread Ang Way Chuang
ULE (Unidirectional Lightweight Encapsulation RFC 4326) decapsulation
code has a bug that incorrectly treats ULE SNDU packed into the
remaining 2 or 3 bytes of a MPEG2-TS frame as having invalid pointer
field on the subsequent MPEG2-TS frame.

This patch was generated and tested against v2.6.32-rc8. Similar patch
was applied and tested using 2.6.27 which is similar to the latest
dvb_net.c, except for network device statistical data structure. I
suspect that this bug was introduced in kernel version 2.6.15, but had
not verified it.

Care has been taken not to introduce more bug by fixing this bug, but
please scrutinize the code for I always produces buggy code.

Signed-off-by: Ang Way Chuang wc...@nav6.org
---
diff --git a/drivers/media/dvb/dvb-core/dvb_net.c
b/drivers/media/dvb/dvb-core/dvb_net.c
index 0241a7c..7e0db86 100644
--- a/drivers/media/dvb/dvb-core/dvb_net.c
+++ b/drivers/media/dvb/dvb-core/dvb_net.c
@@ -458,8 +458,9 @@ static void dvb_net_ule( struct net_device *dev,
const u8 *buf, size_t buf_len )
                                                      field: %u.\n,
priv-ts_count, *from_where);

                                               /* Drop partly decoded
SNDU, reset state, resync on PUSI. */
-                                               if (priv-ule_skb) {
-                                                       dev_kfree_skb(
priv-ule_skb );
+                                               if (priv-ule_skb ||
priv-ule_sndu_remain) {
+                                                       if (priv-ule_skb)
+
dev_kfree_skb( priv-ule_skb );
                                                       dev-stats.rx_errors++;

dev-stats.rx_frame_errors++;
                                               }
@@ -533,6 +534,7 @@ static void dvb_net_ule( struct net_device *dev,
const u8 *buf, size_t buf_len )
                               from_where += 2;
                       }

+                       priv-ule_sndu_remain = priv-ule_sndu_len + 2;
                       /*
                        * State of current TS:
                        *   ts_remain (remaining bytes in the current TS cell)
@@ -542,6 +544,7 @@ static void dvb_net_ule( struct net_device *dev,
const u8 *buf, size_t buf_len )
                        */
                       switch (ts_remain) {
                               case 1:
+                                       priv-ule_sndu_remain--;
                                       priv-ule_sndu_type = from_where[0]  8;
                                       priv-ule_sndu_type_1 = 1; /*
first byte of ule_type is set. */
                                       ts_remain -= 1; from_where += 1;
@@ -555,6 +558,7 @@ static void dvb_net_ule( struct net_device *dev,
const u8 *buf, size_t buf_len )
                               default: /* complete ULE header is
present in current TS. */
                                       /* Extract ULE type field. */
                                       if (priv-ule_sndu_type_1) {
+                                               priv-ule_sndu_type_1 = 0;
                                               priv-ule_sndu_type |=
from_where[0];
                                               from_where += 1; /*
points to payload start. */
                                               ts_remain -= 1;
--
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] dvb-core: Fix ULE decapsulation bug when less than 4 bytes of ULE SNDU is packed into the remaining bytes of a MPEG2-TS frame

2009-11-17 Thread Ang Way Chuang
ULE (Unidirectional Lightweight Encapsulation RFC 4326) decapsulation
code has a bug that incorrectly treats ULE SNDU packed into the remaining
2 or 3 bytes of a MPEG2-TS frame as having invalid pointer field on the
subsequent MPEG2-TS frame.

This patch was generated against v2.6.32-rc7, however it wasn't tested
using that kernel. Similar patch was applied and tested using 2.6.27 which
is similar to the latest dvb_net.c, except for network device statistical data
structure. I suspect that this bug was introduced in kernel version 2.6.15,
but had not verified it.

Care has been taken not to introduce more bug by fixing this bug, but
please scrutinize the code for I always produces buggy code.

Signed-off-by: Ang Way Chuang wc...@nav6.org
--
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] dvb-core: Fix ULE decapsulation bug when less than 4 bytes of ULE SNDU is packed into the remaining bytes of a MPEG2-TS frame

2009-11-17 Thread Ang Way Chuang
ULE (Unidirectional Lightweight Encapsulation RFC 4326) decapsulation
code has a bug that incorrectly treats ULE SNDU packed into the remaining
2 or 3 bytes of a MPEG2-TS frame as having invalid pointer field on the
subsequent MPEG2-TS frame.

This patch was generated against v2.6.32-rc7, however it wasn't tested
using that kernel. Similar patch was applied and tested using 2.6.27 which
is similar to the latest dvb_net.c, except for network device statistical data
structure. I suspect that this bug was introduced in kernel version 2.6.15,
but had not verified it.

Care has been taken not to introduce more bug by fixing this bug, but
please scrutinize the code for I always produces buggy code.

Signed-off-by: Ang Way Chuang wc...@nav6.org
---
diff --git a/drivers/media/dvb/dvb-core/dvb_net.c
b/drivers/media/dvb/dvb-core/dvb_net.c
index 0241a7c..a521395 100644
--- a/drivers/media/dvb/dvb-core/dvb_net.c
+++ b/drivers/media/dvb/dvb-core/dvb_net.c
@@ -533,6 +533,7 @@ static void dvb_net_ule( struct net_device *dev,
const u8 *buf, size_t buf_len )
from_where += 2;
}

+   priv-ule_sndu_remain = priv-ule_sndu_len + 2;
/*
 * State of current TS:
 *   ts_remain (remaining bytes in the current TS cell)
@@ -542,6 +543,7 @@ static void dvb_net_ule( struct net_device *dev,
const u8 *buf, size_t buf_len )
 */
switch (ts_remain) {
case 1:
+   priv-ule_sndu_remain--;
priv-ule_sndu_type = from_where[0]  
8;
priv-ule_sndu_type_1 = 1; /* first 
byte of ule_type is set. */
ts_remain -= 1; from_where += 1;
@@ -555,6 +557,7 @@ static void dvb_net_ule( struct net_device *dev,
const u8 *buf, size_t buf_len )
default: /* complete ULE header is present in 
current TS. */
/* Extract ULE type field. */
if (priv-ule_sndu_type_1) {
+   priv-ule_sndu_type_1 = 0;
priv-ule_sndu_type |= 
from_where[0];
from_where += 1; /* points to 
payload start. */
ts_remain -= 1;
--
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: No subsystem id (and therefore no cx88_dvb loaded) after reboot

2009-03-18 Thread Ang Way Chuang

Ang Way Chuang wrote:
I experience similar problem with HVR4000 Lite cards that we have in the 
lab. The card can't tune after cold boot, but a reboot will fix the 
problem. I will check whether it has the similar invalid subsystem id 
problem.


Unfortunately, I can't reproduce the cold boot tuning problem now. We'll 
send syslog information if our partner universities report the similar 
issue. Sorry.




Grant Gardner wrote:



I'm looking for some pointers on debugging a problem with my DVICO
FusionHDTV Hybrid DVB-T card.

The device was working perfectly prior to a reconfiguration of my 
machine,

kernel upgrade etc...

Now, on a cold start everything seems to start smoothly but I can't tune
channels.

Then, after a reboot the device is not detected due to invalid subsystem
id. As below lspci reports no subsystem information at all.
Comparing the lspci output seems to be around the Region 0: Memory at
ee00 v de00, but I'm not
sure what this means, and whether fixing the reboot problem will fix the
channel tuning problem.

Running mythbuntu 8.10
2.6.27-11-generic #1 SMP Thu Jan 29 19:28:32 UTC 2009 x86_64 GNU/Linux

lspci -vvnn after cold start

00:0a.0 Multimedia video controller [0400]: Conexant Systems, Inc.
CX23880/1/2/3 PCI Video and Audio Decoder [14f1:8800] (rev 05)
Subsystem: DViCO Corporation Device [18ac:db40]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- 
TAbort-

MAbort- SERR- PERR- INTx-
Latency: 32 (5000ns min, 13750ns max), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 18
Region 0: Memory at de00 (32-bit, non-prefetchable) [size=16M]
Capabilities: [44] Vital Product Data ?
Capabilities: [4c] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: cx8800
Kernel modules: cx8800

00:0a.1 Multimedia controller [0480]: Conexant Systems, Inc. 
CX23880/1/2/3

PCI Video and Audio Decoder [Audio Port] [14f1:8811] (rev 05)
Subsystem: DViCO Corporation Device [18ac:db40]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- 
TAbort-

MAbort- SERR- PERR- INTx-
Latency: 32 (1000ns min, 63750ns max), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 11
Region 0: Memory at df00 (32-bit, non-prefetchable) [size=16M]
Capabilities: [4c] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Kernel modules: cx88-alsa

00:0a.2 Multimedia controller [0480]: Conexant Systems, Inc. 
CX23880/1/2/3

PCI Video and Audio Decoder [MPEG Port] [14f1:8802] (rev 05)
Subsystem: DViCO Corporation Device [18ac:db40]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- 
TAbort-

MAbort- SERR- PERR- INTx-
Latency: 32 (1500ns min, 22000ns max), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 18
Region 0: Memory at e000 (32-bit, non-prefetchable) [size=16M]
Capabilities: [4c] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)

currently, though we're working on a commercial implementation of the
RTP profile.

If you're interested in the GPL'ed UDP profile code, we can email it to
you in a week or two (we'll eventually make it available on our website
as well, but currently it needs to be cleaned up a bit).

T.C.

Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: cx88-mpeg driver manager
Kernel modules: cx8802


lspci -vvnn after warm reboot

00:0a.0 Multimedia video controller [0400]: Conexant Systems, Inc.
CX23880/1/2/3 PCI Video and Audio Decoder [14f1:8800] (rev 05)
  Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
  Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium TAbort-
TAbort- MAbort- SERR- PERR- INTx-
  Latency: 32 (5000ns min, 13750ns max), Cache Line Size: 32 bytes
  Interrupt: pin A routed to IRQ 18
  Region 0: Memory at ee00 (32-bit, non-prefetchable) [size=16M]
  Capabilities: [44] Vital Product Data ?
  Capabilities: [4c] Power Management version 2
  Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
  Status: D0 PME-Enable- DSel=0 DScale=0 PME-
  Kernel driver in use: cx8800
  Kernel modules: cx8800
--
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

Re: No subsystem id (and therefore no cx88_dvb loaded) after reboot

2009-03-17 Thread Ang Way Chuang
I experience similar problem with HVR4000 Lite cards that we have in the 
lab. The card can't tune after cold boot, but a reboot will fix the 
problem. I will check whether it has the similar invalid subsystem id 
problem.


Grant Gardner wrote:



I'm looking for some pointers on debugging a problem with my DVICO
FusionHDTV Hybrid DVB-T card.

The device was working perfectly prior to a reconfiguration of my machine,
kernel upgrade etc...

Now, on a cold start everything seems to start smoothly but I can't tune
channels.

Then, after a reboot the device is not detected due to invalid subsystem
id. As below lspci reports no subsystem information at all. 


Comparing the lspci output seems to be around the Region 0: Memory at
ee00 v de00, but I'm not
sure what this means, and whether fixing the reboot problem will fix the
channel tuning problem.

Running mythbuntu 8.10
2.6.27-11-generic #1 SMP Thu Jan 29 19:28:32 UTC 2009 x86_64 GNU/Linux

lspci -vvnn after cold start

00:0a.0 Multimedia video controller [0400]: Conexant Systems, Inc.
CX23880/1/2/3 PCI Video and Audio Decoder [14f1:8800] (rev 05)
Subsystem: DViCO Corporation Device [18ac:db40]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- 
TAbort-
MAbort- SERR- PERR- INTx-
Latency: 32 (5000ns min, 13750ns max), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 18
Region 0: Memory at de00 (32-bit, non-prefetchable) [size=16M]
Capabilities: [44] Vital Product Data ?
Capabilities: [4c] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: cx8800
Kernel modules: cx8800

00:0a.1 Multimedia controller [0480]: Conexant Systems, Inc. CX23880/1/2/3
PCI Video and Audio Decoder [Audio Port] [14f1:8811] (rev 05)
Subsystem: DViCO Corporation Device [18ac:db40]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- 
TAbort-
MAbort- SERR- PERR- INTx-
Latency: 32 (1000ns min, 63750ns max), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 11
Region 0: Memory at df00 (32-bit, non-prefetchable) [size=16M]
Capabilities: [4c] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Kernel modules: cx88-alsa

00:0a.2 Multimedia controller [0480]: Conexant Systems, Inc. CX23880/1/2/3
PCI Video and Audio Decoder [MPEG Port] [14f1:8802] (rev 05)
Subsystem: DViCO Corporation Device [18ac:db40]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- 
TAbort-
MAbort- SERR- PERR- INTx-
Latency: 32 (1500ns min, 22000ns max), Cache Line Size: 32 bytes
Interrupt: pin A routed to IRQ 18
Region 0: Memory at e000 (32-bit, non-prefetchable) [size=16M]
Capabilities: [4c] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: cx88-mpeg driver manager
Kernel modules: cx8802


lspci -vvnn after warm reboot

00:0a.0 Multimedia video controller [0400]: Conexant Systems, Inc.
CX23880/1/2/3 PCI Video and Audio Decoder [14f1:8800] (rev 05)
  Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
  Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium TAbort-
TAbort- MAbort- SERR- PERR- INTx-
  Latency: 32 (5000ns min, 13750ns max), Cache Line Size: 32 bytes
  Interrupt: pin A routed to IRQ 18
  Region 0: Memory at ee00 (32-bit, non-prefetchable) [size=16M]
  Capabilities: [44] Vital Product Data ?
  Capabilities: [4c] Power Management version 2
  Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
  Status: D0 PME-Enable- DSel=0 DScale=0 PME-
  Kernel driver in use: cx8800
  Kernel modules: cx8800
--
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: SNR status for demods

2009-03-17 Thread Ang Way Chuang

Thank you very much, Devin Heitmueller. This list is a god-sent :).

Devin Heitmueller wrote:

Hello all,

I have updated my compiled list of the various demods and how they
currently report SNR info (including feedback from people in the last
round).

http://www.devinheitmueller.com/snr.txt

Here's how you can help out:

If you are a maintainer for a device in this list, please let me know
so I can update the document.  If you are the maintainer and somebody
else's name is listed by the device, please do not take offense to
this (it's probably just an error on my part [please email and correct
me]).

If you have specs for a device in this list where the format is
currently unknown, please let me know as this will be helpful in
identifying which demods we can get accurate information for.

If you know something about how SNR is currently reported by the
driver, and it is not reflected in this list, please let me know and I
will update the document.

All of the above information will be helpful once a format has been
decided on, so we can pull together and finally get a consistent
interface.

Thank you for your time,

Devin



--
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


kernel oops in dvb_net

2009-03-12 Thread Ang Way Chuang

Hi linux-tver,
Not sure whether this is the right mailing list or not. I've
encountered a kernel oops in dvb_net. My receiver card is HVR-4000 Lite.
I'm running a rawhide kernel on Fedora 10. Attached is the syslog just
before when nuts. I tested with rawhide kernel version 
2.6.29-0.124.rc5.fc10.i586 and vanilla kernel 2.6.28.7.


I'm using the receiver card for ULE decapsulation. Should you need more
information, please drop me a mail. Attached are the kernel oops message 
of the 2 kernels just before the system freeze.


Thanks.

Regards,
Ang Way Chuang

Mar  9 16:18:44 localhost kernel: dvb0_0: no ts feed to stop
Mar  9 16:18:44 localhost kernel: dvb_net: removed network interface dvb0_0
Mar  9 16:18:44 localhost kernel: 1802201963: Expected 1802201963 more SNDU 
bytes, but got PUSI (pf 0, ts_remain 183).  Flushing incomplete payload.
Mar  9 16:18:44 localhost kernel: BUG: unable to handle kernel paging request 
at 6b6b6c1f
Mar  9 16:18:44 localhost kernel: IP: [c065c31f] kfree_skb+0x9/0x32
Mar  9 16:18:44 localhost kernel: *pde =  
Mar  9 16:18:44 localhost kernel: Oops:  [#1] SMP 
Mar  9 16:18:44 localhost kernel: last sysfs file: 
/sys/devices/virtual/net/dvb0_0/flags
Mar  9 16:18:44 localhost kernel: Modules linked in: sco bridge stp llc bnep 
l2cap bluetooth ip6t_REJECT nf_conntrack_ipv6 ip6table_filter ip6_tables ipv6 
cpufreq_ondemand acpi_cpufreq dm_multipath uinput isl6421 cx24116 
snd_hda_codec_realtek cx88_dvb cx88_vp3054_i2c snd_hda_intel videobuf_dvb 
dvb_core tuner cx8802 cx8800 cx88_alsa snd_hda_codec snd_hwdep cx88xx 
snd_seq_dummy snd_seq_oss ir_common tveeprom snd_seq_midi_event v4l2_common 
snd_seq videodev snd_seq_device snd_pcm_oss snd_mixer_oss snd_pcm v4l1_compat 
videobuf_dma_sg videobuf_core iTCO_wdt btcx_risc iTCO_vendor_support ppdev 
floppy pcspkr snd_timer snd i2c_i801 r8169 soundcore parport_pc via_velocity 
parport snd_page_alloc mii crc_ccitt ata_generic pata_acpi i915 drm 
i2c_algo_bit i2c_core [last unloaded: microcode]
Mar  9 16:18:44 localhost kernel:
Mar  9 16:18:44 localhost kernel: Pid: 4024, comm: cx88[0] dvb Tainted: G   
 W  (2.6.29-0.124.rc5.fc10.i586 #1) Prime Series
Mar  9 16:18:44 localhost kernel: EIP: 0060:[c065c31f] EFLAGS: 00010002 CPU: 1
Mar  9 16:18:44 localhost kernel: EIP is at kfree_skb+0x9/0x32
Mar  9 16:18:44 localhost kernel: EAX: 6b6b6b6b EBX: fa4ca301 ECX: 6b6b6b6b 
EDX: 01a2c000
Mar  9 16:18:44 localhost kernel: ESI: f4d415e0 EDI: f4d41060 EBP: f4e09ec4 
ESP: f4e09ec4
Mar  9 16:18:44 localhost kernel: DS: 007b ES: 007b FS: 00d8 GS:  SS: 0068
Mar  9 16:18:44 localhost kernel: Process cx88[0] dvb (pid: 4024, ti=f4e09000 
task=f4f029e0 task.ti=f4e09000)
Mar  9 16:18:44 localhost kernel: Stack:
Mar  9 16:18:44 localhost kernel: f4e09f40 f81939fd f81973d1 6b6b6b6b 6b6b6b6b 
 00b7 f4c0d3c0
Mar  9 16:18:44 localhost kernel: f4d415e0 fa4ca318 f4d41060 b7a5b100 fa4ca31d 
fa4ca3d4 f4d411c4 f4d4162c
Mar  9 16:18:44 localhost kernel: b4b6ba84 0be6 f4e09f20  f4d022a4 
f4d022a4 f4d02294 0293
Mar  9 16:18:44 localhost kernel: Call Trace:
Mar  9 16:18:44 localhost kernel: [f81939fd] ? 
dvb_net_ts_callback+0x340/0xa57 [dvb_core]
Mar  9 16:18:44 localhost kernel: [f818ce97] ? 
dvb_dmx_swfilter_packet+0x122/0x300 [dvb_core]
Mar  9 16:18:44 localhost kernel: [c06e66b2] ? _spin_lock_irqsave+0x63/0x6d
Mar  9 16:18:44 localhost kernel: [f818e073] ? dvb_dmx_swfilter+0xce/0x10d 
[dvb_core]
Mar  9 16:18:44 localhost kernel: [f80e25f2] ? videobuf_dvb_thread+0xad/0x12f 
[videobuf_dvb]
Mar  9 16:18:44 localhost kernel: [f80e2545] ? videobuf_dvb_thread+0x0/0x12f 
[videobuf_dvb]
Mar  9 16:18:44 localhost kernel: [c043fe95] ? kthread+0x3b/0x61
Mar  9 16:18:44 localhost kernel: [c043fe5a] ? kthread+0x0/0x61
Mar  9 16:18:44 localhost kernel: [c04046f7] ? kernel_thread_helper+0x7/0x10
Mar  9 16:18:44 localhost kernel: Code: 00 00 88 4b 65 f0 ff 0a 0f 94 c0 84 c0 
74 10 8d 93 48 ff ff ff a1 34 37 8b c0 e8 1f 44 e4 ff 5b 5d c3 55 85 c0 89 e5 
89 c1 74 27 8b 80 b4 00 00 00 48 75 07 0f ae e8 89 f6 eb 10 8d 81 b4 00 00 
Mar  9 16:18:44 localhost kernel: EIP: [c065c31f] kfree_skb+0x9/0x32 SS:ESP 
0068:f4e09ec4
Mar  9 16:18:44 localhost kernel: ---[ end trace 265db78d6888b949 ]---
Mar  9 16:18:44 localhost kernel: 
=
Mar  9 16:18:44 localhost kernel: BUG kmalloc-2048 (Tainted: G  D W ): 
Poison overwritten
Mar  9 16:18:44 localhost kernel: 
-
Mar  9 16:18:44 localhost kernel:
Mar  9 16:18:44 localhost kernel: INFO: 0xf4d410c0-0xf4d416bc. First byte 0x6c 
instead of 0x6b
Mar  9 16:18:44 localhost kernel: INFO: Allocated in alloc_netdev_mq+0x3d/0x11c 
age=1499438 cpu=1 pid=3815
Mar  9 16:18:44 localhost kernel: INFO: Freed in netdev_release+0x2f/0x32 
age=126 cpu=1 pid=4277
Mar  9 16:18:44 localhost kernel: INFO: Slab 0xc1f66b00 objects=15 used=0 
fp=0xf4d4 flags

Re: The right way to interpret the content of SNR, signal strength and BER from HVR 4000 Lite

2009-03-12 Thread Ang Way Chuang

VDR User wrote:

On Thu, Mar 12, 2009 at 6:53 PM, Ang Way Chuang wc...@nav6.org wrote:

Hi all,
   I've looked through the mailing list and there seems to be no
standard
way to interpret to content of SNR, signal strength and BER returned
from the DVB API. So, I wonder if someone knows how to interpret these
values at least for HVR 4000 Lite? Thanks.


I've seen talk about converting everything to report SNR/STR in dB
which is a great idea if it ever happens.  I know a lot of guys not on
the mailing list who've been waiting for that.


Yes, please :)


--
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