Lines Matching full:muram

18 static unsigned long fman_muram_vbase_to_offset(struct muram_info *muram,  in fman_muram_vbase_to_offset()  argument
21 return vaddr - (unsigned long)muram->vbase; in fman_muram_vbase_to_offset()
26 * @base: Pointer to base of memory mapped FM-MURAM.
27 * @size: Size of the FM-MURAM partition.
29 * Creates partition in the MURAM.
30 * The routine returns a pointer to the MURAM partition.
31 * This pointer must be passed as to all other FM-MURAM function calls.
35 * Return: pointer to FM-MURAM object, or NULL for Failure.
39 struct muram_info *muram; in fman_muram_init() local
43 muram = kzalloc(sizeof(*muram), GFP_KERNEL); in fman_muram_init()
44 if (!muram) in fman_muram_init()
47 muram->pool = gen_pool_create(ilog2(64), -1); in fman_muram_init()
48 if (!muram->pool) { in fman_muram_init()
49 pr_err("%s(): MURAM pool create failed\n", __func__); in fman_muram_init()
55 pr_err("%s(): MURAM ioremap failed\n", __func__); in fman_muram_init()
59 ret = gen_pool_add_virt(muram->pool, (unsigned long)vaddr, in fman_muram_init()
62 pr_err("%s(): MURAM pool add failed\n", __func__); in fman_muram_init()
69 muram->vbase = vaddr; in fman_muram_init()
70 muram->pbase = base; in fman_muram_init()
71 return muram; in fman_muram_init()
74 gen_pool_destroy(muram->pool); in fman_muram_init()
76 kfree(muram); in fman_muram_init()
82 * @muram: FM-MURAM module pointer.
89 unsigned long fman_muram_offset_to_vbase(struct muram_info *muram, in fman_muram_offset_to_vbase() argument
92 return offset + (unsigned long)muram->vbase; in fman_muram_offset_to_vbase()
97 * @muram: FM-MURAM module pointer.
100 * Allocate some memory from FM-MURAM partition.
104 unsigned long fman_muram_alloc(struct muram_info *muram, size_t size) in fman_muram_alloc() argument
108 vaddr = gen_pool_alloc(muram->pool, size); in fman_muram_alloc()
114 return fman_muram_vbase_to_offset(muram, vaddr); in fman_muram_alloc()
119 * @muram: FM-MURAM module pointer.
123 * Free an allocated memory from FM-MURAM partition.
125 void fman_muram_free_mem(struct muram_info *muram, unsigned long offset, in fman_muram_free_mem() argument
128 unsigned long addr = fman_muram_offset_to_vbase(muram, offset); in fman_muram_free_mem()
130 gen_pool_free(muram->pool, addr, size); in fman_muram_free_mem()