Lines Matching refs:expander

2561 	 * expander phy).
3427 * Step 3- Check if this expander is part of a wide phy that has
3527 pmcs_prt(pwp, PMCS_PRT_DEBUG_CONFIG, pptr, NULL, "Config expander %s "
3532 * Step 5- figure out how many phys are in this expander.
3550 * Step 6- Allocate a list of phys for this expander and figure out
3601 * Step 8- Discover things about each phy in the expander.
3640 * Set the new children pointer for this expander
3703 * if we can't communicate with the expander.
3709 * Step 2: Figure out how many phys are in this expander. If
3737 * Force a rescan of this expander after dead contents
3753 * Step 5: Discover things about each phy in this expander. We do
3761 "%s: No children attached to expander @ %s?", __func__,
3847 * Force a rescan of this expander after dead
3871 * Force a rescan of this expander after dead
3904 * Force a rescan of this expander after dead
3914 * re-evaluate its contents. If it's not an expander,
3999 * each expander. Since we're not doing any configuration right now, it
4011 * Check each expander at this level
4064 * If the expander is dead, mark its children dead
4076 * If this expander is not dead, we're done here.
4115 * expander. Any children of that expander, subsidiaries or
4148 * expander.
4288 "%s: expander %s SMP operation failed (%s)",
4295 * doesn't assume this expander is dead for good.
4301 "%s: expander %s device state non-operational",
4353 "%s: expander at phy %s is still configuring",
4374 * Called with expander locked (and thus, pptr) as well as all PHYs up to
4382 pmcs_expander_content_discover(pmcs_hw_t *pwp, pmcs_phy_t *expander,
4399 if (!expander->iport || !expander->valid_device_id) {
4400 pmcs_prt(pwp, PMCS_PRT_DEBUG_CONFIG, expander, expander->target,
4401 "%s: Can't reach PHY %s", __func__, expander->path);
4405 pwrk = pmcs_gwork(pwp, PMCS_TAG_TYPE_WAIT, expander);
4411 pwrk->dtype = expander->dtype;
4412 pwrk->xp = expander->target;
4416 msg[2] = LE_32(expander->device_id);
4422 if (expander->tolerates_sas2) {
4447 pmcs_hold_iport(expander->iport);
4448 iport = expander->iport;
4453 pmcs_unlock_phy(expander);
4458 pmcs_lock_phy(expander);
4521 "%s: expander %s SMP operation failed (%s)",
4632 if (expander->parent &&
4633 memcmp(expander->parent->sas_address,
4635 sizeof (expander->parent->sas_address)) == 0) {
4638 "expander (%s)", __func__, pptr->path);
4666 * If the attached device is a SATA device and the expander
4667 * is (possibly) a SAS2 compliant expander, check for whether
4671 if (expander->tolerates_sas2 && pptr->dtype == SATA &&
4680 * Now run up from the expander's parent up to the top to
4683 for (ctmp = expander->parent; ctmp; ctmp = ctmp->parent) {
5730 * represent the same device (e.g. expander). It could
7250 * 2. If parent is an expander, then parent is locked along with all its
7253 * responsibility of the caller to individually lock expander subsidiary PHYs
7551 * reported back by an expander.