Displaying 20 results from an estimated 54 matches for "vaddr_iomem".
2020 Oct 15
5
[PATCH v4 05/10] drm/ttm: Add vmap/vunmap to TTM and TTM GEM helpers
...ttm_bo_vmap(struct ttm_buffer_object *bo, struct dma_buf_map *map)
> +{
> + struct ttm_resource *mem = &bo->mem;
> + int ret;
> +
> + ret = ttm_mem_io_reserve(bo->bdev, mem);
> + if (ret)
> + return ret;
> +
> + if (mem->bus.is_iomem) {
> + void __iomem *vaddr_iomem;
> + unsigned long size = bo->num_pages << PAGE_SHIFT;
Please use uint64_t here and make sure to cast bo->num_pages before
shifting.
We have an unit tests of allocating a 8GB BO and that should work on a
32bit machine as well :)
> +
> + if (mem->bus.addr)
> + vad...
2020 Oct 19
1
[PATCH v4 05/10] drm/ttm: Add vmap/vunmap to TTM and TTM GEM helpers
...>> +{
>> +??? struct ttm_resource *mem = &bo->mem;
>> +??? int ret;
>> +
>> +??? ret = ttm_mem_io_reserve(bo->bdev, mem);
>> +??? if (ret)
>> +??????? return ret;
>> +
>> +??? if (mem->bus.is_iomem) {
>> +??????? void __iomem *vaddr_iomem;
>> +??????? unsigned long size = bo->num_pages << PAGE_SHIFT;
>
> Please use uint64_t here and make sure to cast bo->num_pages before
> shifting.
I thought the rule of thumb is to use u64 in source code. Yet TTM only
uses uint*_t types. Is there anything special about...
2020 Oct 15
1
[PATCH v4 05/10] drm/ttm: Add vmap/vunmap to TTM and TTM GEM helpers
...+ struct ttm_resource *mem = &bo->mem;
> > > + int ret;
> > > +
> > > + ret = ttm_mem_io_reserve(bo->bdev, mem);
> > > + if (ret)
> > > + return ret;
> > > +
> > > + if (mem->bus.is_iomem) {
> > > + void __iomem *vaddr_iomem;
> > > + unsigned long size = bo->num_pages << PAGE_SHIFT;
> >
> > Please use uint64_t here and make sure to cast bo->num_pages before
> > shifting.
> >
> > We have an unit tests of allocating a 8GB BO and that should work on a
> > 32bit m...
2020 Oct 19
0
[PATCH v4 05/10] drm/ttm: Add vmap/vunmap to TTM and TTM GEM helpers
...ttm_resource *mem = &bo->mem;
>>> +??? int ret;
>>> +
>>> +??? ret = ttm_mem_io_reserve(bo->bdev, mem);
>>> +??? if (ret)
>>> +??????? return ret;
>>> +
>>> +??? if (mem->bus.is_iomem) {
>>> +??????? void __iomem *vaddr_iomem;
>>> +??????? unsigned long size = bo->num_pages << PAGE_SHIFT;
>> Please use uint64_t here and make sure to cast bo->num_pages before
>> shifting.
> I thought the rule of thumb is to use u64 in source code. Yet TTM only
> uses uint*_t types. Is there anything...
2020 Oct 15
0
[PATCH v4 05/10] drm/ttm: Add vmap/vunmap to TTM and TTM GEM helpers
...bj *map)
}
EXPORT_SYMBOL(ttm_bo_kunmap);
+int ttm_bo_vmap(struct ttm_buffer_object *bo, struct dma_buf_map *map)
+{
+ struct ttm_resource *mem = &bo->mem;
+ int ret;
+
+ ret = ttm_mem_io_reserve(bo->bdev, mem);
+ if (ret)
+ return ret;
+
+ if (mem->bus.is_iomem) {
+ void __iomem *vaddr_iomem;
+ unsigned long size = bo->num_pages << PAGE_SHIFT;
+
+ if (mem->bus.addr)
+ vaddr_iomem = (void *)(((u8 *)mem->bus.addr));
+ else if (mem->placement & TTM_PL_FLAG_WC)
+ vaddr_iomem = ioremap_wc(mem->bus.offset, size);
+ else
+ vaddr_iomem = ioremap(mem->bus.o...
2020 Sep 29
3
[PATCH v3 2/7] drm/ttm: Add ttm_kmap_obj_to_dma_buf_map() for type conversion
..._kmap_obj_to_dma_buf_map(struct ttm_bo_kmap_obj *kmap,
> + struct dma_buf_map *map)
> +{
> + bool is_iomem;
> + void *vaddr = ttm_kmap_obj_virtual(kmap, &is_iomem);
> +
> + if (!vaddr)
> + dma_buf_map_clear(map);
> + else if (is_iomem)
> + dma_buf_map_set_vaddr_iomem(map, (void __force __iomem *)vaddr);
> + else
> + dma_buf_map_set_vaddr(map, vaddr);
> +}
> +
> /**
> * ttm_bo_kmap
> *
> diff --git a/include/linux/dma-buf-map.h b/include/linux/dma-buf-map.h
> index fd1aba545fdf..2e8bbecb5091 100644
> --- a/include/linux/dma...
2020 Sep 29
3
[PATCH v3 2/7] drm/ttm: Add ttm_kmap_obj_to_dma_buf_map() for type conversion
..._kmap_obj_to_dma_buf_map(struct ttm_bo_kmap_obj *kmap,
> + struct dma_buf_map *map)
> +{
> + bool is_iomem;
> + void *vaddr = ttm_kmap_obj_virtual(kmap, &is_iomem);
> +
> + if (!vaddr)
> + dma_buf_map_clear(map);
> + else if (is_iomem)
> + dma_buf_map_set_vaddr_iomem(map, (void __force __iomem *)vaddr);
> + else
> + dma_buf_map_set_vaddr(map, vaddr);
> +}
> +
> /**
> * ttm_bo_kmap
> *
> diff --git a/include/linux/dma-buf-map.h b/include/linux/dma-buf-map.h
> index fd1aba545fdf..2e8bbecb5091 100644
> --- a/include/linux/dma...
2020 Sep 29
3
[PATCH v3 2/7] drm/ttm: Add ttm_kmap_obj_to_dma_buf_map() for type conversion
..._kmap_obj_to_dma_buf_map(struct ttm_bo_kmap_obj *kmap,
> + struct dma_buf_map *map)
> +{
> + bool is_iomem;
> + void *vaddr = ttm_kmap_obj_virtual(kmap, &is_iomem);
> +
> + if (!vaddr)
> + dma_buf_map_clear(map);
> + else if (is_iomem)
> + dma_buf_map_set_vaddr_iomem(map, (void __force __iomem *)vaddr);
> + else
> + dma_buf_map_set_vaddr(map, vaddr);
> +}
> +
> /**
> * ttm_bo_kmap
> *
> diff --git a/include/linux/dma-buf-map.h b/include/linux/dma-buf-map.h
> index fd1aba545fdf..2e8bbecb5091 100644
> --- a/include/linux/dma...
2020 Oct 20
0
[PATCH v5 05/10] drm/ttm: Add vmap/vunmap to TTM and TTM GEM helpers
...bj *map)
}
EXPORT_SYMBOL(ttm_bo_kunmap);
+int ttm_bo_vmap(struct ttm_buffer_object *bo, struct dma_buf_map *map)
+{
+ struct ttm_resource *mem = &bo->mem;
+ int ret;
+
+ ret = ttm_mem_io_reserve(bo->bdev, mem);
+ if (ret)
+ return ret;
+
+ if (mem->bus.is_iomem) {
+ void __iomem *vaddr_iomem;
+ size_t size = bo->num_pages << PAGE_SHIFT;
+
+ if (mem->bus.addr)
+ vaddr_iomem = (void __iomem *)mem->bus.addr;
+ else if (mem->bus.caching == ttm_write_combined)
+ vaddr_iomem = ioremap_wc(mem->bus.offset, size);
+ else
+ vaddr_iomem = ioremap(mem->bus.offset,...
2020 Oct 15
0
[PATCH v4 05/10] drm/ttm: Add vmap/vunmap to TTM and TTM GEM helpers
...ma_buf_map *map)
> > +{
> > + struct ttm_resource *mem = &bo->mem;
> > + int ret;
> > +
> > + ret = ttm_mem_io_reserve(bo->bdev, mem);
> > + if (ret)
> > + return ret;
> > +
> > + if (mem->bus.is_iomem) {
> > + void __iomem *vaddr_iomem;
> > + unsigned long size = bo->num_pages << PAGE_SHIFT;
>
> Please use uint64_t here and make sure to cast bo->num_pages before
> shifting.
>
> We have an unit tests of allocating a 8GB BO and that should work on a 32bit
> machine as well :)
>
> > +...
2020 Sep 30
2
[PATCH v3 2/7] drm/ttm: Add ttm_kmap_obj_to_dma_buf_map() for type conversion
...t;>>> +??? bool is_iomem;
>>>> +??? void *vaddr = ttm_kmap_obj_virtual(kmap, &is_iomem);
>>>> +
>>>> +??? if (!vaddr)
>>>> +??????? dma_buf_map_clear(map);
>>>> +??? else if (is_iomem)
>>>> +??????? dma_buf_map_set_vaddr_iomem(map, (void __force __iomem *)vaddr);
>>>> +??? else
>>>> +??????? dma_buf_map_set_vaddr(map, vaddr);
>>>> +}
>>>> +
>>>> ? /**
>>>> ?? * ttm_bo_kmap
>>>> ?? *
>>>> diff --git a/include/linux/dma-buf-map....
2020 Sep 29
1
[PATCH v3 2/7] drm/ttm: Add ttm_kmap_obj_to_dma_buf_map() for type conversion
...???????????????? struct dma_buf_map *map)
>> +{
>> +??? bool is_iomem;
>> +??? void *vaddr = ttm_kmap_obj_virtual(kmap, &is_iomem);
>> +
>> +??? if (!vaddr)
>> +??????? dma_buf_map_clear(map);
>> +??? else if (is_iomem)
>> +??????? dma_buf_map_set_vaddr_iomem(map, (void __force __iomem *)vaddr);
>> +??? else
>> +??????? dma_buf_map_set_vaddr(map, vaddr);
>> +}
>> +
>> ? /**
>> ?? * ttm_bo_kmap
>> ?? *
>> diff --git a/include/linux/dma-buf-map.h b/include/linux/dma-buf-map.h
>> index fd1aba545fdf..2e8...
2020 Sep 30
1
[PATCH v3 2/7] drm/ttm: Add ttm_kmap_obj_to_dma_buf_map() for type conversion
...is_iomem;
>>>>> +??? void *vaddr = ttm_kmap_obj_virtual(kmap, &is_iomem);
>>>>> +
>>>>> +??? if (!vaddr)
>>>>> +??????? dma_buf_map_clear(map);
>>>>> +??? else if (is_iomem)
>>>>> +??????? dma_buf_map_set_vaddr_iomem(map, (void __force __iomem *)vaddr);
>>>>> +??? else
>>>>> +??????? dma_buf_map_set_vaddr(map, vaddr);
>>>>> +}
>>>>> +
>>>>> ? /**
>>>>> ?? * ttm_bo_kmap
>>>>> ?? *
>>>>> diff...
2020 Sep 29
0
[PATCH v3 2/7] drm/ttm: Add ttm_kmap_obj_to_dma_buf_map() for type conversion
...ialized to NULL.
+ */
+static inline void ttm_kmap_obj_to_dma_buf_map(struct ttm_bo_kmap_obj *kmap,
+ struct dma_buf_map *map)
+{
+ bool is_iomem;
+ void *vaddr = ttm_kmap_obj_virtual(kmap, &is_iomem);
+
+ if (!vaddr)
+ dma_buf_map_clear(map);
+ else if (is_iomem)
+ dma_buf_map_set_vaddr_iomem(map, (void __force __iomem *)vaddr);
+ else
+ dma_buf_map_set_vaddr(map, vaddr);
+}
+
/**
* ttm_bo_kmap
*
diff --git a/include/linux/dma-buf-map.h b/include/linux/dma-buf-map.h
index fd1aba545fdf..2e8bbecb5091 100644
--- a/include/linux/dma-buf-map.h
+++ b/include/linux/dma-buf-map.h
@@ -45,6...
2020 Sep 30
1
[PATCH v3 2/7] drm/ttm: Add ttm_kmap_obj_to_dma_buf_map() for type conversion
...ddr = ttm_kmap_obj_virtual(kmap, &is_iomem);
> > > > > > +
> > > > > > +??? if (!vaddr)
> > > > > > +??????? dma_buf_map_clear(map);
> > > > > > +??? else if (is_iomem)
> > > > > > +??????? dma_buf_map_set_vaddr_iomem(map, (void __force __iomem *)vaddr);
> > > > > > +??? else
> > > > > > +??????? dma_buf_map_set_vaddr(map, vaddr);
> > > > > > +}
> > > > > > +
> > > > > > ? /**
> > > > > > ?? * ttm_bo_kma...
2020 Sep 29
0
[PATCH v3 2/7] drm/ttm: Add ttm_kmap_obj_to_dma_buf_map() for type conversion
...t dma_buf_map *map)
> > +{
> > + bool is_iomem;
> > + void *vaddr = ttm_kmap_obj_virtual(kmap, &is_iomem);
> > +
> > + if (!vaddr)
> > + dma_buf_map_clear(map);
> > + else if (is_iomem)
> > + dma_buf_map_set_vaddr_iomem(map, (void __force __iomem *)vaddr);
> > + else
> > + dma_buf_map_set_vaddr(map, vaddr);
> > +}
> > +
> > /**
> > * ttm_bo_kmap
> > *
> > diff --git a/include/linux/dma-buf-map.h b/include/linux/dma-buf-map.h
> > index fd...
2020 Sep 30
3
[PATCH v3 2/7] drm/ttm: Add ttm_kmap_obj_to_dma_buf_map() for type conversion
...irtual(kmap, &is_iomem);
> >>>>>>> +
> >>>>>>> + if (!vaddr)
> >>>>>>> + dma_buf_map_clear(map);
> >>>>>>> + else if (is_iomem)
> >>>>>>> + dma_buf_map_set_vaddr_iomem(map, (void __force __iomem *)vaddr);
> >>>>>>> + else
> >>>>>>> + dma_buf_map_set_vaddr(map, vaddr);
> >>>>>>> +}
> >>>>>>> +
> >>>>>>> /**
> >>>>>...
2020 Sep 30
0
[PATCH v3 2/7] drm/ttm: Add ttm_kmap_obj_to_dma_buf_map() for type conversion
...map *map)
>>> +{
>>> +??? bool is_iomem;
>>> +??? void *vaddr = ttm_kmap_obj_virtual(kmap, &is_iomem);
>>> +
>>> +??? if (!vaddr)
>>> +??????? dma_buf_map_clear(map);
>>> +??? else if (is_iomem)
>>> +??????? dma_buf_map_set_vaddr_iomem(map, (void __force __iomem *)vaddr);
>>> +??? else
>>> +??????? dma_buf_map_set_vaddr(map, vaddr);
>>> +}
>>> +
>>> ? /**
>>> ?? * ttm_bo_kmap
>>> ?? *
>>> diff --git a/include/linux/dma-buf-map.h b/include/linux/dma-buf-map...
2020 Oct 07
2
[PATCH v3 2/7] drm/ttm: Add ttm_kmap_obj_to_dma_buf_map() for type conversion
...t;>>>>>>>> +
>>>>>>>>>> + if (!vaddr)
>>>>>>>>>> + dma_buf_map_clear(map);
>>>>>>>>>> + else if (is_iomem)
>>>>>>>>>> + dma_buf_map_set_vaddr_iomem(map, (void __force __iomem *)vaddr);
>>>>>>>>>> + else
>>>>>>>>>> + dma_buf_map_set_vaddr(map, vaddr);
>>>>>>>>>> +}
>>>>>>>>>> +
>>>>>>>>>>...
2020 Oct 02
1
[PATCH v3 2/7] drm/ttm: Add ttm_kmap_obj_to_dma_buf_map() for type conversion
...t;>>>>>>>> +
>>>>>>>>>> + if (!vaddr)
>>>>>>>>>> + dma_buf_map_clear(map);
>>>>>>>>>> + else if (is_iomem)
>>>>>>>>>> + dma_buf_map_set_vaddr_iomem(map, (void __force __iomem *)vaddr);
>>>>>>>>>> + else
>>>>>>>>>> + dma_buf_map_set_vaddr(map, vaddr);
>>>>>>>>>> +}
>>>>>>>>>> +
>>>>>>>>>>...