drm/tegra: Changes for v5.19-rc1
Only a few fixes this time, and some debuggability improvements. -----BEGIN PGP SIGNATURE----- iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmJ1TuATHHRyZWRpbmdA bnZpZGlhLmNvbQAKCRDdI6zXfz6zoXNkEACgBzxVFmE8f7XAWziwxXa0JmC3teio WCKLG8AIqQL4jgNdw1I/I78yc3jECtj4mRv+htNsyLjJa0x8ucuWnA3nOQoWGdPO AyQVhFO81Ml6609/mDFCIqHuDEqThFFK6zstwgfKEwjkG59pwRSuTriLtoL6AJXF zCZJelczBH7oc9ePO7MuYPe5gWCFlUrvsBP8L069rQ7cKhzki9u/1Q2stBOPF8M/ 4HK8vivqaNuMNS115HBLPrv/p8CQix8bU89ivjg+a3vmML8slMVoLbHMuMXHkBb3 pG4ePyWUqfwpG85w/H3jVonDuFRQBfb/xKbOleCOfcmmTaEZbB0nRJbeqMthGRMn eLxrGhpF65IPnYBkDSVrj5kXwZ9223Be80/aE7ZC8mH+AB9BP3MSVwJxjgRnk5y4 8KD0ldVKxrWWKUd72/ZRDde3HnBKnnvpEPwp1pR4kennbChZyRtDVvAYm0Z9d30G odTBVCQRylwybJVAwWTBpf2g3Z7VYG240H7v2MbzPwpS/+D9jxuAuGGI32PcWsAr EERldXzVzN+eLxQmp303F51YeOl8f5VxWEsAJQ7UWuTEZIeZlnDBzH85s9HBPFtS uMHJBmjItC+WScjOQV36dcR3LB423jezhskbCl0WrIjuX/ILFEFH/di7OC+DP/CM wCQSN2ZrtiJiQg== =3II/ -----END PGP SIGNATURE----- Merge tag 'drm/tegra/for-5.19-rc1' of https://gitlab.freedesktop.org/drm/tegra into drm-next drm/tegra: Changes for v5.19-rc1 Only a few fixes this time, and some debuggability improvements. Signed-off-by: Dave Airlie <airlied@redhat.com> From: Thierry Reding <thierry.reding@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/20220506164004.3922226-1-thierry.reding@gmail.com
This commit is contained in:
commit
5756c29bfa
|
@ -88,6 +88,7 @@ static struct host1x_bo_mapping *tegra_bo_pin(struct device *dev, struct host1x_
|
|||
if (IS_ERR(map->sgt)) {
|
||||
dma_buf_detach(buf, map->attach);
|
||||
err = PTR_ERR(map->sgt);
|
||||
map->sgt = NULL;
|
||||
goto free;
|
||||
}
|
||||
|
||||
|
|
|
@ -513,9 +513,8 @@ static int vic_remove(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
static const struct dev_pm_ops vic_pm_ops = {
|
||||
SET_RUNTIME_PM_OPS(vic_runtime_suspend, vic_runtime_resume, NULL)
|
||||
SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
|
||||
pm_runtime_force_resume)
|
||||
RUNTIME_PM_OPS(vic_runtime_suspend, vic_runtime_resume, NULL)
|
||||
SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume)
|
||||
};
|
||||
|
||||
struct platform_driver tegra_vic_driver = {
|
||||
|
|
|
@ -75,7 +75,7 @@ static int show_channel(struct host1x_channel *ch, void *data, bool show_fifo)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void show_syncpts(struct host1x *m, struct output *o)
|
||||
static void show_syncpts(struct host1x *m, struct output *o, bool show_all)
|
||||
{
|
||||
struct list_head *pos;
|
||||
unsigned int i;
|
||||
|
@ -97,7 +97,10 @@ static void show_syncpts(struct host1x *m, struct output *o)
|
|||
waiters++;
|
||||
spin_unlock(&m->syncpt[i].intr.lock);
|
||||
|
||||
if (!min && !max && !waiters)
|
||||
if (!kref_read(&m->syncpt[i].ref))
|
||||
continue;
|
||||
|
||||
if (!show_all && !min && !max && !waiters)
|
||||
continue;
|
||||
|
||||
host1x_debug_output(o,
|
||||
|
@ -124,7 +127,7 @@ static void show_all(struct host1x *m, struct output *o, bool show_fifo)
|
|||
unsigned int i;
|
||||
|
||||
host1x_hw_show_mlocks(m, o);
|
||||
show_syncpts(m, o);
|
||||
show_syncpts(m, o, true);
|
||||
host1x_debug_output(o, "---- channels ----\n");
|
||||
|
||||
for (i = 0; i < m->info->nb_channels; ++i) {
|
||||
|
@ -241,5 +244,5 @@ void host1x_debug_dump_syncpts(struct host1x *host1x)
|
|||
.fn = write_to_printk
|
||||
};
|
||||
|
||||
show_syncpts(host1x, &o);
|
||||
show_syncpts(host1x, &o, false);
|
||||
}
|
||||
|
|
|
@ -175,7 +175,7 @@ static unsigned int pin_job(struct host1x *host, struct host1x_job *job)
|
|||
goto unpin;
|
||||
}
|
||||
|
||||
map = host1x_bo_pin(dev, bo, direction, &client->cache);
|
||||
map = host1x_bo_pin(dev, bo, direction, NULL);
|
||||
if (IS_ERR(map)) {
|
||||
err = PTR_ERR(map);
|
||||
goto unpin;
|
||||
|
@ -222,7 +222,7 @@ static unsigned int pin_job(struct host1x *host, struct host1x_job *job)
|
|||
goto unpin;
|
||||
}
|
||||
|
||||
map = host1x_bo_pin(host->dev, g->bo, DMA_TO_DEVICE, &host->cache);
|
||||
map = host1x_bo_pin(host->dev, g->bo, DMA_TO_DEVICE, NULL);
|
||||
if (IS_ERR(map)) {
|
||||
err = PTR_ERR(map);
|
||||
goto unpin;
|
||||
|
|
|
@ -31,6 +31,11 @@ u64 host1x_get_dma_mask(struct host1x *host1x);
|
|||
* struct host1x_bo_cache - host1x buffer object cache
|
||||
* @mappings: list of mappings
|
||||
* @lock: synchronizes accesses to the list of mappings
|
||||
*
|
||||
* Note that entries are not periodically evicted from this cache and instead need to be
|
||||
* explicitly released. This is used primarily for DRM/KMS where the cache's reference is
|
||||
* released when the last reference to a buffer object represented by a mapping in this
|
||||
* cache is dropped.
|
||||
*/
|
||||
struct host1x_bo_cache {
|
||||
struct list_head mappings;
|
||||
|
@ -81,6 +86,7 @@ struct host1x_client_ops {
|
|||
* @parent: pointer to parent structure
|
||||
* @usecount: reference count for this structure
|
||||
* @lock: mutex for mutually exclusive concurrency
|
||||
* @cache: host1x buffer object cache
|
||||
*/
|
||||
struct host1x_client {
|
||||
struct list_head list;
|
||||
|
|
Loading…
Reference in New Issue