drm/ttm: optimize bo_kmap_type values
A micro-optimization on the function ttm_kmap_obj_virtual(). By defining the values of enum ttm_bo_kmap_obj::bo_kmap_type to have a bit indicating iomem, size of the function ttm_kmap_obj_virtual() will be reduced by 16 bytes on x86_64 (gcc 4.1.2). ttm_kmap_obj_virtual() may be heavily used, when buffer objects are accessed via wrappers, that work for both kinds of memory addresses: iomem cookies and kernel virtual. Signed-off-by: Pekka Paalanen <pq@iki.fi> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:

committed by
Dave Airlie

parent
949ef70e2d
commit
a0724fcf82
@@ -245,14 +245,15 @@ struct ttm_buffer_object {
|
|||||||
* premapped region.
|
* premapped region.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define TTM_BO_MAP_IOMEM_MASK 0x80
|
||||||
struct ttm_bo_kmap_obj {
|
struct ttm_bo_kmap_obj {
|
||||||
void *virtual;
|
void *virtual;
|
||||||
struct page *page;
|
struct page *page;
|
||||||
enum {
|
enum {
|
||||||
ttm_bo_map_iomap,
|
ttm_bo_map_iomap = 1 | TTM_BO_MAP_IOMEM_MASK,
|
||||||
ttm_bo_map_vmap,
|
ttm_bo_map_vmap = 2,
|
||||||
ttm_bo_map_kmap,
|
ttm_bo_map_kmap = 3,
|
||||||
ttm_bo_map_premapped,
|
ttm_bo_map_premapped = 4 | TTM_BO_MAP_IOMEM_MASK,
|
||||||
} bo_kmap_type;
|
} bo_kmap_type;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -522,8 +523,7 @@ extern int ttm_bo_evict_mm(struct ttm_bo_device *bdev, unsigned mem_type);
|
|||||||
static inline void *ttm_kmap_obj_virtual(struct ttm_bo_kmap_obj *map,
|
static inline void *ttm_kmap_obj_virtual(struct ttm_bo_kmap_obj *map,
|
||||||
bool *is_iomem)
|
bool *is_iomem)
|
||||||
{
|
{
|
||||||
*is_iomem = (map->bo_kmap_type == ttm_bo_map_iomap ||
|
*is_iomem = !!(map->bo_kmap_type & TTM_BO_MAP_IOMEM_MASK);
|
||||||
map->bo_kmap_type == ttm_bo_map_premapped);
|
|
||||||
return map->virtual;
|
return map->virtual;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user