Skip to content

Commit

Permalink
soc: fsl: dpio: extract the QBMAN clock frequency from the attributes
Browse files Browse the repository at this point in the history
Through the dpio_get_attributes() firmware call the dpio driver has
access to the QBMAN clock frequency. Extend the structure which holds
the firmware's response so that we can have access to this information.

This will be needed in the next patches which also add support for
interrupt coalescing which needs to be configured based on the
frequency.

Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Ioana Ciornei authored and David S. Miller committed Oct 15, 2021
1 parent f3fafbc commit 2cf0b6f
Show file tree
Hide file tree
Showing 7 changed files with 11 additions and 0 deletions.
3 changes: 3 additions & 0 deletions drivers/soc/fsl/dpio/dpio-cmd.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ struct dpio_rsp_get_attr {
__le64 qbman_portal_ci_addr;
/* cmd word 3 */
__le32 qbman_version;
__le32 pad1;
/* cmd word 4 */
__le32 clk;
};

struct dpio_stashing_dest {
Expand Down
1 change: 1 addition & 0 deletions drivers/soc/fsl/dpio/dpio-driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ static int dpaa2_dpio_probe(struct fsl_mc_device *dpio_dev)
goto err_get_attr;
}
desc.qman_version = dpio_attrs.qbman_version;
desc.qman_clk = dpio_attrs.clk;

err = dpio_enable(dpio_dev->mc_io, 0, dpio_dev->mc_handle);
if (err) {
Expand Down
1 change: 1 addition & 0 deletions drivers/soc/fsl/dpio/dpio-service.c
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ struct dpaa2_io *dpaa2_io_create(const struct dpaa2_io_desc *desc,
obj->dpio_desc = *desc;
obj->swp_desc.cena_bar = obj->dpio_desc.regs_cena;
obj->swp_desc.cinh_bar = obj->dpio_desc.regs_cinh;
obj->swp_desc.qman_clk = obj->dpio_desc.qman_clk;
obj->swp_desc.qman_version = obj->dpio_desc.qman_version;
obj->swp = qbman_swp_init(&obj->swp_desc);

Expand Down
1 change: 1 addition & 0 deletions drivers/soc/fsl/dpio/dpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ int dpio_get_attributes(struct fsl_mc_io *mc_io,
attr->qbman_portal_ci_offset =
le64_to_cpu(dpio_rsp->qbman_portal_ci_addr);
attr->qbman_version = le32_to_cpu(dpio_rsp->qbman_version);
attr->clk = le32_to_cpu(dpio_rsp->clk);

return 0;
}
Expand Down
2 changes: 2 additions & 0 deletions drivers/soc/fsl/dpio/dpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ int dpio_disable(struct fsl_mc_io *mc_io,
* @num_priorities: Number of priorities for the notification channel (1-8);
* relevant only if 'channel_mode = DPIO_LOCAL_CHANNEL'
* @qbman_version: QBMAN version
* @clk: QBMAN clock frequency value in Hz
*/
struct dpio_attr {
int id;
Expand All @@ -68,6 +69,7 @@ struct dpio_attr {
enum dpio_channel_mode channel_mode;
u8 num_priorities;
u32 qbman_version;
u32 clk;
};

int dpio_get_attributes(struct fsl_mc_io *mc_io,
Expand Down
1 change: 1 addition & 0 deletions drivers/soc/fsl/dpio/qbman-portal.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ struct qbman_swp_desc {
void *cena_bar; /* Cache-enabled portal base address */
void __iomem *cinh_bar; /* Cache-inhibited portal base address */
u32 qman_version;
u32 qman_clk;
};

#define QBMAN_SWP_INTERRUPT_EQRI 0x01
Expand Down
2 changes: 2 additions & 0 deletions include/soc/fsl/dpaa2-io.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ struct device;
* @regs_cinh: The cache inhibited regs
* @dpio_id: The dpio index
* @qman_version: The qman version
* @qman_clk: The qman clock frequency in Hz
*
* Describes the attributes and features of the DPIO object.
*/
Expand All @@ -55,6 +56,7 @@ struct dpaa2_io_desc {
void __iomem *regs_cinh;
int dpio_id;
u32 qman_version;
u32 qman_clk;
};

struct dpaa2_io *dpaa2_io_create(const struct dpaa2_io_desc *desc,
Expand Down

0 comments on commit 2cf0b6f

Please sign in to comment.