Lines Matching refs:tg
5871 struct drm_tile_group *tg = container_of(kref, struct drm_tile_group, refcount); in drm_tile_group_free() local
5872 struct drm_device *dev = tg->dev; in drm_tile_group_free()
5874 idr_remove(&dev->mode_config.tile_idr, tg->id); in drm_tile_group_free()
5876 kfree(tg); in drm_tile_group_free()
5887 struct drm_tile_group *tg) in drm_mode_put_tile_group() argument
5889 kref_put(&tg->refcount, drm_tile_group_free); in drm_mode_put_tile_group()
5905 struct drm_tile_group *tg; in drm_mode_get_tile_group() local
5908 idr_for_each_entry(&dev->mode_config.tile_idr, tg, id) { in drm_mode_get_tile_group()
5909 if (!memcmp(tg->group_data, topology, 8)) { in drm_mode_get_tile_group()
5910 if (!kref_get_unless_zero(&tg->refcount)) in drm_mode_get_tile_group()
5911 tg = NULL; in drm_mode_get_tile_group()
5913 return tg; in drm_mode_get_tile_group()
5935 struct drm_tile_group *tg; in drm_mode_create_tile_group() local
5938 tg = kzalloc(sizeof(*tg), GFP_KERNEL); in drm_mode_create_tile_group()
5939 if (!tg) in drm_mode_create_tile_group()
5942 kref_init(&tg->refcount); in drm_mode_create_tile_group()
5943 memcpy(tg->group_data, topology, 8); in drm_mode_create_tile_group()
5944 tg->dev = dev; in drm_mode_create_tile_group()
5947 ret = idr_alloc(&dev->mode_config.tile_idr, tg, 1, 0, GFP_KERNEL); in drm_mode_create_tile_group()
5949 tg->id = ret; in drm_mode_create_tile_group()
5951 kfree(tg); in drm_mode_create_tile_group()
5952 tg = ERR_PTR(ret); in drm_mode_create_tile_group()
5956 return tg; in drm_mode_create_tile_group()