static int __init mt_mspace_probe(struct platform_device *dev) { struct resource *regs; struct exm_info *info; extmem_printk("[EXT_MEM] probing mt_mspace\n"); info = kzalloc(sizeof(struct exm_info), GFP_KERNEL); if (!info) return -ENOMEM; extmem_init(); info->mem[0].addr = get_max_phys_addr(); info->mem[0].size = extmem_mspace_size; info->mmap = mtk_mspace_mmap_physical; if (!info->mem[0].addr) { dev_err(&dev->dev, "Invalid memory resource\n"); return -ENODEV; } info->version = "0.0.2"; info->name= DEV_DRV_NAME; if (exm_register_device(&dev->dev, info)) { iounmap(info->mem[0].internal_addr); printk("[EXT_MEM] exm_register failed\n"); return -ENODEV; } platform_set_drvdata(dev, info); printk("[EXT_MEM] probing mt_mspace success\n"); return 0; }
void* extmem_malloc_page_align(size_t bytes) { void *mem = NULL; extmem_init(); mem = mspace_memalign(extmem_mspace, 1<<PAGE_SHIFT, bytes); extmem_printk("[EXT_MEM] %s mem:%p, size: 0x%zx\n", __FUNCTION__, mem, bytes); return mem; }
void* extmem_malloc(size_t bytes) { void *mem = NULL; extmem_init(); mem = mspace_malloc(extmem_mspace, bytes); extmem_printk("[EXT_MEM] %s mem:%p, size: 0x%zx\n", __FUNCTION__, mem, bytes); return mem; }
void init_working_mem(void) { #if (defined(DRV_ISP_6219_SERIES)||defined(DRV_ISP_6227_SERIES)||defined(DRV_ISP_6225_SERIES)) intmem_init((kal_uint32 *) g_usbvideo_camera_data.intmem_start_address, g_usbvideo_camera_data.intmem_size); extmem_init((kal_uint32 *) g_usbvideo_camera_data.extmem_start_address, g_usbvideo_camera_data.extmem_size); #endif }
void* extmem_malloc_page_align(size_t bytes) { extmem_init(); extmem_printk("[EXT_MEM] %s size: 0x%x\n", __FUNCTION__, bytes); return mspace_memalign(extmem_mspace, 1<<PAGE_SHIFT, bytes); }
void* extmem_malloc(size_t bytes) { extmem_init(); extmem_printk("[EXT_MEM] %s size: 0x%x\n", __FUNCTION__, bytes); return mspace_malloc(extmem_mspace, bytes); }