Lines Matching refs:to

12 to HCI commands and events.
18 routed through netlink sockets to NFC Core and then to HCI. From this point,
19 they are translated in a sequence of HCI commands sent to the HCI layer in the
24 and a translation will be forwarded to NFC Core as needed. There are hooks to
39 can pass that information to HCI core.
44 A gate defines the 'port' where some service can be found. In order to access
45 a service, one must create a pipe to that gate and open it. In this
47 This is consistent with the driver need to send commands to proprietary gates
48 without knowing the pipe connected to it.
54 the HCI management. This makes it easier to maintain a driver for a chip that
89 session has been set up. The driver can use it to do additional initialization
91 - xmit() shall simply write a frame to the physical link.
95 - dep_link_up() is called after a p2p target has been detected, to finish
96 the p2p connection setup with hardware parameters that need to be passed back
97 to nfc core.
98 - dep_link_down() is called to bring the p2p link down.
99 - target_from_gate() is an optional entrypoint to return the nfc protocols
100 corresponding to a proprietary gate.
101 - complete_target_discovered() is an optional entry point to let the driver
102 perform additional proprietary processing necessary to auto activate the
105 are required to send data to the tag. Some tag types will require custom
106 commands, others can be written to using the standard HCI commands. The driver
107 can check the tag type and either do proprietary processing, or return 1 to ask
110 - tm_send() is called to send data in the case of a p2p connection
112 by the core to check that an activated tag is still in the field. If this is
113 not implemented, the core will not be able to push tag_lost events to the user
115 - event_received() is called to handle an event coming from the chip. Driver
116 can handle the event or return 1 to let HCI attempt standard processing.
118 On the rx path, the driver is responsible to push incoming HCP frames to HCI
133 enable(): turn the phy on (power on), make it ready to transfer data
135 write(): Send a data frame to the chip. Note that to enable higher
136 layers such as an llc to store the frame for re-emission, this function must
140 Data coming from the chip shall be sent directly to nfc_hci_recv_frame().
166 - rcv_from_drv() : handle data coming from the chip, going to HCI
167 - xmit_from_hci() : handle data sent by HCI, going to the chip
173 easy to mix any physical link with any llc for a given chip driver.
186 fast, cannot sleep. sends incoming frames to HCI where they are passed to
216 Internally, execution is asynchronous. So all this API does is to enqueue the
223 to the lower layer which happens to be shdlc. It will then start a timer to be
224 able to complete the command with a timeout error if no response arrive.
227 handles shdlc framing in and out. It uses the driver xmit to send frames and
229 SHDLC I(nformation) frames payload are HCP fragments. They are aggregated to
232 HCI Responses are dispatched immediately from this context to unblock
237 It is also possible to execute the command asynchronously using this API:
250 queued to HCI rx_queue and will be dispatched from HCI rx worker
251 context (MSGRXWQ). This is done this way to allow a cmd or event handler
252 to also execute other commands (for example, handling the
253 NFC_HCI_EVT_TARGET_DISCOVERED event from PN544 requires to issue an
254 ANY_GET_PARAMETER to the reader A gate to get information on the target
257 Typically, such an event will be propagated to NFC Core from MSGRXWQ context.
270 - driver (pn544) fails to deliver an incoming frame: it stores the error such
271 that any subsequent call to the driver will result in this error. Then it calls
272 the standard nfc_shdlc_recv_frame() with a NULL argument to report the problem
273 above. shdlc stores a EREMOTEIO sticky status, which will trigger SMW to
276 - SMW is basically a background thread to handle incoming and outgoing shdlc
277 frames. This thread will also check the shdlc sticky status and report to HCI
278 when it discovers it is not able to run anymore because of an unrecoverable
287 active, it will send a tag discovered event with an empty tag list to the user
288 space to let it know that the poll operation will never be able to detect a tag.