diff options
| author | Mikko Perttunen <mperttunen@nvidia.com> | 2025-09-17 10:48:30 +0900 |
|---|---|---|
| committer | Thierry Reding <treding@nvidia.com> | 2025-11-14 18:27:19 +0100 |
| commit | bfe68975768a983d4e59c7fb465301999b863a7e (patch) | |
| tree | 3d20dca4b1d14dc2bec623eaf70b79ddf85564e7 /drivers/gpu/host1x/dev.c | |
| parent | ca2583412306ceda9304a7c4302fd9efbf43e963 (diff) | |
gpu: host1x: Syncpoint interrupt performance optimization
Optimize performance of syncpoint interrupt handling by reading
the status register in 64-bit chunks when possible, and skipping
processing when the read value is zero.
Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://patch.msgid.link/20250917-host1x-syncpt-irq-perf-v2-1-736ef69b1347@nvidia.com
Diffstat (limited to 'drivers/gpu/host1x/dev.c')
| -rw-r--r-- | drivers/gpu/host1x/dev.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c index e365df6af353..3f475f0e6545 100644 --- a/drivers/gpu/host1x/dev.c +++ b/drivers/gpu/host1x/dev.c @@ -71,6 +71,15 @@ u32 host1x_sync_readl(struct host1x *host1x, u32 r) return readl(sync_regs + r); } +#ifdef CONFIG_64BIT +u64 host1x_sync_readq(struct host1x *host1x, u32 r) +{ + void __iomem *sync_regs = host1x->regs + host1x->info->sync_offset; + + return readq(sync_regs + r); +} +#endif + void host1x_ch_writel(struct host1x_channel *ch, u32 v, u32 r) { writel(v, ch->regs + r); |