mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 09:11:26 +03:00
drm/tegra: Update to Linux v6.16-rc1
Update the Tegra DRM driver to Linux v6.16-rc1. In Linux v6.16-rc1, the drm_dp_link_power_up/down functions were moved from the Tegra DRM driver into the main DRM code. Conftest is used to detect this change and the appropriate updates are made to the Tegra DRM driver. JIRA LINQPJ14-60 Change-Id: Id5449b22e8eda5ee70eb6aed09ce627e63e7722e Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3375214 (cherry picked from commit f8adc0c950eb4905d397b6e1d8e524b856945f0e) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3461883 GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Reviewed-by: Brad Griffis <bgriffis@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
da9c8f46c4
commit
e004561637
@@ -30,6 +30,14 @@ int falcon_wait_idle(struct falcon *falcon)
|
||||
(value == 0), 10, 100000);
|
||||
}
|
||||
|
||||
static int falcon_dma_wait_not_full(struct falcon *falcon)
|
||||
{
|
||||
u32 value;
|
||||
|
||||
return readl_poll_timeout(falcon->regs + FALCON_DMATRFCMD, value,
|
||||
!(value & FALCON_DMATRFCMD_FULL), 10, 100000);
|
||||
}
|
||||
|
||||
static int falcon_dma_wait_idle(struct falcon *falcon)
|
||||
{
|
||||
u32 value;
|
||||
@@ -44,6 +52,7 @@ static int falcon_copy_chunk(struct falcon *falcon,
|
||||
enum falcon_memory target)
|
||||
{
|
||||
u32 cmd = FALCON_DMATRFCMD_SIZE_256B;
|
||||
int err;
|
||||
|
||||
if (target == FALCON_MEMORY_IMEM)
|
||||
cmd |= FALCON_DMATRFCMD_IMEM;
|
||||
@@ -56,11 +65,15 @@ static int falcon_copy_chunk(struct falcon *falcon,
|
||||
*/
|
||||
cmd |= FALCON_DMATRFCMD_DMACTX(1);
|
||||
|
||||
err = falcon_dma_wait_not_full(falcon);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
falcon_writel(falcon, offset, FALCON_DMATRFMOFFS);
|
||||
falcon_writel(falcon, base, FALCON_DMATRFFBOFFS);
|
||||
falcon_writel(falcon, cmd, FALCON_DMATRFCMD);
|
||||
|
||||
return falcon_dma_wait_idle(falcon);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void falcon_copy_firmware_image(struct falcon *falcon,
|
||||
@@ -191,6 +204,11 @@ int falcon_boot(struct falcon *falcon)
|
||||
falcon_copy_chunk(falcon, falcon->firmware.code.offset + offset,
|
||||
offset, FALCON_MEMORY_IMEM);
|
||||
|
||||
/* wait for DMA to complete */
|
||||
err = falcon_dma_wait_idle(falcon);
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
/* setup falcon interrupts */
|
||||
falcon_writel(falcon, FALCON_IRQMSET_EXT(0xff) |
|
||||
FALCON_IRQMSET_SWGEN1 |
|
||||
|
||||
Reference in New Issue
Block a user