> >> > >[Jack Wang] > >> > >I don't think the statement below is error: > >> > >child->linkrate = min(parent_phy->linkrate, child->max_linkrate); > >> > >> The parent_phy is same to child_phy, I don't think it's right. > >> > >[Jack Wang] The parent_phy->linkrate is report from DISCOVER response as > >negotiated link rate(parent phy with child phy), so same is right. > > Parent_phy = &parent->ex_dev.ex_phy[phy_id]; (sas_ex_discover_expander) > struct expander_device *parent_ex = &parent->ex_dev;(sas_ex_get_linkrate) > struct ex_phy *phy = &parent_ex->ex_phy[i]; > so, parent_phy and phy are same one variable. > > >> >> Yes, you can test like this. > >> >> >Then expander1's linkrate will set to 3G, and expander2's linkrate > will > >> set > >> >> >to 6G, that is correct. > >> >> yes > >> >> > But the connection rate will be 3G from hba to > >> >> >expander2. > >> >> How to configure the connection rate? > >> >> Now, MVSAS driver get 6G from sas_ex_get_linkrate function, and set > >> linkrate > >> >> of OPEN address frame to the value. right? > >> >> > >> >> -- > >> >[Jack Wang] > >> >Connection rate is auto, link layer will insert deletable primitives to > do > >> >rate matching (sas2r15 7.14). > >> > >> >Yes, you should set the linkrate to that value . > >> > >> OK.MVSAS driver seem right. But, the problem is command fail because of > link > >> error, that is why I commit this patch. And my patch work fine. > >> You can reproduce the issue and fix it. Thanks! > >[Jack Wang] I re-consider it , you maybe should compare the HBA linkrate > >with the child phy linkrate and chose a minor. > > Yes, how about this: > - child->linkrate = min(parent_phy->linkrate, child->max_linkrate); > + child->linkrate = min(parent->max_linkrate, child->max_linkrate); > The max link rate of parent have HBA link rate info: > dev->max_linkrate = port->linkrate; (in sas_get_port_device function). [Jack Wang] No, I mean you when you set connection rate in OPEN Address frame, you compare your HBA linkrate with the linkrate of the phy you want to open, and chose the minor. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html