Lines Matching refs:port

89  * to this port
91 * The following is a list of phys for each port that are allowed:
99 * that port. For example, one could assign phy 3 to port 0 and no other
101 * information regarding whether the phy_mask for a port can be supported.
103 * @param[in] this_port This is the port object to which the phy is being
106 * port.
109 * @retval TRUE if this is a valid phy assignment for the port
110 * @retval FALSE if this is not a valid phy assignment for the port
148 // Ensure that all of the phys in the port are capable of
164 * supplied SAS port.
166 * @param[in] this_port a handle corresponding to the SAS port for which
169 * @return Return a bit mask indicating which phys are a part of this port.
200 * This method will return a TRUE value if the port's phy mask can be
204 * port:
210 * @param[in] this_port This is the port object for which to determine
215 * @retval TRUE if this is a valid phy assignment for the port
216 * @retval FALSE if this is not a valid phy assignment for the port
256 * contained in the port. Currently, the lowest order phy that is
259 * @param[in] this_port This parameter specifies the port from which
265 * contained in the port.
267 * active in the port.
278 // Ensure that the phy is both part of the port and currently
294 * This method attempts to make the assignment of the phy to the port.
297 * @param[in, out] port The port object to which the phy assignement
299 * @param[in, out] phy The phy which is being assigned to the port.
306 * assigned to a different port.
309 SCIC_SDS_PORT_T *port,
313 // Check to see if we can add this phy to a port
314 // that means that the phy is not part of a port and that the port does
317 (port->phy_table[phy->phy_index] == SCI_INVALID_HANDLE)
319 && scic_sds_port_is_valid_phy_assignment(port, phy->phy_index)
323 // make logical port index = physical port index
324 port->logical_port_index = port->physical_port_index;
325 port->phy_table[phy->phy_index] = phy;
326 scic_sds_phy_set_port(phy, port);
335 * This method will clear the phy assigned to this port. This method fails
336 * if this phy is not currently assinged to this port.
338 * @param[in, out] port The port from which the phy is being cleared.
339 * @param[in, out] phy The phy being cleared from the port.
342 * @retval TRUE if the phy is removed from the port.
343 * @retval FALSE if this phy is not assined to this port.
346 SCIC_SDS_PORT_T *port,
350 // Make sure that this phy is part of this port
352 (port->phy_table[phy->phy_index] == phy)
353 && (scic_sds_phy_get_port(phy) == port)
356 // Yep it is assigned to this port so remove it
359 &scic_sds_port_get_controller(port)->port_table[SCI_MAX_PORTS]
362 port->phy_table[phy->phy_index] = SCI_INVALID_HANDLE;
371 * This method will add a PHY to the selected port.
373 * @param[in] this_port This parameter specifies the port in which the phy will
377 * port.
380 * @retval SCI_SUCCESS the phy has been added to the port.
381 * @retval Any other status is failre to add the phy to the port.
396 * @param[in] this_port This parameter specifies the port in which the phy will
400 * port.
403 * @retval SCI_SUCCESS the phy has been removed from the port.
404 * @retval Any other status is failre to add the phy to the port.
416 * @brief This method requests the SAS address for the supplied SAS port
419 * @param[in] this_port a handle corresponding to the SAS port for which
423 * address for the port.
455 * port.
457 * @param[in] this_port a handle corresponding to the SAS port for which
461 * the protocol values for the port. The values are
495 * attached to this SAS port.
497 * @param[in] this_port a handle corresponding to the SAS port for which
501 * address for the device directly attached to the port.
520 // Ensure that the phy is both part of the port and currently
553 * @param[in] this_port a handle corresponding to the SAS port for which
557 * the protocol values for the port. The values are
577 // Ensure that the phy is both part of the port and currently
587 * @brief This method returns the amount of memory requred for a port
599 * port objects.
610 * port objects.
649 * @param[in] this_port The logical port on which we need to create the
687 * @param[in] this_port The logical port on which we need to create the
732 * This routine will free any allocated dummy resources for this port.
734 * @param[in, out] this_port The port on which the resources are being destroyed.
812 * @brief This method performs initialization of the supplied port.
825 * returned if the phy being added to the port
845 * is not a valid PHY for this port then the function will notify the SCIC_USER.
846 * A PHY can only be part of a port if it's attached SAS ADDRESS is the same as
847 * all other PHYs in the same port.
875 // other phys in the port OR this is the first phy in the port,
877 // in this port.
962 SCI_PORT_HANDLE_T port,
966 SCIC_SDS_PORT_T *this_port = (SCIC_SDS_PORT_T *)port;
972 port, properties
976 (port == SCI_INVALID_HANDLE)
1016 * This method assigns the direct attached device ID for this port.
1018 * @param[in] this_port The port for which the direct attached device id is to
1020 * @param[in] device_id The direct attached device ID to assign to the port.
1040 * This method will resume the phy which is already added in the port.
1045 * @param[in] this_port This is the port on which the phy should be enabled.
1058 * This method will activate the phy in the port.
1060 * - adding the phy to the port
1064 * @param[in] this_port This is the port on which the phy should be enabled.
1096 // If this is sata port then the phy has already been resumed
1114 * This method will deactivate the supplied phy in the port.
1116 * @param[in] this_port This is the port on which the phy should be
1119 * active in the port.
1144 // Re-assign the phy back to the LP as if it were a narrow port for APC mode.
1145 // For MPC mode, the phy will remain in the port
1158 * port object.
1160 * @param[in] this_port This is the port on which the phy should be disabled.
1183 * @brief This method returns FALSE if the port only has a single phy object
1187 * @param[in] this_port The port for which the wide port condition is to be
1191 * @retval TRUE Is returned if this is a wide ported port.
1192 * @retval FALSE Is returned if this is a narrow port.
1215 * if the port wants the PHY to continue on to the link up state then
1216 * the port layer must return TRUE. If the port object returns FALSE
1219 * @param[in] this_port The port associated with the phy object.
1228 * become an invalid port configuration.
1246 //direct attached Sata phy cannot be in wide port.
1254 //add the phy to the its logical port for direct attached SATA. The phy will be added
1255 //to port whose port_index will be the phy_index.
1265 * the port that it is now in a ready state
1282 * the port that it is no longer in a ready state
1296 * @brief This method is called to start an IO request on this port.
1315 * @brief This method is called to complete an IO request to the port.
1334 * @brief This method is provided to timeout requests for port operations.
1335 * Mostly its for the port reset operation.
1337 * @param[in] port This is the parameter or cookie value that is provided
1341 void *port
1347 this_port = (SCIC_SDS_PORT_T *)port;
1353 // if the port is still in the resetting state then the timeout fired
1362 // if the port is stopped then the start request failed
1373 // if the port is still stopping then the stop has not completed
1376 port,
1382 // The port is in the ready state and we have a timer reporting a timeout
1416 * @brief This function updates the hardwares VIIT entry for this port.
1452 * on this port. This maximum allowed speed evaluates to the maximum
1453 * speed of the slowest phy in the port.
1455 * @param[in] this_port This parameter specifies the port for which to
1459 * phy in the port.
1469 // Loop through all of the phys in this port and find the phy with the
1488 * @param[in] this_port The port that a BCN happens.
1508 * @param[in] this_port The port that a BCN had been disabled from.
1513 SCI_PORT_HANDLE_T port
1516 SCIC_SDS_PORT_T * this_port = (SCIC_SDS_PORT_T *)port;
1536 * @brief This method release resources in for a scic port.
1540 * @param[in] this_port This parameter specifies the port whose resource is to
1573 * This is the default method for port a start request. It will report a
1576 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
1583 SCI_BASE_PORT_T *port
1587 sci_base_object_get_logger((SCIC_SDS_PORT_T *)port),
1590 port,
1592 scic_sds_port_get_base_state_machine((SCIC_SDS_PORT_T *)port))
1599 * This is the default method for a port stop request. It will report a
1602 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
1609 SCI_BASE_PORT_T *port
1613 sci_base_object_get_logger((SCIC_SDS_PORT_T *)port),
1616 port,
1618 scic_sds_port_get_base_state_machine((SCIC_SDS_PORT_T *)port))
1625 * This is the default method for a port destruct request. It will report a
1628 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
1635 SCI_BASE_PORT_T *port
1639 sci_base_object_get_logger((SCIC_SDS_PORT_T *)port),
1642 port,
1644 scic_sds_port_get_base_state_machine((SCIC_SDS_PORT_T *)port))
1651 * This is the default method for a port reset request. It will report a
1654 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
1662 SCI_BASE_PORT_T * port,
1667 sci_base_object_get_logger((SCIC_SDS_PORT_T *)port),
1670 port,
1672 scic_sds_port_get_base_state_machine((SCIC_SDS_PORT_T *)port))
1679 * This is the default method for a port add phy request. It will report a
1682 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
1689 SCI_BASE_PORT_T *port,
1694 sci_base_object_get_logger((SCIC_SDS_PORT_T *)port),
1697 port, phy,
1699 scic_sds_port_get_base_state_machine((SCIC_SDS_PORT_T *)port))
1706 * This is the default method for a port remove phy request. It will report a
1709 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
1716 SCI_BASE_PORT_T *port,
1721 sci_base_object_get_logger((SCIC_SDS_PORT_T *)port),
1724 port, phy,
1726 scic_sds_port_get_base_state_machine((SCIC_SDS_PORT_T *)port))
1733 * This is the default method for a port unsolicited frame request. It will
1736 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
1743 * port object? It seems possible if we implementing virtual functions
1747 SCIC_SDS_PORT_T * port,
1751 SCIC_SDS_PORT_T *this_port = (SCIC_SDS_PORT_T *)port;
1757 port, frame_index,
1770 * This is the default method for a port event request. It will report a
1773 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
1780 SCIC_SDS_PORT_T * port,
1785 sci_base_object_get_logger((SCIC_SDS_PORT_T *)port),
1788 port, event_code,
1790 scic_sds_port_get_base_state_machine((SCIC_SDS_PORT_T *)port))
1797 * This is the default method for a port link up notification. It will report
1800 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
1822 * This is the default method for a port link down notification. It will
1825 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
1847 * This is the default method for a port start io request. It will report a
1850 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
1875 * This is the default method for a port complete io request. It will report
1878 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
1909 * @param[in] port This is the SCIC_SDS_PORT object on which the io request
1915 * port object. This parameter is not required to complete this
1923 SCIC_SDS_PORT_T *port,
1928 SCIC_SDS_PORT_T *this_port = (SCIC_SDS_PORT_T *)port;
1963 * start it. To start a port it must have no assiged devices and it must have
1964 * at least one phy assigned to it. If those conditions are met then the port
1967 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
1972 * object could not be started because the port configuration is not
1979 SCI_BASE_PORT_T *port
1984 SCIC_SDS_PORT_T *this_port = (SCIC_SDS_PORT_T *)port;
1989 /// devices assigned to this port. There must be no devices
1990 /// assigned to a port on a start operation.
2048 // There are one or more phys assigned to this port. Make sure
2049 // the port's phy mask is in fact legal and supported by the
2076 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
2085 SCI_BASE_PORT_T *port
2095 * SCIC_SDS_PORT can be destroyed. This function causes the port object to
2098 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
2106 SCI_BASE_PORT_T *port
2109 SCIC_SDS_PORT_T *this_port = (SCIC_SDS_PORT_T *)port;
2119 * port is in the SCI_BASE_PORT_STATE_STOPPED.
2121 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
2128 * can not be added to the port.
2129 * @retval SCI_SUCCESS if the phy is added to the port.
2133 SCI_BASE_PORT_T *port,
2137 SCIC_SDS_PORT_T * this_port = (SCIC_SDS_PORT_T *)port;
2141 // Read the port assigned SAS Address if there is one
2149 // for this port.
2168 * from a port is in the SCI_BASE_PORT_STATE_STOPPED.
2170 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
2177 * can not be added to the port.
2178 * @retval SCI_SUCCESS if the phy is added to the port.
2182 SCI_BASE_PORT_T *port,
2186 SCIC_SDS_PORT_T *this_port = (SCIC_SDS_PORT_T *)port;
2206 * the complete io request. Should the request count reach 0 then the port
2209 * @param[in] port This is the SCIC_SDS_PORT object on which the io request
2215 * port object. This parameter is not required to complete this
2223 SCIC_SDS_PORT_T *port,
2228 SCIC_SDS_PORT_T *this_port = (SCIC_SDS_PORT_T *)port;
2248 * This method will stop a failed port. This causes a transition to the
2251 * @param[in] port This is the port object which is being requested to stop.
2258 SCI_BASE_PORT_T *port
2261 SCIC_SDS_PORT_T *this_port = (SCIC_SDS_PORT_T *)port;
2272 * This method will transition a failed port to its ready state. The port
2274 * more phys in the port became ready.
2276 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
2293 /// reset it get a link up on the port because of a hot plug event.
2304 * port reset operation. Link downs can occur during the reset operation.
2306 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
2420 * This method will enable the SCU Port Task Scheduler for this port object
2421 * but will leave the port task scheduler in a suspended state.
2423 * @param[in] this_port This is the port object which to suspend.
2442 * This method will disable the SCU port task scheduler for this port
2445 * @param[in] this_port This is the port object which to resume.
2537 * state handlers for the SCIC_SDS_PORT object and disables the port task
2563 // the port then we want to disable the hardwares port
2572 * port task scheduler.
2587 // Enable and suspend the port task scheduler
2594 * handlers for the SCIC_SDS_PORT object, reports the port object as not ready
2628 // Notify the caller that the port is not yet ready
2637 // port.
2851 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
2859 SCI_BASE_PORT_T *port
2862 SCIC_SDS_PORT_T *this_port = (SCIC_SDS_PORT_T *)port;
2875 * count for this port object.
2877 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
2889 SCIC_SDS_PORT_T *port,
2894 SCIC_SDS_PORT_T *this_port = (SCIC_SDS_PORT_T *)port;
2903 SCI_BASE_PORT_T *port,
2907 SCIC_SDS_PORT_T * this_port = (SCIC_SDS_PORT_T *)port;
2930 SCI_BASE_PORT_T *port,
2934 SCIC_SDS_PORT_T * this_port = (SCIC_SDS_PORT_T *)port;
2962 * this port and will transition to the ready operational substate.
2976 // Since this is the first phy going link up for the port we can just enable
2988 * SCIC_SDS_PORT object. The port object can not accept new requests so the
2991 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
3003 SCIC_SDS_PORT_T *port,
3016 * This method will casue the port to reset.
3018 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
3027 SCI_BASE_PORT_T * port,
3033 SCIC_SDS_PORT_T * this_port = (SCIC_SDS_PORT_T *)port;
3105 * gone link down and if this is the last phy in the port the port will change
3122 // If there are no active phys left in the port, then transition
3123 // the port to the WAITING state until such time as a phy goes
3137 * count for this port object.
3139 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
3151 SCIC_SDS_PORT_T *port,
3156 SCIC_SDS_PORT_T *this_port = (SCIC_SDS_PORT_T *)port;
3168 * This is the default method for a port add phy request. It will report a
3171 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
3179 SCI_BASE_PORT_T *port,
3183 SCIC_SDS_PORT_T * this_port = (SCIC_SDS_PORT_T *)port;
3194 // the port.
3205 * This is the default method for a port remove phy request. It will report a
3208 * @param[in] port This is the SCI_BASE_PORT object which is cast into a
3216 SCI_BASE_PORT_T *port,
3220 SCIC_SDS_PORT_T * this_port = (SCIC_SDS_PORT_T *)port;
3231 // the port.
3242 * This method will decrement the outstanding request count for this port.
3243 * If the request count goes to 0 then the port can be reprogrammed with
3246 * @param[in] port This is the port that is being requested to complete
3253 SCIC_SDS_PORT_T *port,
3258 scic_sds_port_decrement_request_count(port);
3260 if (port->started_request_count == 0)
3263 &port->ready_substate_machine,
3330 * This macro sets the port ready substate handlers.
3332 #define scic_sds_port_set_ready_state_handlers(port, state_id) \
3334 port, &scic_sds_port_ready_substate_handler_table[(state_id)] \
3342 * This method will susped the port task scheduler for this port object.
3360 * This method will resume the port task scheduler for this port object.
3384 * @parm[in] this_port The port on which the task must be posted.
3419 * @parm[in] this_port The port on which the task must be aborted.
3457 * port for any ready phys. If there is at least one phy in a ready state
3458 * then the port transitions to the ready operational substate.
3483 // At least one of the phys on the port is ready
3513 * the state handlers for the port object, notifies the SCI User that the port
3514 * is ready, and resumes port operations.
3559 // Post the dummy task for the port so the hardware can schedule
3567 * the port not ready and suspends the port task scheduler.
3581 // Kill the dummy task for this port if it has not yet posted
3600 * the port not ready and suspends the port task scheduler.