drm/tegra: Changes for v5.13-rc1
The changes this time around contain a couple of fixes for host1x along with some improvements for Tegra DRM. Most notably the Tegra DRM driver now supports the hardware cursor on Tegra186 and later, more correctly reflects the capabilities of the display pipelines on various Tegra SoC generations and knows how to deal with the dGPU sector layout by using framebuffer modifiers. -----BEGIN PGP SIGNATURE----- iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmBl9r0THHRyZWRpbmdA bnZpZGlhLmNvbQAKCRDdI6zXfz6zoadbD/4slzMxUywP3luiPpFrzgl2/wtmiFoI 6ygvYEoIHKGOz5mv5CXDVxla9YKcKB9kGyJUGEXvWz9mckAtILbccv5Ac25y9KqH UCP/b4aRarJJ3tVPHAkqdUnmc8Y7v3CY2lvLJlP+3loDrC/JiMRk4GSMyWc3zxDI KM9FZdaeDKKY3xK2eqaZAxkQ7mUCyDyJRYrAc0D1ciQ7FviTUEXgNlvprs7lMJDq V36KUF5VCksTFNy7UL1jh6IdWaeVw9Tzp/uId83/jGrQeGzH/+Uyp2uA9ysrLMh3 MOvxga068+DlPKEiK0kef1VO2AUxB++0gaAJG81Ex/OVG9evUScGyt0xREb98/4W ksrkumXhO1Pwhtlxs638/Y6HiPIs3iQCnb5/JgdKlHDiozaVfrNakJBBZAxFQIFh KXrk/1B/NvTP5rMUedjy0GiquEmwq7GgXoEt5qXgRgFdt0pwyY8kJOvqrcTuq9ZQ lev7mrEL9uG40SDj2qUOHKXVEGEdiE5VDJnJVSfnqAUCthrSpqL4gVBJOPCdAnWd U3/vlXL+gnW7SSqvKrnxKwwYuFWQuUZTUYSGSldXLoZ9IhIqkGqRt+CP261taYg+ 7uOs7G8osU+L5gQ5CgdcEceqt5avaF8MIhmk2kyBKgYohYlqLQ9zboxEI7/sMOOY uqj09Zn83nxm1Q== =NhVK -----END PGP SIGNATURE----- Merge tag 'drm/tegra/for-5.13-rc1' of ssh://git.freedesktop.org/git/tegra/linux into drm-next drm/tegra: Changes for v5.13-rc1 The changes this time around contain a couple of fixes for host1x along with some improvements for Tegra DRM. Most notably the Tegra DRM driver now supports the hardware cursor on Tegra186 and later, more correctly reflects the capabilities of the display pipelines on various Tegra SoC generations and knows how to deal with the dGPU sector layout by using framebuffer modifiers. Signed-off-by: Dave Airlie <airlied@redhat.com> From: Thierry Reding <thierry.reding@gmail.com> Link: https://patchwork.freedesktop.org/patch/msgid/20210401164430.3349105-1-thierry.reding@gmail.com
This commit is contained in:
commit
12fc11bce6
27 changed files with 459 additions and 149 deletions
|
|
@ -25,14 +25,18 @@ u64 host1x_get_dma_mask(struct host1x *host1x);
|
|||
|
||||
/**
|
||||
* struct host1x_client_ops - host1x client operations
|
||||
* @early_init: host1x client early initialization code
|
||||
* @init: host1x client initialization code
|
||||
* @exit: host1x client tear down code
|
||||
* @late_exit: host1x client late tear down code
|
||||
* @suspend: host1x client suspend code
|
||||
* @resume: host1x client resume code
|
||||
*/
|
||||
struct host1x_client_ops {
|
||||
int (*early_init)(struct host1x_client *client);
|
||||
int (*init)(struct host1x_client *client);
|
||||
int (*exit)(struct host1x_client *client);
|
||||
int (*late_exit)(struct host1x_client *client);
|
||||
int (*suspend)(struct host1x_client *client);
|
||||
int (*resume)(struct host1x_client *client);
|
||||
};
|
||||
|
|
@ -142,7 +146,9 @@ struct host1x_syncpt_base;
|
|||
struct host1x_syncpt;
|
||||
struct host1x;
|
||||
|
||||
struct host1x_syncpt *host1x_syncpt_get(struct host1x *host, u32 id);
|
||||
struct host1x_syncpt *host1x_syncpt_get_by_id(struct host1x *host, u32 id);
|
||||
struct host1x_syncpt *host1x_syncpt_get_by_id_noref(struct host1x *host, u32 id);
|
||||
struct host1x_syncpt *host1x_syncpt_get(struct host1x_syncpt *sp);
|
||||
u32 host1x_syncpt_id(struct host1x_syncpt *sp);
|
||||
u32 host1x_syncpt_read_min(struct host1x_syncpt *sp);
|
||||
u32 host1x_syncpt_read_max(struct host1x_syncpt *sp);
|
||||
|
|
@ -153,11 +159,17 @@ int host1x_syncpt_wait(struct host1x_syncpt *sp, u32 thresh, long timeout,
|
|||
u32 *value);
|
||||
struct host1x_syncpt *host1x_syncpt_request(struct host1x_client *client,
|
||||
unsigned long flags);
|
||||
void host1x_syncpt_free(struct host1x_syncpt *sp);
|
||||
void host1x_syncpt_put(struct host1x_syncpt *sp);
|
||||
struct host1x_syncpt *host1x_syncpt_alloc(struct host1x *host,
|
||||
unsigned long flags,
|
||||
const char *name);
|
||||
|
||||
struct host1x_syncpt_base *host1x_syncpt_get_base(struct host1x_syncpt *sp);
|
||||
u32 host1x_syncpt_base_id(struct host1x_syncpt_base *base);
|
||||
|
||||
void host1x_syncpt_release_vblank_reservation(struct host1x_client *client,
|
||||
u32 syncpt_id);
|
||||
|
||||
/*
|
||||
* host1x channel
|
||||
*/
|
||||
|
|
@ -218,7 +230,7 @@ struct host1x_job {
|
|||
dma_addr_t *reloc_addr_phys;
|
||||
|
||||
/* Sync point id, number of increments and end related to the submit */
|
||||
u32 syncpt_id;
|
||||
struct host1x_syncpt *syncpt;
|
||||
u32 syncpt_incrs;
|
||||
u32 syncpt_end;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue