Using the logic analyzer, I did some more debugging of the au0828 i2c implementation. I've got the xc5000 firmware load time down to about 3.2 seconds (down from 12 seconds).
There is still a bug that occurs whenever the dvb_attach queries the product ID. I suspect it is some garbage being dumped on the i2c line I am seeing about 1.3ms before the register query. I don't know yet where the garbage is coming from, but the i2c clock was at 250 KHz, which is pretty suspicious since it should only be in that mode when talking to the au8522 demod. Perhaps some sort of concurrency issue where both the dvb subsystem and the analog subsystem are trying to use the i2c bus at the same time? Or perhaps something screwed up with the i2c gate?
Will keep working on it tomorrow....