Skip to content

Commit 742b50f

Browse files
arndbbebarino
authored andcommitted
clk: mmp2: fix link error without mmp2
The newly added function is only built into the kernel if mmp2 is enabled, causing a link error otherwise. arm-linux-gnueabi-ld: drivers/clk/mmp/clk.o: in function `mmp_register_pll_clks': clk.c:(.text+0x6dc): undefined reference to `mmp_clk_register_pll' Move it to a different file to get it to link. Fixes: 5d34d0b ("clk: mmp2: Add support for PLL clock sources") Signed-off-by: Arnd Bergmann <[email protected]> Link: https://lkml.kernel.org/r/[email protected] Reported-by: Guenter Roeck <[email protected]> Reported-by: kbuild test robot <[email protected]> Signed-off-by: Stephen Boyd <[email protected]>
1 parent 924ed1f commit 742b50f

File tree

3 files changed

+32
-39
lines changed

3 files changed

+32
-39
lines changed

drivers/clk/mmp/clk-pll.c

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ static const struct clk_ops mmp_clk_pll_ops = {
9797
.recalc_rate = mmp_clk_pll_recalc_rate,
9898
};
9999

100-
struct clk *mmp_clk_register_pll(char *name,
100+
static struct clk *mmp_clk_register_pll(char *name,
101101
unsigned long default_rate,
102102
void __iomem *enable_reg, u32 enable,
103103
void __iomem *reg, u8 shift,
@@ -137,3 +137,34 @@ struct clk *mmp_clk_register_pll(char *name,
137137

138138
return clk;
139139
}
140+
141+
void mmp_register_pll_clks(struct mmp_clk_unit *unit,
142+
struct mmp_param_pll_clk *clks,
143+
void __iomem *base, int size)
144+
{
145+
struct clk *clk;
146+
int i;
147+
148+
for (i = 0; i < size; i++) {
149+
void __iomem *reg = NULL;
150+
151+
if (clks[i].offset)
152+
reg = base + clks[i].offset;
153+
154+
clk = mmp_clk_register_pll(clks[i].name,
155+
clks[i].default_rate,
156+
base + clks[i].enable_offset,
157+
clks[i].enable,
158+
reg, clks[i].shift,
159+
clks[i].input_rate,
160+
base + clks[i].postdiv_offset,
161+
clks[i].postdiv_shift);
162+
if (IS_ERR(clk)) {
163+
pr_err("%s: failed to register clock %s\n",
164+
__func__, clks[i].name);
165+
continue;
166+
}
167+
if (clks[i].id)
168+
unit->clk_table[clks[i].id] = clk;
169+
}
170+
}

drivers/clk/mmp/clk.c

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -176,37 +176,6 @@ void mmp_register_div_clks(struct mmp_clk_unit *unit,
176176
}
177177
}
178178

179-
void mmp_register_pll_clks(struct mmp_clk_unit *unit,
180-
struct mmp_param_pll_clk *clks,
181-
void __iomem *base, int size)
182-
{
183-
struct clk *clk;
184-
int i;
185-
186-
for (i = 0; i < size; i++) {
187-
void __iomem *reg = NULL;
188-
189-
if (clks[i].offset)
190-
reg = base + clks[i].offset;
191-
192-
clk = mmp_clk_register_pll(clks[i].name,
193-
clks[i].default_rate,
194-
base + clks[i].enable_offset,
195-
clks[i].enable,
196-
reg, clks[i].shift,
197-
clks[i].input_rate,
198-
base + clks[i].postdiv_offset,
199-
clks[i].postdiv_shift);
200-
if (IS_ERR(clk)) {
201-
pr_err("%s: failed to register clock %s\n",
202-
__func__, clks[i].name);
203-
continue;
204-
}
205-
if (clks[i].id)
206-
unit->clk_table[clks[i].id] = clk;
207-
}
208-
}
209-
210179
void mmp_clk_add(struct mmp_clk_unit *unit, unsigned int id,
211180
struct clk *clk)
212181
{

drivers/clk/mmp/clk.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -238,13 +238,6 @@ void mmp_register_pll_clks(struct mmp_clk_unit *unit,
238238
struct mmp_param_pll_clk *clks,
239239
void __iomem *base, int size);
240240

241-
extern struct clk *mmp_clk_register_pll(char *name,
242-
unsigned long default_rate,
243-
void __iomem *enable_reg, u32 enable,
244-
void __iomem *reg, u8 shift,
245-
unsigned long input_rate,
246-
void __iomem *postdiv_reg, u8 postdiv_shift);
247-
248241
#define DEFINE_MIX_REG_INFO(w_d, s_d, w_m, s_m, fc) \
249242
{ \
250243
.width_div = (w_d), \

0 commit comments

Comments
 (0)