Commit 47b15779 authored by Thierry Reding's avatar Thierry Reding
Browse files

drm/tegra: Inherit device DMA parameters from host1x



The display controllers and VIC don't have any limitations on the
DMA segment size. Inherit the DMA parameters from the parent device,
which also doesn't have any such limitations.

Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent 33904487
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -2074,6 +2074,12 @@ static int tegra_dc_init(struct host1x_client *client)
		goto cleanup;
		goto cleanup;
	}
	}


	/*
	 * Inherit the DMA parameters (such as maximum segment size) from the
	 * parent device.
	 */
	client->dev->dma_parms = client->parent->dma_parms;

	return 0;
	return 0;


cleanup:
cleanup:
@@ -2097,6 +2103,9 @@ static int tegra_dc_exit(struct host1x_client *client)
	if (!tegra_dc_has_window_groups(dc))
	if (!tegra_dc_has_window_groups(dc))
		return 0;
		return 0;


	/* avoid a dangling pointer just in case this disappears */
	client->dev->dma_parms = NULL;

	devm_free_irq(dc->dev, dc->irq, dc);
	devm_free_irq(dc->dev, dc->irq, dc);


	err = tegra_dc_rgb_exit(dc);
	err = tegra_dc_rgb_exit(dc);
+9 −0
Original line number Original line Diff line number Diff line
@@ -214,6 +214,12 @@ static int vic_init(struct host1x_client *client)
	if (err < 0)
	if (err < 0)
		goto free_syncpt;
		goto free_syncpt;


	/*
	 * Inherit the DMA parameters (such as maximum segment size) from the
	 * parent device.
	 */
	client->dev->dma_parms = client->parent->dma_parms;

	return 0;
	return 0;


free_syncpt:
free_syncpt:
@@ -236,6 +242,9 @@ static int vic_exit(struct host1x_client *client)
	struct vic *vic = to_vic(drm);
	struct vic *vic = to_vic(drm);
	int err;
	int err;


	/* avoid a dangling pointer just in case this disappears */
	client->dev->dma_parms = NULL;

	err = tegra_drm_unregister_client(tegra, drm);
	err = tegra_drm_unregister_client(tegra, drm);
	if (err < 0)
	if (err < 0)
		return err;
		return err;