Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9698b4db authored by Dave Airlie's avatar Dave Airlie
Browse files

drm: de-typedef sman



Signed-off-by: default avatarDave Airlie <airlied@linux.ie>
parent 55910517
Loading
Loading
Loading
Loading
+24 −23
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ typedef struct drm_owner_item {
	struct list_head mem_blocks;
} drm_owner_item_t;

void drm_sman_takedown(drm_sman_t * sman)
void drm_sman_takedown(struct drm_sman * sman)
{
	drm_ht_remove(&sman->user_hash_tab);
	drm_ht_remove(&sman->owner_hash_tab);
@@ -56,12 +56,12 @@ void drm_sman_takedown(drm_sman_t * sman)
EXPORT_SYMBOL(drm_sman_takedown);

int
drm_sman_init(drm_sman_t * sman, unsigned int num_managers,
drm_sman_init(struct drm_sman * sman, unsigned int num_managers,
	      unsigned int user_order, unsigned int owner_order)
{
	int ret = 0;

	sman->mm = (drm_sman_mm_t *) drm_calloc(num_managers, sizeof(*sman->mm),
	sman->mm = (struct drm_sman_mm *) drm_calloc(num_managers, sizeof(*sman->mm),
						DRM_MEM_MM);
	if (!sman->mm) {
		ret = -ENOMEM;
@@ -120,10 +120,10 @@ static unsigned long drm_sman_mm_offset(void *private, void *ref)
}

int
drm_sman_set_range(drm_sman_t * sman, unsigned int manager,
drm_sman_set_range(struct drm_sman * sman, unsigned int manager,
		   unsigned long start, unsigned long size)
{
	drm_sman_mm_t *sman_mm;
	struct drm_sman_mm *sman_mm;
	struct drm_mm *mm;
	int ret;

@@ -153,8 +153,8 @@ drm_sman_set_range(drm_sman_t * sman, unsigned int manager,
EXPORT_SYMBOL(drm_sman_set_range);

int
drm_sman_set_manager(drm_sman_t * sman, unsigned int manager,
		     drm_sman_mm_t * allocator)
drm_sman_set_manager(struct drm_sman * sman, unsigned int manager,
		     struct drm_sman_mm * allocator)
{
	BUG_ON(manager >= sman->num_managers);
	sman->mm[manager] = *allocator;
@@ -163,7 +163,7 @@ drm_sman_set_manager(drm_sman_t * sman, unsigned int manager,
}
EXPORT_SYMBOL(drm_sman_set_manager);

static drm_owner_item_t *drm_sman_get_owner_item(drm_sman_t * sman,
static drm_owner_item_t *drm_sman_get_owner_item(struct drm_sman * sman,
						 unsigned long owner)
{
	int ret;
@@ -194,14 +194,14 @@ out:
	return NULL;
}

drm_memblock_item_t *drm_sman_alloc(drm_sman_t *sman, unsigned int manager,
struct drm_memblock_item *drm_sman_alloc(struct drm_sman *sman, unsigned int manager,
				    unsigned long size, unsigned alignment,
				    unsigned long owner)
{
	void *tmp;
	drm_sman_mm_t *sman_mm;
	struct drm_sman_mm *sman_mm;
	drm_owner_item_t *owner_item;
	drm_memblock_item_t *memblock;
	struct drm_memblock_item *memblock;

	BUG_ON(manager >= sman->num_managers);

@@ -246,9 +246,9 @@ out:

EXPORT_SYMBOL(drm_sman_alloc);

static void drm_sman_free(drm_memblock_item_t *item)
static void drm_sman_free(struct drm_memblock_item *item)
{
	drm_sman_t *sman = item->sman;
	struct drm_sman *sman = item->sman;

	list_del(&item->owner_list);
	drm_ht_remove_item(&sman->user_hash_tab, &item->user_hash);
@@ -256,22 +256,23 @@ static void drm_sman_free(drm_memblock_item_t *item)
	drm_free(item, sizeof(*item), DRM_MEM_MM);
}

int drm_sman_free_key(drm_sman_t *sman, unsigned int key)
int drm_sman_free_key(struct drm_sman *sman, unsigned int key)
{
	drm_hash_item_t *hash_item;
	drm_memblock_item_t *memblock_item;
	struct drm_memblock_item *memblock_item;

	if (drm_ht_find_item(&sman->user_hash_tab, key, &hash_item))
		return -EINVAL;

	memblock_item = drm_hash_entry(hash_item, drm_memblock_item_t, user_hash);
	memblock_item = drm_hash_entry(hash_item, struct drm_memblock_item,
				       user_hash);
	drm_sman_free(memblock_item);
	return 0;
}

EXPORT_SYMBOL(drm_sman_free_key);

static void drm_sman_remove_owner(drm_sman_t *sman,
static void drm_sman_remove_owner(struct drm_sman *sman,
				  drm_owner_item_t *owner_item)
{
	list_del(&owner_item->sman_list);
@@ -279,7 +280,7 @@ static void drm_sman_remove_owner(drm_sman_t *sman,
	drm_free(owner_item, sizeof(*owner_item), DRM_MEM_MM);
}

int drm_sman_owner_clean(drm_sman_t *sman, unsigned long owner)
int drm_sman_owner_clean(struct drm_sman *sman, unsigned long owner)
{

	drm_hash_item_t *hash_item;
@@ -300,10 +301,10 @@ int drm_sman_owner_clean(drm_sman_t *sman, unsigned long owner)

EXPORT_SYMBOL(drm_sman_owner_clean);

static void drm_sman_do_owner_cleanup(drm_sman_t *sman,
static void drm_sman_do_owner_cleanup(struct drm_sman *sman,
				      drm_owner_item_t *owner_item)
{
	drm_memblock_item_t *entry, *next;
	struct drm_memblock_item *entry, *next;

	list_for_each_entry_safe(entry, next, &owner_item->mem_blocks,
				 owner_list) {
@@ -312,7 +313,7 @@ static void drm_sman_do_owner_cleanup(drm_sman_t *sman,
	drm_sman_remove_owner(sman, owner_item);
}

void drm_sman_owner_cleanup(drm_sman_t *sman, unsigned long owner)
void drm_sman_owner_cleanup(struct drm_sman *sman, unsigned long owner)
{

	drm_hash_item_t *hash_item;
@@ -329,11 +330,11 @@ void drm_sman_owner_cleanup(drm_sman_t *sman, unsigned long owner)

EXPORT_SYMBOL(drm_sman_owner_cleanup);

void drm_sman_cleanup(drm_sman_t *sman)
void drm_sman_cleanup(struct drm_sman *sman)
{
	drm_owner_item_t *entry, *next;
	unsigned int i;
	drm_sman_mm_t *sman_mm;
	struct drm_sman_mm *sman_mm;

	list_for_each_entry_safe(entry, next, &sman->owner_items, sman_list) {
		drm_sman_do_owner_cleanup(sman, entry);
+22 −22
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@
 * for memory management.
 */

typedef struct drm_sman_mm {
struct drm_sman_mm {
	/* private info. If allocated, needs to be destroyed by the destroy
	   function */
	void *private;
@@ -74,30 +74,30 @@ typedef struct drm_sman_mm {
	   "alloc" function */

	unsigned long (*offset) (void *private, void *ref);
} drm_sman_mm_t;
};

typedef struct drm_memblock_item {
struct drm_memblock_item {
	struct list_head owner_list;
	drm_hash_item_t user_hash;
	void *mm_info;
	drm_sman_mm_t *mm;
	struct drm_sman_mm *mm;
	struct drm_sman *sman;
} drm_memblock_item_t;
};

typedef struct drm_sman {
	drm_sman_mm_t *mm;
struct drm_sman {
	struct drm_sman_mm *mm;
	int num_managers;
	drm_open_hash_t owner_hash_tab;
	drm_open_hash_t user_hash_tab;
	struct list_head owner_items;
} drm_sman_t;
};

/*
 * Take down a memory manager. This function should only be called after a
 * successful init and after a call to drm_sman_cleanup.
 */

extern void drm_sman_takedown(drm_sman_t * sman);
extern void drm_sman_takedown(struct drm_sman * sman);

/*
 * Allocate structures for a manager.
@@ -112,7 +112,7 @@ extern void drm_sman_takedown(drm_sman_t * sman);
 *
 */

extern int drm_sman_init(drm_sman_t * sman, unsigned int num_managers,
extern int drm_sman_init(struct drm_sman * sman, unsigned int num_managers,
			 unsigned int user_order, unsigned int owner_order);

/*
@@ -120,7 +120,7 @@ extern int drm_sman_init(drm_sman_t * sman, unsigned int num_managers,
 * manager unless a customized allogator is used.
 */

extern int drm_sman_set_range(drm_sman_t * sman, unsigned int manager,
extern int drm_sman_set_range(struct drm_sman * sman, unsigned int manager,
			      unsigned long start, unsigned long size);

/*
@@ -129,14 +129,14 @@ extern int drm_sman_set_range(drm_sman_t * sman, unsigned int manager,
 * so it can be destroyed after this call.
 */

extern int drm_sman_set_manager(drm_sman_t * sman, unsigned int mananger,
				drm_sman_mm_t * allocator);
extern int drm_sman_set_manager(struct drm_sman * sman, unsigned int mananger,
				struct drm_sman_mm * allocator);

/*
 * Allocate a memory block. Aligment is not implemented yet.
 */

extern drm_memblock_item_t *drm_sman_alloc(drm_sman_t * sman,
extern struct drm_memblock_item *drm_sman_alloc(struct drm_sman * sman,
						unsigned int manager,
						unsigned long size,
						unsigned alignment,
@@ -145,7 +145,7 @@ extern drm_memblock_item_t *drm_sman_alloc(drm_sman_t * sman,
 * Free a memory block identified by its user hash key.
 */

extern int drm_sman_free_key(drm_sman_t * sman, unsigned int key);
extern int drm_sman_free_key(struct drm_sman * sman, unsigned int key);

/*
 * returns 1 iff there are no stale memory blocks associated with this owner.
@@ -154,7 +154,7 @@ extern int drm_sman_free_key(drm_sman_t * sman, unsigned int key);
 * resources associated with owner.
 */

extern int drm_sman_owner_clean(drm_sman_t * sman, unsigned long owner);
extern int drm_sman_owner_clean(struct drm_sman * sman, unsigned long owner);

/*
 * Frees all stale memory blocks associated with this owner. Note that this
@@ -164,13 +164,13 @@ extern int drm_sman_owner_clean(drm_sman_t * sman, unsigned long owner);
 * is not going to be referenced anymore.
 */

extern void drm_sman_owner_cleanup(drm_sman_t * sman, unsigned long owner);
extern void drm_sman_owner_cleanup(struct drm_sman * sman, unsigned long owner);

/*
 * Frees all stale memory blocks associated with the memory manager.
 * See idling above.
 */

extern void drm_sman_cleanup(drm_sman_t * sman);
extern void drm_sman_cleanup(struct drm_sman * sman);

#endif
+2 −1
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ enum sis_family {

#include "drm_sman.h"


#define SIS_BASE (dev_priv->mmio)
#define SIS_READ(reg)         DRM_READ32(SIS_BASE, reg);
#define SIS_WRITE(reg, val)   DRM_WRITE32(SIS_BASE, reg, val);
@@ -53,7 +54,7 @@ enum sis_family {
typedef struct drm_sis_private {
	drm_local_map_t *mmio;
	unsigned int idle_fault;
	drm_sman_t sman;
	struct drm_sman sman;
	unsigned int chipset;
	int vram_initialized;
	int agp_initialized;
+1 −1
Original line number Diff line number Diff line
@@ -130,7 +130,7 @@ static int sis_drm_alloc(struct drm_device *dev, struct drm_file * priv,
	drm_sis_mem_t __user *argp = (drm_sis_mem_t __user *) data;
	drm_sis_mem_t mem;
	int retval = 0;
	drm_memblock_item_t *item;
	struct drm_memblock_item *item;

	DRM_COPY_FROM_USER_IOCTL(mem, argp, sizeof(mem));

+1 −1
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ typedef struct drm_via_private {
	uint32_t irq_pending_mask;
	int *irq_map;
	unsigned int idle_fault;
	drm_sman_t sman;
	struct drm_sman sman;
	int vram_initialized;
	int agp_initialized;
	unsigned long vram_offset;
Loading