architecture: - somehow have some more abstrcat handle type in order to enable the generic rfid_{get,set}opt() functions - remove additional transceive_{acf,sf} functions from reader and asic structs, make the code reuse the existing transceive() function by using the frametype to differentiate different cases. rc632: - make timeout tolerance factor (TIMER_RELAX_FACTOR) user-specified - try to use built-in timer for timing analysis, i.e. determine the exact time until a card response by reading the remaining timer ticks from the register - make sure interrupt mode for timer wait works cm5121: - fix handling of TX or RX > 0x7f [buffer length in atmel chip?] iso14443a: [none] iso14443b: - implement 'option 2' frame markers - test anticollission (need multiple tags) iso15693: - implement anticollision mifare_clasic: [none] icode1: - implement and test code (I only have ICode2 tags) tcl: - implement pps for asymmetric (rx/tx) speeds openct: - add ifdhandler driver for PC/SC support - add various standardized PC/SC remappings for cards != tcl other: - implementation of code for various passive tags, ie. ITRX, I*Code1, I*Code2, Tag-it, ... - documentation - add notion of 'asic implementation' for specifying reader-specific initialization values such as mod_conductance - abstract a read single block / read multiple block API where l2/proto layer can provide multi-block function (e.g. iso15693), which will be emulated in case there only is a single-block function - switch over to use of rfid_buf structure, similar to linux skb. upper layers have sufficient headroom in order to have lower layers add protocol headers in front of a packet - implement software checksumming support. The reader should be able to indicate whether it supports hardware checksum generation / verification. - application software should be able to override hardware csumming on request - implement some auto-calibration mode where the user is requested to leave a single PICC/VICC on the reader and the software iterates through various mod_conductance and bitphase values to see whether it can calibrate to a given [new] card. The resulting calibration values are printed by the program.