Memory controller drivers for v7.2, part two

A few improvements for Tegra Memory Controller drivers, including one
 fix for UBSAN report for an older commit.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmovylUQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD14OOD/0ZjMQ7h1MLBteapcmkzTKjfNzbBhwg+hA4
 14fpQXiiMYiprDhFnJc4hTx45ubb7idEC/kry7Uoza3BKAaNubUSF5YN4DT/C080
 OOedSizlGBicH5xjx4IbbHTuIf6cRf4tCamug6O/kb4DvGwsFsM/iMd6Kw5uy2F+
 FZiwNHwWrhBGZmTaidS6tJHwj0ZAEYLdidLC39CrmqrDQHiaIE9/z6J3d1d9grgb
 WJn3vqL8Ey2JiCMWl8pTh8auQr9tRpIXRY4VYOAC18h25bNl34TS/tobsdvWlrqB
 jwy69EQSfpI5KyAV7dqZPe3OfX1MAMCG+Qc9vvNGanE4aEqZRR3Vz+xWZicnOZsX
 jYKoWZIZ1sdi6GDOA2B9JQ/sERxxdgxtAq1d2NXwHpYhScWKrR2qsZJIojjHSqok
 E44Mpaqr7HIU9l+mA3NUmrA2yPKctoL+Qf0bXJY+HWZVKPv/oVBE8XGij8Q8m+m/
 MKsJ7lcOQVDv2Uy3onSNiiCFTzIDS/YyQC+l7B4fV1JrlEy8eKaWYGd3lQK33+GT
 z59P7B01NcEsEzfEYrxPMONrqNEuOboQ7iis07TnxoI3a7k0khOQ4Kc9QW+vXPNB
 7jG5cP6pWkew3KrlZbZZ9zpV2TGkcrcreo+jhGRDJRklbHVhoVr2AjPGgrf31VY9
 7wWO8/9Umw==
 =360l
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmov5f0ACgkQmmx57+YA
 GNnqOA//e8vVXkYXFuUTmkZ99Rhip+SFB1mChgAbZrLHkBH3SJNBX8qzVl574MGW
 Sx1YE3QzaFCYDd0WtN0jZIFKB3UmFcd4PFP5gm30pJ64tNzBmjLJHhT0jk9HLfYv
 +Shxsq0/k2y/Ezf+tf7RnWlscdB0BqYQOGu4sMHbyablUfoI60kt+PSZgfrMTs4m
 X3SaXd1W2Tdy4cfXBZBRiZWxhnT6W9OTDZEzjtpuKMFY30p1HWP/ahjlHq1slcgG
 +djTZT6660maAPawDM4LBjul2C8Rm7dGDvUy54VxdaH0r9wobtigwg5y+IxF+Kka
 VsWJK6uCoiD1FI2CjzTIWMLPLYwup1QbjLp/8r+N17HxmW+oiOl4cGPHyXVNdGdF
 1DQpFbiVsD0h4sdj1NtxV++py7xUXw6TwoU64irSpCdONL9zw7rqf7Kv9Za3huKW
 K9SKTYFn1xXKw2dDr/bQp2b7jFwzeARghwnjwsYrphkumxU2Nte7wrk612XZE1N5
 KcytcV2ejTl98PUMgJmsu8cQygtHBPHonSkYtxP72Rp26Z7JEe6wa9fy6DFW2mP9
 xrSCHWKmmbXak4/h8Vu3nuWpX1wupu1DqFmdzBmZM0TnTWSN57UZP67Aj7SNnTtw
 4yP4OEI0/2y8rBIz2Rm00m98T6IuQKOKoSwYN3b1eotdunUHVXQ=
 =pyTK
 -----END PGP SIGNATURE-----

Merge tag 'memory-controller-drv-7.2-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into soc/drivers

Memory controller drivers for v7.2, part two

A few improvements for Tegra Memory Controller drivers, including one
fix for UBSAN report for an older commit.

* tag 'memory-controller-drv-7.2-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl:
  memory: tegra234: drop dead NULL check in tegra234_mc_icc_aggregate()
  memory: tegra264: drop redundant tegra264_mc_icc_aggregate()
  memory: tegra186-emc: stop borrowing MC aggregate hook for EMC

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
Arnd Bergmann 2026-06-15 13:46:01 +02:00
commit c7437fab2f
3 changed files with 4 additions and 23 deletions

View File

@ -258,15 +258,13 @@ static int tegra186_emc_icc_get_init_bw(struct icc_node *node, u32 *avg, u32 *pe
static int tegra186_emc_interconnect_init(struct tegra186_emc *emc)
{
struct tegra_mc *mc = dev_get_drvdata(emc->dev->parent);
const struct tegra_mc_soc *soc = mc->soc;
struct icc_node *node;
int err;
emc->provider.dev = emc->dev;
emc->provider.set = tegra186_emc_icc_set_bw;
emc->provider.data = &emc->provider;
emc->provider.aggregate = soc->icc_ops->aggregate;
emc->provider.aggregate = icc_std_aggregate;
emc->provider.xlate = tegra186_emc_of_icc_xlate;
emc->provider.get_bw = tegra186_emc_icc_get_init_bw;

View File

@ -1106,10 +1106,8 @@ static int tegra234_mc_icc_aggregate(struct icc_node *node, u32 tag, u32 avg_bw,
if (node->id == TEGRA_ICC_MC_CPU_CLUSTER0 ||
node->id == TEGRA_ICC_MC_CPU_CLUSTER1 ||
node->id == TEGRA_ICC_MC_CPU_CLUSTER2) {
if (mc)
peak_bw = peak_bw * mc->num_channels;
}
node->id == TEGRA_ICC_MC_CPU_CLUSTER2)
peak_bw = peak_bw * mc->num_channels;
*agg_avg += avg_bw;
*agg_peak = max(*agg_peak, peak_bw);

View File

@ -799,21 +799,6 @@ static int tegra264_mc_icc_set(struct icc_node *src, struct icc_node *dst)
return ret;
}
static int tegra264_mc_icc_aggregate(struct icc_node *node, u32 tag, u32 avg_bw,
u32 peak_bw, u32 *agg_avg, u32 *agg_peak)
{
struct icc_provider *p = node->provider;
struct tegra_mc *mc = icc_provider_to_tegra_mc(p);
if (!mc->bwmgr_mrq_supported)
return 0;
*agg_avg += avg_bw;
*agg_peak = max(*agg_peak, peak_bw);
return 0;
}
static int tegra264_mc_icc_get_init_bw(struct icc_node *node, u32 *avg, u32 *peak)
{
*avg = 0;
@ -1130,7 +1115,7 @@ static const irq_handler_t tegra264_mc_irq_handlers[8] = {
static const struct tegra_mc_icc_ops tegra264_mc_icc_ops = {
.xlate = tegra_mc_icc_xlate,
.aggregate = tegra264_mc_icc_aggregate,
.aggregate = icc_std_aggregate,
.get_bw = tegra264_mc_icc_get_init_bw,
.set = tegra264_mc_icc_set,
};