History log of /drivers/media/dvb/firewire/firedtv-fe.c
Revision Date Author Comments
6225f18b88b9ba6c6643aa8c1c96f51a9ad24380 05-Jan-2012 Mauro Carvalho Chehab <mchehab@redhat.com> [media] Don't test for ops->info.type inside drivers

Now, ops->info.type is handled inside the dvb_frontend
core, only for DVBv3 calls, and according with the
delivery system. So, drivers should not care or use it,
otherwise, it may have issues with DVBv5 calls.

The drivers that were still using it were detected via
this small temporary hack:

--- a/include/linux/dvb/frontend.h
+++ b/include/linux/dvb/frontend.h
@@ -29,13 +29,16 @@
#include <linux/types.h>

typedef enum fe_type {
+#if defined(__DVB_CORE__) || !defined (__KERNEL__)
FE_QPSK,
FE_QAM,
FE_OFDM,
FE_ATSC
+#else
+FE_FOOO
+#endif
} fe_type_t;

-
typedef enum fe_caps {
FE_IS_STUPID = 0,
FE_CAN_INVERSION_AUTO = 0x1,

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
7c61d80a9bcfc3fdec8ffd75756cad6a64678229 30-Dec-2011 Mauro Carvalho Chehab <mchehab@redhat.com> [media] dvb: don't require a parameter for get_frontend

Just like set_frontend, use the dvb cache properties for get_frontend.
This is more consistent, as both functions are now symetric. Also,
at the places get_frontend is called, it makes sense to update the
cache.

Most of this patch were generated by this small perl script:

while (<>) { $file .= $_; }
if ($file =~ m/\.get_frontend\s*=\s*([\d\w_]+)/) {
my $get = $1;
$file =~ s/($get)(\s*\([^\,\)]+)\,\s*struct\s+dtv_frontend_properties\s*\*\s*([_\d\w]+)\)\s*\{/\1\2)\n{\n\tstruct dtv_frontend_properties *\3 = &fe->dtv_property_cache;/g;
}
print $file;

Of course, the changes at dvb_frontend.[ch] were made by hand,
as well as the changes on a few other places, where get_frontend()
is called internally inside the driver.

On some places, get_frontend() were just a void function. Those
occurrences were removed, as the DVB core handles such cases.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
e11eb28876867ea4d5837e79da0fc95dc042979b 26-Dec-2011 Mauro Carvalho Chehab <mchehab@redhat.com> [media] firedtv: convert set_fontend to use DVBv5 parameters

Instead of using dvb_frontend_parameters struct, that were
designed for a subset of the supported standards, use the DVBv5
cache information.

Also, fill the supported delivery systems at dvb_frontend_ops
struct.

Cc: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
a689e3657d7e82c2271008553c709fc79fb2e038 22-Dec-2011 Mauro Carvalho Chehab <mchehab@redhat.com> [media] dvb-core: add support for a DVBv5 get_frontend() callback

Creates a DVBv5 get_frontend call, renaming the DVBv3 one to
get_frontend_legacy(), while not all frontends are converted.

After the conversion for all drivers, get_frontend_legacy()
will be removed.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
bc9cd2736b34619b58961d506210fe0e6dfaa27d 20-Dec-2011 Mauro Carvalho Chehab <mchehab@redhat.com> [media] Rename set_frontend fops to set_frontend_legacy

Passing DVBv3 parameters to set_frontend is not fun, as the
core doesn't have any way to know if the driver is using the
v3 or v5 parameters. So, rename the callback and add a new
one to allow distinguish between a mixed v3/v5 paramenter call
from a pure v5 call.

After having all frontends to use the new way, the legacy
call can be removed.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
92374e886c7518387e6816dedfe60fc7bdfa8fdd 06-Feb-2011 Stefan Richter <stefanr@s5r6.in-berlin.de> [media] firedtv: drop obsolete backend abstraction

Since the drivers/ieee1394/ backend was removed from firedtv, its I/O no
longer needs to be abstracted as exchangeable backend methods.

Also, ieee1394 variants of module and device probe and removal are no
longer there. Move module probe and removal into firedtv-fw.c where
device probe and removal are implemented.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
d2fd44a33083973157d6e0e0e8bcfd5faa214bbb 12-Sep-2010 Tommy Jonsson <quazzie2@gmail.com> [media] firedtv: support for PSK8 for S2 devices. To watch HD

Add support for tuning with PSK8 modulation, pilot and rolloff
with the S2 versions of firedtv.

Signed-off-by: Tommy Jonsson <quazzie2@gmail.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (trivial simplification)
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
dcff9cfe432c74b382cea327509ede2e114b1615 17-Oct-2009 Stefan Richter <stefanr@s5r6.in-berlin.de> V4L/DVB (13240): firedtv: fix regression: tuning fails due to bogus error return

Since 2.6.32(-rc1), DVB core checks the return value of
dvb_frontend_ops.set_frontend. Now it becomes apparent that firedtv
always returned a bogus value from its set_frontend method.

CC: stable@kernel.org
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
e73bf9f135fe1e5db646e668676d22af3008e0c0 24-Feb-2009 Beat Michel Liechti <bml303@gmail.com> firedtv: dvb_frontend_info for FireDTV S2, fix "frequency limits undefined" error

I found that the function fdtv_frontend_init in the file firedtv-fe.c was
missing a case for FIREDTV_DVB_S2 which resulted in "frequency limits
undefined" errors in syslog.

Signed-off-by: Beat Michel Liechti <bml303@gmail.com>

Change by Stefan R: combine it with case case FIREDTV_DVB_S as
originally suggested by Beat Michel. This enables FE_CAN_FEC_AUTO also
for FireDTV-S2 devices which is possible as long as only DVB-S channels
are used. FE_CAN_FEC_AUTO would be wrong for DVB-S2 channels, but those
cannot be used yet since the driver is not yet converted to S2API.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
154907957f9391b1af997b57507b16c018cc4995 23-Feb-2009 Stefan Richter <stefanr@s5r6.in-berlin.de> firedtv: massive refactoring

Combination of the following changes:

Mon, 23 Feb 2009 14:21:10 +0100 (CET)
firedtv: reinstate debug logging option

Henrik Kurelid tells me that FCP debug logging (which I removed during
cleanups) is still useful when working on driver issues together with
end users. So bring it back in an updated form with only 60% of the
original code footprint.

Logging can be enabled with
# echo -1 > /sys/module/firedtv/parameters/debug

1 instead of -1 enables only FCP header logging,
2 instead of -1 enables only hexdumps of the entire FCP frames.
0 switches logging off again.

Fri, 20 Feb 2009 20:54:27 +0100 (CET)
firedtv: build fix for INPUT=m and DVB_FIREDTV=y

Thu, 19 Feb 2009 20:40:39 +0100
firedtv: use msecs_to_jiffies

Pointed out by Mauro Carvalho Chehab.

Sun Feb 15 20:50:46 CET 2009
firedtv: some more housekeeping

Fix an old checkpatch warning and a new compiler warning.

Sun Feb 15 15:33:17 CET 2009
firedtv: rename a file once more

At the moment, about a third of avc.c is specific to FireDTVs rather
than generic AV/C code. Rename it to firedtv-avc.c.

Sun Feb 15 15:33:17 CET 2009
firedtv: dvb demux: more compact channels backing store

Replace struct firedtv_channel { bool active; int pid; } channel[16];
by unsigned long channel_active; u16 channel_pid[16];.

Sun Feb 15 15:33:17 CET 2009
firedtv: dvb demux: some simplifications

c->active was unnecessarily cleared twice.

Also, by marking the channel inactive before the for loop,
the loop becomes identical with fdtv_channel_collect().

Sun Feb 15 15:33:17 CET 2009
firedtv: dvb demux: remove a bogus loop

This loop is unnecessary because
- only active channel[].pid's will be sent to the device,
- when a channel is activated, its pid is set to dvbdmxfeed->pid.

Perhaps the original code was there because it was initially not fully
covered by the fdtv->demux_mutex.

Sun Feb 15 15:33:17 CET 2009
firedtv: dvb demux: fix mutex protection

fdtv_start_feed() accessed the channel list unsafely.
Fully serialize it with itself and fdtv_stop_feed().

Sun Feb 15 15:33:17 CET 2009
firedtv: dvb demux: fix missing braces

Original code was:
...
case DMX_TS_PES_OTHER:
//Dirty fix to keep firesat->channel pid-list up to date
for(k=0;k<16;k++){
if(firesat->channel[k].active == 0)
firesat->channel[k].pid =
dvbdmxfeed->pid;
break;
}
channel = firesat_channel_allocate(firesat);
break;
default:
...

Looks bogus in several respects. For now let's just add braces to the if
because that seems to be what the author meant.

Sun Feb 15 15:33:17 CET 2009
firedtv: allow build without input subsystem

!CONFIG_INPUT is very unlikely on systems on which firedtv is of
interest. But we can easily support it.

Sun Feb 15 15:33:17 CET 2009
firedtv: replace EXTRA_CFLAGS by ccflags

The former are deprecated.
The latter can depend on Kconfig variables.

Sun Feb 15 15:33:17 CET 2009
firedtv: concentrate ieee1394 dependencies

Move the entire interface with drivers/ieee1394 to firedtv-1394.c.
Move 1394-independent module initialization code to firedtv-dvb.c.

This prepares interfacing with drivers/firewire.

Sun Feb 15 15:33:17 CET 2009
firedtv: amend Kconfig menu prompt

Sun Feb 15 15:33:17 CET 2009
firedtv: remove kernel version compatibility macro

Sun Feb 15 15:33:17 CET 2009
firedtv: combine header files

avc.h and firedtv-*.h are small and currently not shared with other
drivers, hence concatenate them all into firedtv.h.

Sun Feb 15 15:33:17 CET 2009
firedtv: misc style touch-ups

Standardize on lower-case hexadecimal constants. Adjust whitespace.
Omit unnecessary pointer type casts and an unnecessary list head
initialization. Use dev_printk.

Wed Feb 11 21:21:04 CET 2009
firedtv: avc, ci: remove unused constants

Wed Feb 11 21:21:04 CET 2009
firedtv: avc: remove bitfields from read descriptor response operands

Don't use bitfields in struct types of on-the-wire data.

Wed Feb 11 21:21:04 CET 2009
firedtv: avc: remove bitfields from DSD command operands

Don't use bitfields in struct types of on-the-wire data.

Wed Feb 11 21:21:04 CET 2009
firedtv: avc: header file cleanup

Remove unused constants and declarations.
Move privately used constants into .c files.

Wed Feb 11 21:21:04 CET 2009
firedtv: avc: remove bitfields from FCP frame types

Don't use bitfields in struct types of on-the-wire data.

Also move many privately used constants from avc.h to avc.c
and remove some unused constants.

Sun, 18 Jan 2009 16:30:00 +0100 (CET)
firedtv: avc: fix offset in avc_tuner_get_ts

The parentheses were wrong. It didn't matter though because this code
only writes a 0 into an area which is already initialized to 0.

Sun, 18 Jan 2009 16:30:00 +0100 (CET)
firedtv: avc: reduce stack usage, remove two typedefs

It is safe to share a memory buffer for command frame and response frame
because the response data come in after the command frame was last used.

Even less stack would be required if only the actual required frame size
instead of the entire FCP register size was allocated.

Also, rename the defined types AVCCmdFrm and AVCRspFrm to
struct avc_command_frame and struct avc_response_frame.
TODO: Remove the bitfields in these types.

Sun, 18 Jan 2009 16:30:00 +0100 (CET)
firedtv: cmp: move code to avc

Sun, 18 Jan 2009 16:30:00 +0100 (CET)
firedtv: iso: move code to firedtv-1394

Sun, 18 Jan 2009 16:30:00 +0100 (CET)
firedtv: iso: remove unnecessary struct type definitions

Sun, 18 Jan 2009 16:30:00 +0100 (CET)
firedtv: iso: style changes and fixlets

Add cleanup after failure in setup_iso_channel.
Replace printk() by dv_err().
Decrease indentation level in rawiso_activity_cb().

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
a70f81c1c0dac113ac4705e7701e2676e67905cd 17-Jan-2009 Rambaldi <Rambaldi@xs4all.nl> firedtv: rename files, variables, functions from firesat to firedtv

Combination of the following changes:

Sat, 17 Jan 2009 14:47:34 +0100
firedtv: rename variables and functions from firesat to firedtv

Signed-off-by: Rambaldi <Rambaldi@xs4all.nl>

Additional changes by Stefan Richter:

Renamed struct firedtv *firedtv to struct firedtv *fdtv and
firedtv_foo_bar() to fdtv_foo_bar() for brevity.

Sat, 17 Jan 2009 13:07:44 +0100
firedtv: rename files from firesat to firedtv

Signed-off-by: Rambaldi <Rambaldi@xs4all.nl>

Additional changes by Stefan Richter:

Name the directory "firewire" instead of "firedtv".
Standardize on "-" instead of "_" in file names, because that's what
drivers/firewire/ and drivers/media/dvb/dvb-usb/ use too.
Build fix.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>