diff options
Diffstat (limited to 'linux/drivers/soc/fsl/qbman/qman_driver.c')
-rw-r--r-- | linux/drivers/soc/fsl/qbman/qman_driver.c | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/linux/drivers/soc/fsl/qbman/qman_driver.c b/linux/drivers/soc/fsl/qbman/qman_driver.c deleted file mode 100644 index 6923504e..00000000 --- a/linux/drivers/soc/fsl/qbman/qman_driver.c +++ /dev/null @@ -1,87 +0,0 @@ -#include <machine/rtems-bsd-kernel-space.h> - -#include <rtems/bsd/local/opt_dpaa.h> - -/* Copyright 2013 - 2015 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 Freescale Semiconductor nor the - * names of its 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 Freescale Semiconductor ``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 Freescale Semiconductor 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 "qman_priv.h" - -#include <linux/time.h> - -static int __init early_qman_init(void) -{ - struct device_node *dn; - u32 is_portal_available; - - qman_init(); - - is_portal_available = 0; - for_each_compatible_node(dn, NULL, "fsl,qman-portal") { - if (of_device_is_available(dn)) { - is_portal_available = 1; - break; - } - } - - if (!qman_have_ccsr() && is_portal_available) { - struct qman_fq fq = {.fqid = 1}; - struct qm_mcr_queryfq_np np; - int err, retry = CONFIG_FSL_QMAN_INIT_TIMEOUT; - struct timespec nowts, diffts, startts = current_kernel_time(); - - /* Loop while querying given fqid succeeds or time out */ - while (1) { - err = qman_query_fq_np(&fq, &np); - if (!err) { - /* success, control-plane has configured QMan */ - break; - } else if (err != -ERANGE) { - pr_err("I/O error, continuing anyway\n"); - break; - } - nowts = current_kernel_time(); - diffts = timespec_sub(nowts, startts); - if (diffts.tv_sec > 0) { - if (!retry--) { - pr_err("Time out, control-plane dead?\n"); - break; - } - pr_warn("Polling for the control-plane (%d)\n", - retry); - } - } - } - - qman_resource_init(); - - return 0; -} -subsys_initcall(early_qman_init); |