> -----Original Message-----
> From: Stuart Yoder [mailto:stuart.yo...@nxp.com]
> Sent: Friday, October 21, 2016 5:02 PM
> To: gre...@linuxfoundation.org
> Cc: German Rivera <german.riv...@nxp.com>; de...@driverdev.osuosl.org;
> linux-ker...@vger.kernel.org; ag...@suse.de; a...@arndb.de; Leo Li
> <leoyang...@nxp.com>; Ruxandra Ioana Radulescu
> <ruxandra.radule...@nxp.com>; Roy Pledge <roy.ple...@nxp.com>; Stuart
> Yoder <stuart.yo...@nxp.com>
> Subject: [PATCH 3/9] bus: fsl-mc: dpio: add APIs for DPIO objects
> 
> From: Ioana Radulescu <ruxandra.radule...@nxp.com>
> 
> Add the command build/parse APIs for operating on DPIO objects through
> the DPAA2 Management Complex.
> 
> Signed-off-by: Ioana Radulescu <ruxandra.radule...@nxp.com>
> Signed-off-by: Roy Pledge <roy.ple...@nxp.com>
> Signed-off-by: Stuart Yoder <stuart.yo...@nxp.com>
> ---
>  drivers/bus/fsl-mc/Kconfig         |  10 ++
>  drivers/bus/fsl-mc/Makefile        |   3 +
>  drivers/bus/fsl-mc/dpio/Makefile   |   9 ++
>  drivers/bus/fsl-mc/dpio/dpio-cmd.h | 198
> ++++++++++++++++++++++++++++++++
>  drivers/bus/fsl-mc/dpio/dpio.c     | 229
> +++++++++++++++++++++++++++++++++++++
>  drivers/bus/fsl-mc/dpio/dpio.h     | 108 +++++++++++++++++
>  6 files changed, 557 insertions(+)
>  create mode 100644 drivers/bus/fsl-mc/dpio/Makefile
>  create mode 100644 drivers/bus/fsl-mc/dpio/dpio-cmd.h
>  create mode 100644 drivers/bus/fsl-mc/dpio/dpio.c
>  create mode 100644 drivers/bus/fsl-mc/dpio/dpio.h
> 
> diff --git a/drivers/bus/fsl-mc/Kconfig b/drivers/bus/fsl-mc/Kconfig
> index 5c009ab..a10aaf0 100644
> --- a/drivers/bus/fsl-mc/Kconfig
> +++ b/drivers/bus/fsl-mc/Kconfig
> @@ -15,3 +15,13 @@ config FSL_MC_BUS
>         architecture.  The fsl-mc bus driver handles discovery of
>         DPAA2 objects (which are represented as Linux devices) and
>         binding objects to drivers.
> +
> +config FSL_MC_DPIO
> +        tristate "QorIQ DPAA2 DPIO driver"
> +        depends on FSL_MC_BUS
> +        help
> +       Driver for the DPAA2 DPIO object.  A DPIO provides queue and
> +       buffer management facilities for software to interact with
> +       other DPAA2 objects. This driver does not expose the DPIO
> +       objects individually, but groups them under a service layer
> +       API.
> diff --git a/drivers/bus/fsl-mc/Makefile b/drivers/bus/fsl-mc/Makefile
> index d56afee..d18df72 100644
> --- a/drivers/bus/fsl-mc/Makefile
> +++ b/drivers/bus/fsl-mc/Makefile
> @@ -17,3 +17,6 @@ mc-bus-driver-objs := fsl-mc-bus.o \
>                     fsl-mc-msi.o \
>                     dpmcp.o \
>                     dpbp.o
> +
> +# MC DPIO driver
> +obj-$(CONFIG_FSL_MC_DPIO) += dpio/
> diff --git a/drivers/bus/fsl-mc/dpio/Makefile b/drivers/bus/fsl-
> mc/dpio/Makefile
> new file mode 100644
> index 0000000..128befc
> --- /dev/null
> +++ b/drivers/bus/fsl-mc/dpio/Makefile
> @@ -0,0 +1,9 @@
> +#
> +# QorIQ DPAA2 DPIO driver
> +#
> +
> +subdir-ccflags-y := -Werror
> +
> +obj-$(CONFIG_FSL_MC_DPIO) += fsl-mc-dpio.o
> +
> +fsl-mc-dpio-objs := dpio.o
> diff --git a/drivers/bus/fsl-mc/dpio/dpio-cmd.h b/drivers/bus/fsl-
> mc/dpio/dpio-cmd.h
> new file mode 100644
> index 0000000..b25a4cc
> --- /dev/null
> +++ b/drivers/bus/fsl-mc/dpio/dpio-cmd.h
> @@ -0,0 +1,198 @@
> +/*
> + * Copyright 2013-2016 Freescale Semiconductor Inc.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions are
> met:
> + * * Redistributions of source code must retain the above copyright
> + * notice, this list of conditions and the following disclaimer.
> + * * Redistributions in binary form must reproduce the above copyright
> + * notice, this list of conditions and the following disclaimer in the
> + * documentation and/or other materials provided with the distribution.
> + * * Neither the name of the above-listed copyright holders nor the
> + * names of any contributors may be used to endorse or promote products
> + * derived from this software without specific prior written permission.
> + *
> + * ALTERNATIVELY, this software may be distributed under the terms of the
> + * GNU General Public License ("GPL") as published by the Free Software
> + * Foundation, either version 2 of that License or (at your option) any
> + * later version.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
> CONTRIBUTORS "AS IS"
> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
> PARTICULAR PURPOSE
> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
> CONTRIBUTORS BE
> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
> OR
> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
> PROCUREMENT OF
> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
> BUSINESS
> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
> WHETHER IN
> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> OTHERWISE)
> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
> ADVISED OF THE
> + * POSSIBILITY OF SUCH DAMAGE.
> + */
> +#ifndef _FSL_DPIO_CMD_H
> +#define _FSL_DPIO_CMD_H
> +
> +/* DPIO Version */
> +#define DPIO_VER_MAJOR                       4
> +#define DPIO_VER_MINOR                       2
> +
> +/* Command Versioning */
> +
> +#define DPIO_CMD_ID_OFFSET           4
> +#define DPIO_CMD_BASE_VERSION                1
> +
> +#define DPIO_CMD(id) ((id << DPIO_CMD_ID_OFFSET) |
> DPIO_CMD_BASE_VERSION)
> +
> +/* Command IDs */
> +#define DPIO_CMDID_CLOSE                             DPIO_CMD(0x800)
> +#define DPIO_CMDID_OPEN
>       DPIO_CMD(0x803)
> +#define DPIO_CMDID_CREATE
>       DPIO_CMD(0x903)
> +#define DPIO_CMDID_DESTROY
>       DPIO_CMD(0x983)
> +#define DPIO_CMDID_GET_API_VERSION
>       DPIO_CMD(0xa03)
> +
> +#define DPIO_CMDID_ENABLE
>       DPIO_CMD(0x002)
> +#define DPIO_CMDID_DISABLE
>       DPIO_CMD(0x003)
> +#define DPIO_CMDID_GET_ATTR
>       DPIO_CMD(0x004)
> +#define DPIO_CMDID_RESET                             DPIO_CMD(0x005)
> +#define DPIO_CMDID_IS_ENABLED
>       DPIO_CMD(0x006)
> +
> +#define DPIO_CMDID_SET_IRQ
>       DPIO_CMD(0x010)
> +#define DPIO_CMDID_GET_IRQ
>       DPIO_CMD(0x011)
> +#define DPIO_CMDID_SET_IRQ_ENABLE
>       DPIO_CMD(0x012)
> +#define DPIO_CMDID_GET_IRQ_ENABLE
>       DPIO_CMD(0x013)
> +#define DPIO_CMDID_SET_IRQ_MASK
>       DPIO_CMD(0x014)
> +#define DPIO_CMDID_GET_IRQ_MASK
>       DPIO_CMD(0x015)
> +#define DPIO_CMDID_GET_IRQ_STATUS
>       DPIO_CMD(0x016)
> +#define DPIO_CMDID_CLEAR_IRQ_STATUS
>       DPIO_CMD(0x017)
> +
> +#define DPIO_CMDID_SET_STASHING_DEST
>       DPIO_CMD(0x120)
> +#define DPIO_CMDID_GET_STASHING_DEST
>       DPIO_CMD(0x121)
> +#define DPIO_CMDID_ADD_STATIC_DEQUEUE_CHANNEL
>       DPIO_CMD(0x122)
> +#define DPIO_CMDID_REMOVE_STATIC_DEQUEUE_CHANNEL
>       DPIO_CMD(0x123)
> +
> +struct dpio_cmd_open {
> +     __le32 dpio_id;
> +};
> +
> +#define DPIO_CHANNEL_MODE_MASK               0x3
> +
> +struct dpio_cmd_create {
> +     __le16 pad0;
> +     u8 channel_mode;
> +     u8 pad1;
> +     u8 num_priorities;
> +
> +};
> +
> +#define DPIO_ENABLE                  1
> +
> +struct dpio_rsp_is_enabled {
> +     u8 enabled;
> +};
> +
> +struct dpio_cmd_set_irq {
> +     /* cmd word 0 */
> +     u8 irq_index;
> +     u8 pad[3];
> +     __le32 irq_val;
> +     /* cmd word 1 */
> +     __le64 irq_addr;
> +     /* cmd word 2 */
> +     __le32 irq_num;
> +};
> +
> +struct dpio_cmd_get_irq {
> +     __le32 pad;
> +     u8 irq_index;
> +};
> +
> +struct dpio_rsp_get_irq {
> +     /* response word 0 */
> +     __le32 irq_val;
> +     __le32 pad;
> +     /* response word 1 */
> +     __le64 irq_addr;
> +     /* response word 2 */
> +     __le32 irq_num;
> +     __le32 type;
> +};
> +
> +struct dpio_cmd_set_irq_enable {
> +     u8 enable;
> +     u8 pad[3];
> +     u8 irq_index;
> +};
> +
> +struct dpio_cmd_get_irq_enable {
> +     __le32 pad;
> +     u8 irq_index;
> +};
> +
> +struct dpio_rsp_get_irq_enable {
> +     u8 enabled;
> +};
> +
> +struct dpio_cmd_set_irq_mask {
> +     __le32 mask;
> +     u8 irq_index;
> +};
> +
> +struct dpio_cmd_get_irq_mask {
> +     __le32 pad;
> +     u8 irq_index;
> +};
> +
> +struct dpio_rsp_get_irq_mask {
> +     __le32 mask;
> +};
> +
> +struct dpio_cmd_get_irq_status {
> +     __le32 status;
> +     u8 irq_index;
> +};
> +
> +struct dpio_rsp_get_irq_status {
> +     __le32 status;
> +};
> +
> +struct dpio_cmd_clear_irq_status {
> +     __le32 status;
> +     u8 irq_index;
> +};
> +
> +struct dpio_rsp_get_attr {
> +     /* cmd word 0 */
> +     __le32 id;
> +     __le16 qbman_portal_id;
> +     u8 num_priorities;
> +     u8 channel_mode;
> +     /* cmd word 1 */
> +     __le64 qbman_portal_ce_addr;
> +     /* cmd word 2 */
> +     __le64 qbman_portal_ci_addr;
> +     /* cmd word 3 */
> +     __le32 pad;
> +     __le32 qbman_version;
> +};
> +
> +struct dpio_cmd_set_stashing_dest {
> +     u8 sdest;
> +};
> +
> +struct dpio_rsp_get_stashing_dest {
> +     u8 sdest;
> +};
> +
> +struct dpio_cmd_add_static_dequeue_channel {
> +     __le32 dpcon_id;
> +};
> +
> +struct dpio_rsp_add_static_dequeue_channel {
> +     u8 channel_index;
> +};
> +
> +struct dpio_cmd_remove_static_dequeue_channel {
> +     __le32 dpcon_id;
> +};

Hi Stuart, looks like you removed unused API functions from dpio.h
and dpio.c, but not the structures and CMDID defines associated with
them, which are now dead code.

Thanks,
Ioana
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to