diff options
Diffstat (limited to 'arch/arm/mach-kirkwood/common.c')
-rw-r--r-- | arch/arm/mach-kirkwood/common.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c index 25fb3fd418ef..f261cd242643 100644 --- a/arch/arm/mach-kirkwood/common.c +++ b/arch/arm/mach-kirkwood/common.c | |||
@@ -159,6 +159,7 @@ static struct clk __init *clk_register_gate_fn(struct device *dev, | |||
159 | gate_fn->gate.flags = clk_gate_flags; | 159 | gate_fn->gate.flags = clk_gate_flags; |
160 | gate_fn->gate.lock = lock; | 160 | gate_fn->gate.lock = lock; |
161 | gate_fn->gate.hw.init = &init; | 161 | gate_fn->gate.hw.init = &init; |
162 | gate_fn->fn = fn; | ||
162 | 163 | ||
163 | /* ops is the gate ops, but with our disable function */ | 164 | /* ops is the gate ops, but with our disable function */ |
164 | if (clk_gate_fn_ops.disable != clk_gate_fn_disable) { | 165 | if (clk_gate_fn_ops.disable != clk_gate_fn_disable) { |
@@ -193,9 +194,11 @@ static struct clk __init *kirkwood_register_gate_fn(const char *name, | |||
193 | bit_idx, 0, &gating_lock, fn); | 194 | bit_idx, 0, &gating_lock, fn); |
194 | } | 195 | } |
195 | 196 | ||
197 | static struct clk *ge0, *ge1; | ||
198 | |||
196 | void __init kirkwood_clk_init(void) | 199 | void __init kirkwood_clk_init(void) |
197 | { | 200 | { |
198 | struct clk *runit, *ge0, *ge1, *sata0, *sata1, *usb0, *sdio; | 201 | struct clk *runit, *sata0, *sata1, *usb0, *sdio; |
199 | struct clk *crypto, *xor0, *xor1, *pex0, *pex1, *audio; | 202 | struct clk *crypto, *xor0, *xor1, *pex0, *pex1, *audio; |
200 | 203 | ||
201 | tclk = clk_register_fixed_rate(NULL, "tclk", NULL, | 204 | tclk = clk_register_fixed_rate(NULL, "tclk", NULL, |
@@ -257,6 +260,9 @@ void __init kirkwood_ge00_init(struct mv643xx_eth_platform_data *eth_data) | |||
257 | orion_ge00_init(eth_data, | 260 | orion_ge00_init(eth_data, |
258 | GE00_PHYS_BASE, IRQ_KIRKWOOD_GE00_SUM, | 261 | GE00_PHYS_BASE, IRQ_KIRKWOOD_GE00_SUM, |
259 | IRQ_KIRKWOOD_GE00_ERR); | 262 | IRQ_KIRKWOOD_GE00_ERR); |
263 | /* The interface forgets the MAC address assigned by u-boot if | ||
264 | the clock is turned off, so claim the clk now. */ | ||
265 | clk_prepare_enable(ge0); | ||
260 | } | 266 | } |
261 | 267 | ||
262 | 268 | ||
@@ -268,6 +274,7 @@ void __init kirkwood_ge01_init(struct mv643xx_eth_platform_data *eth_data) | |||
268 | orion_ge01_init(eth_data, | 274 | orion_ge01_init(eth_data, |
269 | GE01_PHYS_BASE, IRQ_KIRKWOOD_GE01_SUM, | 275 | GE01_PHYS_BASE, IRQ_KIRKWOOD_GE01_SUM, |
270 | IRQ_KIRKWOOD_GE01_ERR); | 276 | IRQ_KIRKWOOD_GE01_ERR); |
277 | clk_prepare_enable(ge1); | ||
271 | } | 278 | } |
272 | 279 | ||
273 | 280 | ||