提交 c6ee197c 编写于 作者: J Johannes Stezenbach 提交者: Linus Torvalds

[PATCH] dvb: flexcop: readme update

readme update
Signed-off-by: NPatrick Boettcher <pb@linuxtv.org>
Signed-off-by: NJohannes Stezenbach <js@linuxtv.org>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 59a7ad6c
...@@ -2,26 +2,20 @@ This README escorted the skystar2-driver rewriting procedure. It describes the ...@@ -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 state of the new flexcop-driver set and some internals are written down here
too. 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 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. 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 Remark: flexcop-pci.c was a copy of skystar2.c, but every line has been
touched and rewritten. touched and rewritten.
History & News
==============
2005-04-01 - correct USB ISOC transfers (thanks to Vadim Catana)
General coding processing General coding processing
========================= =========================
...@@ -81,16 +75,15 @@ non-static where possible, moved code to proper places) ...@@ -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) 2) Search for errors in the leftover of flexcop-pci.c (partially done)
5a) add MAC address reading 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? What to do in the near future?
-------------------------------------- --------------------------------------
(no special order here) (no special order here)
5) USB driver 5) USB driver
5b) optimize isoc-transfer (submitting/killing isoc URBs when transfer is starting) 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 Testing changes
--------------- ---------------
...@@ -118,7 +111,7 @@ item | mt352 | nxt2002 | stv0299 | mt312 | mt352 | nxt2002 | stv0299 | mt312 ...@@ -118,7 +111,7 @@ item | mt352 | nxt2002 | stv0299 | mt312 | mt352 | nxt2002 | stv0299 | mt312
2) | O | N 2) | O | N
5a) | N | O 5a) | N | O
5b)* | N | 5b)* | N |
5c)* | N | 5c) | N | O
* - not done yet * - not done yet
...@@ -155,17 +148,21 @@ working) ...@@ -155,17 +148,21 @@ working)
SOLUTION: also index 0 was affected, because net_translation is done for SOLUTION: also index 0 was affected, because net_translation is done for
these indexes by default these indexes by default
5b) isochronous transfer does only work in the first attempt (for the Sky2PC USB, 5b) isochronous transfer does only work in the first attempt (for the Sky2PC
Air2PC is working) USB, Air2PC is working) SOLUTION: the flexcop was going asleep and never really
SOLUTION: the flexcop was going asleep and never really woke up again (don't woke up again (don't know if this need fixes, see
know if this need fixes, see flexcop-fe-tuner.c:flexcop_sleep) 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 Improvements when rewriting (refactoring) is done
================================================= =================================================
- split sleeping of the flexcop (misc_204.ACPI3_sig = 1;) from lnb_control - split sleeping of the flexcop (misc_204.ACPI3_sig = 1;) from lnb_control
(enable sleeping for other demods than dvb-s) (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 Debugging
--------- ---------
...@@ -192,82 +189,6 @@ Sram destinations: accessing registers ...@@ -192,82 +189,6 @@ Sram destinations: accessing registers
Tuner/Demod: I2C bus Tuner/Demod: I2C bus
DVB-stuff: can be written for common use 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) Acknowledgements (just for the rewriting part)
================ ================
...@@ -281,4 +202,4 @@ Boleslaw Ciesielski for pointing out a problem with firmware loader. ...@@ -281,4 +202,4 @@ Boleslaw Ciesielski for pointing out a problem with firmware loader.
Vadim Catana for correcting the USB transfer. 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.
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册