[linux-dvb] Regarding EN50221 stack
hi, Iam very much new to linuxDvb family..Can u provide me some link where do i get complete En50221 stack so that i can use it in my application..Waiting for ur anticipation, Regards and thanx,\"Santosh\"___ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
[linux-dvb] Profiling and DVB drivers
I have tried to profile a program that uses the linux-dvb drivers and find that many of the ioctl's break. Looking at the kernel code I see that there are a few interruptable waits which perhaps are related to the problem. Especially the READ_STATUS ioctl. Under profiling this ioctl always returns successfully but the status is always 0. However, the front end seems to tune successfully, and data gets delivered, but it is just the status ioctl's which appear to break when profiling is enabled (gcc -pg). Is this a known problem? ___ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
[linux-dvb] [Patch] add USB 1.1 support for dvb_usb_dtt200u dvb-t stick
On Wed, 28 Mar 2007, M A Young wrote: > I have a Freecom dvb-t USB stick (14aa:022b with > dvb-usb-wt220u-zl0353-01.fw firmware) which works fine when connected via > my USB 2.0 CardBus card, but not the onboard USB 1.1 port, where the card > initializes but fails to start when attempting to watch TV and this is a > problem if the CardBus slot is occupied with something else. > > I have been doing some investigating and it seems that the differences are > that under USB 2.0 the usb settings are > > T: Bus=05 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0 > D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 > P: Vendor=14aa ProdID=022b Rev= 5.21 > S: Manufacturer=Digital TV Receiver > S: Product=Digital TV Receiver > C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=450mA > I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 > Driver=dvb_usb_dtt200u > E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms > E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms > E: Ad=82(I) Atr=02(Bulk) MxPS= 189 Ivl=0ms > > but under USB 1.1 they are > > T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0 > D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 > P: Vendor=14aa ProdID=022b Rev= 5.21 > S: Manufacturer=Digital TV Receiver > S: Product=Digital TV Receiver > C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=450mA > I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 > Driver=dvb_usb_dtt200u > E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms > E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms > E: Ad=82(I) Atr=01(Isoc) MxPS= 940 Ivl=1ms > > so the main data stream has gone from Bulk under 2.0 to Isoc under 1.1. If > I naively change the stream settings in wt220u_zl0353_properties from a > USB_BULK one to USB_ISOC settings (from another driver) then the card > works under USB 1.1 instead. > > Is it possible that this driver could auto-detect the USB speed and use > the appropriate USB transfer mode so that it works under both USB 1.1 and > USB 2.0? To answer my own question, it is possible to patch the driver, as the one I am attaching allows my USB stick to work under both USB 1.1 and USB 2.0. Michael Young--- linux-2.6.20.i386/drivers/media/dvb/dvb-usb/dtt200u.c.orig 2007-02-04 18:44:54.0 + +++ linux-2.6.20.i386/drivers/media/dvb/dvb-usb/dtt200u.c 2007-03-29 22:23:34.0 +0100 @@ -96,15 +96,28 @@ static struct dvb_usb_device_properties wt220u_fc_properties; static struct dvb_usb_device_properties wt220u_properties; static struct dvb_usb_device_properties wt220u_zl0353_properties; +static struct dvb_usb_device_properties wt220u_zl0353_usb1_properties; static int dtt200u_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) { if (dvb_usb_device_init(intf,&dtt200u_properties,THIS_MODULE,NULL) == 0 || dvb_usb_device_init(intf,&wt220u_properties,THIS_MODULE,NULL) == 0 || - dvb_usb_device_init(intf,&wt220u_fc_properties,THIS_MODULE,NULL) == 0 || - dvb_usb_device_init(intf,&wt220u_zl0353_properties,THIS_MODULE,NULL) == 0) + dvb_usb_device_init(intf,&wt220u_fc_properties,THIS_MODULE,NULL) == 0) return 0; + switch (interface_to_usbdev(intf)->speed) { + case USB_SPEED_FULL: + /* USB 1.1 settings */ + if ( dvb_usb_device_init(intf,&wt220u_zl0353_usb1_properties,THIS_MODULE,NULL) == 0) + return 0; + break; + default: + case USB_SPEED_HIGH: + /* USB 2.0 settings */ + if (dvb_usb_device_init(intf,&wt220u_zl0353_properties,THIS_MODULE,NULL) == 0) + return 0; + break; + } return -ENODEV; } @@ -303,6 +316,53 @@ } }; +static struct dvb_usb_device_properties wt220u_zl0353_usb1_properties = { + .usb_ctrl = CYPRESS_FX2, + .firmware = "dvb-usb-wt220u-zl0353-01.fw", + + .num_adapters = 1, + .adapter = { + { + .caps = DVB_USB_ADAP_HAS_PID_FILTER | DVB_USB_ADAP_NEED_PID_FILTERING, + .pid_filter_count = 15, + + .streaming_ctrl = dtt200u_streaming_ctrl, + .pid_filter = dtt200u_pid_filter, + .frontend_attach = dtt200u_frontend_attach, + /* parameter for the MPEG2-data transfer */ + .stream = { + .type = USB_ISOC, + .count = 5, + .endpoint = 0x02, + .u = { + .isoc = { + .framesperurb = 4, + .framesize = 940, + .interval = 1, +
Re: [linux-dvb] [Fwd: Mantis gpio_set_bits() fix]
Marko Ristola schreef: Onderwerp: Mantis gpio_set_bits() fix Van: Marko Ristola <[EMAIL PROTECTED]> Datum: Sat, 17 Mar 2007 11:14:08 +0200 Aan: Manu Abraham <[EMAIL PROTECTED]> Aan: Manu Abraham <[EMAIL PROTECTED]> Hi Manu, Here is a bugfix for gpio_set_bits(). What do you think about this bugfix? The bug is that the function is only able to turn the given bit on, but it can never turn a bit off. My patch fixes that issue. With my patched version gpio_set_bits is able to turn a single bit on or off. I haven't verified that it actually does turn the device's power off when requested. I tested only rmmod and insmod. It seems to work with this version: I haven't seen a lost frontend. Regards, Marko Ristola This patch solves also the modulation change problem (18v or 13v). I can now receive and scan the same channels as the Windows driver is capable of. I still have the problem that the driver cannot tune to all available channels on a satellite. The windows driver has the same problem. Could this be a problem of the card? Regards, Michel. ___ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
Re: [linux-dvb] dst tone/power patch
This patch solved my problems. Please integrate it. /Anders On Aug 7, 2006, at 4:45 PM, Yeasah Pell wrote: I've had this dst patch kicking around for a while now -- it needs somebody else to try it out and confirm. If anybody's got a dst card and wouldn't mind trying out this patch, it'd be nice, as I'm getting a little tired of having this patch outstanding :-) It changes the way the dst tone/power commands are issued, and has the following effects: * Previously, tone/power commands would be partially co-mingled with tuning commands under some circumstances, and thus some commands could be lost (and bogus commands issued to the dst chip) * The toneburst ("minidiseqc") command values were wrong (at least on my card), the new code generates the proper tonebursts. Somebody with a minidiseqc switch would have to verify this one. I bet nobody uses one of those though. FWIW, I did verify both with a scope and a minidiseqc switch, so it definitely works for my card anyway. * It keeps better track of what the last state of the hardware was for the tone/power command so as to avoid unnecessary i2c traffic, but also to allow the retry of failed commands. (i.e. it won't squelch a repeat command if the last one failed) thanks, -yeasah diff -r cf687ab6b0ab linux/drivers/media/dvb/bt8xx/dst.c --- a/linux/drivers/media/dvb/bt8xx/dst.c Mon Aug 07 10:44:33 2006 -0300 +++ b/linux/drivers/media/dvb/bt8xx/dst.c Mon Aug 07 10:18:57 2006 -0400 @@ -1330,9 +1330,38 @@ static int dst_tone_power_cmd(struct dst if (state->dst_type != DST_TYPE_IS_SAT) return -EOPNOTSUPP; - paket[4] = state->tx_tuna[4]; - paket[2] = state->tx_tuna[2]; - paket[3] = state->tx_tuna[3]; + + switch (state->tone) { + case SEC_TONE_OFF: + if (state->type_flags & DST_TYPE_HAS_OBS_REGS) + paket[2] = 0x00; + else + paket[2] = 0xff; + break; + case SEC_TONE_ON: + paket[2] = 0x02; + break; + } + + switch (state->minicmd) { + case SEC_MINI_A: + paket[3] = 0x00; + break; + case SEC_MINI_B: + paket[3] = 0x01; + break; + } + state->minicmd = -1; + + switch (state->voltage) { + case SEC_VOLTAGE_OFF: + paket[4] = 0x00; + break; + default: + paket[4] = 0x01; + break; + } + paket[7] = dst_check_sum (paket, 7); return dst_command(state, paket, 8); } @@ -1476,79 +1505,70 @@ static int dst_set_diseqc(struct dvb_fro static int dst_set_voltage(struct dvb_frontend *fe, fe_sec_voltage_t voltage) { - int need_cmd, retval = 0; + int retval = 0; struct dst_state *state = fe->demodulator_priv; state->voltage = voltage; if (state->dst_type != DST_TYPE_IS_SAT) return -EOPNOTSUPP; - - need_cmd = 0; switch (voltage) { case SEC_VOLTAGE_13: case SEC_VOLTAGE_18: if ((state->diseq_flags & HAS_POWER) == 0) - need_cmd = 1; - state->diseq_flags |= HAS_POWER; - state->tx_tuna[4] = 0x01; + retval = dst_tone_power_cmd(state); + if (retval == 0) + state->diseq_flags |= HAS_POWER; break; case SEC_VOLTAGE_OFF: - need_cmd = 1; - state->diseq_flags &= ~(HAS_POWER | HAS_LOCK | ATTEMPT_TUNE); - state->tx_tuna[4] = 0x00; + if ((state->diseq_flags & HAS_POWER) != 0) + retval = dst_tone_power_cmd(state); + if (retval == 0) + state->diseq_flags &= ~(HAS_POWER | HAS_LOCK | ATTEMPT_TUNE); break; default: return -EINVAL; } - if (need_cmd) - retval = dst_tone_power_cmd(state); - return retval; } static int dst_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone) { + int retval = -EINVAL; struct dst_state *state = fe->demodulator_priv; - state->tone = tone; if (state->dst_type != DST_TYPE_IS_SAT) return -EOPNOTSUPP; switch (tone) { case SEC_TONE_OFF: - if (state->type_flags & DST_TYPE_HAS_OBS_REGS) - state->tx_tuna[2] = 0x00; - else - state->tx_tuna[2] = 0xff; - break; - case SEC_TONE_ON: - state->tx_tuna[2] = 0x02; - break; - default: - return -EINVAL; - } - return dst_tone_power_cmd(state); + state->tone = tone; + retval = dst_tone_power_cmd(state); + if (retval != 0) + state->tone = -1; +
[linux-dvb] STV0297 Tuning Issues
Hi, I'm currently doing some tuning testing with the STV0297 DVB-C Card. I have a DVB-S to DVB-C TransModulator which I am using and just modifying the output settings. I'm having some issues tuning in a couple of the test cases and was wondering if there was any technical reason why this was not possible. The tests I am having trouble tuning in are... 1. Symbol Rate of 1.74MBd with QAM 32, 64 & 128 (works fine with QAM 16 and 256) 2. Symbol Rate of 3.48MBd with QAM 32 (works fine with all other QAM's) I am testing the tuning with dvbtune and as long as the xml version of the SDT is returned I am counting that as working. Does anyone know why I cannot tune with these settings? Is it a problem with the driver? I've provided my test results below; Thanks for any help Mike *Frequency (MHz) * *Bitrate (MB/s) * *Symbol Rate (MBd) * *Modulation (QAM) * *Tuning Tested* *Tuning Works* *Notes* 62 25.4 6.89 16 *Yes* *Yes* 220 25.4 6.89 16 *Yes* *Yes* 440 25.4 6.89 16 *Yes* *Yes* 62 25.21 6.84 16 *Yes* *Yes* 220 25.21 6.84 16 *Yes* *Yes* 440 25.21 6.84 16 *Yes* *Yes* 62 12.83 3.48 16 *Yes* *Yes* 220 12.83 3.48 16 *Yes* *Yes* 440 12.83 3.48 16 *Yes* *Yes* 62 6.41 1.74 16 *Yes* *Yes* 220 6.41 1.74 16 *Yes* *Yes* 440 6.41 1.74 16 *Yes* *Yes* 62 31.75 6.89 32 *Yes* *Yes* 220 31.75 6.89 32 *Yes* *Yes* 440 31.75 6.89 32 *Yes* *Yes* 62 31.52 6.84 32 *Yes* *Yes* 220 31.52 6.84 32 *Yes* *Yes* 440 31.52 6.84 32 *Yes* *Yes* 62 16.04 3.48 32 *Yes* *No* Couldn't Lock 220 16.04 3.48 32 *Yes* *No* Couldn't Lock 440 16.04 3.48 32 *Yes* *No* Couldn't Lock 62 8.02 1.74 32 *Yes* *No* Couldn't Lock 220 8.02 1.74 32 *Yes* *No* Couldn't Lock 440 8.02 1.74 32 *Yes* *No* Couldn't Lock 62 38.1 6.89 64 *Yes* *Yes* 220 38.1 6.89 64 *Yes* *Yes* 440 38.1 6.89 64 *Yes* *Yes* 62 37.82 6.84 64 *Yes* *Yes* 220 37.82 6.84 64 *Yes* *Yes* 440 37.82 6.84 64 *Yes* *Yes* 62 19.24 3.48 64 *Yes* *Yes* 220 19.24 3.48 64 *Yes* *Yes* 440 19.24 3.48 64 *Yes* *Yes* 62 9.62 1.74 64 *Yes* *No* Couldn't Lock 220 9.62 1.74 64 *Yes* *No* Couldn't Lock 440 9.62 1.74 64 *Yes* *No* Couldn't Lock 62 44.45 6.89 128 *Yes* * Yes* 220 44.45 6.89 128 *Yes* *Yes* 440 44.45 6.89 128 *Yes* *Yes* 62 44.12 6.84 128 *Yes* *Yes* 220 44.12 6.84 128 *Yes* *Yes* 440 44.12 6.84 128 *Yes* *Yes* 62 22.45 3.48 128 *Yes* *Yes* 220 22.45 3.48 128 *Yes* *Yes* 440 22.45 3.48 128 *Yes* *Yes* 62 11.22 1.74 128 *Yes* *No* Couldn't Lock 220 11.22 1.74 128 *Yes* *No* Couldn't Lock 440 11.22 1.74 128 *Yes* *No* Couldn't Lock 62 50.8 6.89 256 *Yes* * Yes* 220 50.8 6.89 256 *Yes* *Yes* 440 50.8 6.89 256 *Yes* *Yes* 62 50.43 6.84 256 *Yes* *Yes* 220 50.43 6.84 256 *Yes* *Yes* 440 50.43 6.84 256 *Yes* *Yes* 62 25.66 3.48 256 *Yes* *Yes* 220 25.66 3.48 256 *Yes* *Yes* 440 25.66 3.48 256 *Yes* *Yes* 62 12.83 1.74 256 *Yes* *Yes* 220 12.83 1.74 256 *Yes* *Yes* 440 12.83 1.74 256 *Yes* *Yes* ___ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb