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
224 A SAS LLDD should implement at least one of those.
232 - set this to point to your HA struct. You can also
245 my_ha->sas_ha.sas_addr = &my_ha->sas_addr[0];
248 sas_phys[i] = &my_ha->phys[i].sas_phy;
249 sas_ports[i] = &my_ha->sas_ports[i];
252 my_ha->sas_ha.sas_phy = sas_phys;
253 my_ha->sas_ha.sas_port = sas_ports;
254 my_ha->sas_ha.num_phys = MAX_PHYS;
256 my_ha->sas_ha.lldd_port_formed = my_port_formed;
258 my_ha->sas_ha.lldd_dev_found = my_dev_found;
259 my_ha->sas_ha.lldd_dev_gone = my_dev_gone;
261 my_ha->sas_ha.lldd_execute_task = my_execute_task;
263 my_ha->sas_ha.lldd_abort_task = my_abort_task;
264 my_ha->sas_ha.lldd_abort_task_set = my_abort_task_set;
265 my_ha->sas_ha.lldd_clear_aca = my_clear_aca;
266 my_ha->sas_ha.lldd_clear_task_set = my_clear_task_set;
267 my_ha->sas_ha.lldd_I_T_nexus_reset= NULL; (2)
268 my_ha->sas_ha.lldd_lu_reset = my_lu_reset;
269 my_ha->sas_ha.lldd_query_task = my_query_task;
271 my_ha->sas_ha.lldd_clear_nexus_port = my_clear_nexus_port;
272 my_ha->sas_ha.lldd_clear_nexus_ha = my_clear_nexus_ha;
274 my_ha->sas_ha.lldd_control_phy = my_control_phy;
276 return sas_register_ha(&my_ha->sas_ha);
285 of anything. There is no other method or way a LLDD to tell
286 the SAS layer of anything happening internally or in the SAS
309 - at least one event from group C (choice),
310 - events marked M (mandatory) are mandatory (only one),
311 - events marked E (expander) if it wants the SAS layer
313 - Unmarked events are optional.
318 - when your HA got internal error and was reset.
321 - on receiving an IDENTIFY/FIS frame
324 - on receiving a primitive
327 - timer expired, loss of signal, loss of DWS, etc. [1]_
330 - DWS reset timeout timer expired [1]_
333 - Hard Reset primitive received.
336 - the device is gone [1]_
339 - OOB went fine and oob_mode is valid
342 - Error while doing OOB, the device probably
346 - SATA is present, COMWAKE not sent.
357 @gfp_mask is the gfp_mask defining the context of the caller.
363 queuing of any sort and at any level in a SAS LLDD.
367 * -SAS_QUEUE_FULL, -ENOMEM, nothing was queued;
373 dev -- the device this task is destined to
374 task_proto -- _one_ of enum sas_proto
375 scatter -- pointer to scatter gather list array
376 num_scatter -- number of elements in scatter
377 total_xfer_len -- total number of bytes expected to be transferred
378 data_dir -- PCI_DMA_...
379 task_done -- callback when the task has finished execution
387 a) It shows you the physical layout of the SAS domain at
397 graphical interface of this.
400 you e.g., change the meaning of the READY LED MEANING
402 of the domain device.
404 Keeping internal device state changes is responsibility of
415 contents of the domain_device structure, but it never creates
442 4. Read the amount of data you expect to receive for the frame you built.
443 If you receive different amount of data you expected to receive,
444 then there was some kind of error.
455 argument, the sysfs file name of the SMP portal to the
459 The SMP portal gives you complete control of the expander,