Commit f0f3d368 authored by Manish Pandey's avatar Manish Pandey Committed by TrustedFirmware Code Review
Browse files

Merge changes from topic "zynqmp-bug-fixes" into integration

* changes:
  zynqmp: pm: Update flags in common clk divisor node
  zynqmp: pm_api_clock: Copy only the valid bytes
parents 77990838 c8f62536
/* /*
* Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2018-2020, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
...@@ -129,12 +129,26 @@ ...@@ -129,12 +129,26 @@
.div = NA_DIV, \ .div = NA_DIV, \
} }
#define GENERIC_DIV(id) \ #define GENERIC_DIV1 \
{ \ { \
.type = TYPE_DIV##id, \ .type = TYPE_DIV1, \
.offset = PERIPH_DIV##id##_SHIFT, \ .offset = PERIPH_DIV1_SHIFT, \
.width = PERIPH_DIV##id##_WIDTH, \ .width = PERIPH_DIV1_WIDTH, \
.clkflags = CLK_SET_RATE_NO_REPARENT | \
CLK_IS_BASIC, \
.typeflags = CLK_DIVIDER_ONE_BASED | \
CLK_DIVIDER_ALLOW_ZERO, \
.mult = NA_MULT, \
.div = NA_DIV, \
}
#define GENERIC_DIV2 \
{ \
.type = TYPE_DIV2, \
.offset = PERIPH_DIV2_SHIFT, \
.width = PERIPH_DIV2_WIDTH, \
.clkflags = CLK_SET_RATE_NO_REPARENT | \ .clkflags = CLK_SET_RATE_NO_REPARENT | \
CLK_SET_RATE_PARENT | \
CLK_IS_BASIC, \ CLK_IS_BASIC, \
.typeflags = CLK_DIVIDER_ONE_BASED | \ .typeflags = CLK_DIVIDER_ONE_BASED | \
CLK_DIVIDER_ALLOW_ZERO, \ CLK_DIVIDER_ALLOW_ZERO, \
...@@ -340,25 +354,25 @@ static struct pm_clock_node acpu_nodes[] = { ...@@ -340,25 +354,25 @@ static struct pm_clock_node acpu_nodes[] = {
static struct pm_clock_node generic_mux_div_nodes[] = { static struct pm_clock_node generic_mux_div_nodes[] = {
GENERIC_MUX, GENERIC_MUX,
GENERIC_DIV(1), GENERIC_DIV1,
}; };
static struct pm_clock_node generic_mux_div_gate_nodes[] = { static struct pm_clock_node generic_mux_div_gate_nodes[] = {
GENERIC_MUX, GENERIC_MUX,
GENERIC_DIV(1), GENERIC_DIV1,
GENERIC_GATE, GENERIC_GATE,
}; };
static struct pm_clock_node generic_mux_div_unused_gate_nodes[] = { static struct pm_clock_node generic_mux_div_unused_gate_nodes[] = {
GENERIC_MUX, GENERIC_MUX,
GENERIC_DIV(1), GENERIC_DIV1,
IGNORE_UNUSED_GATE, IGNORE_UNUSED_GATE,
}; };
static struct pm_clock_node generic_mux_div_div_gate_nodes[] = { static struct pm_clock_node generic_mux_div_div_gate_nodes[] = {
GENERIC_MUX, GENERIC_MUX,
GENERIC_DIV(1), GENERIC_DIV1,
GENERIC_DIV(2), GENERIC_DIV2,
GENERIC_GATE, GENERIC_GATE,
}; };
...@@ -410,8 +424,8 @@ static struct pm_clock_node dp_audio_video_ref_nodes[] = { ...@@ -410,8 +424,8 @@ static struct pm_clock_node dp_audio_video_ref_nodes[] = {
static struct pm_clock_node usb_nodes[] = { static struct pm_clock_node usb_nodes[] = {
GENERIC_MUX, GENERIC_MUX,
GENERIC_DIV(1), GENERIC_DIV1,
GENERIC_DIV(2), GENERIC_DIV2,
{ {
.type = TYPE_GATE, .type = TYPE_GATE,
.offset = USB_GATE_SHIFT, .offset = USB_GATE_SHIFT,
...@@ -2435,7 +2449,8 @@ enum pm_ret_status pm_api_clock_get_num_clocks(unsigned int *nclocks) ...@@ -2435,7 +2449,8 @@ enum pm_ret_status pm_api_clock_get_num_clocks(unsigned int *nclocks)
enum pm_ret_status pm_api_clock_get_name(unsigned int clock_id, char *name) enum pm_ret_status pm_api_clock_get_name(unsigned int clock_id, char *name)
{ {
if (clock_id == CLK_MAX) if (clock_id == CLK_MAX)
memcpy(name, END_OF_CLK, CLK_NAME_LEN); memcpy(name, END_OF_CLK, sizeof(END_OF_CLK) > CLK_NAME_LEN ?
CLK_NAME_LEN : sizeof(END_OF_CLK));
else if (!pm_clock_valid(clock_id)) else if (!pm_clock_valid(clock_id))
memset(name, 0, CLK_NAME_LEN); memset(name, 0, CLK_NAME_LEN);
else if (clock_id < CLK_MAX_OUTPUT_CLK) else if (clock_id < CLK_MAX_OUTPUT_CLK)
......
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