gpu: host1x: Don't skip assigning syncpoints to channels
authorMikko Perttunen <mperttunen@nvidia.com>
Thu, 19 Jan 2023 13:39:00 +0000 (15:39 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 Mar 2023 08:33:16 +0000 (09:33 +0100)
[ Upstream commit eb258cc1fd458e584082be987dbc6ec42668c05e ]

The code to write the syncpoint channel assignment register
incorrectly skips the write if hypervisor registers are not available.

The register, however, is within the guest aperture so remove the
check and assign syncpoints properly even on virtualized systems.

Fixes: c3f52220f276 ("gpu: host1x: Enable Tegra186 syncpoint protection")
Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/host1x/hw/syncpt_hw.c

index dd39d67ccec3695684ccd2bab110ab41e0b61d68..8cf35b2eff3dbdb4b1de3f01518edcd682b7fb18 100644 (file)
@@ -106,9 +106,6 @@ static void syncpt_assign_to_channel(struct host1x_syncpt *sp,
 #if HOST1X_HW >= 6
        struct host1x *host = sp->host;
 
-       if (!host->hv_regs)
-               return;
-
        host1x_sync_writel(host,
                           HOST1X_SYNC_SYNCPT_CH_APP_CH(ch ? ch->id : 0xff),
                           HOST1X_SYNC_SYNCPT_CH_APP(sp->id));