2014-06-04 10:54:56

by Matwey V. Kornilov

[permalink] [raw]
Subject: [PATCH] gpu: drm: msm: Replace type of paddr to uint32_t.

>From e7147352639fd8f92b1cc85cff9bc5046c7a2130 Mon Sep 17 00:00:00 2001
From: "Matwey V. Kornilov" <[email protected]>
Date: Mon, 2 Jun 2014 20:17:29 +0400
Subject: [PATCH] Replace type of paddr to uint32_t.

This patch helps to avoid the following build issue:

drivers/gpu/drm/msm/msm_fbdev.c:108:2: error: passing argument 3 of 'msm_gem_get_iova_locked' from incompatible pointer type [-Werror]
msm_gem_get_iova_locked(fbdev->bo, 0, &paddr);
^
In file included from drivers/gpu/drm/msm/msm_fbdev.c:18:0:
drivers/gpu/drm/msm/msm_drv.h:153:5: note: expected 'uint32_t *' but argument is of type 'dma_addr_t *'
int msm_gem_get_iova_locked(struct drm_gem_object *obj, int id,
^

Signed-off-by: Matwey V. Kornilov <[email protected]>
---
drivers/gpu/drm/msm/msm_fbdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/msm_fbdev.c b/drivers/gpu/drm/msm/msm_fbdev.c
index a752ab8..5107fc4 100644
--- a/drivers/gpu/drm/msm/msm_fbdev.c
+++ b/drivers/gpu/drm/msm/msm_fbdev.c
@@ -59,7 +59,7 @@ static int msm_fbdev_create(struct drm_fb_helper *helper,
struct drm_framebuffer *fb = NULL;
struct fb_info *fbi = NULL;
struct drm_mode_fb_cmd2 mode_cmd = {0};
- dma_addr_t paddr;
+ uint32_t paddr;
int ret, size;

sizes->surface_bpp = 32;
--
1.9.3


2014-06-05 00:05:49

by Rob Clark

[permalink] [raw]
Subject: Re: [PATCH] gpu: drm: msm: Replace type of paddr to uint32_t.

On Wed, Jun 4, 2014 at 6:54 AM, Matwey V. Kornilov <[email protected]> wrote:
> From e7147352639fd8f92b1cc85cff9bc5046c7a2130 Mon Sep 17 00:00:00 2001
> From: "Matwey V. Kornilov" <[email protected]>
> Date: Mon, 2 Jun 2014 20:17:29 +0400
> Subject: [PATCH] Replace type of paddr to uint32_t.
>
> This patch helps to avoid the following build issue:
>
> drivers/gpu/drm/msm/msm_fbdev.c:108:2: error: passing argument 3 of
> 'msm_gem_get_iova_locked' from incompatible pointer type [-Werror]
> msm_gem_get_iova_locked(fbdev->bo, 0, &paddr);
> ^
> In file included from drivers/gpu/drm/msm/msm_fbdev.c:18:0:
> drivers/gpu/drm/msm/msm_drv.h:153:5: note: expected 'uint32_t *' but
> argument is of type 'dma_addr_t *'
> int msm_gem_get_iova_locked(struct drm_gem_object *obj, int id,
> ^
>
> Signed-off-by: Matwey V. Kornilov <[email protected]>

Reviewed-by: Rob Clark <[email protected]>

> ---
> drivers/gpu/drm/msm/msm_fbdev.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/msm_fbdev.c
> b/drivers/gpu/drm/msm/msm_fbdev.c
> index a752ab8..5107fc4 100644
> --- a/drivers/gpu/drm/msm/msm_fbdev.c
> +++ b/drivers/gpu/drm/msm/msm_fbdev.c
> @@ -59,7 +59,7 @@ static int msm_fbdev_create(struct drm_fb_helper *helper,
> struct drm_framebuffer *fb = NULL;
> struct fb_info *fbi = NULL;
> struct drm_mode_fb_cmd2 mode_cmd = {0};
> - dma_addr_t paddr;
> + uint32_t paddr;
> int ret, size;
>
> sizes->surface_bpp = 32;
> --
> 1.9.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

2014-06-05 07:24:06

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH] gpu: drm: msm: Replace type of paddr to uint32_t.

On Thu, Jun 5, 2014 at 2:05 AM, Rob Clark <[email protected]> wrote:
> On Wed, Jun 4, 2014 at 6:54 AM, Matwey V. Kornilov <[email protected]> wrote:
>> From e7147352639fd8f92b1cc85cff9bc5046c7a2130 Mon Sep 17 00:00:00 2001
>> From: "Matwey V. Kornilov" <[email protected]>
>> Date: Mon, 2 Jun 2014 20:17:29 +0400
>> Subject: [PATCH] Replace type of paddr to uint32_t.
>>
>> This patch helps to avoid the following build issue:
>>
>> drivers/gpu/drm/msm/msm_fbdev.c:108:2: error: passing argument 3 of
>> 'msm_gem_get_iova_locked' from incompatible pointer type [-Werror]
>> msm_gem_get_iova_locked(fbdev->bo, 0, &paddr);
>> ^
>> In file included from drivers/gpu/drm/msm/msm_fbdev.c:18:0:
>> drivers/gpu/drm/msm/msm_drv.h:153:5: note: expected 'uint32_t *' but
>> argument is of type 'dma_addr_t *'
>> int msm_gem_get_iova_locked(struct drm_gem_object *obj, int id,
>> ^
>>
>> Signed-off-by: Matwey V. Kornilov <[email protected]>
>
> Reviewed-by: Rob Clark <[email protected]>

Perhaps the uint32_t should become dma_addr_t instead?

drivers/gpu/drm/msm/msm_gem.h has:

struct {
// XXX
uint32_t iova;
} domain[NUM_DOMAINS];

(note the "XXX").

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2014-06-05 08:52:52

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH] gpu: drm: msm: Replace type of paddr to uint32_t.

On Thu, Jun 05, 2014 at 09:24:02AM +0200, Geert Uytterhoeven wrote:
> On Thu, Jun 5, 2014 at 2:05 AM, Rob Clark <[email protected]> wrote:
> > On Wed, Jun 4, 2014 at 6:54 AM, Matwey V. Kornilov <[email protected]> wrote:
> >> From e7147352639fd8f92b1cc85cff9bc5046c7a2130 Mon Sep 17 00:00:00 2001
> >> From: "Matwey V. Kornilov" <[email protected]>
> >> Date: Mon, 2 Jun 2014 20:17:29 +0400
> >> Subject: [PATCH] Replace type of paddr to uint32_t.
> >>
> >> This patch helps to avoid the following build issue:
> >>
> >> drivers/gpu/drm/msm/msm_fbdev.c:108:2: error: passing argument 3 of
> >> 'msm_gem_get_iova_locked' from incompatible pointer type [-Werror]
> >> msm_gem_get_iova_locked(fbdev->bo, 0, &paddr);
> >> ^
> >> In file included from drivers/gpu/drm/msm/msm_fbdev.c:18:0:
> >> drivers/gpu/drm/msm/msm_drv.h:153:5: note: expected 'uint32_t *' but
> >> argument is of type 'dma_addr_t *'
> >> int msm_gem_get_iova_locked(struct drm_gem_object *obj, int id,
> >> ^
> >>
> >> Signed-off-by: Matwey V. Kornilov <[email protected]>
> >
> > Reviewed-by: Rob Clark <[email protected]>
>
> Perhaps the uint32_t should become dma_addr_t instead?
>
> drivers/gpu/drm/msm/msm_gem.h has:
>
> struct {
> // XXX
> uint32_t iova;
> } domain[NUM_DOMAINS];
>
> (note the "XXX").

I agree, dma_addr_t is the proper type for I/O virtual addresses.

Thierry


Attachments:
(No filename) (1.39 kB)
(No filename) (836.00 B)
Download all attachments

2014-06-05 14:49:30

by Rob Clark

[permalink] [raw]
Subject: Re: [PATCH] gpu: drm: msm: Replace type of paddr to uint32_t.

On Thu, Jun 5, 2014 at 3:24 AM, Geert Uytterhoeven <[email protected]> wrote:
> On Thu, Jun 5, 2014 at 2:05 AM, Rob Clark <[email protected]> wrote:
>> On Wed, Jun 4, 2014 at 6:54 AM, Matwey V. Kornilov <[email protected]> wrote:
>>> From e7147352639fd8f92b1cc85cff9bc5046c7a2130 Mon Sep 17 00:00:00 2001
>>> From: "Matwey V. Kornilov" <[email protected]>
>>> Date: Mon, 2 Jun 2014 20:17:29 +0400
>>> Subject: [PATCH] Replace type of paddr to uint32_t.
>>>
>>> This patch helps to avoid the following build issue:
>>>
>>> drivers/gpu/drm/msm/msm_fbdev.c:108:2: error: passing argument 3 of
>>> 'msm_gem_get_iova_locked' from incompatible pointer type [-Werror]
>>> msm_gem_get_iova_locked(fbdev->bo, 0, &paddr);
>>> ^
>>> In file included from drivers/gpu/drm/msm/msm_fbdev.c:18:0:
>>> drivers/gpu/drm/msm/msm_drv.h:153:5: note: expected 'uint32_t *' but
>>> argument is of type 'dma_addr_t *'
>>> int msm_gem_get_iova_locked(struct drm_gem_object *obj, int id,
>>> ^
>>>
>>> Signed-off-by: Matwey V. Kornilov <[email protected]>
>>
>> Reviewed-by: Rob Clark <[email protected]>
>
> Perhaps the uint32_t should become dma_addr_t instead?
>
> drivers/gpu/drm/msm/msm_gem.h has:
>
> struct {
> // XXX
> uint32_t iova;
> } domain[NUM_DOMAINS];
>
> (note the "XXX").

the "XXX" is actually for missing refcnting for pin cnt (so we can
know when it is safe to unpin buffers), which I've not had time to add
yet (but is not needed yet).

On the gpu side of things, it will be another big hw change before 64b
hw (ie. the existing code that deals w/ existing registers won't be
shared, I don't think). On display side, I'm less sure, but there
isn't currently room to expand base address registers to 64bit without
shuffling a fair bit of registers around, so again probably will be a
new back-end for 64b display controller.

The GEM code would still be shared, so may need to support 64b some
day.. possibly that has to switch over to dma_addr_t and then
downcast to u32 in the mdp/adreno hw generation specific backend code.
But there is at least one more generation of hw before I have to
worry about that ;-)

BR,
-R

>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds