[v1,4/6] baseband/acc: fix PMON register values
Checks
Commit Message
From: Hernan Vargas <hernan.vargas@intel.com>
Enable properly the PMon for ACC100.
Previous commit was missing actual implementation
and using incorrect register values.
Fixes: b4bd57b74c8 ("baseband/acc100: configure PMON control registers")
Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
---
drivers/baseband/acc/acc100_pmd.h | 6 ++++--
drivers/baseband/acc/rte_acc100_pmd.c | 5 +++++
2 files changed, 9 insertions(+), 2 deletions(-)
Comments
On 11/2/22 00:04, Nicolas Chautru wrote:
> From: Hernan Vargas <hernan.vargas@intel.com>
>
> Enable properly the PMon for ACC100.
> Previous commit was missing actual implementation
> and using incorrect register values.
>
> Fixes: b4bd57b74c8 ("baseband/acc100: configure PMON control registers")
>
> Signed-off-by: Hernan Vargas <hernan.vargas@intel.com>
> ---
> drivers/baseband/acc/acc100_pmd.h | 6 ++++--
> drivers/baseband/acc/rte_acc100_pmd.c | 5 +++++
> 2 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/baseband/acc/acc100_pmd.h b/drivers/baseband/acc/acc100_pmd.h
> index 8c0aec5ed8..a48298650c 100644
> --- a/drivers/baseband/acc/acc100_pmd.h
> +++ b/drivers/baseband/acc/acc100_pmd.h
> @@ -146,8 +146,8 @@ static const struct acc100_registry_addr pf_reg_addr = {
> .depth_log1_offset = HWPfQmgrGrpDepthLog21Vf,
> .qman_group_func = HWPfQmgrGrpFunction0,
> .ddr_range = HWPfDmaVfDdrBaseRw,
> - .pmon_ctrl_a = HWVfPmACntrlRegVf,
> - .pmon_ctrl_b = HWVfPmBCntrlRegVf,
> + .pmon_ctrl_a = HWPfPermonACntrlRegVf,
> + .pmon_ctrl_b = HWPfPermonBCntrlRegVf,
> };
>
> /* Structure holding registry addresses for VF */
> @@ -177,6 +177,8 @@ static const struct acc100_registry_addr vf_reg_addr = {
> .depth_log1_offset = HWVfQmgrGrpDepthLog21Vf,
> .qman_group_func = HWVfQmgrGrpFunction0Vf,
> .ddr_range = HWVfDmaDdrBaseRangeRoVf,
> + .pmon_ctrl_a = HWVfPmACntrlRegVf,
> + .pmon_ctrl_b = HWVfPmBCntrlRegVf,
> };
>
> #endif /* _RTE_ACC100_PMD_H_ */
> diff --git a/drivers/baseband/acc/rte_acc100_pmd.c b/drivers/baseband/acc/rte_acc100_pmd.c
> index b6e500c6bc..2999a6a81a 100644
> --- a/drivers/baseband/acc/rte_acc100_pmd.c
> +++ b/drivers/baseband/acc/rte_acc100_pmd.c
> @@ -479,6 +479,11 @@ acc100_setup_queues(struct rte_bbdev *dev, uint16_t num_queues, int socket_id)
> /* Read the populated cfg from ACC100 registers */
> fetch_acc100_config(dev);
>
> + for (value = 0; value <= 2; value++) {
> + acc_reg_write(d, reg_addr->pmon_ctrl_a, value);
> + acc_reg_write(d, reg_addr->pmon_ctrl_b, value);
> + }
> +
> /* Release AXI from PF */
> if (d->pf_device)
> acc_reg_write(d, HWPfDmaAxiControl, 1);
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Thanks,
Maxime
@@ -146,8 +146,8 @@ static const struct acc100_registry_addr pf_reg_addr = {
.depth_log1_offset = HWPfQmgrGrpDepthLog21Vf,
.qman_group_func = HWPfQmgrGrpFunction0,
.ddr_range = HWPfDmaVfDdrBaseRw,
- .pmon_ctrl_a = HWVfPmACntrlRegVf,
- .pmon_ctrl_b = HWVfPmBCntrlRegVf,
+ .pmon_ctrl_a = HWPfPermonACntrlRegVf,
+ .pmon_ctrl_b = HWPfPermonBCntrlRegVf,
};
/* Structure holding registry addresses for VF */
@@ -177,6 +177,8 @@ static const struct acc100_registry_addr vf_reg_addr = {
.depth_log1_offset = HWVfQmgrGrpDepthLog21Vf,
.qman_group_func = HWVfQmgrGrpFunction0Vf,
.ddr_range = HWVfDmaDdrBaseRangeRoVf,
+ .pmon_ctrl_a = HWVfPmACntrlRegVf,
+ .pmon_ctrl_b = HWVfPmBCntrlRegVf,
};
#endif /* _RTE_ACC100_PMD_H_ */
@@ -479,6 +479,11 @@ acc100_setup_queues(struct rte_bbdev *dev, uint16_t num_queues, int socket_id)
/* Read the populated cfg from ACC100 registers */
fetch_acc100_config(dev);
+ for (value = 0; value <= 2; value++) {
+ acc_reg_write(d, reg_addr->pmon_ctrl_a, value);
+ acc_reg_write(d, reg_addr->pmon_ctrl_b, value);
+ }
+
/* Release AXI from PF */
if (d->pf_device)
acc_reg_write(d, HWPfDmaAxiControl, 1);