mirror of https://gitee.com/openkylin/linux.git
drm/tegra: Fixes for v5.8-rc3
This contains a fairly random assortment of fixes for various minor issues. -----BEGIN PGP SIGNATURE----- iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAl7xtsITHHRyZWRpbmdA bnZpZGlhLmNvbQAKCRDdI6zXfz6zodawEACtFEibm5+ZmUI0yRHdrsn6CUS4Mt9E wTlm5tWOC2ChPf9WF91HhqMGIqsaA+uELNhjaoD29lrsiSX33zNSfLQFhj0SaKwA eFev1e4u3qj3r3sdwftTxN3zMj5YNlZBDpfr4WZcL4Ud/jqmcYAyBszts6jEy6S9 5fUVgDZPowXLJaQ27N06mJ5+MjeM+3BY81jV3y9AndRfbIdxGRvUdOZ5RolnqoDL pUya6Bk54PhSNVV37Ods9mCAAIoBaHLrIZwYTKUeHYa56krWDeZSLjNRd7eFX2oA B2mEYwZLy7ZQVCugaiMBzH3hd135SYYpcocQvHlC1AbbB8wsdkHQK1/tguRbYRxW ZITHLDMD217uTJJp/cXcDnKDP+IU3/o3mbzy3UDUaSeCiuwSLQkX1ySi25uaw2Ow XhH9O8+x2+W0PKLuaW7cgdVfYCiO0VUDFCz6Okp8qNnhL0ROciB8Y6ykMYBB55P/ ElVGdmUkumGOjJ0wtSctumg3isA8iZAyrhr+WoKVbhRY2q3c4K9AxpQIJODjoKbA D+bmocgpmOoCelQbZsg7hn5inT1T1pLLY+3mew8IVNVfacmhnd7ARNtqnH4oZWob J/79VP7TWlSdcD+tB/q+CIyIM+j44Il09X81LTThot3b5VfrOyVDHv4iJnIjAkQH 8WEwqyQ8bqi4Hg== =wETg -----END PGP SIGNATURE----- Merge tag 'drm/tegra/for-5.8-rc3' of git://anongit.freedesktop.org/tegra/linux into drm-fixes drm/tegra: Fixes for v5.8-rc3 This contains a fairly random assortment of fixes for various minor issues. Signed-off-by: Dave Airlie <airlied@redhat.com> From: Thierry Reding <thierry.reding@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200624165254.2763104-1-thierry.reding@gmail.com
This commit is contained in:
commit
a1cd3486d7
|
@ -957,6 +957,7 @@ static struct drm_plane *tegra_dc_cursor_plane_create(struct drm_device *drm,
|
|||
}
|
||||
|
||||
drm_plane_helper_add(&plane->base, &tegra_cursor_plane_helper_funcs);
|
||||
drm_plane_create_zpos_immutable_property(&plane->base, 255);
|
||||
|
||||
return &plane->base;
|
||||
}
|
||||
|
|
|
@ -149,7 +149,9 @@ int tegra_display_hub_prepare(struct tegra_display_hub *hub)
|
|||
for (i = 0; i < hub->soc->num_wgrps; i++) {
|
||||
struct tegra_windowgroup *wgrp = &hub->wgrps[i];
|
||||
|
||||
tegra_windowgroup_enable(wgrp);
|
||||
/* Skip orphaned window group whose parent DC is disabled */
|
||||
if (wgrp->parent)
|
||||
tegra_windowgroup_enable(wgrp);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -166,7 +168,9 @@ void tegra_display_hub_cleanup(struct tegra_display_hub *hub)
|
|||
for (i = 0; i < hub->soc->num_wgrps; i++) {
|
||||
struct tegra_windowgroup *wgrp = &hub->wgrps[i];
|
||||
|
||||
tegra_windowgroup_disable(wgrp);
|
||||
/* Skip orphaned window group whose parent DC is disabled */
|
||||
if (wgrp->parent)
|
||||
tegra_windowgroup_disable(wgrp);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -944,6 +948,15 @@ static int tegra_display_hub_probe(struct platform_device *pdev)
|
|||
dev_err(&pdev->dev, "failed to register host1x client: %d\n",
|
||||
err);
|
||||
|
||||
err = devm_of_platform_populate(&pdev->dev);
|
||||
if (err < 0)
|
||||
goto unregister;
|
||||
|
||||
return err;
|
||||
|
||||
unregister:
|
||||
host1x_client_unregister(&hub->client);
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
@ -686,8 +686,17 @@ EXPORT_SYMBOL(host1x_driver_register_full);
|
|||
*/
|
||||
void host1x_driver_unregister(struct host1x_driver *driver)
|
||||
{
|
||||
struct host1x *host1x;
|
||||
|
||||
driver_unregister(&driver->driver);
|
||||
|
||||
mutex_lock(&devices_lock);
|
||||
|
||||
list_for_each_entry(host1x, &devices, list)
|
||||
host1x_detach_driver(host1x, driver);
|
||||
|
||||
mutex_unlock(&devices_lock);
|
||||
|
||||
mutex_lock(&drivers_lock);
|
||||
list_del_init(&driver->list);
|
||||
mutex_unlock(&drivers_lock);
|
||||
|
|
|
@ -468,11 +468,18 @@ static int host1x_probe(struct platform_device *pdev)
|
|||
|
||||
err = host1x_register(host);
|
||||
if (err < 0)
|
||||
goto deinit_intr;
|
||||
goto deinit_debugfs;
|
||||
|
||||
err = devm_of_platform_populate(&pdev->dev);
|
||||
if (err < 0)
|
||||
goto unregister;
|
||||
|
||||
return 0;
|
||||
|
||||
deinit_intr:
|
||||
unregister:
|
||||
host1x_unregister(host);
|
||||
deinit_debugfs:
|
||||
host1x_debug_deinit(host);
|
||||
host1x_intr_deinit(host);
|
||||
deinit_syncpt:
|
||||
host1x_syncpt_deinit(host);
|
||||
|
|
|
@ -48,6 +48,9 @@ struct host1x_client_ops {
|
|||
* @channel: host1x channel associated with this client
|
||||
* @syncpts: array of syncpoints requested for this client
|
||||
* @num_syncpts: number of syncpoints requested for this client
|
||||
* @parent: pointer to parent structure
|
||||
* @usecount: reference count for this structure
|
||||
* @lock: mutex for mutually exclusive concurrency
|
||||
*/
|
||||
struct host1x_client {
|
||||
struct list_head list;
|
||||
|
|
Loading…
Reference in New Issue