Hi all, I did a few more updates to the firedtv driver --- most of them trivial, hence I'm not posting them on the list. They are available at the usual places: == git checkout == git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git firedtv git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git firedtv-2.6.27 git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6.git firedtv-2.6.28 (The former branch is the main one and based on v2.6.25. The latter two branches are merely merge branches which resolve merge conflicts.) == gitweb == http://git.kernel.org/?p=linux/kernel/git/ieee1394/linux1394-2.6.git;a=shortlog;h=firedtv http://git.kernel.org/?p=linux/kernel/git/ieee1394/linux1394-2.6.git;a=shortlog;h=firedtv-2.6.27 http://git.kernel.org/?p=linux/kernel/git/ieee1394/linux1394-2.6.git;a=shortlog;h=firedtv-2.6.28 == quilt == http://user.in-berlin.de/~s5r6/linux1394/firedtv/ It's still not at the level at which I would like to have reached already some time ago for a (hopefully final) review on LKML. There were some other things that are keeping me distracted... So, here is the changelog and diffstat for the series and of each of the patches. Comments are welcome. Stefan Richter (11): firedtv: remove various debug code firedtv: remove AV/C debug code firedtv: remove CA debug code firedtv: trivial cleanups in firesat-ci firedtv: trivial cleanups in cmp firedtv: remove bitfield typedefs from cmp, fix for big endian CPUs firedtv: don't retry oPCR updates endlessly firedtv: trivial cleanups in avc_api firedtv: trivial reorganization in avc_api firedtv: replace mdelay by msleep firedtv: increase FCP frame length for DVB-S2 tune QSPK drivers/media/dvb/firesat/avc_api.c | 899 +++++++++------------- drivers/media/dvb/firesat/avc_api.h | 31 +- drivers/media/dvb/firesat/cmp.c | 247 +++---- drivers/media/dvb/firesat/cmp.h | 6 +- drivers/media/dvb/firesat/firesat-ci.c | 235 ++---- drivers/media/dvb/firesat/firesat_1394.c | 14 +- drivers/media/dvb/firesat/firesat_dvb.c | 17 +- drivers/media/dvb/firesat/firesat_fe.c | 52 +- drivers/media/dvb/firesat/firesat_iso.c | 8 +- 9 files changed, 595 insertions(+), 914 deletions(-) =================================================================== firedtv: remove various debug code Most of this was already commented out. And that which wasn't is not relevant in normal use. Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de> --- drivers/media/dvb/firesat/cmp.c | 11 +---------- drivers/media/dvb/firesat/firesat_1394.c | 4 ---- drivers/media/dvb/firesat/firesat_dvb.c | 4 ---- drivers/media/dvb/firesat/firesat_iso.c | 8 +------- 4 files changed, 2 insertions(+), 25 deletions(-) =================================================================== firedtv: remove AV/C debug code This looks like it is not necessary to have available for endusers who cannot patch kernels for bug reporting and tests of fixes. Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de> --- drivers/media/dvb/firesat/avc_api.c | 171 ---------------------------- 1 file changed, 6 insertions(+), 165 deletions(-) =================================================================== firedtv: remove CA debug code This looks like it is not necessary to have available for endusers who cannot patch kernels for bug reporting and tests of fixes. Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de> --- drivers/media/dvb/firesat/firesat-ci.c | 67 ------------------------- 1 file changed, 67 deletions(-) =================================================================== firedtv: trivial cleanups in firesat-ci Whitespace, variable names, comment style... Also, use dvb_generic_open() and dvb_generic_release() directly as our hooks in struct file_operations because firedtv's wrappers merely called these generic functions. Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de> --- drivers/media/dvb/firesat/firesat-ci.c | 162 ++++++++++--------------- 1 file changed, 66 insertions(+), 96 deletions(-) =================================================================== firedtv: trivial cleanups in cmp Reduce nesting level by means of early exit and goto. Remove obsolete includes, use dev_err(), no CamelCase function names... Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de> --- drivers/media/dvb/firesat/cmp.c | 199 +++++++++-------------- drivers/media/dvb/firesat/cmp.h | 6 drivers/media/dvb/firesat/firesat_1394.c | 4 drivers/media/dvb/firesat/firesat_fe.c | 6 4 files changed, 93 insertions(+), 122 deletions(-) =================================================================== firedtv: remove bitfield typedefs from cmp, fix for big endian CPUs Use macros/ inline functions/ standard byte order accessors to read and write oPCR register values (big endian bitfields, on-the-wire data). The new code may not be the ultimate optimum, but it doesn't occur in a hot path. This fixes the CMP code for big endian CPUs. So far I tested it only on a little endian CPU though. For now, include <asm/byteorder.h> instead of <linux/byteorder.h> because drivers/ieee1394/*.h also include the former. I will fix this in drivers/ieee1394 and firedtv later. Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de> --- drivers/media/dvb/firesat/cmp.c | 70 +++++++++++++++++--------------- 1 file changed, 38 insertions(+), 32 deletions(-) =================================================================== firedtv: don't retry oPCR updates endlessly In the theoretical case that the target node wasn't handling the lock transactions as expected or there was continued interference by other initiating nodes, these functions wouldn't return for ages. Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de> --- drivers/media/dvb/firesat/cmp.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) =================================================================== firedtv: trivial cleanups in avc_api Use dev_err(), no CamelCase function names, adjust comment style, put #if 0 around unused code and add FIXME comments, standardize on lower-case hexadecimal constants, use ALIGN() for some frame length calculations, make a local function static... The code which writes FCP command frames and reads FCP response frames is not yet brought into canonical kernel coding style because this involves changes of typedefs (on-the-wire bitfields). Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de> --- drivers/media/dvb/firesat/avc_api.c | 206 +++++++++++------------ drivers/media/dvb/firesat/avc_api.h | 31 +-- drivers/media/dvb/firesat/firesat-ci.c | 8 drivers/media/dvb/firesat/firesat_1394.c | 6 drivers/media/dvb/firesat/firesat_dvb.c | 13 - drivers/media/dvb/firesat/firesat_fe.c | 46 ++--- 6 files changed, 146 insertions(+), 164 deletions(-) =================================================================== firedtv: trivial reorganization in avc_api Reduce nesting level by factoring code out of avc_tuner_dsd() into helper functions. Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de> --- drivers/media/dvb/firesat/avc_api.c | 519 +++++++++++++--------------- 1 file changed, 257 insertions(+), 262 deletions(-) =================================================================== firedtv: replace mdelay by msleep These functions can sleep (and in fact sleep for the duration of a whole FCP transaction). Hence msleep is more appropriate here. Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de> --- drivers/media/dvb/firesat/avc_api.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) =================================================================== firedtv: increase FCP frame length for DVB-S2 tune QSPK The last three bytes didn't go out to the wire. Effect of the fix not yet tested. Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de> --- drivers/media/dvb/firesat/avc_api.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) -- Stefan Richter -=====-==--- =-== ---=- http://arcgraph.de/sr/