Hi, this patch allows frontends (and the user) to select from one of several different tuning algorithms. The patch adds four possibilities: 1) SW - the current dvb-kernel software zigzag code. 2) HW - the hardware supports zigzagging internally (e.g. DST), so use that as it will be faster. 3) ADAPTIVE - frontend-specific code exploiting frontend-specific features. 4) SIMPLE - just set the frontend once and do nothing else (e.g. for frequency scanner apps). Frontends can specify which algorithms they support using FE_CAPS_CAN_TUNE_ALGO_*. They can also specify the default algorithm to use. Currently the default is SW for all frontends except the DST (which has HW). ADAPTIVE is not implemented internally yet. Enough information to do this for many frontends is provided on their datasheets - for example I know roughly how to do it for the stv0299, stv0297, and sh1420 frontends. This needs experimentation before any real adaptive code can be committed to CVS however, but I thought it was better to change the API _once_ instead of several times. None of the frontends currently set the FE_CAN_TUNE_ALGO_ADAPTIVE flag, so it cannot be accidentally enabled. The userspace app can also choose an algorithm using an IOCTL. When a frontend device is opened read/write, the tuning algo will automatically be set back to whatever the frontend specified as the default - so that userspace apps don't have to care if something else changed algos. Comments/ideas welcomed! -------------- next part -------------- A non-text attachment was scrubbed... Name: tunealgo.patch Type: text/x-diff Size: 36460 bytes Desc: not available Url : http://www.linuxtv.org/pipermail/linux-dvb/attachments/20051115/33c03654/tunealgo-0001.bin