mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 23:12:32 +00:00
e58cd453d5
Add kernel support for SAMA7G5 by back-porting mainline kernel patches. Among SAMA7G5 features could be remembered: - ARM Cortex-A7 - double data rate multi-port dynamic RAM controller supporting DDR2, DDR3, DDR3L, LPDDR2, LPDDR3 up to 533MHz - peripherals for audio, video processing - 1 gigabit + 1 megabit Ethernet controllers - 6 CAN controllers - trust zone support - DVFS for CPU - criptography IPs Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
52 lines
1.8 KiB
Diff
52 lines
1.8 KiB
Diff
From 27c11c09346b7b9f67eeb39db1b943f4a9742ff3 Mon Sep 17 00:00:00 2001
|
|
From: Claudiu Beznea <claudiu.beznea@microchip.com>
|
|
Date: Mon, 11 Oct 2021 14:27:13 +0300
|
|
Subject: [PATCH 241/247] clk: at91: clk-master: mask mckr against layout->mask
|
|
|
|
Mask values read/written from/to MCKR against layout->mask as this
|
|
mask may be different b/w PMC versions.
|
|
|
|
Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com>
|
|
Link: https://lore.kernel.org/r/20211011112719.3951784-10-claudiu.beznea@microchip.com
|
|
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
|
|
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
|
|
---
|
|
drivers/clk/at91/clk-master.c | 7 +++++--
|
|
1 file changed, 5 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/clk/at91/clk-master.c b/drivers/clk/at91/clk-master.c
|
|
index 2093e13b5068..6da9ae34313a 100644
|
|
--- a/drivers/clk/at91/clk-master.c
|
|
+++ b/drivers/clk/at91/clk-master.c
|
|
@@ -186,8 +186,8 @@ static int clk_master_div_set_rate(struct clk_hw *hw, unsigned long rate,
|
|
if (ret)
|
|
goto unlock;
|
|
|
|
- tmp = mckr & master->layout->mask;
|
|
- tmp = (tmp >> MASTER_DIV_SHIFT) & MASTER_DIV_MASK;
|
|
+ mckr &= master->layout->mask;
|
|
+ tmp = (mckr >> MASTER_DIV_SHIFT) & MASTER_DIV_MASK;
|
|
if (tmp == div)
|
|
goto unlock;
|
|
|
|
@@ -384,6 +384,7 @@ static unsigned long clk_master_pres_recalc_rate(struct clk_hw *hw,
|
|
regmap_read(master->regmap, master->layout->offset, &val);
|
|
spin_unlock_irqrestore(master->lock, flags);
|
|
|
|
+ val &= master->layout->mask;
|
|
pres = (val >> master->layout->pres_shift) & MASTER_PRES_MASK;
|
|
if (pres == 3 && characteristics->have_div3_pres)
|
|
pres = 3;
|
|
@@ -403,6 +404,8 @@ static u8 clk_master_pres_get_parent(struct clk_hw *hw)
|
|
regmap_read(master->regmap, master->layout->offset, &mckr);
|
|
spin_unlock_irqrestore(master->lock, flags);
|
|
|
|
+ mckr &= master->layout->mask;
|
|
+
|
|
return mckr & AT91_PMC_CSS;
|
|
}
|
|
|
|
--
|
|
2.32.0
|
|
|