mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-28 09:39:00 +00:00
99545b4bb1
This target adds support for the Allwinner D1 RISC-V based SoCs. - RISC-V single-core T-Head C906 (RV64GCV) - Tensilica HiFi4 DSP - DDR2/DDR3 support - 10/100/1000M ethernet - usual peripherals like USB2, SPI, I2C, PWM, etc. Four boards are supported: - Dongshan Nezha STU - 512Mb RAM - ethernet - LicheePi RV Dock - 512Mb RAM - wireless-only (RTL8723DS) - MangoPi MQ-Pro - 512Mb RAM - there are pads available for an SPI flash - wireless-only (RTL8723DS) - Nezha D1 - 512Mb/1Gb/2Gb RAM - 256Mb NAND flash - ethernet, wireless Installation: Standard SD-card installation via dd-ing the generated image to an SD-card of at least 256Mb. Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
52 lines
1.8 KiB
Diff
52 lines
1.8 KiB
Diff
From 74492b9ecd874496578693d9985649665b560308 Mon Sep 17 00:00:00 2001
|
|
From: Samuel Holland <samuel@sholland.org>
|
|
Date: Sun, 7 Aug 2022 20:08:49 -0500
|
|
Subject: [PATCH 002/117] clk: sunxi-ng: mp: Avoid computing the rate twice
|
|
|
|
ccu_mp_find_best() already computes a best_rate at the same time as the
|
|
best m and p factors. Return it so the caller does not need to duplicate
|
|
the division.
|
|
|
|
Series-to: Chen-Yu Tsai <wens@csie.org>
|
|
Series-to: Jernej Skrabec <jernej.skrabec@gmail.com>
|
|
|
|
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
---
|
|
drivers/clk/sunxi-ng/ccu_mp.c | 11 ++++++-----
|
|
1 file changed, 6 insertions(+), 5 deletions(-)
|
|
|
|
--- a/drivers/clk/sunxi-ng/ccu_mp.c
|
|
+++ b/drivers/clk/sunxi-ng/ccu_mp.c
|
|
@@ -10,9 +10,9 @@
|
|
#include "ccu_gate.h"
|
|
#include "ccu_mp.h"
|
|
|
|
-static void ccu_mp_find_best(unsigned long parent, unsigned long rate,
|
|
- unsigned int max_m, unsigned int max_p,
|
|
- unsigned int *m, unsigned int *p)
|
|
+static unsigned long ccu_mp_find_best(unsigned long parent, unsigned long rate,
|
|
+ unsigned int max_m, unsigned int max_p,
|
|
+ unsigned int *m, unsigned int *p)
|
|
{
|
|
unsigned long best_rate = 0;
|
|
unsigned int best_m = 0, best_p = 0;
|
|
@@ -35,6 +35,8 @@ static void ccu_mp_find_best(unsigned lo
|
|
|
|
*m = best_m;
|
|
*p = best_p;
|
|
+
|
|
+ return best_rate;
|
|
}
|
|
|
|
static unsigned long ccu_mp_find_best_with_parent_adj(struct clk_hw *hw,
|
|
@@ -109,8 +111,7 @@ static unsigned long ccu_mp_round_rate(s
|
|
max_p = cmp->p.max ?: 1 << ((1 << cmp->p.width) - 1);
|
|
|
|
if (!clk_hw_can_set_rate_parent(&cmp->common.hw)) {
|
|
- ccu_mp_find_best(*parent_rate, rate, max_m, max_p, &m, &p);
|
|
- rate = *parent_rate / p / m;
|
|
+ rate = ccu_mp_find_best(*parent_rate, rate, max_m, max_p, &m, &p);
|
|
} else {
|
|
rate = ccu_mp_find_best_with_parent_adj(hw, parent_rate, rate,
|
|
max_m, max_p);
|