Lines Matching +full:sata +full:- +full:oob
1 .. SPDX-License-Identifier: GPL-2.0
11 phy/OOB/link management, the SAS layer is concerned with:
20 (SATA), and
25 phy/OOB management, and vendor specific tasks and generates
40 start OOB (at which point your driver will start calling the
47 ------------------
75 - must be set (0/1)
78 - must be set [0,MAX_PHYS)]
81 - must be set
84 - you set this when OOB has finished and then notify
88 - this normally points to an array holding the sas
93 - set this when you (LLDD) receive an
99 address for SATA directly attached devices. The Discover
103 - this is where you copy the IDENTIFY/FIS frame
112 - this is where primitives go when they're
117 - this points to the sas_port if the phy belongs
118 to a port -- the LLDD only reads this. It points to the
122 - may be set; the SAS layer sets it anyway.
125 - you should set this to point to your phy so you
128 embedded you can also use container_of -- whatever you
133 -------------------
135 The LLDD doesn't set any fields of this struct -- it only
142 - I haven't found use for that -- maybe other
147 ------------------------
168 - since the SAS layer doesn't want to mess with
178 - an array of pointers to structures. (see
183 - the number of phys present in the sas_phy array,
231 - set this to point to your HA struct. You can also
236 *but* before you enable the phys to do OOB::
244 my_ha->sas_ha.sas_addr = &my_ha->sas_addr[0];
247 sas_phys[i] = &my_ha->phys[i].sas_phy;
248 sas_ports[i] = &my_ha->sas_ports[i];
251 my_ha->sas_ha.sas_phy = sas_phys;
252 my_ha->sas_ha.sas_port = sas_ports;
253 my_ha->sas_ha.num_phys = MAX_PHYS;
255 my_ha->sas_ha.lldd_port_formed = my_port_formed;
257 my_ha->sas_ha.lldd_dev_found = my_dev_found;
258 my_ha->sas_ha.lldd_dev_gone = my_dev_gone;
260 my_ha->sas_ha.lldd_execute_task = my_execute_task;
262 my_ha->sas_ha.lldd_abort_task = my_abort_task;
263 my_ha->sas_ha.lldd_abort_task_set = my_abort_task_set;
264 my_ha->sas_ha.lldd_clear_task_set = my_clear_task_set;
265 my_ha->sas_ha.lldd_I_T_nexus_reset= NULL; (2)
266 my_ha->sas_ha.lldd_lu_reset = my_lu_reset;
267 my_ha->sas_ha.lldd_query_task = my_query_task;
269 my_ha->sas_ha.lldd_clear_nexus_port = my_clear_nexus_port;
270 my_ha->sas_ha.lldd_clear_nexus_ha = my_clear_nexus_ha;
272 my_ha->sas_ha.lldd_control_phy = my_control_phy;
274 return sas_register_ha(&my_ha->sas_ha);
307 - at least one event from group C (choice),
308 - events marked M (mandatory) are mandatory (only one),
309 - events marked E (expander) if it wants the SAS layer
311 - Unmarked events are optional.
316 - when your HA got internal error and was reset.
319 - on receiving an IDENTIFY/FIS frame
322 - on receiving a primitive
325 - timer expired, loss of signal, loss of DWS, etc. [1]_
328 - DWS reset timeout timer expired [1]_
331 - Hard Reset primitive received.
334 - the device is gone [1]_
337 - OOB went fine and oob_mode is valid
340 - Error while doing OOB, the device probably
344 - SATA is present, COMWAKE not sent.
365 * -SAS_QUEUE_FULL, -ENOMEM, nothing was queued;
371 dev -- the device this task is destined to
372 task_proto -- _one_ of enum sas_proto
373 scatter -- pointer to scatter gather list array
374 num_scatter -- number of elements in scatter
375 total_xfer_len -- total number of bytes expected to be transferred
376 data_dir -- PCI_DMA_...
377 task_done -- callback when the task has finished execution