[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190614011224.GC28822@lunn.ch>
Date: Fri, 14 Jun 2019 03:12:24 +0200
From: Andrew Lunn <andrew@...n.ch>
To: Ioana Ciornei <ioana.ciornei@....com>
Cc: linux@...linux.org.uk, hkallweit1@...il.com, f.fainelli@...il.com,
davem@...emloft.net, netdev@...r.kernel.org,
alexandru.marginean@....com, ruxandra.radulescu@....com
Subject: Re: [PATCH RFC 3/6] dpaa2-mac: add MC API for the DPMAC object
> +/**
> + * dpmac_set_link_state() - Set the Ethernet link status
> + * @mc_io: Pointer to opaque I/O object
> + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
> + * @token: Token of DPMAC object
> + * @link_state: Link state configuration
> + *
> + * Return: '0' on Success; Error code otherwise.
> + */
> +int dpmac_set_link_state(struct fsl_mc_io *mc_io,
> + u32 cmd_flags,
> + u16 token,
> + struct dpmac_link_state *link_state)
> +{
> + struct dpmac_cmd_set_link_state *cmd_params;
> + struct fsl_mc_command cmd = { 0 };
> +
> + /* prepare command */
> + cmd.header = mc_encode_cmd_header(DPMAC_CMDID_SET_LINK_STATE,
> + cmd_flags,
> + token);
> + cmd_params = (struct dpmac_cmd_set_link_state *)cmd.params;
> + cmd_params->options = cpu_to_le64(link_state->options);
> + cmd_params->rate = cpu_to_le32(link_state->rate);
> + dpmac_set_field(cmd_params->state, STATE, link_state->up);
> + dpmac_set_field(cmd_params->state, STATE_VALID,
> + link_state->state_valid);
> + cmd_params->supported = cpu_to_le64(link_state->supported);
> + cmd_params->advertising = cpu_to_le64(link_state->advertising);
I don't understand what supported and advertising mean in the context
of a MAC. PHY yes, but MAC?
> + * DPMAC link configuration/state options
> + */
> +
> +/**
> + * Enable auto-negotiation
> + */
> +#define DPMAC_LINK_OPT_AUTONEG BIT_ULL(0)
> +/**
> + * Enable half-duplex mode
> + */
> +#define DPMAC_LINK_OPT_HALF_DUPLEX BIT_ULL(1)
> +/**
> + * Enable pause frames
> + */
> +#define DPMAC_LINK_OPT_PAUSE BIT_ULL(2)
> +/**
> + * Enable a-symmetric pause frames
> + */
> +#define DPMAC_LINK_OPT_ASYM_PAUSE BIT_ULL(3)
So is this to configure the MAC? The MAC can do half duplex, pause,
asym pause?
But from the previous patch, the PHY cannot do half duplex?
Andrew
Powered by blists - more mailing lists