Wednesday, April 29, 2009

My walk home from work...


Had Tuesday off from work. Spent a couple of hours writing code at a coffee house for a nice change in scenery. Issued a PULL request for the HVR-950q regression, and did more xc5000 merge work.

Spent most of yesterday trying to figure out why my Pinnacle 801e successfully found 24 channels in a Kaffeine scan before the xc5000 power management changes, and why it only got 11-14 channels with the new changes. It turns up I uncovered a race condition in the dvb core in the kernel, which caused the tuning request to not be forwarded to the tuner. All you needed was a dumb channel scanner that kept closing the frontend between tuning requests (Kaffeine) and a device where the tuner sleep took hundreds of milliseconds (the Pinnacle 801e, because the xc5000 driver now uses the reset callback to power down the chip).

I'll have to figure out the right fix to detect the dvb_frontend thread is being terminated, instead of assuming that the thread shutdown takes zero time. Either that, or I can just change the 801e driver to hold the pin low for 10ms like it should, and the problem magically disappears (avoiding the race rather than fixing it).

Tuesday, April 28, 2009

Five-nines and the phone company?

So much for 99.999% reliability:

devin-heitmuellers-macbook:~ devinheitmueller$ traceroute
traceroute to (, 64 hops max, 40 byte packets
1 ( 1.994 ms 1.589 ms 2.020 ms
2 dslrouter ( 3.059 ms 3.345 ms 2.808 ms
3 * * *
4 * * *

Day off

Yesterday was pretty productive. I did a pull request for the Dvico FusionHDTV7 patch that has been pending for a week or so. And I got the Terratec Cinergy T USB XS working before lunch (and added support for the remote control). Spent pretty much the rest of the day trying to figure out why the kernel was hitting an OOPS on the HVR-950Q every time I unplugged it. A regression got introduced a couple of weeks ago. Ick.

Going to try to make the big push today and finally wrap up the xc5000 work. Will need to retest with all the devices, which is a PITA. Fortunately, I own most of them now so I won't be blocked on anyone else.

I've also been weighing the merits of taking the plunge and upgrading to Ubuntu 9.04. It's just a hassle since I have to make sure everything is backed up, and there is the risk of downtime if it doesn't go according to plan. Also, I cannot really be doing anything else *during* the upgrade, so it probably isn't the best use of my time. Perhaps I will upgrade my desktop system first and see how it goes.

Sunday, April 26, 2009

Things going on...

I haven't posted in a couple of weeks. I have an ill relative and I've been pretty depressed. Haven't gotten much done lately outside of the office, hence no blogging.

No new LinuxTV work lately. I've been watching alot of TV at night. For those who know me well, they know that despite all the work I do to make television watching under Linux work well, I don't really watch much TV myself. In fact, the running joke at the office is that I own seven computers and thirteen TV tuners, but I manage to never successfully record House on Monday nights.

Yesterday I was in Philadelphia. Victoria and I took Edison to the park. Like the cliche that suggests men take a dog to the park in order to attract women, apparently taking a cat to the park attracts friendly dog owners. Was nice to finally have some descent weather and be outside.

Because Edison is deaf, he doesn't scare when a dog barks or a car's horn honks. However, he did almost jump out of his harness when he saw a squirrel next to a nearby tree.

I took off from work tomorrow and Tuesday. Just wanted a couple of quiet days to myself. Will perhaps try to write some code. A couple of tuners arrived from Germany on Friday right before I left for Philadelphia, and perhaps I will get them up and running.

Monday, April 6, 2009


Went to work today. Called an allergist to schedule an appointment. Had dinner with Patrick, and then we came back here so he could show me his OpenGL based gravity simulation.

No new progress on au0828. I need to recompile the Ubuntu kernel so I can add some printk() and dump_stack() calls to figure out who is jamming arbitrary usb commands onto the bus (it seems pretty clear it is *not the au0828 driver, and I believe it is probably the snd-usb-audio driver).

I'm too tired to do anything productive tonight. I thought perhaps I would watch a little TV, but I think I'm just going to go to sleep.

Saturday, April 4, 2009

Distractions and focus...

I'm in Philly this weekend. We are doing a "trapeze birthday party" later this afternoon for Victoria.

I spent the last couple of nights debugging xc5000 issues. I am hoping to finally get the tree published which has a series of fixes, including properly supporting putting the tuner to sleep when not in use, as well as a 10x improvement in tuning. I've also got a change where the xc5000 notifies the bridge when it's going to do firmware download, giving the bridge an opportunity to change the i2c clock value to a higher speed (and put it back when the download is completed).

I think I finally figured out why there is an intermittent tuning failure on the hvr-950q. Using the logic analyzer, I noticed some garbage bytes being dumped onto the i2c bus after the firmware load. Strangely enough, these bytes were not showing up in my kernel logging of i2c messages. It would appear that the usb-snd-audio driver is dumping arbitrary usb requests onto the interface, and they happen to be interpreted as i2c commands by the au0828 bridge. I'll have to trace down the exact cause for it sending data to the wrong interface, but at least I know what is going on now.

As a result of some emails on the mailing list yesterday regarding the continued annoyance over the em28xx situation, I volunteered to get the Terratec device to work if the guy mailed me the hardware. I spent a few nights back in December trying to get one such device working remotely, but I ran into an issue and couldn't resolve the problem. Presumably, once I have the hardware in my possession I should be able to get it up and running in a few hours.

I also started some discussion with lamothe about getting the ATSC scanning working in MeTV. Again, it shouldn't be too hard. However, if I do get it working, then I might finally have an app I am willing to recommend to ATSC users (Kaffeine still has streaming problems I haven't been able to nail down).

I haven't nailed down the problem Robert brought up with the au0828's isoc handling for analog video. I spent an entire afternoon on it two Sundays ago, and it's more complicated than I originally thought.

It's so easy to get distracted...

Wednesday, April 1, 2009

Tauntaun Sleeping Bag

I really like April Fools, and ThinkGeek always does it justice.

I spent five minutes giggling to myself as I read about their new "Tauntaun Sleeping Bag":

Here's the full ad: