Commit a2c78977 authored by Vadim Fedorenko's avatar Vadim Fedorenko Committed by Jakub Kicinski

ptp: ocp: fix DPLL functions

In ptp_ocp driver pin actions assume sma_nr starts with 1, but for DPLL
subsystem callback 0-based index was used. Fix it providing proper index.

Fixes: 09eeb3ae ("ptp_ocp: implement DPLL ops")
Signed-off-by: default avatarVadim Fedorenko <vadim.fedorenko@linux.dev>
Link: https://lore.kernel.org/r/20240508132111.11545-1-vadim.fedorenko@linux.devSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 8c3b7565
...@@ -4562,7 +4562,7 @@ static int ptp_ocp_dpll_direction_set(const struct dpll_pin *pin, ...@@ -4562,7 +4562,7 @@ static int ptp_ocp_dpll_direction_set(const struct dpll_pin *pin,
return -EOPNOTSUPP; return -EOPNOTSUPP;
mode = direction == DPLL_PIN_DIRECTION_INPUT ? mode = direction == DPLL_PIN_DIRECTION_INPUT ?
SMA_MODE_IN : SMA_MODE_OUT; SMA_MODE_IN : SMA_MODE_OUT;
return ptp_ocp_sma_store_val(bp, 0, mode, sma_nr); return ptp_ocp_sma_store_val(bp, 0, mode, sma_nr + 1);
} }
static int ptp_ocp_dpll_frequency_set(const struct dpll_pin *pin, static int ptp_ocp_dpll_frequency_set(const struct dpll_pin *pin,
...@@ -4583,7 +4583,7 @@ static int ptp_ocp_dpll_frequency_set(const struct dpll_pin *pin, ...@@ -4583,7 +4583,7 @@ static int ptp_ocp_dpll_frequency_set(const struct dpll_pin *pin,
tbl = bp->sma_op->tbl[sma->mode]; tbl = bp->sma_op->tbl[sma->mode];
for (i = 0; tbl[i].name; i++) for (i = 0; tbl[i].name; i++)
if (tbl[i].frequency == frequency) if (tbl[i].frequency == frequency)
return ptp_ocp_sma_store_val(bp, i, sma->mode, sma_nr); return ptp_ocp_sma_store_val(bp, i, sma->mode, sma_nr + 1);
return -EINVAL; return -EINVAL;
} }
...@@ -4600,7 +4600,7 @@ static int ptp_ocp_dpll_frequency_get(const struct dpll_pin *pin, ...@@ -4600,7 +4600,7 @@ static int ptp_ocp_dpll_frequency_get(const struct dpll_pin *pin,
u32 val; u32 val;
int i; int i;
val = bp->sma_op->get(bp, sma_nr); val = bp->sma_op->get(bp, sma_nr + 1);
tbl = bp->sma_op->tbl[sma->mode]; tbl = bp->sma_op->tbl[sma->mode];
for (i = 0; tbl[i].name; i++) for (i = 0; tbl[i].name; i++)
if (val == tbl[i].value) { if (val == tbl[i].value) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment