[PATCH 1/2] drm: rockchip: Don't pass DRM fake offset to dma-api

2015-07-07 Thread Daniel Kurtz
On Sun, Apr 19, 2015 at 12:55 AM, Heiko Stübner  wrote:
>
> Am Donnerstag, 16. April 2015, 16:41:51 schrieb Ørjan Eide:
> > Set vm_pgoff to 0 after using it to look up the GEM node, before passing
> > it on rockchip_gem_mmap_buf() where the offset must be from the start of
> > the buffer.
> >
> > Passing in the fake offset currently works because the
> > dma_mmap_attrs implementation that is used for this device,
> > arm_iommu_mmap_attrs, ignores the offset completely.
> >
> > Signed-off-by: Ørjan Eide 
>
> both patches on a rk3288-veyron-pinky
>
> Tested-by: Heiko Stuebner 
>
> Through which tree do you want to take these patches? I guess the rockchip-drm
> related patch should go through the tree that will take the dma-mapping patch,
> so you'll probably need an "Ack" from Mark Yao (Cc'ed).

As far as I can tell, these two patches ([0] & [1]) were never picked up.
Russell, can you pick both of them up in your tree?

[0] https://patchwork.kernel.org/patch/6226591/
[1] https://patchwork.kernel.org/patch/6226581/

-Dan

> Heiko
>
> > ---
> >  drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 5 +
> >  1 file changed, 5 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
> > b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c index 7ca8799e..69f01c3
> > 100644
> > --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
> > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
> > @@ -94,6 +94,11 @@ int rockchip_gem_mmap(struct file *filp, struct
> > vm_area_struct *vma) return -EACCES;
> >   }
> >
> > + /* Set vm_pgoff (used as a fake buffer offset by DRM) to 0 and map the
> > +  * whole buffer from the start.
> > +  */
> > + vma->vm_pgoff = 0;
> > +
> >   obj = container_of(node, struct drm_gem_object, vma_node);
> >   ret = rockchip_gem_mmap_buf(obj, vma);
>


[PATCH 1/2] drm: rockchip: Don't pass DRM fake offset to dma-api

2015-04-20 Thread Mark yao
On 2015年04月20日 13:34, Mark yao wrote:
> On 2015年04月19日 00:55, Heiko Stübner wrote:
>> Am Donnerstag, 16. April 2015, 16:41:51 schrieb Ørjan Eide:
>>> Set vm_pgoff to 0 after using it to look up the GEM node, before 
>>> passing
>>> it on rockchip_gem_mmap_buf() where the offset must be from the 
>>> start of
>>> the buffer.
>>>
>>> Passing in the fake offset currently works because the
>>> dma_mmap_attrs implementation that is used for this device,
>>> arm_iommu_mmap_attrs, ignores the offset completely.
>>>
>>> Signed-off-by: Ørjan Eide 
>> both patches on a rk3288-veyron-pinky
>>
>> Tested-by: Heiko Stuebner 
>>
>> Through which tree do you want to take these patches? I guess the 
>> rockchip-drm
>> related patch should go through the tree that will take the 
>> dma-mapping patch,
>> so you'll probably need an "Ack" from Mark Yao (Cc'ed).
>>
>>
>> Heiko
>>
>>> ---
>>>   drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 5 +
>>>   1 file changed, 5 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
>>> b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c index 7ca8799e..69f01c3
>>> 100644
>>> --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
>>> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
>>> @@ -94,6 +94,11 @@ int rockchip_gem_mmap(struct file *filp, struct
>>> vm_area_struct *vma) return -EACCES;
>>>   }
>>>
>>> +/* Set vm_pgoff (used as a fake buffer offset by DRM) to 0 and 
>>> map the
>>> + * whole buffer from the start.
>>> + */
>>> +vma->vm_pgoff = 0;
>>> +
>>>   obj = container_of(node, struct drm_gem_object, vma_node);
>>>   ret = rockchip_gem_mmap_buf(obj, vma);
>>
>>
>>
> Thanks for this fix,
> Acked-by: Mark Yao 
>
I met this problem when work with gem non-iommu path, set vma->vm_pgoff 
= 0 solved it. :-)

-- 
ï¼­ark



[PATCH 1/2] drm: rockchip: Don't pass DRM fake offset to dma-api

2015-04-20 Thread Mark yao
On 2015年04月19日 00:55, Heiko Stübner wrote:
> Am Donnerstag, 16. April 2015, 16:41:51 schrieb Ørjan Eide:
>> Set vm_pgoff to 0 after using it to look up the GEM node, before passing
>> it on rockchip_gem_mmap_buf() where the offset must be from the start of
>> the buffer.
>>
>> Passing in the fake offset currently works because the
>> dma_mmap_attrs implementation that is used for this device,
>> arm_iommu_mmap_attrs, ignores the offset completely.
>>
>> Signed-off-by: Ørjan Eide 
> both patches on a rk3288-veyron-pinky
>
> Tested-by: Heiko Stuebner 
>
> Through which tree do you want to take these patches? I guess the rockchip-drm
> related patch should go through the tree that will take the dma-mapping patch,
> so you'll probably need an "Ack" from Mark Yao (Cc'ed).
>
>
> Heiko
>
>> ---
>>   drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 5 +
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
>> b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c index 7ca8799e..69f01c3
>> 100644
>> --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
>> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
>> @@ -94,6 +94,11 @@ int rockchip_gem_mmap(struct file *filp, struct
>> vm_area_struct *vma) return -EACCES;
>>  }
>>
>> +/* Set vm_pgoff (used as a fake buffer offset by DRM) to 0 and map the
>> + * whole buffer from the start.
>> + */
>> +vma->vm_pgoff = 0;
>> +
>>  obj = container_of(node, struct drm_gem_object, vma_node);
>>  ret = rockchip_gem_mmap_buf(obj, vma);
>
>
>
Thanks for this fix,
Acked-by: Mark Yao 

-- 
ï¼­ark



[PATCH 1/2] drm: rockchip: Don't pass DRM fake offset to dma-api

2015-04-20 Thread Daniel Kurtz
Hi Ørjan,

On Thu, Apr 16, 2015 at 10:41 PM, Ørjan Eide  wrote:
>
> Set vm_pgoff to 0 after using it to look up the GEM node, before passing
> it on rockchip_gem_mmap_buf() where the offset must be from the start of
> the buffer.
>
> Passing in the fake offset currently works because the
> dma_mmap_attrs implementation that is used for this device,
> arm_iommu_mmap_attrs, ignores the offset completely.
>
> Signed-off-by: Ørjan Eide 
>
> ---
>  drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 5 +
>  1 file changed, 5 insertions(+)
>
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c 
> b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
> index 7ca8799e..69f01c3 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
> @@ -94,6 +94,11 @@ int rockchip_gem_mmap(struct file *filp, struct 
> vm_area_struct *vma)
> return -EACCES;
> }
>
> +   /* Set vm_pgoff (used as a fake buffer offset by DRM) to 0 and map the
> +* whole buffer from the start.
> +*/

One very tiny nit.  According to [0], multi-line comments start are
supposed to start with a single "/*"
[0] https://www.kernel.org/doc/Documentation/CodingStyle

Other than that, this patch is
Reviewed-by: Daniel Kurtz 

Thanks for sending this up!


>
> +   vma->vm_pgoff = 0;
> +
> obj = container_of(node, struct drm_gem_object, vma_node);
> ret = rockchip_gem_mmap_buf(obj, vma);
>
> --
> 1.9.1
>


[PATCH 1/2] drm: rockchip: Don't pass DRM fake offset to dma-api

2015-04-18 Thread Heiko Stübner
Am Donnerstag, 16. April 2015, 16:41:51 schrieb Ørjan Eide:
> Set vm_pgoff to 0 after using it to look up the GEM node, before passing
> it on rockchip_gem_mmap_buf() where the offset must be from the start of
> the buffer.
> 
> Passing in the fake offset currently works because the
> dma_mmap_attrs implementation that is used for this device,
> arm_iommu_mmap_attrs, ignores the offset completely.
> 
> Signed-off-by: Ørjan Eide 

both patches on a rk3288-veyron-pinky

Tested-by: Heiko Stuebner 

Through which tree do you want to take these patches? I guess the rockchip-drm 
related patch should go through the tree that will take the dma-mapping patch, 
so you'll probably need an "Ack" from Mark Yao (Cc'ed).


Heiko

> ---
>  drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 5 +
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
> b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c index 7ca8799e..69f01c3
> 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
> @@ -94,6 +94,11 @@ int rockchip_gem_mmap(struct file *filp, struct
> vm_area_struct *vma) return -EACCES;
>   }
> 
> + /* Set vm_pgoff (used as a fake buffer offset by DRM) to 0 and map the
> +  * whole buffer from the start.
> +  */
> + vma->vm_pgoff = 0;
> +
>   obj = container_of(node, struct drm_gem_object, vma_node);
>   ret = rockchip_gem_mmap_buf(obj, vma);



[PATCH 1/2] drm: rockchip: Don't pass DRM fake offset to dma-api

2015-04-16 Thread Ørjan Eide
Set vm_pgoff to 0 after using it to look up the GEM node, before passing
it on rockchip_gem_mmap_buf() where the offset must be from the start of
the buffer.

Passing in the fake offset currently works because the
dma_mmap_attrs implementation that is used for this device,
arm_iommu_mmap_attrs, ignores the offset completely.

Signed-off-by: Ørjan Eide 
---
 drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c 
b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
index 7ca8799e..69f01c3 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c
@@ -94,6 +94,11 @@ int rockchip_gem_mmap(struct file *filp, struct 
vm_area_struct *vma)
return -EACCES;
}

+   /* Set vm_pgoff (used as a fake buffer offset by DRM) to 0 and map the
+* whole buffer from the start.
+*/
+   vma->vm_pgoff = 0;
+
obj = container_of(node, struct drm_gem_object, vma_node);
ret = rockchip_gem_mmap_buf(obj, vma);

-- 
1.9.1