mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 16:24:13 +08:00
dpaa2-mac: add the MC API for retrieving the version
The dpmac_get_api_version command will be used in the next patches to determine if the current firmware is capable or not to change the Ethernet protocol running on the MAC. Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c553f22e05
commit
38d28b02a0
@ -19,6 +19,8 @@
|
||||
#define DPMAC_CMDID_CLOSE DPMAC_CMD(0x800)
|
||||
#define DPMAC_CMDID_OPEN DPMAC_CMD(0x80c)
|
||||
|
||||
#define DPMAC_CMDID_GET_API_VERSION DPMAC_CMD(0xa0c)
|
||||
|
||||
#define DPMAC_CMDID_GET_ATTR DPMAC_CMD(0x004)
|
||||
#define DPMAC_CMDID_SET_LINK_STATE DPMAC_CMD_V2(0x0c3)
|
||||
|
||||
@ -70,4 +72,9 @@ struct dpmac_rsp_get_counter {
|
||||
__le64 counter;
|
||||
};
|
||||
|
||||
struct dpmac_rsp_get_api_version {
|
||||
__le16 major;
|
||||
__le16 minor;
|
||||
};
|
||||
|
||||
#endif /* _FSL_DPMAC_CMD_H */
|
||||
|
@ -181,3 +181,34 @@ int dpmac_get_counter(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* dpmac_get_api_version() - Get Data Path MAC version
|
||||
* @mc_io: Pointer to MC portal's I/O object
|
||||
* @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
|
||||
* @major_ver: Major version of data path mac API
|
||||
* @minor_ver: Minor version of data path mac API
|
||||
*
|
||||
* Return: '0' on Success; Error code otherwise.
|
||||
*/
|
||||
int dpmac_get_api_version(struct fsl_mc_io *mc_io, u32 cmd_flags,
|
||||
u16 *major_ver, u16 *minor_ver)
|
||||
{
|
||||
struct dpmac_rsp_get_api_version *rsp_params;
|
||||
struct fsl_mc_command cmd = { 0 };
|
||||
int err;
|
||||
|
||||
cmd.header = mc_encode_cmd_header(DPMAC_CMDID_GET_API_VERSION,
|
||||
cmd_flags,
|
||||
0);
|
||||
|
||||
err = mc_send_command(mc_io, &cmd);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
rsp_params = (struct dpmac_rsp_get_api_version *)cmd.params;
|
||||
*major_ver = le16_to_cpu(rsp_params->major);
|
||||
*minor_ver = le16_to_cpu(rsp_params->minor);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -205,4 +205,6 @@ enum dpmac_counter_id {
|
||||
int dpmac_get_counter(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
||||
enum dpmac_counter_id id, u64 *value);
|
||||
|
||||
int dpmac_get_api_version(struct fsl_mc_io *mc_io, u32 cmd_flags,
|
||||
u16 *major_ver, u16 *minor_ver);
|
||||
#endif /* __FSL_DPMAC_H */
|
||||
|
Loading…
Reference in New Issue
Block a user