On Tue, Jan 27, 2009 at 03:19:39PM +0200, Vasily Khoruzhick wrote:
I'm trying to develop asoc driver for hp ipaq rx1950 (s3c24xx + uda1380).
1st question: where I can enable/disable uda1380 codec power? I need to control codec power for powersave reasons.
CCing in Philipp Zabel who wrote the UDA1380 driver. Assuming you mean control to cut the power to the chip the most standard way of doing it would be with the regulator API but if the chip isn't being used much in new designs it might not be worth it.
I tried to add custom power function call to uda1380_set_bias_level in uda1380.c (pointer to power function is stored in codec->private_data), as it done for uda134x codec, but after enable-disable-enable cycle (for example, after resuming from suspend) driver cannot communicate with codec anymore (i2c bus is always busy), only reloading i2c driver helps.
The UDA134x is a bit of a special case since it needs the machine driver to provide bitbanging functions for the L3 interface.
2nd question: for some reason, driver does not produce any sound during first aplay invocation, only second and later aplay invocation driver produces sound. What can be the reason of this problem?
That sounds like something in the teardown path should be done on startup as well. Can't think of any obvious gotchas there, though I'd be looking at the codec and machine drivers since the CPU driver for the S3C24xx is used in quite a few designs.