|
@@ -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.
|