Lines Matching +full:loss +full:- +full:of +full:- +full:lock
1 .. SPDX-License-Identifier: GPL-2.0
32 Most of it is used by the SAS Layer but a few fields need to
47 ------------------
58 And then all the phys are an array of my_phy in your HA
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
89 address of the phy, possibly somewhere in your my_phy
93 - set this when you (LLDD) receive an
103 - this is where you copy the IDENTIFY/FIS frame
104 when you get it; you lock, copy, set frame_rcvd_size and
105 unlock the lock, and then call the event. It is a pointer
109 DMAable memory to that area holding the lock.
112 - this is where primitives go when they're
113 received. See sas.h. Grab the lock, set the primitive,
114 release the lock, notify.
117 - this points to the sas_port if the phy belongs
118 to a port -- the LLDD only reads this. It points to the
119 sas_port this phy is part of. Set by the SAS Layer.
122 - may be set; the SAS layer sets it anyway.
125 - you should set this to point to your phy so you
127 of your callbacks and passes you a phy. If the sas_phy is
128 embedded you can also use container_of -- whatever you
133 -------------------
135 The LLDD doesn't set any fields of this struct -- it only
139 haven't heard of a HA having more than 8 phys.
142 - I haven't found use for that -- maybe other
144 use of this.
147 ------------------------
168 - since the SAS layer doesn't want to mess with
171 structure) and holds the SAS address of the host
178 - an array of pointers to structures. (see
183 - the number of phys present in the sas_phy array,
184 and the number of ports present in the sas_port
191 /* LLDD calls these to notify the class of an event. */
197 /* The class calls these to notify the LLDD of an event. */
204 A SAS LLDD should also implement at least one of the Task
223 A SAS LLDD should implement at least one of those.
231 - set this to point to your HA struct. You can also
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);
283 of anything. There is no other method or way a LLDD to tell
284 the SAS layer of anything happening internally or in the SAS
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.
355 @gfp_mask is the gfp_mask defining the context of the caller.
361 queuing of any sort and at any level in a SAS LLDD.
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
385 a) It shows you the physical layout of the SAS domain at
395 graphical interface of this.
398 you e.g., change the meaning of the READY LED MEANING
400 of the domain device.
402 Keeping internal device state changes is responsibility of
413 contents of the domain_device structure, but it never creates
440 4. Read the amount of data you expect to receive for the frame you built.
441 If you receive different amount of data you expected to receive,
442 then there was some kind of error.
453 argument, the sysfs file name of the SMP portal to the
457 The SMP portal gives you complete control of the expander,