New upstream version 18.11-rc1
[deb_dpdk.git] / drivers / bus / dpaa / base / qbman / bman_driver.c
index 5c13a80..750b756 100644 (file)
@@ -1,41 +1,8 @@
-/*-
- * This file is provided under a dual BSD/GPLv2 license. When using or
- * redistributing this file, you may do so under either license.
- *
- *   BSD LICENSE
+/* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
  *
  * Copyright 2008-2016 Freescale Semiconductor Inc.
- * Copyright 2017 NXP.
- *
- * 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.
- *
- *   GPL LICENSE SUMMARY
- *
- * 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.
+ * Copyright 2017 NXP
  *
- * 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.
  */
 
 #include <rte_branch_prediction.h>
 /*
  * Global variables of the max portal/pool number this bman version supported
  */
-u16 bman_ip_rev;
+static u16 bman_ip_rev;
 u16 bman_pool_max;
-void *bman_ccsr_map;
+static void *bman_ccsr_map;
 
 /*****************/
 /* Portal driver */
 /*****************/
 
-static __thread int fd = -1;
+static __thread int bmfd = -1;
 static __thread struct bm_portal_config pcfg;
 static __thread struct dpaa_ioctl_portal_map map = {
        .type = dpaa_portal_bman
@@ -103,14 +70,14 @@ static int fsl_bman_portal_init(uint32_t idx, int is_shared)
        pcfg.index = map.index;
        bman_depletion_fill(&pcfg.mask);
 
-       fd = open(BMAN_PORTAL_IRQ_PATH, O_RDONLY);
-       if (fd == -1) {
+       bmfd = open(BMAN_PORTAL_IRQ_PATH, O_RDONLY);
+       if (bmfd == -1) {
                pr_err("BMan irq init failed");
                process_portal_unmap(&map.addr);
                return -EBUSY;
        }
        /* Use the IRQ FD as a unique IRQ number */
-       pcfg.irq = fd;
+       pcfg.irq = bmfd;
 
        portal = bman_create_affine_portal(&pcfg);
        if (!portal) {
@@ -123,7 +90,7 @@ static int fsl_bman_portal_init(uint32_t idx, int is_shared)
        /* Set the IRQ number */
        irq_map.type = dpaa_portal_bman;
        irq_map.portal_cinh = map.addr.cinh;
-       process_portal_irq_map(fd, &irq_map);
+       process_portal_irq_map(bmfd, &irq_map);
        return 0;
 }
 
@@ -132,7 +99,7 @@ static int fsl_bman_portal_finish(void)
        __maybe_unused const struct bm_portal_config *cfg;
        int ret;
 
-       process_portal_irq_unmap(fd);
+       process_portal_irq_unmap(bmfd);
 
        cfg = bman_destroy_affine_portal();
        DPAA_BUG_ON(cfg != &pcfg);
@@ -142,6 +109,11 @@ static int fsl_bman_portal_finish(void)
        return ret;
 }
 
+int bman_thread_fd(void)
+{
+       return bmfd;
+}
+
 int bman_thread_init(void)
 {
        /* Convert from contiguous/virtual cpu numbering to real cpu when
@@ -194,7 +166,7 @@ int bman_init_ccsr(const struct device_node *node)
                             PROT_WRITE, MAP_SHARED, ccsr_map_fd, phys_addr);
        if (bman_ccsr_map == MAP_FAILED) {
                pr_err("Can not map BMan CCSR base Bman: "
-                      "0x%x Phys: 0x%lx size 0x%lx",
+                      "0x%x Phys: 0x%" PRIx64 " size 0x%" PRIu64,
                       *bman_addr, phys_addr, regs_size);
                return -EINVAL;
        }