net: phylink: make phylink_parse_mode() support non-DT platform
Certain platform does not support DT, so we make phylink_parse_mode() to allow non-DT platform to use it to setup in-band AN advertising. Signed-off-by: Ong Boon Leong <boon.leong.ong@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
b97b5331b8
commit
ab39385021
@@ -271,8 +271,9 @@ static int phylink_parse_mode(struct phylink *pl, struct fwnode_handle *fwnode)
|
||||
pl->cfg_link_an_mode = MLO_AN_FIXED;
|
||||
fwnode_handle_put(dn);
|
||||
|
||||
if (fwnode_property_read_string(fwnode, "managed", &managed) == 0 &&
|
||||
strcmp(managed, "in-band-status") == 0) {
|
||||
if ((fwnode_property_read_string(fwnode, "managed", &managed) == 0 &&
|
||||
strcmp(managed, "in-band-status") == 0) ||
|
||||
pl->config->ovr_an_inband) {
|
||||
if (pl->cfg_link_an_mode == MLO_AN_FIXED) {
|
||||
phylink_err(pl,
|
||||
"can't use both fixed-link and in-band-status\n");
|
||||
|
||||
@@ -64,6 +64,7 @@ enum phylink_op_type {
|
||||
* @pcs_poll: MAC PCS cannot provide link change interrupt
|
||||
* @poll_fixed_state: if true, starts link_poll,
|
||||
* if MAC link is at %MLO_AN_FIXED mode.
|
||||
* @ovr_an_inband: if true, override PCS to MLO_AN_INBAND
|
||||
* @get_fixed_state: callback to execute to determine the fixed link state,
|
||||
* if MAC link is at %MLO_AN_FIXED mode.
|
||||
*/
|
||||
@@ -72,6 +73,7 @@ struct phylink_config {
|
||||
enum phylink_op_type type;
|
||||
bool pcs_poll;
|
||||
bool poll_fixed_state;
|
||||
bool ovr_an_inband;
|
||||
void (*get_fixed_state)(struct phylink_config *config,
|
||||
struct phylink_link_state *state);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user