Skip to content

Commit 6780d21

Browse files
committed
Merge: Update Renesas R-Car S4 clock drivers to v6.12
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/merge_requests/6311 JIRA: https://issues.redhat.com/browse/RHEL-77190 There have been further enhancements and fixes to the Renesas R-Car S4 clock drivers after the SoC was initially enabled in cs9. While there is no known problem today, these enhancements and fixes could be beneficial in the near future, so bring them in for the upcoming RHIVOS release. The following commits from upstream series are omitted because r8a779g0 and r8a779h0 are not supported in CS9 and the corresponding files do not exist: 898b5bc clk: renesas: r8a779g0: cpg_pll_configs should be __initconst 588d55a clk: renesas: r8a779h0: Initial clock descriptions should be __initconst cf91977 clk: renesas: r8a779g0: Fix OSC predividers e1924c6 clk: renesas: r8a779g0: Model PLL1/3/4/6 as fractional PLLs 2cf316b clk: renesas: r8a779h0: Model PLL1/2/3/4/6 as fractional PLLs The following commits from upstream series are omitted because the rzg2l-cpg driver (CONFIG_CLK_RZG2L) is not supported in CS9 and the corresponding Kconfig option is disabled: 27527a3 clk: renesas: rzg2l: Check return value of pm_genpd_init() 3374874 clk: renesas: rzg2l: propagate return value of_genpd_add_provider_simple() 7df8eea clk: renesas: rzg2l: Convert to readl_poll_timeout_atomic() Signed-off-by: Radu Rendec <rrendec@redhat.com> Approved-by: Brian Masney <bmasney@redhat.com> Approved-by: Eric Chanudet <echanude@redhat.com> Approved-by: Jared Kangas <jkangas@redhat.com> Approved-by: CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> Merged-by: Patrick Talbert <ptalbert@redhat.com>
2 parents 0f08520 + f940a54 commit 6780d21

File tree

14 files changed

+565
-176
lines changed

14 files changed

+565
-176
lines changed

drivers/clk/clk.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5232,7 +5232,7 @@ static int of_parse_clkspec(const struct device_node *np, int index,
52325232
* clocks.
52335233
*/
52345234
np = np->parent;
5235-
if (np && !of_get_property(np, "clock-ranges", NULL))
5235+
if (np && !of_property_present(np, "clock-ranges"))
52365236
break;
52375237
index = 0;
52385238
}

drivers/clk/renesas/clk-mstp.c

Lines changed: 11 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@
1010

1111
#include <linux/clk.h>
1212
#include <linux/clk-provider.h>
13-
#include <linux/clkdev.h>
1413
#include <linux/clk/renesas.h>
1514
#include <linux/device.h>
1615
#include <linux/io.h>
16+
#include <linux/iopoll.h>
1717
#include <linux/of.h>
1818
#include <linux/of_address.h>
1919
#include <linux/pm_clock.h>
2020
#include <linux/pm_domain.h>
21+
#include <linux/slab.h>
2122
#include <linux/spinlock.h>
2223

2324
/*
@@ -78,8 +79,8 @@ static int cpg_mstp_clock_endisable(struct clk_hw *hw, bool enable)
7879
struct mstp_clock_group *group = clock->group;
7980
u32 bitmask = BIT(clock->bit_index);
8081
unsigned long flags;
81-
unsigned int i;
8282
u32 value;
83+
int ret;
8384

8485
spin_lock_irqsave(&group->lock, flags);
8586

@@ -101,19 +102,14 @@ static int cpg_mstp_clock_endisable(struct clk_hw *hw, bool enable)
101102
if (!enable || !group->mstpsr)
102103
return 0;
103104

104-
for (i = 1000; i > 0; --i) {
105-
if (!(cpg_mstp_read(group, group->mstpsr) & bitmask))
106-
break;
107-
cpu_relax();
108-
}
109-
110-
if (!i) {
105+
/* group->width_8bit is always false if group->mstpsr is present */
106+
ret = readl_poll_timeout_atomic(group->mstpsr, value,
107+
!(value & bitmask), 0, 10);
108+
if (ret)
111109
pr_err("%s: failed to enable %p[%d]\n", __func__,
112110
group->smstpcr, clock->bit_index);
113-
return -ETIMEDOUT;
114-
}
115111

116-
return 0;
112+
return ret;
117113
}
118114

119115
static int cpg_mstp_clock_enable(struct clk_hw *hw)
@@ -211,7 +207,7 @@ static void __init cpg_mstp_clocks_init(struct device_node *np)
211207
for (i = 0; i < MSTP_MAX_CLOCKS; ++i)
212208
clks[i] = ERR_PTR(-ENOENT);
213209

214-
if (of_find_property(np, "clock-indices", &i))
210+
if (of_property_present(np, "clock-indices"))
215211
idxname = "clock-indices";
216212
else
217213
idxname = "renesas,clock-indices";
@@ -241,22 +237,12 @@ static void __init cpg_mstp_clocks_init(struct device_node *np)
241237

242238
clks[clkidx] = cpg_mstp_clock_register(name, parent_name,
243239
clkidx, group);
244-
if (!IS_ERR(clks[clkidx])) {
240+
if (!IS_ERR(clks[clkidx]))
245241
group->data.clk_num = max(group->data.clk_num,
246242
clkidx + 1);
247-
/*
248-
* Register a clkdev to let board code retrieve the
249-
* clock by name and register aliases for non-DT
250-
* devices.
251-
*
252-
* FIXME: Remove this when all devices that require a
253-
* clock will be instantiated from DT.
254-
*/
255-
clk_register_clkdev(clks[clkidx], name, NULL);
256-
} else {
243+
else
257244
pr_err("%s: failed to register %pOFn %s clock (%ld)\n",
258245
__func__, np, name, PTR_ERR(clks[clkidx]));
259-
}
260246
}
261247

262248
of_clk_add_provider(np, of_clk_src_onecell_get, &group->data);

drivers/clk/renesas/r8a77970-cpg-mssr.c

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include <dt-bindings/clock/r8a77970-cpg-mssr.h>
1919

2020
#include "renesas-cpg-mssr.h"
21+
#include "rcar-cpg-lib.h"
2122
#include "rcar-gen3-cpg.h"
2223

2324
#define CPG_SD0CKCR 0x0074
@@ -47,8 +48,6 @@ enum clk_ids {
4748
MOD_CLK_BASE
4849
};
4950

50-
static spinlock_t cpg_lock;
51-
5251
static const struct clk_div_table cpg_sd0h_div_table[] = {
5352
{ 0, 2 }, { 1, 3 }, { 2, 4 }, { 3, 6 },
5453
{ 4, 8 }, { 5, 12 }, { 6, 16 }, { 7, 18 },
@@ -212,8 +211,6 @@ static int __init r8a77970_cpg_mssr_init(struct device *dev)
212211
if (error)
213212
return error;
214213

215-
spin_lock_init(&cpg_lock);
216-
217214
cpg_pll_config = &cpg_pll_configs[CPG_PLL_CONFIG_INDEX(cpg_mode)];
218215

219216
return rcar_gen3_cpg_init(cpg_pll_config, CLK_EXTALR, cpg_mode);

drivers/clk/renesas/r8a779a0-cpg-mssr.c

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ enum clk_ids {
6161
DEF_BASE(_name, _id, CLK_TYPE_GEN4_PLL2X_3X, CLK_MAIN, \
6262
.offset = _offset)
6363

64+
#define CPG_PLL20CR 0x0834 /* PLL20 Control Register */
65+
#define CPG_PLL21CR 0x0838 /* PLL21 Control Register */
66+
#define CPG_PLL30CR 0x083c /* PLL30 Control Register */
67+
#define CPG_PLL31CR 0x0840 /* PLL31 Control Register */
68+
6469
static const struct cpg_core_clk r8a779a0_core_clks[] __initconst = {
6570
/* External Clock Inputs */
6671
DEF_INPUT("extal", CLK_EXTAL),
@@ -70,10 +75,10 @@ static const struct cpg_core_clk r8a779a0_core_clks[] __initconst = {
7075
DEF_BASE(".main", CLK_MAIN, CLK_TYPE_GEN4_MAIN, CLK_EXTAL),
7176
DEF_BASE(".pll1", CLK_PLL1, CLK_TYPE_GEN4_PLL1, CLK_MAIN),
7277
DEF_BASE(".pll5", CLK_PLL5, CLK_TYPE_GEN4_PLL5, CLK_MAIN),
73-
DEF_PLL(".pll20", CLK_PLL20, 0x0834),
74-
DEF_PLL(".pll21", CLK_PLL21, 0x0838),
75-
DEF_PLL(".pll30", CLK_PLL30, 0x083c),
76-
DEF_PLL(".pll31", CLK_PLL31, 0x0840),
78+
DEF_PLL(".pll20", CLK_PLL20, CPG_PLL20CR),
79+
DEF_PLL(".pll21", CLK_PLL21, CPG_PLL21CR),
80+
DEF_PLL(".pll30", CLK_PLL30, CPG_PLL30CR),
81+
DEF_PLL(".pll31", CLK_PLL31, CPG_PLL31CR),
7782

7883
DEF_FIXED(".pll1_div2", CLK_PLL1_DIV2, CLK_PLL1, 2, 1),
7984
DEF_FIXED(".pll20_div2", CLK_PLL20_DIV2, CLK_PLL20, 2, 1),
@@ -106,7 +111,6 @@ static const struct cpg_core_clk r8a779a0_core_clks[] __initconst = {
106111
DEF_FIXED("zt", R8A779A0_CLK_ZT, CLK_PLL1_DIV2, 2, 1),
107112
DEF_FIXED("ztr", R8A779A0_CLK_ZTR, CLK_PLL1_DIV2, 2, 1),
108113
DEF_FIXED("zr", R8A779A0_CLK_ZR, CLK_PLL1_DIV2, 1, 1),
109-
DEF_FIXED("dsi", R8A779A0_CLK_DSI, CLK_PLL5_DIV4, 1, 1),
110114
DEF_FIXED("cnndsp", R8A779A0_CLK_CNNDSP, CLK_PLL5_DIV4, 1, 1),
111115
DEF_FIXED("vip", R8A779A0_CLK_VIP, CLK_PLL5, 5, 1),
112116
DEF_FIXED("adgh", R8A779A0_CLK_ADGH, CLK_PLL5_DIV4, 1, 1),
@@ -117,16 +121,17 @@ static const struct cpg_core_clk r8a779a0_core_clks[] __initconst = {
117121
DEF_FIXED("cp", R8A779A0_CLK_CP, CLK_EXTAL, 2, 1),
118122
DEF_FIXED("cl16mck", R8A779A0_CLK_CL16MCK, CLK_PLL1_DIV2, 64, 1),
119123

120-
DEF_GEN4_SDH("sd0h", R8A779A0_CLK_SD0H, CLK_SDSRC, 0x870),
121-
DEF_GEN4_SD("sd0", R8A779A0_CLK_SD0, R8A779A0_CLK_SD0H, 0x870),
124+
DEF_GEN4_SDH("sd0h", R8A779A0_CLK_SD0H, CLK_SDSRC, CPG_SD0CKCR),
125+
DEF_GEN4_SD("sd0", R8A779A0_CLK_SD0, R8A779A0_CLK_SD0H, CPG_SD0CKCR),
122126

123127
DEF_BASE("rpc", R8A779A0_CLK_RPC, CLK_TYPE_GEN4_RPC, CLK_RPCSRC),
124128
DEF_BASE("rpcd2", R8A779A0_CLK_RPCD2, CLK_TYPE_GEN4_RPCD2,
125129
R8A779A0_CLK_RPC),
126130

127-
DEF_DIV6P1("mso", R8A779A0_CLK_MSO, CLK_PLL5_DIV4, 0x87c),
128-
DEF_DIV6P1("canfd", R8A779A0_CLK_CANFD, CLK_PLL5_DIV4, 0x878),
129-
DEF_DIV6P1("csi0", R8A779A0_CLK_CSI0, CLK_PLL5_DIV4, 0x880),
131+
DEF_DIV6P1("mso", R8A779A0_CLK_MSO, CLK_PLL5_DIV4, CPG_MSOCKCR),
132+
DEF_DIV6P1("canfd", R8A779A0_CLK_CANFD, CLK_PLL5_DIV4, CPG_CANFDCKCR),
133+
DEF_DIV6P1("csi0", R8A779A0_CLK_CSI0, CLK_PLL5_DIV4, CPG_CSICKCR),
134+
DEF_DIV6P1("dsi", R8A779A0_CLK_DSI, CLK_PLL5_DIV4, CPG_DSIEXTCKCR),
130135

131136
DEF_GEN4_OSC("osc", R8A779A0_CLK_OSC, CLK_EXTAL, 8),
132137
DEF_GEN4_MDSEL("r", R8A779A0_CLK_R, 29, CLK_EXTALR, 1, CLK_OCO, 1),
@@ -139,11 +144,14 @@ static const struct mssr_mod_clk r8a779a0_mod_clks[] __initconst = {
139144
DEF_MOD("avb3", 214, R8A779A0_CLK_S3D2),
140145
DEF_MOD("avb4", 215, R8A779A0_CLK_S3D2),
141146
DEF_MOD("avb5", 216, R8A779A0_CLK_S3D2),
142-
DEF_MOD("canfd0", 328, R8A779A0_CLK_CANFD),
147+
DEF_MOD("canfd0", 328, R8A779A0_CLK_S3D2),
143148
DEF_MOD("csi40", 331, R8A779A0_CLK_CSI0),
144149
DEF_MOD("csi41", 400, R8A779A0_CLK_CSI0),
145150
DEF_MOD("csi42", 401, R8A779A0_CLK_CSI0),
146151
DEF_MOD("csi43", 402, R8A779A0_CLK_CSI0),
152+
DEF_MOD("du", 411, R8A779A0_CLK_S3D1),
153+
DEF_MOD("dsi0", 415, R8A779A0_CLK_DSI),
154+
DEF_MOD("dsi1", 416, R8A779A0_CLK_DSI),
147155
DEF_MOD("fcpvd0", 508, R8A779A0_CLK_S3D1),
148156
DEF_MOD("fcpvd1", 509, R8A779A0_CLK_S3D1),
149157
DEF_MOD("hscif0", 514, R8A779A0_CLK_S1D2),
@@ -167,14 +175,15 @@ static const struct mssr_mod_clk r8a779a0_mod_clks[] __initconst = {
167175
DEF_MOD("msi3", 621, R8A779A0_CLK_MSO),
168176
DEF_MOD("msi4", 622, R8A779A0_CLK_MSO),
169177
DEF_MOD("msi5", 623, R8A779A0_CLK_MSO),
178+
DEF_MOD("pwm0", 628, R8A779A0_CLK_S1D8),
170179
DEF_MOD("rpc-if", 629, R8A779A0_CLK_RPCD2),
171180
DEF_MOD("scif0", 702, R8A779A0_CLK_S1D8),
172181
DEF_MOD("scif1", 703, R8A779A0_CLK_S1D8),
173182
DEF_MOD("scif3", 704, R8A779A0_CLK_S1D8),
174183
DEF_MOD("scif4", 705, R8A779A0_CLK_S1D8),
175184
DEF_MOD("sdhi0", 706, R8A779A0_CLK_SD0),
176-
DEF_MOD("sydm1", 709, R8A779A0_CLK_S1D2),
177-
DEF_MOD("sydm2", 710, R8A779A0_CLK_S1D2),
185+
DEF_MOD("sys-dmac1", 709, R8A779A0_CLK_S1D2),
186+
DEF_MOD("sys-dmac2", 710, R8A779A0_CLK_S1D2),
178187
DEF_MOD("tmu0", 713, R8A779A0_CLK_CL16MCK),
179188
DEF_MOD("tmu1", 714, R8A779A0_CLK_S1D4),
180189
DEF_MOD("tmu2", 715, R8A779A0_CLK_S1D4),
@@ -248,12 +257,12 @@ static const unsigned int r8a779a0_crit_mod_clks[] __initconst = {
248257
*/
249258
#define CPG_PLL_CONFIG_INDEX(md) ((((md) & BIT(14)) >> 13) | \
250259
(((md) & BIT(13)) >> 13))
251-
static const struct rcar_gen4_cpg_pll_config cpg_pll_configs[4] = {
252-
/* EXTAL div PLL1 mult/div PLL2 mult/div PLL3 mult/div PLL4 mult/div PLL5 mult/div PLL6 mult/div OSC prediv */
253-
{ 1, 128, 1, 0, 0, 0, 0, 144, 1, 192, 1, 0, 0, 16, },
254-
{ 1, 106, 1, 0, 0, 0, 0, 120, 1, 160, 1, 0, 0, 19, },
255-
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
256-
{ 2, 128, 1, 0, 0, 0, 0, 144, 1, 192, 1, 0, 0, 32, },
260+
static const struct rcar_gen4_cpg_pll_config cpg_pll_configs[4] __initconst = {
261+
/* EXTAL div PLL1 mult/div PLL5 mult/div OSC prediv */
262+
{ 1, 128, 1, 192, 1, 16, },
263+
{ 1, 106, 1, 160, 1, 19, },
264+
{ 0, 0, 0, 0, 0, 0, },
265+
{ 2, 128, 1, 192, 1, 32, },
257266
};
258267

259268

drivers/clk/renesas/r8a779f0-cpg-mssr.c

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,12 @@ static const struct cpg_core_clk r8a779f0_core_clks[] __initconst = {
5757
DEF_INPUT("extalr", CLK_EXTALR),
5858

5959
/* Internal Core Clocks */
60-
DEF_BASE(".main", CLK_MAIN, CLK_TYPE_GEN4_MAIN, CLK_EXTAL),
61-
DEF_BASE(".pll1", CLK_PLL1, CLK_TYPE_GEN4_PLL1, CLK_MAIN),
62-
DEF_BASE(".pll2", CLK_PLL2, CLK_TYPE_GEN4_PLL2, CLK_MAIN),
63-
DEF_BASE(".pll3", CLK_PLL3, CLK_TYPE_GEN4_PLL3, CLK_MAIN),
64-
DEF_BASE(".pll5", CLK_PLL5, CLK_TYPE_GEN4_PLL5, CLK_MAIN),
65-
DEF_BASE(".pll6", CLK_PLL6, CLK_TYPE_GEN4_PLL6, CLK_MAIN),
60+
DEF_BASE(".main", CLK_MAIN, CLK_TYPE_GEN4_MAIN, CLK_EXTAL),
61+
DEF_GEN4_PLL_F9_24(".pll1", 1, CLK_PLL1, CLK_MAIN),
62+
DEF_GEN4_PLL_V9_24(".pll2", 2, CLK_PLL2, CLK_MAIN),
63+
DEF_GEN4_PLL_V9_24(".pll3", 3, CLK_PLL3, CLK_MAIN),
64+
DEF_BASE(".pll5", CLK_PLL5, CLK_TYPE_GEN4_PLL5, CLK_MAIN),
65+
DEF_GEN4_PLL_V9_24(".pll6", 6, CLK_PLL6, CLK_MAIN),
6666

6767
DEF_FIXED(".pll1_div2", CLK_PLL1_DIV2, CLK_PLL1, 2, 1),
6868
DEF_FIXED(".pll2_div2", CLK_PLL2_DIV2, CLK_PLL2, 2, 1),
@@ -115,13 +115,13 @@ static const struct cpg_core_clk r8a779f0_core_clks[] __initconst = {
115115
DEF_FIXED("sasyncperd2",R8A779F0_CLK_SASYNCPERD2, CLK_SASYNCPER,2, 1),
116116
DEF_FIXED("sasyncperd4",R8A779F0_CLK_SASYNCPERD4, CLK_SASYNCPER,4, 1),
117117

118-
DEF_GEN4_SDH("sd0h", R8A779F0_CLK_SD0H, CLK_SDSRC, 0x870),
119-
DEF_GEN4_SD("sd0", R8A779F0_CLK_SD0, R8A779F0_CLK_SD0H, 0x870),
118+
DEF_GEN4_SDH("sd0h", R8A779F0_CLK_SD0H, CLK_SDSRC, CPG_SD0CKCR),
119+
DEF_GEN4_SD("sd0", R8A779F0_CLK_SD0, R8A779F0_CLK_SD0H, CPG_SD0CKCR),
120120

121121
DEF_BASE("rpc", R8A779F0_CLK_RPC, CLK_TYPE_GEN4_RPC, CLK_RPCSRC),
122122
DEF_BASE("rpcd2", R8A779F0_CLK_RPCD2, CLK_TYPE_GEN4_RPCD2, R8A779F0_CLK_RPC),
123123

124-
DEF_DIV6P1("mso", R8A779F0_CLK_MSO, CLK_PLL5_DIV4, 0x87c),
124+
DEF_DIV6P1("mso", R8A779F0_CLK_MSO, CLK_PLL5_DIV4, CPG_MSOCKCR),
125125

126126
DEF_GEN4_OSC("osc", R8A779F0_CLK_OSC, CLK_EXTAL, 8),
127127
DEF_GEN4_MDSEL("r", R8A779F0_CLK_R, 29, CLK_EXTALR, 1, CLK_OCO, 1),
@@ -187,12 +187,12 @@ static const unsigned int r8a779f0_crit_mod_clks[] __initconst = {
187187
#define CPG_PLL_CONFIG_INDEX(md) ((((md) & BIT(14)) >> 13) | \
188188
(((md) & BIT(13)) >> 13))
189189

190-
static const struct rcar_gen4_cpg_pll_config cpg_pll_configs[4] = {
191-
/* EXTAL div PLL1 mult/div PLL2 mult/div PLL3 mult/div PLL4 mult/div PLL5 mult/div PLL6 mult/div OSC prediv */
192-
{ 1, 200, 1, 150, 1, 200, 1, 0, 0, 200, 1, 134, 1, 15, },
193-
{ 1, 160, 1, 120, 1, 160, 1, 0, 0, 160, 1, 106, 1, 19, },
194-
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
195-
{ 2, 160, 1, 120, 1, 160, 1, 0, 0, 160, 1, 106, 1, 38, },
190+
static const struct rcar_gen4_cpg_pll_config cpg_pll_configs[4] __initconst = {
191+
/* EXTAL div PLL1 mult/div PLL5 mult/div OSC prediv */
192+
{ 1, 200, 1, 200, 1, 15, },
193+
{ 1, 160, 1, 160, 1, 19, },
194+
{ 0, 0, 0, 0, 0, 0, },
195+
{ 2, 160, 1, 160, 1, 38, },
196196
};
197197

198198
static int __init r8a779f0_cpg_mssr_init(struct device *dev)

drivers/clk/renesas/rcar-cpg-lib.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
#include "rcar-cpg-lib.h"
2424

25-
spinlock_t cpg_lock;
25+
DEFINE_SPINLOCK(cpg_lock);
2626

2727
void cpg_reg_modify(void __iomem *reg, u32 clear, u32 set)
2828
{

drivers/clk/renesas/rcar-gen2-cpg.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#define CPG_ADSPCKCR 0x025c
3131
#define CPG_RCANCKCR 0x0270
3232

33-
static spinlock_t cpg_lock;
33+
static DEFINE_SPINLOCK(cpg_lock);
3434

3535
/*
3636
* Z Clock
@@ -387,7 +387,5 @@ int __init rcar_gen2_cpg_init(const struct rcar_gen2_cpg_pll_config *config,
387387
cpg_quirks = (uintptr_t)attr->data;
388388
pr_debug("%s: mode = 0x%x quirks = 0x%x\n", __func__, mode, cpg_quirks);
389389

390-
spin_lock_init(&cpg_lock);
391-
392390
return 0;
393391
}

drivers/clk/renesas/rcar-gen3-cpg.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,5 @@ int __init rcar_gen3_cpg_init(const struct rcar_gen3_cpg_pll_config *config,
537537
cpg_quirks = (uintptr_t)attr->data;
538538
pr_debug("%s: mode = 0x%x quirks = 0x%x\n", __func__, mode, cpg_quirks);
539539

540-
spin_lock_init(&cpg_lock);
541-
542540
return 0;
543541
}

0 commit comments

Comments
 (0)