search for: vaddr_iomem

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); >>>>>>>>>> +} >>>>>>>>>> + >>>>>>>>>&gt...
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); >>>>>>>>>> +} >>>>>>>>>> + >>>>>>>>>&gt...