mirror of
https://github.com/hardkernel/kernel_common_drivers.git
synced 2026-06-25 12:03:48 +09:00
ddr_bandwidth: freq node value does not match actual [1/1]
PD#SWPL-206552 Problem: freq node value does not match actual Solution: register has only the lower 16 bits used ddr freq Verify: local Change-Id: I74e8f59def96916abd44cd39eaa28b615e3d8fdd Signed-off-by: qinglin.li <qinglin.li@amlogic.com>
This commit is contained in:
committed by
codewalkerster
parent
66ffdd5595
commit
ab86e730aa
@@ -117,7 +117,7 @@ static void s1a_dmc_range_config(struct ddr_bandwidth *db, int channel,
|
||||
|
||||
static unsigned long s1a_get_dmc_freq_quick(struct ddr_bandwidth *db)
|
||||
{
|
||||
db->ddr_freq = readl(db->pll_reg) * 1000000;
|
||||
db->ddr_freq = (readl(db->pll_reg) & 0xffff) * 1000000;
|
||||
db->dmc_freq = db->ddr_freq >> 1;
|
||||
|
||||
return db->dmc_freq;
|
||||
|
||||
@@ -136,7 +136,7 @@ static void s5_dmc_range_config(struct ddr_bandwidth *db, int channel,
|
||||
|
||||
static unsigned long s5_get_dmc_freq_quick(struct ddr_bandwidth *db)
|
||||
{
|
||||
db->ddr_freq = readl(db->pll_reg) * 1000000;
|
||||
db->ddr_freq = (readl(db->pll_reg) & 0xffff) * 1000000;
|
||||
db->dmc_freq = db->ddr_freq >> 1;
|
||||
|
||||
return db->dmc_freq;
|
||||
|
||||
@@ -44,7 +44,7 @@ static void s6_dmc_port_config(struct ddr_bandwidth *db, int channel, int port)
|
||||
|
||||
static unsigned long s6_get_dmc_freq_quick(struct ddr_bandwidth *db)
|
||||
{
|
||||
db->ddr_freq = readl(db->pll_reg) * 1000000;
|
||||
db->ddr_freq = (readl(db->pll_reg) & 0xffff) * 1000000;
|
||||
|
||||
/* S6 dmc freq = 1/4 ddr freq */
|
||||
db->dmc_freq = db->ddr_freq >> 2;
|
||||
|
||||
@@ -124,7 +124,7 @@ static void s7_dmc_range_config(struct ddr_bandwidth *db, int channel,
|
||||
|
||||
static unsigned long s7_get_dmc_freq_quick(struct ddr_bandwidth *db)
|
||||
{
|
||||
db->ddr_freq = readl(db->pll_reg) * 1000000;
|
||||
db->ddr_freq = (readl(db->pll_reg) & 0xffff) * 1000000;
|
||||
db->dmc_freq = db->ddr_freq >> 1;
|
||||
|
||||
return db->dmc_freq;
|
||||
|
||||
@@ -136,7 +136,7 @@ static void t5m_dmc_range_config(struct ddr_bandwidth *db, int channel,
|
||||
|
||||
static unsigned long t5m_get_dmc_freq_quick(struct ddr_bandwidth *db)
|
||||
{
|
||||
db->ddr_freq = readl(db->pll_reg) * 1000000;
|
||||
db->ddr_freq = (readl(db->pll_reg) & 0xffff) * 1000000;
|
||||
db->dmc_freq = db->ddr_freq >> 1;
|
||||
|
||||
if (db->soc_feature & DMC_ASYMMETRY) {
|
||||
|
||||
@@ -117,7 +117,7 @@ static void txhd2_dmc_range_config(struct ddr_bandwidth *db, int channel,
|
||||
|
||||
static unsigned long txhd2_get_dmc_freq_quick(struct ddr_bandwidth *db)
|
||||
{
|
||||
db->ddr_freq = readl(db->pll_reg) * 1000000;
|
||||
db->ddr_freq = (readl(db->pll_reg) & 0xffff) * 1000000;
|
||||
db->dmc_freq = db->ddr_freq >> 1;
|
||||
|
||||
return db->dmc_freq;
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
SWPL-206552
|
||||
Reference in New Issue
Block a user