Commit aa1609f5 authored by AngeloGioacchino Del Regno's avatar AngeloGioacchino Del Regno Committed by Jassi Brar

mailbox: mtk-cmdq: Dynamically allocate clk_bulk_data structure

Now that the clock probing code uses devm_kasprintf(), there is
no more restriction on the number of GCEs: dynamically allocate
the clk_bulk_data clocks array to improve flexibility and also
to get a slight memory saving on platforms featuring only one
CMDQ mailbox (and consequently only one Global Command Engine).
Signed-off-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: default avatarJassi Brar <jassisinghbrar@gmail.com>
parent 0af932c5
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#define CMDQ_OP_CODE_MASK (0xff << CMDQ_OP_CODE_SHIFT) #define CMDQ_OP_CODE_MASK (0xff << CMDQ_OP_CODE_SHIFT)
#define CMDQ_NUM_CMD(t) (t->cmd_buf_size / CMDQ_INST_SIZE) #define CMDQ_NUM_CMD(t) (t->cmd_buf_size / CMDQ_INST_SIZE)
#define CMDQ_GCE_NUM_MAX (2)
#define CMDQ_CURR_IRQ_STATUS 0x10 #define CMDQ_CURR_IRQ_STATUS 0x10
#define CMDQ_SYNC_TOKEN_UPDATE 0x68 #define CMDQ_SYNC_TOKEN_UPDATE 0x68
...@@ -81,7 +80,7 @@ struct cmdq { ...@@ -81,7 +80,7 @@ struct cmdq {
u32 irq_mask; u32 irq_mask;
const struct gce_plat *pdata; const struct gce_plat *pdata;
struct cmdq_thread *thread; struct cmdq_thread *thread;
struct clk_bulk_data clocks[CMDQ_GCE_NUM_MAX]; struct clk_bulk_data *clocks;
bool suspended; bool suspended;
}; };
...@@ -584,6 +583,11 @@ static int cmdq_get_clocks(struct device *dev, struct cmdq *cmdq) ...@@ -584,6 +583,11 @@ static int cmdq_get_clocks(struct device *dev, struct cmdq *cmdq)
struct device_node *node, *parent = dev->of_node->parent; struct device_node *node, *parent = dev->of_node->parent;
struct clk_bulk_data *clks; struct clk_bulk_data *clks;
cmdq->clocks = devm_kcalloc(dev, cmdq->pdata->gce_num,
sizeof(cmdq->clocks), GFP_KERNEL);
if (!cmdq->clocks)
return -ENOMEM;
if (cmdq->pdata->gce_num == 1) { if (cmdq->pdata->gce_num == 1) {
clks = &cmdq->clocks[0]; clks = &cmdq->clocks[0];
......
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