memory: tegra: Consolidate register fields
Subsequent patches will add more register fields to the tegra_mc_client structure, so consolidate all register field definitions into a common sub-structure for coherency. Signed-off-by: Thierry Reding <treding@nvidia.com> Link: https://lore.kernel.org/r/20210602163302.120041-2-thierry.reding@gmail.com Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
This commit is contained in:
committed by
Krzysztof Kozlowski
parent
eeafcdea46
commit
4f1ac76e5e
@@ -376,9 +376,9 @@ static void tegra_smmu_enable(struct tegra_smmu *smmu, unsigned int swgroup,
|
||||
if (client->swgroup != swgroup)
|
||||
continue;
|
||||
|
||||
value = smmu_readl(smmu, client->smmu.reg);
|
||||
value |= BIT(client->smmu.bit);
|
||||
smmu_writel(smmu, value, client->smmu.reg);
|
||||
value = smmu_readl(smmu, client->regs.smmu.reg);
|
||||
value |= BIT(client->regs.smmu.bit);
|
||||
smmu_writel(smmu, value, client->regs.smmu.reg);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -404,9 +404,9 @@ static void tegra_smmu_disable(struct tegra_smmu *smmu, unsigned int swgroup,
|
||||
if (client->swgroup != swgroup)
|
||||
continue;
|
||||
|
||||
value = smmu_readl(smmu, client->smmu.reg);
|
||||
value &= ~BIT(client->smmu.bit);
|
||||
smmu_writel(smmu, value, client->smmu.reg);
|
||||
value = smmu_readl(smmu, client->regs.smmu.reg);
|
||||
value &= ~BIT(client->regs.smmu.bit);
|
||||
smmu_writel(smmu, value, client->regs.smmu.reg);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1042,9 +1042,9 @@ static int tegra_smmu_clients_show(struct seq_file *s, void *data)
|
||||
const struct tegra_mc_client *client = &smmu->soc->clients[i];
|
||||
const char *status;
|
||||
|
||||
value = smmu_readl(smmu, client->smmu.reg);
|
||||
value = smmu_readl(smmu, client->regs.smmu.reg);
|
||||
|
||||
if (value & BIT(client->smmu.bit))
|
||||
if (value & BIT(client->regs.smmu.bit))
|
||||
status = "yes";
|
||||
else
|
||||
status = "no";
|
||||
|
||||
@@ -316,13 +316,13 @@ static int tegra_mc_setup_latency_allowance(struct tegra_mc *mc)
|
||||
|
||||
/* write latency allowance defaults */
|
||||
for (i = 0; i < mc->soc->num_clients; i++) {
|
||||
const struct tegra_mc_la *la = &mc->soc->clients[i].la;
|
||||
const struct tegra_mc_client *client = &mc->soc->clients[i];
|
||||
u32 value;
|
||||
|
||||
value = mc_readl(mc, la->reg);
|
||||
value &= ~(la->mask << la->shift);
|
||||
value |= (la->def & la->mask) << la->shift;
|
||||
mc_writel(mc, value, la->reg);
|
||||
value = mc_readl(mc, client->regs.la.reg);
|
||||
value &= ~(client->regs.la.mask << client->regs.la.shift);
|
||||
value |= (client->regs.la.def & client->regs.la.mask) << client->regs.la.shift;
|
||||
mc_writel(mc, value, client->regs.la.reg);
|
||||
}
|
||||
|
||||
/* latch new values */
|
||||
|
||||
+687
-557
File diff suppressed because it is too large
Load Diff
+719
-585
File diff suppressed because it is too large
Load Diff
+788
-644
File diff suppressed because it is too large
Load Diff
+711
-580
File diff suppressed because it is too large
Load Diff
+15
-15
@@ -17,25 +17,12 @@ struct clk;
|
||||
struct device;
|
||||
struct page;
|
||||
|
||||
struct tegra_smmu_enable {
|
||||
unsigned int reg;
|
||||
unsigned int bit;
|
||||
};
|
||||
|
||||
struct tegra_mc_timing {
|
||||
unsigned long rate;
|
||||
|
||||
u32 *emem_data;
|
||||
};
|
||||
|
||||
/* latency allowance */
|
||||
struct tegra_mc_la {
|
||||
unsigned int reg;
|
||||
unsigned int shift;
|
||||
unsigned int mask;
|
||||
unsigned int def;
|
||||
};
|
||||
|
||||
struct tegra_mc_client {
|
||||
unsigned int id;
|
||||
const char *name;
|
||||
@@ -43,8 +30,21 @@ struct tegra_mc_client {
|
||||
|
||||
unsigned int fifo_size;
|
||||
|
||||
struct tegra_smmu_enable smmu;
|
||||
struct tegra_mc_la la;
|
||||
struct {
|
||||
/* Tegra SMMU enable */
|
||||
struct {
|
||||
unsigned int reg;
|
||||
unsigned int bit;
|
||||
} smmu;
|
||||
|
||||
/* latency allowance */
|
||||
struct {
|
||||
unsigned int reg;
|
||||
unsigned int shift;
|
||||
unsigned int mask;
|
||||
unsigned int def;
|
||||
} la;
|
||||
} regs;
|
||||
};
|
||||
|
||||
struct tegra_smmu_swgroup {
|
||||
|
||||
Reference in New Issue
Block a user