On Fri, 2020-03-06 at 14:43 +0000, Steven Price wrote:
On Fri, Mar 06, 2020 at 02:13:08PM +0000, Rob Herring wrote:
On Thu, Mar 5, 2020 at 8:34 PM Nick Fan nick.fan@mediatek.com wrote:
Sorry for my late reply. I have checked internally. The MT8183_POWER_DOMAIN_MFG_2D is just a legacy name, not really 2D domain.
If the naming too confusing, we can change this name to MT8183_POWER_DOMAIN_MFG_CORE2 for consistency.
Can you clarify what's in each domain? Are there actually 3 shader cores (IIRC, that should be discoverable)?
The cover letter from Nicolas includes:
[ 501.321752] panfrost 13040000.gpu: shader_present=0x7 l2_present=0x1
0x7 is three bits set, so it certainly looks like there are 3 shader cores. Of course I wouldn't guarantee that it is as simple as each power domain has a shader core in. The job manager and tiler also need to be powered somehow, so they are either sharing with a shader core or there's something more complex going on.
Steve
There are actually five power domains in total for MT8183 GPU.
There are 3 shader cores in MT8183.
They can be listed as following for each power domain: 1.MT8183_POWER_DOMAIN_MFG_ASYNC : SOC bus logic 2.MT8183_POWER_DOMAIN_MFG : GPU job manager & tiler 3.MT8183_POWER_DOMAIN_MFG_CORE0 : GPU shader core 0 4.MT8183_POWER_DOMAIN_MFG_CORE1 : GPU shader core 1 5.MT8183_POWER_DOMAIN_MFG_2D : GPU shader core 2
There are other power domain dependency can be reference in the following link. https://lkml.org/lkml/2019/2/1/166
You can check the power domain dependencies as following ========================================================== +static const struct scp_subdomain scp_subdomain_mt8183[] = { + {MT8183_POWER_DOMAIN_MFG_ASYNC, MT8183_POWER_DOMAIN_MFG}, + {MT8183_POWER_DOMAIN_MFG, MT8183_POWER_DOMAIN_MFG_2D}, + {MT8183_POWER_DOMAIN_MFG, MT8183_POWER_DOMAIN_MFG_CORE0}, + {MT8183_POWER_DOMAIN_MFG, MT8183_POWER_DOMAIN_MFG_CORE1}, ==========================================================
Thanks
Nick Fan