summaryrefslogtreecommitdiff
path: root/drivers/staging/fsl_dpa_offload
diff options
context:
space:
mode:
authorJ. German Rivera <Jose.G.Rivera@freescale.com>2013-08-27 19:18:51 (GMT)
committerJ. German Rivera <German.Rivera@freescale.com>2013-08-27 19:18:51 (GMT)
commit0ec09b835c42ccdd05745ecb3f086df57f9b50b9 (patch)
tree26de603e8d5180297822fe803c6da5e1f6f395ba /drivers/staging/fsl_dpa_offload
parentd58f8e26d7970350de9d916315d4258db5c830ee (diff)
parent1f8783124e8be23a5d6941c640ab1538d3cd589b (diff)
downloadlinux-fsl-qoriq-0ec09b835c42ccdd05745ecb3f086df57f9b50b9.tar.xz
Merge branch 'b4860rev2' into sdk-v1.4.x
Diffstat (limited to 'drivers/staging/fsl_dpa_offload')
-rw-r--r--drivers/staging/fsl_dpa_offload/dpa_classifier.c23
-rw-r--r--drivers/staging/fsl_dpa_offload/dpa_classifier.h9
-rw-r--r--drivers/staging/fsl_dpa_offload/dts/b4860qds-usdpaa-shared-interfaces.dts2
3 files changed, 33 insertions, 1 deletions
diff --git a/drivers/staging/fsl_dpa_offload/dpa_classifier.c b/drivers/staging/fsl_dpa_offload/dpa_classifier.c
index a39fc69..5056b2e 100644
--- a/drivers/staging/fsl_dpa_offload/dpa_classifier.c
+++ b/drivers/staging/fsl_dpa_offload/dpa_classifier.c
@@ -462,6 +462,9 @@ int dpa_classif_table_modify_miss_action(int td,
return -EBUSY;
}
}
+
+ memcpy(&ptable->miss_action, miss_action, sizeof(*miss_action));
+
RELEASE_OBJECT(ptable);
dpa_cls_dbg(("DEBUG: dpa_classifier %s (%d) <--\n", __func__,
@@ -3230,6 +3233,26 @@ static inline void key_apply_mask(const struct dpa_offload_lookup_key *key,
new_key[i] = key->byte[i] & key->mask[i];
}
+int dpa_classif_get_miss_action(int td, struct dpa_cls_tbl_action *miss_action)
+{
+ struct dpa_cls_table *ptable;
+
+ if (!miss_action)
+ return -EINVAL;
+
+ LOCK_OBJECT(table_array, td, ptable, -EINVAL);
+ if (ptable->miss_action.type == DPA_CLS_TBL_ACTION_NONE) {
+ /* No miss action was specified for this table */
+ RELEASE_OBJECT(ptable);
+ return -ENODEV;
+ } else
+ memcpy(miss_action, &ptable->miss_action, sizeof(*miss_action));
+
+ RELEASE_OBJECT(ptable);
+
+ return 0;
+}
+
static int nat_hm_check_params(const struct dpa_cls_hm_nat_params *nat_params)
{
unsigned int ip_ver = 0;
diff --git a/drivers/staging/fsl_dpa_offload/dpa_classifier.h b/drivers/staging/fsl_dpa_offload/dpa_classifier.h
index 0667782..659e1b7 100644
--- a/drivers/staging/fsl_dpa_offload/dpa_classifier.h
+++ b/drivers/staging/fsl_dpa_offload/dpa_classifier.h
@@ -206,6 +206,9 @@ struct dpa_cls_table {
/* (Initial) parameters of the DPA Classifier table. */
struct dpa_cls_tbl_params params;
+ /* Table miss action. */
+ struct dpa_cls_tbl_action miss_action;
+
/* Access control object for this table to avoid race conditions. */
struct mutex access;
};
@@ -675,6 +678,12 @@ int dpa_classif_import_static_hm(void *hm, int next_hmd, int *hmd);
void *dpa_classif_get_static_hm_handle(int hmd);
/*
+ * Provides details about the miss action configured on a classification
+ * table.
+ */
+int dpa_classif_get_miss_action(int td, struct dpa_cls_tbl_action *miss_action);
+
+/*
* Locks a header manipulation chain (marks as "used"). The header manipulation
* operations cannot be removed as long as they are locked. The function
* provides the FMan driver handle of the manip node which is chain head.
diff --git a/drivers/staging/fsl_dpa_offload/dts/b4860qds-usdpaa-shared-interfaces.dts b/drivers/staging/fsl_dpa_offload/dts/b4860qds-usdpaa-shared-interfaces.dts
index 537d3f2..7baa9b1 100644
--- a/drivers/staging/fsl_dpa_offload/dts/b4860qds-usdpaa-shared-interfaces.dts
+++ b/drivers/staging/fsl_dpa_offload/dts/b4860qds-usdpaa-shared-interfaces.dts
@@ -149,7 +149,7 @@
/* Define frame queues for the OH port*/
/* <OH Rx error, OH Rx default> */
fsl,qman-frame-queues-oh = <0x6e 1 0x6f 1>;
- fsl,bman-buffer-pools = <&bp9>;
+ fsl,bman-buffer-pools = <&bp16>;
fsl,fman-oh-port = <&fman0_oh2>;
};
dpa_fman0_oh3: dpa-fman0-oh@3 {