Lines Matching +full:retain +full:- +full:state +full:- +full:suspended
7 * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
20 * Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
26 * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
33 * * Redistributions of source code must retain the above copyright
74 * isci_remote_device - isci representation of a sas expander / end point
76 * @connection_rate: per-taskcontext connection rate for this device
116 kref_get(&idev->kref); in isci_get_device()
122 struct isci_remote_device *idev = dev->lldd_dev; in isci_lookup_device()
124 if (idev && !test_bit(IDEV_GONE, &idev->flags)) { in isci_lookup_device()
125 kref_get(&idev->kref); in isci_lookup_device()
136 kref_put(&idev->kref, isci_remote_device_release); in isci_put_device()
147 * sci_remote_device_stop() - This method will stop both transmission and
163 * enum sci_remote_device_states - This enumeration depicts all the states
164 * for the common remote device state machine.
165 * @SCI_DEV_INITIAL: Simply the initial state for the base remote device
166 * state machine.
168 * @SCI_DEV_STOPPED: This state indicates that the remote device has
169 * successfully been stopped. In this state no new IO operations are
170 * permitted. This state is entered from the INITIAL state. This state
171 * is entered from the STOPPING state.
173 * @SCI_DEV_STARTING: This state indicates the the remote device is in
174 * the process of becoming ready (i.e. starting). In this state no new
175 * IO operations are permitted. This state is entered from the STOPPED
176 * state.
178 * @SCI_DEV_READY: This state indicates the remote device is now ready.
180 * This state is entered from the STARTING state.
184 * state.
186 * @SCI_STP_DEV_CMD: This is the command state for the STP remote
187 * device. This state is entered when the device is processing a
188 * non-NCQ command. The device object will fail any new start IO
191 * @SCI_STP_DEV_NCQ: This is the NCQ state for the STP remote device.
192 * This state is entered when the device is processing an NCQ reuqest.
193 * It will remain in this state so long as there is one or more NCQ
196 * @SCI_STP_DEV_NCQ_ERROR: This is the NCQ error state for the STP
197 * remote device. This state is entered when an SDB error FIS is
198 * received by the device object while in the NCQ state. The device
199 * object will only accept a READ LOG command while in this state.
201 * @SCI_STP_DEV_ATAPI_ERROR: This is the ATAPI error state for the STP
202 * ATAPI remote device. This state is entered when ATAPI device sends
204 * state. A suspension event is expected in this state. The device
212 * remote device. This is the normal operational state for a remote
215 * @SCI_SMP_DEV_CMD: This is the suspended state for the remote device.
216 * This is the state that the device is placed in when a RNC suspend is
219 * @SCI_DEV_STOPPING: This state indicates that the remote device is in
220 * the process of stopping. In this state no new IO operations are
222 * state is entered from the READY state. This state is entered from
223 * the FAILED state.
225 * @SCI_DEV_FAILED: This state indicates that the remote device has
226 * failed. In this state no new IO operations are permitted. This
227 * state is entered from the INITIALIZING state. This state is entered
228 * from the READY state.
230 * @SCI_DEV_RESETTING: This state indicates the device is being reset.
231 * In this state no new IO operations are permitted. This state is
232 * entered from the READY state.
234 * @SCI_DEV_FINAL: Simply the final state for the base remote device
235 * state machine.
259 const char *dev_state_name(enum sci_remote_device_states state);
272 /* XXX delete this voodoo when converting to the top-level device in sci_remote_device_decrement_request_count()
275 if (WARN_ONCE(idev->started_request_count == 0, in sci_remote_device_decrement_request_count()
280 idev->started_request_count--; in sci_remote_device_decrement_request_count()