#include <rte_bus.h>
#include <rte_mbuf_pool_ops.h>
+#include <dpaa_of.h>
#include <rte_dpaa_bus.h>
#include <rte_dpaa_logs.h>
#include <dpaax_iova_table.h>
#include <fsl_usd.h>
#include <fsl_qman.h>
#include <fsl_bman.h>
-#include <of.h>
#include <netcfg.h>
int dpaa_logtype_bus;
{
/* Affine above created portal with channel*/
u32 sdqcr;
- struct qman_portal *qp;
int ret;
if (unlikely(!RTE_PER_LCORE(dpaa_io))) {
}
/* Initialise qman specific portals */
- qp = fsl_qman_portal_create();
- if (!qp) {
- DPAA_BUS_LOG(ERR, "Unable to alloc fq portal");
+ ret = fsl_qman_fq_portal_init(fq->qp);
+ if (ret) {
+ DPAA_BUS_LOG(ERR, "Unable to init fq portal");
return -1;
}
- fq->qp = qp;
+
sdqcr = QM_SDQCR_CHANNELS_POOL_CONV(fq->ch_id);
- qman_static_dequeue_add(sdqcr, qp);
+ qman_static_dequeue_add(sdqcr, fq->qp);
return 0;
}
int rte_dpaa_portal_fq_close(struct qman_fq *fq)
{
- return fsl_qman_portal_destroy(fq->qp);
+ return fsl_qman_fq_portal_destroy(fq->qp);
}
void
return 0;
/* Device list creation is only done once */
- if (!process_once)
+ if (!process_once) {
rte_dpaa_bus_dev_build();
+ if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+ /* One time load of Qman/Bman drivers */
+ ret = qman_global_init();
+ if (ret) {
+ DPAA_PMD_ERR("QMAN initialization failed: %d",
+ ret);
+ return ret;
+ }
+ ret = bman_global_init();
+ if (ret) {
+ DPAA_PMD_ERR("BMAN initialization failed: %d",
+ ret);
+ return ret;
+ }
+ }
+ }
process_once = 1;
/* If no device present on DPAA bus nothing needs to be done */
RTE_DEV_WHITELISTED)) {
ret = drv->probe(drv, dev);
if (ret) {
- DPAA_BUS_ERR("Unable to probe.\n");
+ DPAA_BUS_ERR("unable to probe:%s",
+ dev->name);
} else {
dev->driver = drv;
dev->device.driver = &drv->driver;