summaryrefslogtreecommitdiffstats
path: root/drivers/staging/fsl-mc
diff options
context:
space:
mode:
authorBogdan Purcareata <bogdan.purcareata@nxp.com>2018-03-02 04:23:59 -0600
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-03-14 13:18:42 +0100
commit70ae9cf015a165c33b63c9c7718f5a3c70e51f96 (patch)
treea9831cf82b4cbe4dff25ce7d7f145399c5fb9abf /drivers/staging/fsl-mc
parent9c692d5ae7ea84d221d7504b7ebef07ea8f3ff27 (diff)
downloadlinux-70ae9cf015a165c33b63c9c7718f5a3c70e51f96.tar.bz2
staging: fsl-mc: Move DPCON out of staging
Move the source files out of staging into their final locations: - dpcon.c goes to drivers/bus/fsl-mc/, next to the core infrastructure - dpcon-cmd.h gets merged into drivers/bus/fsl-mc/fsl-mc-private.h, next to the other internally used APIs - dpcon.h gets merged into include/linux/fsl/mc.h, exposing the public API Update references in the dpaa2-eth staging driver. DPCON stands for Data Path Concentrator - an interface between DPIO (Data Path IO) and its users (e.g. dpaa2-eth). You can read more about DPIO in Documentation/networking/dpaa2/overview.rst Signed-off-by: Bogdan Purcareata <bogdan.purcareata@nxp.com> Reviewed-by: Laurentiu Tudor <laurentiu.tudor@nxp.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/fsl-mc')
-rw-r--r--drivers/staging/fsl-mc/bus/Makefile1
-rw-r--r--drivers/staging/fsl-mc/bus/dpcon-cmd.h53
-rw-r--r--drivers/staging/fsl-mc/bus/dpcon.c222
-rw-r--r--drivers/staging/fsl-mc/include/dpcon.h79
4 files changed, 0 insertions, 355 deletions
diff --git a/drivers/staging/fsl-mc/bus/Makefile b/drivers/staging/fsl-mc/bus/Makefile
index ea6479f65410..21d8ebc8ce21 100644
--- a/drivers/staging/fsl-mc/bus/Makefile
+++ b/drivers/staging/fsl-mc/bus/Makefile
@@ -4,7 +4,6 @@
#
# Copyright (C) 2014 Freescale Semiconductor, Inc.
#
-obj-$(CONFIG_FSL_MC_BUS) += dpcon.o
# MC DPIO driver
obj-$(CONFIG_FSL_MC_DPIO) += dpio/
diff --git a/drivers/staging/fsl-mc/bus/dpcon-cmd.h b/drivers/staging/fsl-mc/bus/dpcon-cmd.h
deleted file mode 100644
index 27fa09877970..000000000000
--- a/drivers/staging/fsl-mc/bus/dpcon-cmd.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
-/*
- * Copyright 2013-2016 Freescale Semiconductor Inc.
- *
- */
-#ifndef _FSL_DPCON_CMD_H
-#define _FSL_DPCON_CMD_H
-
-/* DPCON Version */
-#define DPCON_VER_MAJOR 3
-#define DPCON_VER_MINOR 2
-
-/* Command versioning */
-#define DPCON_CMD_BASE_VERSION 1
-#define DPCON_CMD_ID_OFFSET 4
-
-#define DPCON_CMD(id) (((id) << DPCON_CMD_ID_OFFSET) | DPCON_CMD_BASE_VERSION)
-
-/* Command IDs */
-#define DPCON_CMDID_CLOSE DPCON_CMD(0x800)
-#define DPCON_CMDID_OPEN DPCON_CMD(0x808)
-
-#define DPCON_CMDID_ENABLE DPCON_CMD(0x002)
-#define DPCON_CMDID_DISABLE DPCON_CMD(0x003)
-#define DPCON_CMDID_GET_ATTR DPCON_CMD(0x004)
-#define DPCON_CMDID_RESET DPCON_CMD(0x005)
-
-#define DPCON_CMDID_SET_NOTIFICATION DPCON_CMD(0x100)
-
-struct dpcon_cmd_open {
- __le32 dpcon_id;
-};
-
-#define DPCON_ENABLE 1
-
-struct dpcon_rsp_get_attr {
- /* response word 0 */
- __le32 id;
- __le16 qbman_ch_id;
- u8 num_priorities;
- u8 pad;
-};
-
-struct dpcon_cmd_set_notification {
- /* cmd word 0 */
- __le32 dpio_id;
- u8 priority;
- u8 pad[3];
- /* cmd word 1 */
- __le64 user_ctx;
-};
-
-#endif /* _FSL_DPCON_CMD_H */
diff --git a/drivers/staging/fsl-mc/bus/dpcon.c b/drivers/staging/fsl-mc/bus/dpcon.c
deleted file mode 100644
index 021b4252eba0..000000000000
--- a/drivers/staging/fsl-mc/bus/dpcon.c
+++ /dev/null
@@ -1,222 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
-/*
- * Copyright 2013-2016 Freescale Semiconductor Inc.
- *
- */
-#include <linux/kernel.h>
-#include <linux/fsl/mc.h>
-#include "../include/dpcon.h"
-
-#include "dpcon-cmd.h"
-
-/**
- * dpcon_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_'
- * @dpcon_id: DPCON unique ID
- * @token: Returned token; use in subsequent API calls
- *
- * This function can be used to open a control session for an
- * already created object; an object may have been declared in
- * the DPL or by calling the dpcon_create() function.
- * This function returns a unique authentication token,
- * associated with the specific object ID and the specific MC
- * portal; this token must be used in all subsequent commands for
- * this specific object.
- *
- * Return: '0' on Success; Error code otherwise.
- */
-int dpcon_open(struct fsl_mc_io *mc_io,
- u32 cmd_flags,
- int dpcon_id,
- u16 *token)
-{
- struct mc_command cmd = { 0 };
- struct dpcon_cmd_open *dpcon_cmd;
- int err;
-
- /* prepare command */
- cmd.header = mc_encode_cmd_header(DPCON_CMDID_OPEN,
- cmd_flags,
- 0);
- dpcon_cmd = (struct dpcon_cmd_open *)cmd.params;
- dpcon_cmd->dpcon_id = cpu_to_le32(dpcon_id);
-
- /* send command to mc*/
- err = mc_send_command(mc_io, &cmd);
- if (err)
- return err;
-
- /* retrieve response parameters */
- *token = mc_cmd_hdr_read_token(&cmd);
-
- return 0;
-}
-EXPORT_SYMBOL_GPL(dpcon_open);
-
-/**
- * dpcon_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 DPCON object
- *
- * After this function is called, no further operations are
- * allowed on the object without opening a new control session.
- *
- * Return: '0' on Success; Error code otherwise.
- */
-int dpcon_close(struct fsl_mc_io *mc_io,
- u32 cmd_flags,
- u16 token)
-{
- struct mc_command cmd = { 0 };
-
- /* prepare command */
- cmd.header = mc_encode_cmd_header(DPCON_CMDID_CLOSE,
- cmd_flags,
- token);
-
- /* send command to mc*/
- return mc_send_command(mc_io, &cmd);
-}
-EXPORT_SYMBOL_GPL(dpcon_close);
-
-/**
- * dpcon_enable() - Enable the DPCON
- * @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
- *
- * Return: '0' on Success; Error code otherwise
- */
-int dpcon_enable(struct fsl_mc_io *mc_io,
- u32 cmd_flags,
- u16 token)
-{
- struct mc_command cmd = { 0 };
-
- /* prepare command */
- cmd.header = mc_encode_cmd_header(DPCON_CMDID_ENABLE,
- cmd_flags,
- token);
-
- /* send command to mc*/
- return mc_send_command(mc_io, &cmd);
-}
-EXPORT_SYMBOL_GPL(dpcon_enable);
-
-/**
- * dpcon_disable() - Disable the DPCON
- * @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
- *
- * Return: '0' on Success; Error code otherwise
- */
-int dpcon_disable(struct fsl_mc_io *mc_io,
- u32 cmd_flags,
- u16 token)
-{
- struct mc_command cmd = { 0 };
-
- /* prepare command */
- cmd.header = mc_encode_cmd_header(DPCON_CMDID_DISABLE,
- cmd_flags,
- token);
-
- /* send command to mc*/
- return mc_send_command(mc_io, &cmd);
-}
-EXPORT_SYMBOL_GPL(dpcon_disable);
-
-/**
- * dpcon_reset() - Reset the DPCON, 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 DPCON object
- *
- * Return: '0' on Success; Error code otherwise.
- */
-int dpcon_reset(struct fsl_mc_io *mc_io,
- u32 cmd_flags,
- u16 token)
-{
- struct mc_command cmd = { 0 };
-
- /* prepare command */
- cmd.header = mc_encode_cmd_header(DPCON_CMDID_RESET,
- cmd_flags, token);
-
- /* send command to mc*/
- return mc_send_command(mc_io, &cmd);
-}
-EXPORT_SYMBOL_GPL(dpcon_reset);
-
-/**
- * dpcon_get_attributes() - Retrieve DPCON 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 DPCON object
- * @attr: Object's attributes
- *
- * Return: '0' on Success; Error code otherwise.
- */
-int dpcon_get_attributes(struct fsl_mc_io *mc_io,
- u32 cmd_flags,
- u16 token,
- struct dpcon_attr *attr)
-{
- struct mc_command cmd = { 0 };
- struct dpcon_rsp_get_attr *dpcon_rsp;
- int err;
-
- /* prepare command */
- cmd.header = mc_encode_cmd_header(DPCON_CMDID_GET_ATTR,
- cmd_flags,
- token);
-
- /* send command to mc*/
- err = mc_send_command(mc_io, &cmd);
- if (err)
- return err;
-
- /* retrieve response parameters */
- dpcon_rsp = (struct dpcon_rsp_get_attr *)cmd.params;
- attr->id = le32_to_cpu(dpcon_rsp->id);
- attr->qbman_ch_id = le16_to_cpu(dpcon_rsp->qbman_ch_id);
- attr->num_priorities = dpcon_rsp->num_priorities;
-
- return 0;
-}
-EXPORT_SYMBOL_GPL(dpcon_get_attributes);
-
-/**
- * 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,
- u32 cmd_flags,
- u16 token,
- struct dpcon_notification_cfg *cfg)
-{
- struct mc_command cmd = { 0 };
- struct dpcon_cmd_set_notification *dpcon_cmd;
-
- /* 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);
-}
-EXPORT_SYMBOL_GPL(dpcon_set_notification);
diff --git a/drivers/staging/fsl-mc/include/dpcon.h b/drivers/staging/fsl-mc/include/dpcon.h
deleted file mode 100644
index 062e90ad929b..000000000000
--- a/drivers/staging/fsl-mc/include/dpcon.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
-/*
- * Copyright 2013-2016 Freescale Semiconductor Inc.
- *
- */
-#ifndef __FSL_DPCON_H
-#define __FSL_DPCON_H
-
-/* Data Path Concentrator API
- * Contains initialization APIs and runtime control APIs for DPCON
- */
-
-struct fsl_mc_io;
-
-/** General DPCON macros */
-
-/**
- * Use it to disable notifications; see dpcon_set_notification()
- */
-#define DPCON_INVALID_DPIO_ID (int)(-1)
-
-int dpcon_open(struct fsl_mc_io *mc_io,
- u32 cmd_flags,
- int dpcon_id,
- u16 *token);
-
-int dpcon_close(struct fsl_mc_io *mc_io,
- u32 cmd_flags,
- u16 token);
-
-int dpcon_enable(struct fsl_mc_io *mc_io,
- u32 cmd_flags,
- u16 token);
-
-int dpcon_disable(struct fsl_mc_io *mc_io,
- u32 cmd_flags,
- u16 token);
-
-int dpcon_reset(struct fsl_mc_io *mc_io,
- u32 cmd_flags,
- u16 token);
-
-/**
- * struct dpcon_attr - Structure representing DPCON attributes
- * @id: DPCON object ID
- * @qbman_ch_id: Channel ID to be used by dequeue operation
- * @num_priorities: Number of priorities for the DPCON channel (1-8)
- */
-struct dpcon_attr {
- int id;
- u16 qbman_ch_id;
- u8 num_priorities;
-};
-
-int dpcon_get_attributes(struct fsl_mc_io *mc_io,
- u32 cmd_flags,
- u16 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;
- u8 priority;
- u64 user_ctx;
-};
-
-int dpcon_set_notification(struct fsl_mc_io *mc_io,
- u32 cmd_flags,
- u16 token,
- struct dpcon_notification_cfg *cfg);
-
-#endif /* __FSL_DPCON_H */