NFC: port100: Commands mechanism implementation
authorThierry Escande <thierry.escande@linux.intel.com>
Fri, 4 Oct 2013 10:12:01 +0000 (12:12 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Mon, 7 Oct 2013 12:10:52 +0000 (14:10 +0200)
commit0347a6ab300a1532c298823408d6e51ccf4e4f45
treee6930ffeb03c5942c36c020110b148241f124698
parent562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06
NFC: port100: Commands mechanism implementation

This patch implements the command handling mechanism. The digital stack
serializes all commands sent to the driver. This means that the digital
stack waits for the reply of the current command before sending a new
one. So there is no command queue managed at driver level.

All Port-100 commands are asynchronous. If the command has been sent
successfully to the device, it replies with an ACK frame. Then the
command response is received (or actually no-response in case of
timeout or error) and a command complete work on the system workqueue
is responsible for sending the response (or the error) back to the
digital stack.

The digital stack requires some commands to be synchronous, mainly
hardware configuration ones. These commands use the asynchronous
command path but are made synchronous by using a completion object.

Signed-off-by: Thierry Escande <thierry.escande@linux.intel.com>
Cc: Stephen Tiedemann <stephen.tiedemann@gmail.com>
Tested-by: Cho, Yu-Chen <acho@suse.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
drivers/nfc/port100.c