return 0;
}
-/**
- * dpci_get_peer_attributes() - Retrieve peer DPCI 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 DPCI object
- * @attr: Returned peer attributes
- *
- * Return: '0' on Success; Error code otherwise.
- */
-int dpci_get_peer_attributes(struct fsl_mc_io *mc_io,
- uint32_t cmd_flags,
- uint16_t token,
- struct dpci_peer_attr *attr)
-{
- struct dpci_rsp_get_peer_attr *rsp_params;
- struct mc_command cmd = { 0 };
- int err;
-
- /* prepare command */
- cmd.header = mc_encode_cmd_header(DPCI_CMDID_GET_PEER_ATTR,
- cmd_flags,
- token);
-
- /* send command to mc*/
- err = mc_send_command(mc_io, &cmd);
- if (err)
- return err;
-
- /* retrieve response parameters */
- rsp_params = (struct dpci_rsp_get_peer_attr *)cmd.params;
- attr->peer_id = le32_to_cpu(rsp_params->id);
- attr->num_of_priorities = rsp_params->num_of_priorities;
-
- return 0;
-}
-
-/**
- * dpci_get_link_state() - Retrieve the DPCI link 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 DPCI object
- * @up: Returned link state; returns '1' if link is up, '0' otherwise
- *
- * DPCI can be connected to another DPCI, together they
- * create a 'link'. In order to use the DPCI Tx and Rx queues,
- * both objects must be enabled.
- *
- * Return: '0' on Success; Error code otherwise.
- */
-int dpci_get_link_state(struct fsl_mc_io *mc_io,
- uint32_t cmd_flags,
- uint16_t token,
- int *up)
-{
- struct dpci_rsp_get_link_state *rsp_params;
- struct mc_command cmd = { 0 };
- int err;
-
- /* prepare command */
- cmd.header = mc_encode_cmd_header(DPCI_CMDID_GET_LINK_STATE,
- cmd_flags,
- token);
-
- /* send command to mc*/
- err = mc_send_command(mc_io, &cmd);
- if (err)
- return err;
-
- /* retrieve response parameters */
- rsp_params = (struct dpci_rsp_get_link_state *)cmd.params;
- *up = dpci_get_field(rsp_params->up, UP);
-
- return 0;
-}
-
/**
* dpci_set_rx_queue() - Set Rx queue configuration
* @mc_io: Pointer to MC portal's I/O object
return 0;
}
-/**
- * dpcon_set_notification() - Set DPCON notification destination
- * @mc_io: Pointer to MC portal's I/O object
- * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_'
- * @token: Token of DPCON object
- * @cfg: Notification parameters
- *
- * Return: '0' on Success; Error code otherwise
- */
-int dpcon_set_notification(struct fsl_mc_io *mc_io,
- uint32_t cmd_flags,
- uint16_t token,
- struct dpcon_notification_cfg *cfg)
-{
- struct dpcon_cmd_set_notification *dpcon_cmd;
- struct mc_command cmd = { 0 };
-
- /* prepare command */
- cmd.header = mc_encode_cmd_header(DPCON_CMDID_SET_NOTIFICATION,
- cmd_flags,
- token);
- dpcon_cmd = (struct dpcon_cmd_set_notification *)cmd.params;
- dpcon_cmd->dpio_id = cpu_to_le32(cfg->dpio_id);
- dpcon_cmd->priority = cfg->priority;
- dpcon_cmd->user_ctx = cpu_to_le64(cfg->user_ctx);
-
- /* send command to mc*/
- return mc_send_command(mc_io, &cmd);
-}
-
/**
* dpcon_get_api_version - Get Data Path Concentrator API version
* @mc_io: Pointer to MC portal's DPCON object
uint16_t token,
struct dpci_attr *attr);
-/**
- * struct dpci_peer_attr - Structure representing the peer DPCI attributes
- * @peer_id: DPCI peer id; if no peer is connected returns (-1)
- * @num_of_priorities: The pper's number of receive priorities; determines the
- * number of transmit priorities for the local DPCI object
- */
-struct dpci_peer_attr {
- int peer_id;
- uint8_t num_of_priorities;
-};
-
-int dpci_get_peer_attributes(struct fsl_mc_io *mc_io,
- uint32_t cmd_flags,
- uint16_t token,
- struct dpci_peer_attr *attr);
-
-int dpci_get_link_state(struct fsl_mc_io *mc_io,
- uint32_t cmd_flags,
- uint16_t token,
- int *up);
-
/**
* enum dpci_dest - DPCI destination types
* @DPCI_DEST_NONE: Unassigned destination; The queue is set in parked mode
uint16_t token,
struct dpcon_attr *attr);
-/**
- * struct dpcon_notification_cfg - Structure representing notification params
- * @dpio_id: DPIO object ID; must be configured with a notification channel;
- * to disable notifications set it to 'DPCON_INVALID_DPIO_ID';
- * @priority: Priority selection within the DPIO channel; valid values
- * are 0-7, depending on the number of priorities in that channel
- * @user_ctx: User context value provided with each CDAN message
- */
-struct dpcon_notification_cfg {
- int dpio_id;
- uint8_t priority;
- uint64_t user_ctx;
-};
-
-int dpcon_set_notification(struct fsl_mc_io *mc_io,
- uint32_t cmd_flags,
- uint16_t token,
- struct dpcon_notification_cfg *cfg);
-
int dpcon_get_api_version(struct fsl_mc_io *mc_io,
uint32_t cmd_flags,
uint16_t *major_ver,
global:
dpaa2_dqrr_size;
dpaa2_eqcr_size;
- dpci_get_link_state;
dpci_get_opr;
- dpci_get_peer_attributes;
dpci_set_opr;
} DPDK_18.05;