[PATCH] dvb: flexcop: readme update
readme update Signed-off-by: Patrick Boettcher <pb@linuxtv.org> Signed-off-by: Johannes Stezenbach <js@linuxtv.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
59a7ad6c1e
commit
c6ee197ccf
1 changed files with 21 additions and 100 deletions
|
@ -2,26 +2,20 @@ This README escorted the skystar2-driver rewriting procedure. It describes the
|
|||
state of the new flexcop-driver set and some internals are written down here
|
||||
too.
|
||||
|
||||
How to do something in here?
|
||||
============================
|
||||
|
||||
make -f Makefile.t
|
||||
make -C ../build-2.6
|
||||
./in.sh # load the drivers
|
||||
./rm.sh # unload the drivers
|
||||
|
||||
Please read this file, if you want to contribute.
|
||||
|
||||
This document hopefully describes things about the flexcop and its
|
||||
device-offsprings. Goal is to write a easy-to-write and easy-to-read set of
|
||||
device-offsprings. Goal was to write an easy-to-write and easy-to-read set of
|
||||
drivers based on the skystar2.c and other information.
|
||||
|
||||
This directory is temporary. It is used for rewriting the skystar2.c and to
|
||||
create shared code, which then can be used by the usb box as well.
|
||||
|
||||
Remark: flexcop-pci.c was a copy of skystar2.c, but every line has been
|
||||
touched and rewritten.
|
||||
|
||||
History & News
|
||||
==============
|
||||
2005-04-01 - correct USB ISOC transfers (thanks to Vadim Catana)
|
||||
|
||||
|
||||
|
||||
|
||||
General coding processing
|
||||
=========================
|
||||
|
||||
|
@ -81,16 +75,15 @@ non-static where possible, moved code to proper places)
|
|||
|
||||
2) Search for errors in the leftover of flexcop-pci.c (partially done)
|
||||
5a) add MAC address reading
|
||||
5c) feeding of ISOC data to the software demux (format of the isochronous data
|
||||
and speed optimization, no real error) (thanks to Vadim Catana)
|
||||
|
||||
What to do in the near future?
|
||||
--------------------------------------
|
||||
(no special order here)
|
||||
|
||||
|
||||
5) USB driver
|
||||
5b) optimize isoc-transfer (submitting/killing isoc URBs when transfer is starting)
|
||||
5c) feeding of ISOC data to the software demux (format of the isochronous data
|
||||
and speed optimization, no real error)
|
||||
|
||||
Testing changes
|
||||
---------------
|
||||
|
@ -118,7 +111,7 @@ item | mt352 | nxt2002 | stv0299 | mt312 | mt352 | nxt2002 | stv0299 | mt312
|
|||
2) | O | N
|
||||
5a) | N | O
|
||||
5b)* | N |
|
||||
5c)* | N |
|
||||
5c) | N | O
|
||||
|
||||
* - not done yet
|
||||
|
||||
|
@ -155,17 +148,21 @@ working)
|
|||
SOLUTION: also index 0 was affected, because net_translation is done for
|
||||
these indexes by default
|
||||
|
||||
5b) isochronous transfer does only work in the first attempt (for the Sky2PC USB,
|
||||
Air2PC is working)
|
||||
SOLUTION: the flexcop was going asleep and never really woke up again (don't
|
||||
know if this need fixes, see flexcop-fe-tuner.c:flexcop_sleep)
|
||||
5b) isochronous transfer does only work in the first attempt (for the Sky2PC
|
||||
USB, Air2PC is working) SOLUTION: the flexcop was going asleep and never really
|
||||
woke up again (don't know if this need fixes, see
|
||||
flexcop-fe-tuner.c:flexcop_sleep)
|
||||
|
||||
NEWS: when the driver is loaded and unloaded and loaded again (w/o doing
|
||||
anything in the while the driver is loaded the first time), no transfers take
|
||||
place anymore.
|
||||
|
||||
Improvements when rewriting (refactoring) is done
|
||||
=================================================
|
||||
|
||||
- split sleeping of the flexcop (misc_204.ACPI3_sig = 1;) from lnb_control
|
||||
(enable sleeping for other demods than dvb-s)
|
||||
- add support for CableStar (stv0297 Microtune 203x/ALPS)
|
||||
- add support for CableStar (stv0297 Microtune 203x/ALPS) (almost done, incompatibilities with the Nexus-CA)
|
||||
|
||||
Debugging
|
||||
---------
|
||||
|
@ -192,82 +189,6 @@ Sram destinations: accessing registers
|
|||
Tuner/Demod: I2C bus
|
||||
DVB-stuff: can be written for common use
|
||||
|
||||
Restrictions:
|
||||
============
|
||||
|
||||
We need to create a bus-specific-struct and a flexcop-struct.
|
||||
|
||||
bus-specific-struct:
|
||||
|
||||
struct flexcop_pci
|
||||
...
|
||||
|
||||
struct flexcop_usb
|
||||
...
|
||||
|
||||
|
||||
struct flexcop_device {
|
||||
void *bus_specific; /* container for bus-specific struct */
|
||||
...
|
||||
}
|
||||
|
||||
PCI i2c can read/write max 4 bytes at a time, USB can more
|
||||
|
||||
Functions
|
||||
=========
|
||||
|
||||
Syntax
|
||||
------
|
||||
|
||||
- Flexcop functions will be called "flexcop(_[a-z0-9]+)+" and exported as such
|
||||
if needed.
|
||||
- Flexcop-device functions will be called "flexcop_device(_[a-z0-9]+)+" and
|
||||
exported as such if needed.
|
||||
- Both will be compiled to b2c2-flexcop.ko and their source can be found in the
|
||||
flexcop*.[hc]
|
||||
|
||||
Callbacks and exports
|
||||
---------------------
|
||||
|
||||
Bus-specific functions will be given as callbacks (function pointers) to the
|
||||
flexcop-module. (within the flexcop_device-struct)
|
||||
|
||||
Initialization process
|
||||
======================
|
||||
|
||||
b2c2-flexcop.ko is loaded
|
||||
b2c2-flexcop-<bus>.ko is loaded
|
||||
|
||||
suppose a device is found:
|
||||
malloc flexcop and the bus-specific variables (via flexcop_device_malloc)
|
||||
fill the bus-specific variable
|
||||
fill the flexcop variable (especially the bus-specific callbacks)
|
||||
bus-specific initialization
|
||||
- ...
|
||||
do the common initialization (via flexcop_device_initialize)
|
||||
- reset the card
|
||||
- determine flexcop type (II, IIB, III)
|
||||
- hw_filters (bus dependent)
|
||||
- 0x204
|
||||
- set sram size
|
||||
- create the dvb-stuff
|
||||
- create i2c stuff
|
||||
- frontend-initialization
|
||||
done
|
||||
bus specific:
|
||||
- media_destination (this and the following 3 are bus specific)
|
||||
- cai_dest
|
||||
- cao_dest
|
||||
- net_destination
|
||||
|
||||
Bugs fixed while rewriting the driver
|
||||
=====================================
|
||||
|
||||
- EEPROM access (to read the MAC address) was fixed to death some time last
|
||||
year. (fixed here and in skystar2.c) (Bjarne, this was the piece of code
|
||||
(fix-chipaddr) we were wondering about)
|
||||
|
||||
|
||||
Acknowledgements (just for the rewriting part)
|
||||
================
|
||||
|
||||
|
@ -281,4 +202,4 @@ Boleslaw Ciesielski for pointing out a problem with firmware loader.
|
|||
|
||||
Vadim Catana for correcting the USB transfer.
|
||||
|
||||
comments, critics and ideas to linux-dvb@linuxtv.org or patrick.boettcher@desy.de
|
||||
comments, critics and ideas to linux-dvb@linuxtv.org.
|
||||
|
|
Loading…
Reference in a new issue