lkml.org 
[lkml]   [2015]   [Sep]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 3/6] staging: fsl-mc: up-rev dpbp binary interface to v2.0
    Date
    Add cmd_flags parameter to all dpbp APIs to comply
    with the dpbp 2.0 MC interface. Updated MC version
    major number. Pass irq args in struct instead of
    separate args.

    Signed-off-by: J. German Rivera <German.Rivera@freescale.com>
    ---
    drivers/staging/fsl-mc/bus/dpbp.c | 136 ++++++++++++++++++++----------
    drivers/staging/fsl-mc/include/dpbp-cmd.h | 2 +-
    drivers/staging/fsl-mc/include/dpbp.h | 91 +++++++++++++++-----
    3 files changed, 162 insertions(+), 67 deletions(-)

    diff --git a/drivers/staging/fsl-mc/bus/dpbp.c b/drivers/staging/fsl-mc/bus/dpbp.c
    index d99ab6d..0004e65 100644
    --- a/drivers/staging/fsl-mc/bus/dpbp.c
    +++ b/drivers/staging/fsl-mc/bus/dpbp.c
    @@ -34,14 +34,19 @@
    #include "../include/dpbp.h"
    #include "../include/dpbp-cmd.h"

    -int dpbp_open(struct fsl_mc_io *mc_io, int dpbp_id, uint16_t *token)
    +int dpbp_open(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + int dpbp_id,
    + uint16_t *token)
    {
    struct mc_command cmd = { 0 };
    int err;

    /* prepare command */
    cmd.header = mc_encode_cmd_header(DPBP_CMDID_OPEN,
    - MC_CMD_PRI_LOW, 0);
    + cmd_flags,
    + 0);
    +
    cmd.params[0] |= mc_enc(0, 32, dpbp_id);

    /* send command to mc*/
    @@ -56,12 +61,14 @@ int dpbp_open(struct fsl_mc_io *mc_io, int dpbp_id, uint16_t *token)
    }
    EXPORT_SYMBOL(dpbp_open);

    -int dpbp_close(struct fsl_mc_io *mc_io, uint16_t token)
    +int dpbp_close(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + uint16_t token)
    {
    struct mc_command cmd = { 0 };

    /* prepare command */
    - cmd.header = mc_encode_cmd_header(DPBP_CMDID_CLOSE, MC_CMD_PRI_HIGH,
    + cmd.header = mc_encode_cmd_header(DPBP_CMDID_CLOSE, cmd_flags,
    token);

    /* send command to mc*/
    @@ -70,6 +77,7 @@ int dpbp_close(struct fsl_mc_io *mc_io, uint16_t token)
    EXPORT_SYMBOL(dpbp_close);

    int dpbp_create(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    const struct dpbp_cfg *cfg,
    uint16_t *token)
    {
    @@ -80,7 +88,8 @@ int dpbp_create(struct fsl_mc_io *mc_io,

    /* prepare command */
    cmd.header = mc_encode_cmd_header(DPBP_CMDID_CREATE,
    - MC_CMD_PRI_LOW, 0);
    + cmd_flags,
    + 0);

    /* send command to mc*/
    err = mc_send_command(mc_io, &cmd);
    @@ -93,24 +102,29 @@ int dpbp_create(struct fsl_mc_io *mc_io,
    return 0;
    }

    -int dpbp_destroy(struct fsl_mc_io *mc_io, uint16_t token)
    +int dpbp_destroy(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + uint16_t token)
    {
    struct mc_command cmd = { 0 };

    /* prepare command */
    cmd.header = mc_encode_cmd_header(DPBP_CMDID_DESTROY,
    - MC_CMD_PRI_LOW, token);
    + cmd_flags,
    + token);

    /* send command to mc*/
    return mc_send_command(mc_io, &cmd);
    }

    -int dpbp_enable(struct fsl_mc_io *mc_io, uint16_t token)
    +int dpbp_enable(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + uint16_t token)
    {
    struct mc_command cmd = { 0 };

    /* prepare command */
    - cmd.header = mc_encode_cmd_header(DPBP_CMDID_ENABLE, MC_CMD_PRI_LOW,
    + cmd.header = mc_encode_cmd_header(DPBP_CMDID_ENABLE, cmd_flags,
    token);

    /* send command to mc*/
    @@ -118,25 +132,31 @@ int dpbp_enable(struct fsl_mc_io *mc_io, uint16_t token)
    }
    EXPORT_SYMBOL(dpbp_enable);

    -int dpbp_disable(struct fsl_mc_io *mc_io, uint16_t token)
    +int dpbp_disable(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + uint16_t token)
    {
    struct mc_command cmd = { 0 };

    /* prepare command */
    cmd.header = mc_encode_cmd_header(DPBP_CMDID_DISABLE,
    - MC_CMD_PRI_LOW, token);
    + cmd_flags,
    + token);

    /* send command to mc*/
    return mc_send_command(mc_io, &cmd);
    }
    EXPORT_SYMBOL(dpbp_disable);

    -int dpbp_is_enabled(struct fsl_mc_io *mc_io, uint16_t token, int *en)
    +int dpbp_is_enabled(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + uint16_t token,
    + int *en)
    {
    struct mc_command cmd = { 0 };
    int err;
    /* prepare command */
    - cmd.header = mc_encode_cmd_header(DPBP_CMDID_IS_ENABLED, MC_CMD_PRI_LOW,
    + cmd.header = mc_encode_cmd_header(DPBP_CMDID_IS_ENABLED, cmd_flags,
    token);

    /* send command to mc*/
    @@ -150,53 +170,58 @@ int dpbp_is_enabled(struct fsl_mc_io *mc_io, uint16_t token, int *en)
    return 0;
    }

    -int dpbp_reset(struct fsl_mc_io *mc_io, uint16_t token)
    +int dpbp_reset(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + uint16_t token)
    {
    struct mc_command cmd = { 0 };

    /* prepare command */
    cmd.header = mc_encode_cmd_header(DPBP_CMDID_RESET,
    - MC_CMD_PRI_LOW, token);
    + cmd_flags,
    + token);

    /* send command to mc*/
    return mc_send_command(mc_io, &cmd);
    }

    -int dpbp_set_irq(struct fsl_mc_io *mc_io,
    - uint16_t token,
    - uint8_t irq_index,
    - uint64_t irq_paddr,
    - uint32_t irq_val,
    - int user_irq_id)
    +int dpbp_set_irq(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + uint16_t token,
    + uint8_t irq_index,
    + struct dpbp_irq_cfg *irq_cfg)
    {
    struct mc_command cmd = { 0 };

    /* prepare command */
    cmd.header = mc_encode_cmd_header(DPBP_CMDID_SET_IRQ,
    - MC_CMD_PRI_LOW, token);
    + cmd_flags,
    + token);
    +
    cmd.params[0] |= mc_enc(0, 8, irq_index);
    - cmd.params[0] |= mc_enc(32, 32, irq_val);
    - cmd.params[1] |= mc_enc(0, 64, irq_paddr);
    - cmd.params[2] |= mc_enc(0, 32, user_irq_id);
    + cmd.params[0] |= mc_enc(32, 32, irq_cfg->val);
    + cmd.params[1] |= mc_enc(0, 64, irq_cfg->addr);
    + cmd.params[2] |= mc_enc(0, 32, irq_cfg->user_irq_id);

    /* send command to mc*/
    return mc_send_command(mc_io, &cmd);
    }

    -int dpbp_get_irq(struct fsl_mc_io *mc_io,
    - uint16_t token,
    - uint8_t irq_index,
    - int *type,
    - uint64_t *irq_paddr,
    - uint32_t *irq_val,
    - int *user_irq_id)
    +int dpbp_get_irq(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + uint16_t token,
    + uint8_t irq_index,
    + int *type,
    + struct dpbp_irq_cfg *irq_cfg)
    {
    struct mc_command cmd = { 0 };
    int err;

    /* prepare command */
    cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_IRQ,
    - MC_CMD_PRI_LOW, token);
    + cmd_flags,
    + token);
    +
    cmd.params[0] |= mc_enc(32, 8, irq_index);

    /* send command to mc*/
    @@ -205,14 +230,16 @@ int dpbp_get_irq(struct fsl_mc_io *mc_io,
    return err;

    /* retrieve response parameters */
    - *irq_val = (uint32_t)mc_dec(cmd.params[0], 0, 32);
    - *irq_paddr = (uint64_t)mc_dec(cmd.params[1], 0, 64);
    - *user_irq_id = (int)mc_dec(cmd.params[2], 0, 32);
    + irq_cfg->val = (uint32_t)mc_dec(cmd.params[0], 0, 32);
    + irq_cfg->addr = (uint64_t)mc_dec(cmd.params[1], 0, 64);
    + irq_cfg->user_irq_id = (int)mc_dec(cmd.params[2], 0, 32);
    *type = (int)mc_dec(cmd.params[2], 32, 32);
    +
    return 0;
    }

    int dpbp_set_irq_enable(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    uint8_t irq_index,
    uint8_t en)
    @@ -221,7 +248,9 @@ int dpbp_set_irq_enable(struct fsl_mc_io *mc_io,

    /* prepare command */
    cmd.header = mc_encode_cmd_header(DPBP_CMDID_SET_IRQ_ENABLE,
    - MC_CMD_PRI_LOW, token);
    + cmd_flags,
    + token);
    +
    cmd.params[0] |= mc_enc(0, 8, en);
    cmd.params[0] |= mc_enc(32, 8, irq_index);

    @@ -230,6 +259,7 @@ int dpbp_set_irq_enable(struct fsl_mc_io *mc_io,
    }

    int dpbp_get_irq_enable(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    uint8_t irq_index,
    uint8_t *en)
    @@ -239,7 +269,9 @@ int dpbp_get_irq_enable(struct fsl_mc_io *mc_io,

    /* prepare command */
    cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_IRQ_ENABLE,
    - MC_CMD_PRI_LOW, token);
    + cmd_flags,
    + token);
    +
    cmd.params[0] |= mc_enc(32, 8, irq_index);

    /* send command to mc*/
    @@ -249,10 +281,12 @@ int dpbp_get_irq_enable(struct fsl_mc_io *mc_io,

    /* retrieve response parameters */
    *en = (uint8_t)mc_dec(cmd.params[0], 0, 8);
    +
    return 0;
    }

    int dpbp_set_irq_mask(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    uint8_t irq_index,
    uint32_t mask)
    @@ -261,7 +295,9 @@ int dpbp_set_irq_mask(struct fsl_mc_io *mc_io,

    /* prepare command */
    cmd.header = mc_encode_cmd_header(DPBP_CMDID_SET_IRQ_MASK,
    - MC_CMD_PRI_LOW, token);
    + cmd_flags,
    + token);
    +
    cmd.params[0] |= mc_enc(0, 32, mask);
    cmd.params[0] |= mc_enc(32, 8, irq_index);

    @@ -270,6 +306,7 @@ int dpbp_set_irq_mask(struct fsl_mc_io *mc_io,
    }

    int dpbp_get_irq_mask(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    uint8_t irq_index,
    uint32_t *mask)
    @@ -279,7 +316,9 @@ int dpbp_get_irq_mask(struct fsl_mc_io *mc_io,

    /* prepare command */
    cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_IRQ_MASK,
    - MC_CMD_PRI_LOW, token);
    + cmd_flags,
    + token);
    +
    cmd.params[0] |= mc_enc(32, 8, irq_index);

    /* send command to mc*/
    @@ -289,10 +328,12 @@ int dpbp_get_irq_mask(struct fsl_mc_io *mc_io,

    /* retrieve response parameters */
    *mask = (uint32_t)mc_dec(cmd.params[0], 0, 32);
    +
    return 0;
    }

    int dpbp_get_irq_status(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    uint8_t irq_index,
    uint32_t *status)
    @@ -302,7 +343,9 @@ int dpbp_get_irq_status(struct fsl_mc_io *mc_io,

    /* prepare command */
    cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_IRQ_STATUS,
    - MC_CMD_PRI_LOW, token);
    + cmd_flags,
    + token);
    +
    cmd.params[0] |= mc_enc(32, 8, irq_index);

    /* send command to mc*/
    @@ -312,10 +355,12 @@ int dpbp_get_irq_status(struct fsl_mc_io *mc_io,

    /* retrieve response parameters */
    *status = (uint32_t)mc_dec(cmd.params[0], 0, 32);
    +
    return 0;
    }

    int dpbp_clear_irq_status(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    uint8_t irq_index,
    uint32_t status)
    @@ -324,7 +369,9 @@ int dpbp_clear_irq_status(struct fsl_mc_io *mc_io,

    /* prepare command */
    cmd.header = mc_encode_cmd_header(DPBP_CMDID_CLEAR_IRQ_STATUS,
    - MC_CMD_PRI_LOW, token);
    + cmd_flags,
    + token);
    +
    cmd.params[0] |= mc_enc(0, 32, status);
    cmd.params[0] |= mc_enc(32, 8, irq_index);

    @@ -333,6 +380,7 @@ int dpbp_clear_irq_status(struct fsl_mc_io *mc_io,
    }

    int dpbp_get_attributes(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    struct dpbp_attr *attr)
    {
    @@ -341,7 +389,8 @@ int dpbp_get_attributes(struct fsl_mc_io *mc_io,

    /* prepare command */
    cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_ATTR,
    - MC_CMD_PRI_LOW, token);
    + cmd_flags,
    + token);

    /* send command to mc*/
    err = mc_send_command(mc_io, &cmd);
    @@ -353,6 +402,7 @@ int dpbp_get_attributes(struct fsl_mc_io *mc_io,
    attr->id = (int)mc_dec(cmd.params[0], 32, 32);
    attr->version.major = (uint16_t)mc_dec(cmd.params[1], 0, 16);
    attr->version.minor = (uint16_t)mc_dec(cmd.params[1], 16, 16);
    +
    return 0;
    }
    EXPORT_SYMBOL(dpbp_get_attributes);
    diff --git a/drivers/staging/fsl-mc/include/dpbp-cmd.h b/drivers/staging/fsl-mc/include/dpbp-cmd.h
    index 1fd70a21..efa9bf3 100644
    --- a/drivers/staging/fsl-mc/include/dpbp-cmd.h
    +++ b/drivers/staging/fsl-mc/include/dpbp-cmd.h
    @@ -34,7 +34,7 @@

    /* DPBP Version */
    #define DPBP_VER_MAJOR 2
    -#define DPBP_VER_MINOR 0
    +#define DPBP_VER_MINOR 1

    /* Command IDs */
    #define DPBP_CMDID_CLOSE 0x800
    diff --git a/drivers/staging/fsl-mc/include/dpbp.h b/drivers/staging/fsl-mc/include/dpbp.h
    index 5f3c8e7..5d16bb1 100644
    --- a/drivers/staging/fsl-mc/include/dpbp.h
    +++ b/drivers/staging/fsl-mc/include/dpbp.h
    @@ -41,6 +41,7 @@ struct fsl_mc_io;
    /**
    * dpbp_open() - Open a control session for the specified object.
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @dpbp_id: DPBP unique ID
    * @token: Returned token; use in subsequent API calls
    *
    @@ -54,11 +55,15 @@ struct fsl_mc_io;
    *
    * Return: '0' on Success; Error code otherwise.
    */
    -int dpbp_open(struct fsl_mc_io *mc_io, int dpbp_id, uint16_t *token);
    +int dpbp_open(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + int dpbp_id,
    + uint16_t *token);

    /**
    * dpbp_close() - Close the control session of the object
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @token: Token of DPBP object
    *
    * After this function is called, no further operations are
    @@ -66,10 +71,12 @@ int dpbp_open(struct fsl_mc_io *mc_io, int dpbp_id, uint16_t *token);
    *
    * Return: '0' on Success; Error code otherwise.
    */
    -int dpbp_close(struct fsl_mc_io *mc_io, uint16_t token);
    +int dpbp_close(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + uint16_t token);

    /**
    - * struct dpbp_cfg() - Structure representing DPBP configuration
    + * struct dpbp_cfg - Structure representing DPBP configuration
    * @options: place holder
    */
    struct dpbp_cfg {
    @@ -79,6 +86,7 @@ struct dpbp_cfg {
    /**
    * dpbp_create() - Create the DPBP object.
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @cfg: Configuration structure
    * @token: Returned token; use in subsequent API calls
    *
    @@ -97,99 +105,123 @@ struct dpbp_cfg {
    * Return: '0' on Success; Error code otherwise.
    */
    int dpbp_create(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    const struct dpbp_cfg *cfg,
    uint16_t *token);

    /**
    * dpbp_destroy() - Destroy the DPBP object and release all its resources.
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @token: Token of DPBP object
    *
    * Return: '0' on Success; error code otherwise.
    */
    -int dpbp_destroy(struct fsl_mc_io *mc_io, uint16_t token);
    +int dpbp_destroy(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + uint16_t token);

    /**
    * dpbp_enable() - Enable the DPBP.
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @token: Token of DPBP object
    *
    * Return: '0' on Success; Error code otherwise.
    */
    -int dpbp_enable(struct fsl_mc_io *mc_io, uint16_t token);
    +int dpbp_enable(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + uint16_t token);

    /**
    * dpbp_disable() - Disable the DPBP.
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @token: Token of DPBP object
    *
    * Return: '0' on Success; Error code otherwise.
    */
    -int dpbp_disable(struct fsl_mc_io *mc_io, uint16_t token);
    +int dpbp_disable(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + uint16_t token);

    /**
    * dpbp_is_enabled() - Check if the DPBP is enabled.
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @token: Token of DPBP object
    * @en: Returns '1' if object is enabled; '0' otherwise
    *
    * Return: '0' on Success; Error code otherwise.
    */
    -int dpbp_is_enabled(struct fsl_mc_io *mc_io, uint16_t token, int *en);
    +int dpbp_is_enabled(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + uint16_t token,
    + int *en);

    /**
    * dpbp_reset() - Reset the DPBP, returns the object to initial state.
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @token: Token of DPBP object
    *
    * Return: '0' on Success; Error code otherwise.
    */
    -int dpbp_reset(struct fsl_mc_io *mc_io, uint16_t token);
    +int dpbp_reset(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    + uint16_t token);
    +
    +/**
    + * struct dpbp_irq_cfg - IRQ configuration
    + * @addr: Address that must be written to signal a message-based interrupt
    + * @val: Value to write into irq_addr address
    + * @user_irq_id: A user defined number associated with this IRQ
    + */
    +struct dpbp_irq_cfg {
    + uint64_t addr;
    + uint32_t val;
    + int user_irq_id;
    +};

    /**
    * dpbp_set_irq() - Set IRQ information for the DPBP to trigger an interrupt.
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @token: Token of DPBP object
    * @irq_index: Identifies the interrupt index to configure
    - * @irq_addr: Address that must be written to
    - * signal a message-based interrupt
    - * @irq_val: Value to write into irq_addr address
    - * @user_irq_id: A user defined number associated with this IRQ
    + * @irq_cfg: IRQ configuration
    *
    * Return: '0' on Success; Error code otherwise.
    */
    int dpbp_set_irq(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    uint8_t irq_index,
    - uint64_t irq_addr,
    - uint32_t irq_val,
    - int user_irq_id);
    + struct dpbp_irq_cfg *irq_cfg);

    /**
    * dpbp_get_irq() - Get IRQ information from the DPBP.
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @token: Token of DPBP object
    * @irq_index: The interrupt index to configure
    * @type: Interrupt type: 0 represents message interrupt
    - * type (both irq_addr and irq_val are valid)
    - * @irq_addr: Returned address that must be written to
    - * signal the message-based interrupt
    - * @irq_val: Value to write into irq_addr address
    - * @user_irq_id: A user defined number associated with this IRQ
    + * type (both irq_addr and irq_val are valid)
    + * @irq_cfg: IRQ attributes
    *
    * Return: '0' on Success; Error code otherwise.
    */
    int dpbp_get_irq(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    uint8_t irq_index,
    int *type,
    - uint64_t *irq_addr,
    - uint32_t *irq_val,
    - int *user_irq_id);
    + struct dpbp_irq_cfg *irq_cfg);

    /**
    * dpbp_set_irq_enable() - Set overall interrupt state.
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @token: Token of DPBP object
    * @irq_index: The interrupt index to configure
    * @en: Interrupt state - enable = 1, disable = 0
    @@ -202,6 +234,7 @@ int dpbp_get_irq(struct fsl_mc_io *mc_io,
    * Return: '0' on Success; Error code otherwise.
    */
    int dpbp_set_irq_enable(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    uint8_t irq_index,
    uint8_t en);
    @@ -209,6 +242,7 @@ int dpbp_set_irq_enable(struct fsl_mc_io *mc_io,
    /**
    * dpbp_get_irq_enable() - Get overall interrupt state
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @token: Token of DPBP object
    * @irq_index: The interrupt index to configure
    * @en: Returned interrupt state - enable = 1, disable = 0
    @@ -216,6 +250,7 @@ int dpbp_set_irq_enable(struct fsl_mc_io *mc_io,
    * Return: '0' on Success; Error code otherwise.
    */
    int dpbp_get_irq_enable(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    uint8_t irq_index,
    uint8_t *en);
    @@ -223,6 +258,7 @@ int dpbp_get_irq_enable(struct fsl_mc_io *mc_io,
    /**
    * dpbp_set_irq_mask() - Set interrupt mask.
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @token: Token of DPBP object
    * @irq_index: The interrupt index to configure
    * @mask: Event mask to trigger interrupt;
    @@ -236,6 +272,7 @@ int dpbp_get_irq_enable(struct fsl_mc_io *mc_io,
    * Return: '0' on Success; Error code otherwise.
    */
    int dpbp_set_irq_mask(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    uint8_t irq_index,
    uint32_t mask);
    @@ -243,6 +280,7 @@ int dpbp_set_irq_mask(struct fsl_mc_io *mc_io,
    /**
    * dpbp_get_irq_mask() - Get interrupt mask.
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @token: Token of DPBP object
    * @irq_index: The interrupt index to configure
    * @mask: Returned event mask to trigger interrupt
    @@ -253,6 +291,7 @@ int dpbp_set_irq_mask(struct fsl_mc_io *mc_io,
    * Return: '0' on Success; Error code otherwise.
    */
    int dpbp_get_irq_mask(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    uint8_t irq_index,
    uint32_t *mask);
    @@ -261,6 +300,7 @@ int dpbp_get_irq_mask(struct fsl_mc_io *mc_io,
    * dpbp_get_irq_status() - Get the current status of any pending interrupts.
    *
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @token: Token of DPBP object
    * @irq_index: The interrupt index to configure
    * @status: Returned interrupts status - one bit per cause:
    @@ -270,6 +310,7 @@ int dpbp_get_irq_mask(struct fsl_mc_io *mc_io,
    * Return: '0' on Success; Error code otherwise.
    */
    int dpbp_get_irq_status(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    uint8_t irq_index,
    uint32_t *status);
    @@ -278,6 +319,7 @@ int dpbp_get_irq_status(struct fsl_mc_io *mc_io,
    * dpbp_clear_irq_status() - Clear a pending interrupt's status
    *
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @token: Token of DPBP object
    * @irq_index: The interrupt index to configure
    * @status: Bits to clear (W1C) - one bit per cause:
    @@ -287,6 +329,7 @@ int dpbp_get_irq_status(struct fsl_mc_io *mc_io,
    * Return: '0' on Success; Error code otherwise.
    */
    int dpbp_clear_irq_status(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    uint8_t irq_index,
    uint32_t status);
    @@ -316,12 +359,14 @@ struct dpbp_attr {
    * dpbp_get_attributes - Retrieve DPBP attributes.
    *
    * @mc_io: Pointer to MC portal's I/O object
    + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
    * @token: Token of DPBP object
    * @attr: Returned object's attributes
    *
    * Return: '0' on Success; Error code otherwise.
    */
    int dpbp_get_attributes(struct fsl_mc_io *mc_io,
    + uint32_t cmd_flags,
    uint16_t token,
    struct dpbp_attr *attr);

    --
    2.3.3


    \
     
     \ /
      Last update: 2015-09-23 02:01    [W:4.805 / U:0.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site