diff options
author | Prabhakar Kushwaha <prabhakar@freescale.com> | 2015-11-04 12:25:53 +0530 |
---|---|---|
committer | York Sun <yorksun@freescale.com> | 2015-11-30 08:53:02 -0800 |
commit | 1ebbe4fcf75b15ccf23234bb6a7d28895a7e6b11 (patch) | |
tree | 909a730c34288750c08acfe04ee196d9c34d669d /drivers/net/fsl-mc/dprc.c | |
parent | 99e904c1f036145946a8439e3f3c5180139640a6 (diff) | |
download | u-boot-imx-1ebbe4fcf75b15ccf23234bb6a7d28895a7e6b11.zip u-boot-imx-1ebbe4fcf75b15ccf23234bb6a7d28895a7e6b11.tar.gz u-boot-imx-1ebbe4fcf75b15ccf23234bb6a7d28895a7e6b11.tar.bz2 |
driver: net: fsl-mc: Add create, destroy APIs in flibs
Current Management Complex Flibs does not support APIs for adding and
destroying the objects.
Add APIs to create and destroy objects for DPBP, DPIO, DPNI and DPRC.
Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com>
Reviewed-by: York Sun <yorksun@freescale.com>
Diffstat (limited to 'drivers/net/fsl-mc/dprc.c')
-rw-r--r-- | drivers/net/fsl-mc/dprc.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/drivers/net/fsl-mc/dprc.c b/drivers/net/fsl-mc/dprc.c index 357aa48..7d34355 100644 --- a/drivers/net/fsl-mc/dprc.c +++ b/drivers/net/fsl-mc/dprc.c @@ -72,6 +72,52 @@ int dprc_close(struct fsl_mc_io *mc_io, return mc_send_command(mc_io, &cmd); } +int dprc_create_container(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + struct dprc_cfg *cfg, + int *child_container_id, + uint64_t *child_portal_paddr) +{ + struct mc_command cmd = { 0 }; + int err; + + /* prepare command */ + DPRC_CMD_CREATE_CONTAINER(cmd, cfg); + + cmd.header = mc_encode_cmd_header(DPRC_CMDID_CREATE_CONT, + cmd_flags, + token); + + /* send command to mc*/ + err = mc_send_command(mc_io, &cmd); + if (err) + return err; + + /* retrieve response parameters */ + DPRC_RSP_CREATE_CONTAINER(cmd, *child_container_id, + *child_portal_paddr); + + return 0; +} + +int dprc_destroy_container(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + int child_container_id) +{ + struct mc_command cmd = { 0 }; + + /* prepare command */ + cmd.header = mc_encode_cmd_header(DPRC_CMDID_DESTROY_CONT, + cmd_flags, + token); + DPRC_CMD_DESTROY_CONTAINER(cmd, child_container_id); + + /* send command to mc*/ + return mc_send_command(mc_io, &cmd); +} + int dprc_reset_container(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, |