Message ID | 20210113140546.v10.4.I5f6b04431828ec9c3e41e65f3337cec6a127480d@changeid (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/panfrost: Add support for mt8183 GPU | expand |
On 13/01/2021 06:07, Nicolas Boichat wrote: > Add support for MT8183's G72 Bifrost. > > Signed-off-by: Nicolas Boichat <drinkcat@chromium.org> > Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> LGTM Reviewed-by: Steven Price <steven.price@arm.com> > --- > > (no changes since v7) > > Changes in v7: > - Fix GPU ID in commit message > > Changes in v6: > - Context conflicts, reflow the code. > - Use ARRAY_SIZE for power domains too. > > Changes in v5: > - Change power domain name from 2d to core2. > > Changes in v4: > - Add power domain names. > > Changes in v3: > - Match mt8183-mali instead of bifrost, as we require special > handling for the 2 regulators and 3 power domains. > > drivers/gpu/drm/panfrost/panfrost_drv.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c > index 83a461bdeea8..ca07098a6141 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_drv.c > +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c > @@ -665,6 +665,15 @@ static const struct panfrost_compatible amlogic_data = { > .vendor_quirk = panfrost_gpu_amlogic_quirk, > }; > > +const char * const mediatek_mt8183_supplies[] = { "mali", "sram" }; > +const char * const mediatek_mt8183_pm_domains[] = { "core0", "core1", "core2" }; > +static const struct panfrost_compatible mediatek_mt8183_data = { > + .num_supplies = ARRAY_SIZE(mediatek_mt8183_supplies), > + .supply_names = mediatek_mt8183_supplies, > + .num_pm_domains = ARRAY_SIZE(mediatek_mt8183_pm_domains), > + .pm_domain_names = mediatek_mt8183_pm_domains, > +}; > + > static const struct of_device_id dt_match[] = { > /* Set first to probe before the generic compatibles */ > { .compatible = "amlogic,meson-gxm-mali", > @@ -681,6 +690,7 @@ static const struct of_device_id dt_match[] = { > { .compatible = "arm,mali-t860", .data = &default_data, }, > { .compatible = "arm,mali-t880", .data = &default_data, }, > { .compatible = "arm,mali-bifrost", .data = &default_data, }, > + { .compatible = "mediatek,mt8183-mali", .data = &mediatek_mt8183_data }, > {} > }; > MODULE_DEVICE_TABLE(of, dt_match); >
diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c index 83a461bdeea8..ca07098a6141 100644 --- a/drivers/gpu/drm/panfrost/panfrost_drv.c +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c @@ -665,6 +665,15 @@ static const struct panfrost_compatible amlogic_data = { .vendor_quirk = panfrost_gpu_amlogic_quirk, }; +const char * const mediatek_mt8183_supplies[] = { "mali", "sram" }; +const char * const mediatek_mt8183_pm_domains[] = { "core0", "core1", "core2" }; +static const struct panfrost_compatible mediatek_mt8183_data = { + .num_supplies = ARRAY_SIZE(mediatek_mt8183_supplies), + .supply_names = mediatek_mt8183_supplies, + .num_pm_domains = ARRAY_SIZE(mediatek_mt8183_pm_domains), + .pm_domain_names = mediatek_mt8183_pm_domains, +}; + static const struct of_device_id dt_match[] = { /* Set first to probe before the generic compatibles */ { .compatible = "amlogic,meson-gxm-mali", @@ -681,6 +690,7 @@ static const struct of_device_id dt_match[] = { { .compatible = "arm,mali-t860", .data = &default_data, }, { .compatible = "arm,mali-t880", .data = &default_data, }, { .compatible = "arm,mali-bifrost", .data = &default_data, }, + { .compatible = "mediatek,mt8183-mali", .data = &mediatek_mt8183_data }, {} }; MODULE_DEVICE_TABLE(of, dt_match);