ANDROID: staging: ion: delete unused heap types and IDs

Delete system_contig, chunk and carevout heap types and IDs.

Test: build, boot, ion-unit-tests
Bug: 138149732
Change-Id: I45d97138ab2a6986955c8934ab13b70372d9e62d
Signed-off-by: Hridya Valsaraju <hridya@google.com>
This commit is contained in:
Hridya Valsaraju 2020-02-12 23:40:08 -08:00 committed by Alistair Delva
parent 122dcbaf88
commit 9970ccca9f
5 changed files with 4 additions and 144 deletions

View File

@ -6,14 +6,6 @@ config ION_SYSTEM_HEAP
Choose this option to enable the Ion system heap. The system heap
is backed by pages from the buddy allocator. If in doubt, say Y.
config ION_SYSTEM_CONTIG_HEAP
tristate "Ion system contig heap"
depends on ION
help
Choose this option to enable Ion system contig heap. The system contig heap
is backed by the pages from buddy allocator that are guaranteed to be physically
contiguous. If in doubt, say Y.
config ION_CMA_HEAP
tristate "Ion CMA heap support"
depends on ION && DMA_CMA

View File

@ -2,5 +2,4 @@
obj-$(CONFIG_ION_SYSTEM_HEAP) += ion_sys_heap.o
ion_sys_heap-y := ion_system_heap.o ion_page_pool.o
obj-$(CONFIG_ION_SYSTEM_CONTIG_HEAP) += ion_system_contig_heap.o
obj-$(CONFIG_ION_CMA_HEAP) += ion_cma_heap.o

View File

@ -1,102 +0,0 @@
// SPDX-License-Identifier: GPL-2.0
/*
* ION Memory Allocator system contig heap exporter
*
* Copyright (C) 2019 Google, Inc.
*/
#include <asm/page.h>
#include <linux/dma-mapping.h>
#include <linux/err.h>
#include <linux/highmem.h>
#include <linux/ion.h>
#include <linux/mm.h>
#include <linux/module.h>
#include <linux/scatterlist.h>
#include <linux/slab.h>
static int ion_system_contig_heap_allocate(struct ion_heap *heap,
struct ion_buffer *buffer,
unsigned long len,
unsigned long flags)
{
int order = get_order(len);
struct page *page;
struct sg_table *table;
unsigned long i;
int ret;
page = alloc_pages(GFP_HIGHUSER | __GFP_ZERO | __GFP_NOWARN, order);
if (!page)
return -ENOMEM;
split_page(page, order);
len = PAGE_ALIGN(len);
for (i = len >> PAGE_SHIFT; i < (1 << order); i++)
__free_page(page + i);
table = kmalloc(sizeof(*table), GFP_KERNEL);
if (!table) {
ret = -ENOMEM;
goto free_pages;
}
ret = sg_alloc_table(table, 1, GFP_KERNEL);
if (ret)
goto free_table;
sg_set_page(table->sgl, page, len, 0);
buffer->sg_table = table;
ion_buffer_prep_noncached(buffer);
return 0;
free_table:
kfree(table);
free_pages:
for (i = 0; i < len >> PAGE_SHIFT; i++)
__free_page(page + i);
return ret;
}
static void ion_system_contig_heap_free(struct ion_buffer *buffer)
{
struct sg_table *table = buffer->sg_table;
struct page *page = sg_page(table->sgl);
unsigned long pages = PAGE_ALIGN(buffer->size) >> PAGE_SHIFT;
unsigned long i;
for (i = 0; i < pages; i++)
__free_page(page + i);
sg_free_table(table);
kfree(table);
}
static struct ion_heap_ops kmalloc_ops = {
.allocate = ion_system_contig_heap_allocate,
.free = ion_system_contig_heap_free,
};
static struct ion_heap contig_heap = {
.ops = &kmalloc_ops,
.type = ION_HEAP_TYPE_SYSTEM_CONTIG,
.name = "ion_system_contig_heap",
};
static int __init ion_system_contig_heap_init(void)
{
return ion_device_add_heap(&contig_heap);
}
static void __exit ion_system_contig_heap_exit(void)
{
ion_device_remove_heap(&contig_heap);
}
module_init(ion_system_contig_heap_init);
module_exit(ion_system_contig_heap_exit);
MODULE_LICENSE("GPL v2");

View File

@ -236,16 +236,6 @@ static int ion_assign_heap_id(struct ion_heap *heap, struct ion_device *dev)
case ION_HEAP_TYPE_SYSTEM:
id_bit = __ffs(ION_HEAP_SYSTEM);
break;
case ION_HEAP_TYPE_SYSTEM_CONTIG:
id_bit = __ffs(ION_HEAP_SYSTEM_CONTIG);
break;
case ION_HEAP_TYPE_CHUNK:
id_bit = __ffs(ION_HEAP_CHUNK);
break;
case ION_HEAP_TYPE_CARVEOUT:
start_bit = __ffs(ION_HEAP_CARVEOUT_START);
end_bit = __ffs(ION_HEAP_CARVEOUT_END);
break;
case ION_HEAP_TYPE_DMA:
start_bit = __ffs(ION_HEAP_DMA_START);
end_bit = __ffs(ION_HEAP_DMA_END);

View File

@ -17,23 +17,14 @@
* @ION_HEAP_TYPE_SYSTEM: Reserved heap id for ion heap that allocates
* memory using alloc_page(). Also, supports
* deferred free and allocation pools.
* @ION_HEAP_TYPE_SYSTEM_CONTIG: Reserved heap id for ion heap that is the same
* as SYSTEM_HEAP, except doesn't support
* allocation pools.
* @ION_HEAP_TYPE_CARVEOUT: Reserved heap id for ion heap that allocates
* memory from a pre-reserved memory region
* aka 'carveout'.
* @ION_HEAP_TYPE_DMA: Reserved heap id for ion heap that manages
* @ION_HEAP_TYPE_DMA: Reserved heap id for ion heap that manages
* single CMA (contiguous memory allocator)
* region. Uses standard DMA APIs for
* managing memory within the CMA region.
*/
enum ion_heap_type {
ION_HEAP_TYPE_SYSTEM = 0,
ION_HEAP_TYPE_SYSTEM_CONTIG = 1,
ION_HEAP_TYPE_CARVEOUT = 2,
ION_HEAP_TYPE_CHUNK = 3,
ION_HEAP_TYPE_DMA = 4,
ION_HEAP_TYPE_DMA = 2,
/* reserved range for future standard heap types */
ION_HEAP_TYPE_CUSTOM = 16,
ION_HEAP_TYPE_MAX = 31,
@ -43,12 +34,6 @@ enum ion_heap_type {
* ion_heap_id - list of standard heap ids that Android can use
*
* @ION_HEAP_SYSTEM Id for the ION_HEAP_TYPE_SYSTEM
* @ION_HEAP_SYSTEM_CONTIG Id for the ION_HEAP_TYPE_SYSTEM_CONTIG
* @ION_HEAP_CHUNK Id for the ION_HEAP_TYPE_CHUNK
* @ION_HEAP_CARVEOUT_START Start of reserved id range for heaps of type
* ION_HEAP_TYPE_CARVEOUT
* @ION_HEAP_CARVEOUT_END End of reserved id range for heaps of type
* ION_HEAP_TYPE_CARVEOUT
* @ION_HEAP_DMA_START Start of reserved id range for heaps of type
* ION_HEAP_TYPE_DMA
* @ION_HEAP_DMA_END End of reserved id range for heaps of type
@ -60,14 +45,10 @@ enum ion_heap_type {
*/
enum ion_heap_id {
ION_HEAP_SYSTEM = (1 << ION_HEAP_TYPE_SYSTEM),
ION_HEAP_SYSTEM_CONTIG = (ION_HEAP_SYSTEM << 1),
ION_HEAP_CARVEOUT_START = (ION_HEAP_SYSTEM_CONTIG << 1),
ION_HEAP_CARVEOUT_END = (ION_HEAP_CARVEOUT_START << 4),
ION_HEAP_CHUNK = (ION_HEAP_CARVEOUT_END << 1),
ION_HEAP_DMA_START = (ION_HEAP_CHUNK << 1),
ION_HEAP_DMA_START = (ION_HEAP_SYSTEM << 1),
ION_HEAP_DMA_END = (ION_HEAP_DMA_START << 7),
ION_HEAP_CUSTOM_START = (ION_HEAP_DMA_END << 1),
ION_HEAP_CUSTOM_END = (ION_HEAP_CUSTOM_START << 15),
ION_HEAP_CUSTOM_END = (ION_HEAP_CUSTOM_START << 22),
};
#define ION_NUM_MAX_HEAPS (32)