Commit 27b795ad authored by Yong Zhi's avatar Yong Zhi Committed by Mauro Carvalho Chehab

media: ipu3-imgu: Prefix functions with imgu_* instead of ipu3_*

This addresses the below TODO item, no function related changes:

- Prefix imgu for all public APIs, i.e. change ipu3_v4l2_register() to
  imgu_v4l2_register(). (Sakari)

The changes were obtained by applying the following perl script
to driver code under drivers/staging/media/ipu3/.

perl -pi.back -e 's/ipu3_(?!uapi)/imgu_/g;'
Signed-off-by: default avatarYong Zhi <yong.zhi@intel.com>
Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 1d4c41f3
...@@ -8,9 +8,6 @@ staging directory. ...@@ -8,9 +8,6 @@ staging directory.
- Using ENABLED and IMMUTABLE link flags for the links where those are - Using ENABLED and IMMUTABLE link flags for the links where those are
relevant. (Sakari) relevant. (Sakari)
- Prefix imgu for all public APIs, i.e. change ipu3_v4l2_register() to
imgu_v4l2_register(). (Sakari)
- IPU3 driver documentation (Laurent) - IPU3 driver documentation (Laurent)
Add diagram in driver rst to describe output capability. Add diagram in driver rst to describe output capability.
Comments on configuring v4l2 subdevs for CIO2 and ImgU. Comments on configuring v4l2 subdevs for CIO2 and ImgU.
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include "ipu3-css-fw.h" #include "ipu3-css-fw.h"
#include "ipu3-dmamap.h" #include "ipu3-dmamap.h"
static void ipu3_css_fw_show_binary(struct device *dev, struct imgu_fw_info *bi, static void imgu_css_fw_show_binary(struct device *dev, struct imgu_fw_info *bi,
const char *name) const char *name)
{ {
unsigned int i; unsigned int i;
...@@ -54,7 +54,7 @@ static void ipu3_css_fw_show_binary(struct device *dev, struct imgu_fw_info *bi, ...@@ -54,7 +54,7 @@ static void ipu3_css_fw_show_binary(struct device *dev, struct imgu_fw_info *bi,
dev_dbg(dev, "\n"); dev_dbg(dev, "\n");
} }
unsigned int ipu3_css_fw_obgrid_size(const struct imgu_fw_info *bi) unsigned int imgu_css_fw_obgrid_size(const struct imgu_fw_info *bi)
{ {
unsigned int width = DIV_ROUND_UP(bi->info.isp.sp.internal.max_width, unsigned int width = DIV_ROUND_UP(bi->info.isp.sp.internal.max_width,
IMGU_OBGRID_TILE_SIZE * 2) + 1; IMGU_OBGRID_TILE_SIZE * 2) + 1;
...@@ -69,7 +69,7 @@ unsigned int ipu3_css_fw_obgrid_size(const struct imgu_fw_info *bi) ...@@ -69,7 +69,7 @@ unsigned int ipu3_css_fw_obgrid_size(const struct imgu_fw_info *bi)
return obgrid_size; return obgrid_size;
} }
void *ipu3_css_fw_pipeline_params(struct ipu3_css *css, unsigned int pipe, void *imgu_css_fw_pipeline_params(struct imgu_css *css, unsigned int pipe,
enum imgu_abi_param_class cls, enum imgu_abi_param_class cls,
enum imgu_abi_memories mem, enum imgu_abi_memories mem,
struct imgu_fw_isp_parameter *par, struct imgu_fw_isp_parameter *par,
...@@ -91,7 +91,7 @@ void *ipu3_css_fw_pipeline_params(struct ipu3_css *css, unsigned int pipe, ...@@ -91,7 +91,7 @@ void *ipu3_css_fw_pipeline_params(struct ipu3_css *css, unsigned int pipe,
return binary_params + par->offset; return binary_params + par->offset;
} }
void ipu3_css_fw_cleanup(struct ipu3_css *css) void imgu_css_fw_cleanup(struct imgu_css *css)
{ {
struct imgu_device *imgu = dev_get_drvdata(css->dev); struct imgu_device *imgu = dev_get_drvdata(css->dev);
...@@ -99,7 +99,7 @@ void ipu3_css_fw_cleanup(struct ipu3_css *css) ...@@ -99,7 +99,7 @@ void ipu3_css_fw_cleanup(struct ipu3_css *css)
unsigned int i; unsigned int i;
for (i = 0; i < css->fwp->file_header.binary_nr; i++) for (i = 0; i < css->fwp->file_header.binary_nr; i++)
ipu3_dmamap_free(imgu, &css->binary[i]); imgu_dmamap_free(imgu, &css->binary[i]);
kfree(css->binary); kfree(css->binary);
} }
if (css->fw) if (css->fw)
...@@ -109,7 +109,7 @@ void ipu3_css_fw_cleanup(struct ipu3_css *css) ...@@ -109,7 +109,7 @@ void ipu3_css_fw_cleanup(struct ipu3_css *css)
css->fw = NULL; css->fw = NULL;
} }
int ipu3_css_fw_init(struct ipu3_css *css) int imgu_css_fw_init(struct imgu_css *css)
{ {
static const u32 BLOCK_MAX = 65536; static const u32 BLOCK_MAX = 65536;
struct imgu_device *imgu = dev_get_drvdata(css->dev); struct imgu_device *imgu = dev_get_drvdata(css->dev);
...@@ -227,7 +227,7 @@ int ipu3_css_fw_init(struct ipu3_css *css) ...@@ -227,7 +227,7 @@ int ipu3_css_fw_init(struct ipu3_css *css)
css->fw->size) css->fw->size)
goto bad_fw; goto bad_fw;
ipu3_css_fw_show_binary(dev, bi, name); imgu_css_fw_show_binary(dev, bi, name);
} }
if (css->fw_bl == -1 || css->fw_sp[0] == -1 || css->fw_sp[1] == -1) if (css->fw_bl == -1 || css->fw_sp[0] == -1 || css->fw_sp[1] == -1)
...@@ -246,7 +246,7 @@ int ipu3_css_fw_init(struct ipu3_css *css) ...@@ -246,7 +246,7 @@ int ipu3_css_fw_init(struct ipu3_css *css)
void *blob = (void *)css->fwp + bi->blob.offset; void *blob = (void *)css->fwp + bi->blob.offset;
size_t size = bi->blob.size; size_t size = bi->blob.size;
if (!ipu3_dmamap_alloc(imgu, &css->binary[i], size)) { if (!imgu_dmamap_alloc(imgu, &css->binary[i], size)) {
r = -ENOMEM; r = -ENOMEM;
goto error_out; goto error_out;
} }
...@@ -260,6 +260,6 @@ int ipu3_css_fw_init(struct ipu3_css *css) ...@@ -260,6 +260,6 @@ int ipu3_css_fw_init(struct ipu3_css *css)
r = -ENODEV; r = -ENODEV;
error_out: error_out:
ipu3_css_fw_cleanup(css); imgu_css_fw_cleanup(css);
return r; return r;
} }
...@@ -175,11 +175,11 @@ struct imgu_fw_header { ...@@ -175,11 +175,11 @@ struct imgu_fw_header {
/******************* Firmware functions *******************/ /******************* Firmware functions *******************/
int ipu3_css_fw_init(struct ipu3_css *css); int imgu_css_fw_init(struct imgu_css *css);
void ipu3_css_fw_cleanup(struct ipu3_css *css); void imgu_css_fw_cleanup(struct imgu_css *css);
unsigned int ipu3_css_fw_obgrid_size(const struct imgu_fw_info *bi); unsigned int imgu_css_fw_obgrid_size(const struct imgu_fw_info *bi);
void *ipu3_css_fw_pipeline_params(struct ipu3_css *css, unsigned int pipe, void *imgu_css_fw_pipeline_params(struct imgu_css *css, unsigned int pipe,
enum imgu_abi_param_class cls, enum imgu_abi_param_class cls,
enum imgu_abi_memories mem, enum imgu_abi_memories mem,
struct imgu_fw_isp_parameter *par, struct imgu_fw_isp_parameter *par,
......
...@@ -4,23 +4,23 @@ ...@@ -4,23 +4,23 @@
#ifndef __IPU3_PARAMS_H #ifndef __IPU3_PARAMS_H
#define __IPU3_PARAMS_H #define __IPU3_PARAMS_H
int ipu3_css_cfg_acc(struct ipu3_css *css, unsigned int pipe, int imgu_css_cfg_acc(struct imgu_css *css, unsigned int pipe,
struct ipu3_uapi_flags *use, struct ipu3_uapi_flags *use,
struct imgu_abi_acc_param *acc, struct imgu_abi_acc_param *acc,
struct imgu_abi_acc_param *acc_old, struct imgu_abi_acc_param *acc_old,
struct ipu3_uapi_acc_param *acc_user); struct ipu3_uapi_acc_param *acc_user);
int ipu3_css_cfg_vmem0(struct ipu3_css *css, unsigned int pipe, int imgu_css_cfg_vmem0(struct imgu_css *css, unsigned int pipe,
struct ipu3_uapi_flags *use, struct ipu3_uapi_flags *use,
void *vmem0, void *vmem0_old, void *vmem0, void *vmem0_old,
struct ipu3_uapi_params *user); struct ipu3_uapi_params *user);
int ipu3_css_cfg_dmem0(struct ipu3_css *css, unsigned int pipe, int imgu_css_cfg_dmem0(struct imgu_css *css, unsigned int pipe,
struct ipu3_uapi_flags *use, struct ipu3_uapi_flags *use,
void *dmem0, void *dmem0_old, void *dmem0, void *dmem0_old,
struct ipu3_uapi_params *user); struct ipu3_uapi_params *user);
void ipu3_css_cfg_gdc_table(struct imgu_abi_gdc_warp_param *gdc, void imgu_css_cfg_gdc_table(struct imgu_abi_gdc_warp_param *gdc,
int frame_in_x, int frame_in_y, int frame_in_x, int frame_in_y,
int frame_out_x, int frame_out_y, int frame_out_x, int frame_out_y,
int env_w, int env_h); int env_w, int env_h);
......
...@@ -7,30 +7,30 @@ ...@@ -7,30 +7,30 @@
#include "ipu3-css-pool.h" #include "ipu3-css-pool.h"
#include "ipu3-dmamap.h" #include "ipu3-dmamap.h"
int ipu3_css_dma_buffer_resize(struct imgu_device *imgu, int imgu_css_dma_buffer_resize(struct imgu_device *imgu,
struct ipu3_css_map *map, size_t size) struct imgu_css_map *map, size_t size)
{ {
if (map->size < size && map->vaddr) { if (map->size < size && map->vaddr) {
dev_warn(&imgu->pci_dev->dev, "dma buf resized from %zu to %zu", dev_warn(&imgu->pci_dev->dev, "dma buf resized from %zu to %zu",
map->size, size); map->size, size);
ipu3_dmamap_free(imgu, map); imgu_dmamap_free(imgu, map);
if (!ipu3_dmamap_alloc(imgu, map, size)) if (!imgu_dmamap_alloc(imgu, map, size))
return -ENOMEM; return -ENOMEM;
} }
return 0; return 0;
} }
void ipu3_css_pool_cleanup(struct imgu_device *imgu, struct ipu3_css_pool *pool) void imgu_css_pool_cleanup(struct imgu_device *imgu, struct imgu_css_pool *pool)
{ {
unsigned int i; unsigned int i;
for (i = 0; i < IPU3_CSS_POOL_SIZE; i++) for (i = 0; i < IPU3_CSS_POOL_SIZE; i++)
ipu3_dmamap_free(imgu, &pool->entry[i].param); imgu_dmamap_free(imgu, &pool->entry[i].param);
} }
int ipu3_css_pool_init(struct imgu_device *imgu, struct ipu3_css_pool *pool, int imgu_css_pool_init(struct imgu_device *imgu, struct imgu_css_pool *pool,
size_t size) size_t size)
{ {
unsigned int i; unsigned int i;
...@@ -42,7 +42,7 @@ int ipu3_css_pool_init(struct imgu_device *imgu, struct ipu3_css_pool *pool, ...@@ -42,7 +42,7 @@ int ipu3_css_pool_init(struct imgu_device *imgu, struct ipu3_css_pool *pool,
continue; continue;
} }
if (!ipu3_dmamap_alloc(imgu, &pool->entry[i].param, size)) if (!imgu_dmamap_alloc(imgu, &pool->entry[i].param, size))
goto fail; goto fail;
} }
...@@ -51,14 +51,14 @@ int ipu3_css_pool_init(struct imgu_device *imgu, struct ipu3_css_pool *pool, ...@@ -51,14 +51,14 @@ int ipu3_css_pool_init(struct imgu_device *imgu, struct ipu3_css_pool *pool,
return 0; return 0;
fail: fail:
ipu3_css_pool_cleanup(imgu, pool); imgu_css_pool_cleanup(imgu, pool);
return -ENOMEM; return -ENOMEM;
} }
/* /*
* Allocate a new parameter via recycling the oldest entry in the pool. * Allocate a new parameter via recycling the oldest entry in the pool.
*/ */
void ipu3_css_pool_get(struct ipu3_css_pool *pool) void imgu_css_pool_get(struct imgu_css_pool *pool)
{ {
/* Get the oldest entry */ /* Get the oldest entry */
u32 n = (pool->last + 1) % IPU3_CSS_POOL_SIZE; u32 n = (pool->last + 1) % IPU3_CSS_POOL_SIZE;
...@@ -70,25 +70,25 @@ void ipu3_css_pool_get(struct ipu3_css_pool *pool) ...@@ -70,25 +70,25 @@ void ipu3_css_pool_get(struct ipu3_css_pool *pool)
/* /*
* Undo, for all practical purposes, the effect of pool_get(). * Undo, for all practical purposes, the effect of pool_get().
*/ */
void ipu3_css_pool_put(struct ipu3_css_pool *pool) void imgu_css_pool_put(struct imgu_css_pool *pool)
{ {
pool->entry[pool->last].valid = false; pool->entry[pool->last].valid = false;
pool->last = (pool->last + IPU3_CSS_POOL_SIZE - 1) % IPU3_CSS_POOL_SIZE; pool->last = (pool->last + IPU3_CSS_POOL_SIZE - 1) % IPU3_CSS_POOL_SIZE;
} }
/** /**
* ipu3_css_pool_last - Retrieve the nth pool entry from last * imgu_css_pool_last - Retrieve the nth pool entry from last
* *
* @pool: a pointer to &struct ipu3_css_pool. * @pool: a pointer to &struct imgu_css_pool.
* @n: the distance to the last index. * @n: the distance to the last index.
* *
* Returns: * Returns:
* The nth entry from last or null map to indicate no frame stored. * The nth entry from last or null map to indicate no frame stored.
*/ */
const struct ipu3_css_map * const struct imgu_css_map *
ipu3_css_pool_last(struct ipu3_css_pool *pool, unsigned int n) imgu_css_pool_last(struct imgu_css_pool *pool, unsigned int n)
{ {
static const struct ipu3_css_map null_map = { 0 }; static const struct imgu_css_map null_map = { 0 };
int i = (pool->last + IPU3_CSS_POOL_SIZE - n) % IPU3_CSS_POOL_SIZE; int i = (pool->last + IPU3_CSS_POOL_SIZE - n) % IPU3_CSS_POOL_SIZE;
WARN_ON(n >= IPU3_CSS_POOL_SIZE); WARN_ON(n >= IPU3_CSS_POOL_SIZE);
......
...@@ -10,15 +10,15 @@ struct imgu_device; ...@@ -10,15 +10,15 @@ struct imgu_device;
#define IPU3_CSS_POOL_SIZE 4 #define IPU3_CSS_POOL_SIZE 4
/** /**
* ipu3_css_map - store DMA mapping info for buffer * imgu_css_map - store DMA mapping info for buffer
* *
* @size: size of the buffer in bytes. * @size: size of the buffer in bytes.
* @vaddr: kernel virtual address. * @vaddr: kernel virtual address.
* @daddr: iova dma address to access IPU3. * @daddr: iova dma address to access IPU3.
* @vma: private, a pointer to &struct vm_struct, * @vma: private, a pointer to &struct vm_struct,
* used for ipu3_dmamap_free. * used for imgu_dmamap_free.
*/ */
struct ipu3_css_map { struct imgu_css_map {
size_t size; size_t size;
void *vaddr; void *vaddr;
dma_addr_t daddr; dma_addr_t daddr;
...@@ -26,30 +26,30 @@ struct ipu3_css_map { ...@@ -26,30 +26,30 @@ struct ipu3_css_map {
}; };
/** /**
* ipu3_css_pool - circular buffer pool definition * imgu_css_pool - circular buffer pool definition
* *
* @entry: array with IPU3_CSS_POOL_SIZE elements. * @entry: array with IPU3_CSS_POOL_SIZE elements.
* @entry.param: a &struct ipu3_css_map for storing the mem mapping. * @entry.param: a &struct imgu_css_map for storing the mem mapping.
* @entry.valid: used to mark if the entry has valid data. * @entry.valid: used to mark if the entry has valid data.
* @last: write pointer, initialized to IPU3_CSS_POOL_SIZE. * @last: write pointer, initialized to IPU3_CSS_POOL_SIZE.
*/ */
struct ipu3_css_pool { struct imgu_css_pool {
struct { struct {
struct ipu3_css_map param; struct imgu_css_map param;
bool valid; bool valid;
} entry[IPU3_CSS_POOL_SIZE]; } entry[IPU3_CSS_POOL_SIZE];
u32 last; u32 last;
}; };
int ipu3_css_dma_buffer_resize(struct imgu_device *imgu, int imgu_css_dma_buffer_resize(struct imgu_device *imgu,
struct ipu3_css_map *map, size_t size); struct imgu_css_map *map, size_t size);
void ipu3_css_pool_cleanup(struct imgu_device *imgu, void imgu_css_pool_cleanup(struct imgu_device *imgu,
struct ipu3_css_pool *pool); struct imgu_css_pool *pool);
int ipu3_css_pool_init(struct imgu_device *imgu, struct ipu3_css_pool *pool, int imgu_css_pool_init(struct imgu_device *imgu, struct imgu_css_pool *pool,
size_t size); size_t size);
void ipu3_css_pool_get(struct ipu3_css_pool *pool); void imgu_css_pool_get(struct imgu_css_pool *pool);
void ipu3_css_pool_put(struct ipu3_css_pool *pool); void imgu_css_pool_put(struct imgu_css_pool *pool);
const struct ipu3_css_map *ipu3_css_pool_last(struct ipu3_css_pool *pool, const struct imgu_css_map *imgu_css_pool_last(struct imgu_css_pool *pool,
u32 last); u32 last);
#endif #endif
This diff is collapsed.
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
* The pipe id type, distinguishes the kind of pipes that * The pipe id type, distinguishes the kind of pipes that
* can be run in parallel. * can be run in parallel.
*/ */
enum ipu3_css_pipe_id { enum imgu_css_pipe_id {
IPU3_CSS_PIPE_ID_PREVIEW, IPU3_CSS_PIPE_ID_PREVIEW,
IPU3_CSS_PIPE_ID_COPY, IPU3_CSS_PIPE_ID_COPY,
IPU3_CSS_PIPE_ID_VIDEO, IPU3_CSS_PIPE_ID_VIDEO,
...@@ -53,29 +53,29 @@ enum ipu3_css_pipe_id { ...@@ -53,29 +53,29 @@ enum ipu3_css_pipe_id {
IPU3_CSS_PIPE_ID_NUM IPU3_CSS_PIPE_ID_NUM
}; };
struct ipu3_css_resolution { struct imgu_css_resolution {
u32 w; u32 w;
u32 h; u32 h;
}; };
enum ipu3_css_buffer_state { enum imgu_css_buffer_state {
IPU3_CSS_BUFFER_NEW, /* Not yet queued */ IPU3_CSS_BUFFER_NEW, /* Not yet queued */
IPU3_CSS_BUFFER_QUEUED, /* Queued, waiting to be filled */ IPU3_CSS_BUFFER_QUEUED, /* Queued, waiting to be filled */
IPU3_CSS_BUFFER_DONE, /* Finished processing, removed from queue */ IPU3_CSS_BUFFER_DONE, /* Finished processing, removed from queue */
IPU3_CSS_BUFFER_FAILED, /* Was not processed, removed from queue */ IPU3_CSS_BUFFER_FAILED, /* Was not processed, removed from queue */
}; };
struct ipu3_css_buffer { struct imgu_css_buffer {
/* Private fields: user doesn't touch */ /* Private fields: user doesn't touch */
dma_addr_t daddr; dma_addr_t daddr;
unsigned int queue; unsigned int queue;
enum ipu3_css_buffer_state state; enum imgu_css_buffer_state state;
struct list_head list; struct list_head list;
u8 queue_pos; u8 queue_pos;
unsigned int pipe; unsigned int pipe;
}; };
struct ipu3_css_format { struct imgu_css_format {
u32 pixelformat; u32 pixelformat;
enum v4l2_colorspace colorspace; enum v4l2_colorspace colorspace;
enum imgu_abi_frame_format frame_format; enum imgu_abi_frame_format frame_format;
...@@ -89,22 +89,22 @@ struct ipu3_css_format { ...@@ -89,22 +89,22 @@ struct ipu3_css_format {
u8 flags; u8 flags;
}; };
struct ipu3_css_queue { struct imgu_css_queue {
union { union {
struct v4l2_pix_format_mplane mpix; struct v4l2_pix_format_mplane mpix;
struct v4l2_meta_format meta; struct v4l2_meta_format meta;
} fmt; } fmt;
const struct ipu3_css_format *css_fmt; const struct imgu_css_format *css_fmt;
unsigned int width_pad; unsigned int width_pad;
struct list_head bufs; struct list_head bufs;
}; };
struct ipu3_css_pipe { struct imgu_css_pipe {
enum ipu3_css_pipe_id pipe_id; enum imgu_css_pipe_id pipe_id;
unsigned int bindex; unsigned int bindex;
struct ipu3_css_queue queue[IPU3_CSS_QUEUES]; struct imgu_css_queue queue[IPU3_CSS_QUEUES];
struct v4l2_rect rect[IPU3_CSS_RECTS]; struct v4l2_rect rect[IPU3_CSS_RECTS];
bool vf_output_en; bool vf_output_en;
...@@ -112,21 +112,21 @@ struct ipu3_css_pipe { ...@@ -112,21 +112,21 @@ struct ipu3_css_pipe {
spinlock_t qlock; spinlock_t qlock;
/* Data structures shared with IMGU and driver, always allocated */ /* Data structures shared with IMGU and driver, always allocated */
struct ipu3_css_map sp_ddr_ptrs; struct imgu_css_map sp_ddr_ptrs;
struct ipu3_css_map xmem_sp_stage_ptrs[IPU3_CSS_PIPE_ID_NUM] struct imgu_css_map xmem_sp_stage_ptrs[IPU3_CSS_PIPE_ID_NUM]
[IMGU_ABI_MAX_STAGES]; [IMGU_ABI_MAX_STAGES];
struct ipu3_css_map xmem_isp_stage_ptrs[IPU3_CSS_PIPE_ID_NUM] struct imgu_css_map xmem_isp_stage_ptrs[IPU3_CSS_PIPE_ID_NUM]
[IMGU_ABI_MAX_STAGES]; [IMGU_ABI_MAX_STAGES];
/* /*
* Data structures shared with IMGU and driver, binary specific. * Data structures shared with IMGU and driver, binary specific.
* PARAM_CLASS_CONFIG and PARAM_CLASS_STATE parameters. * PARAM_CLASS_CONFIG and PARAM_CLASS_STATE parameters.
*/ */
struct ipu3_css_map binary_params_cs[IMGU_ABI_PARAM_CLASS_NUM - 1] struct imgu_css_map binary_params_cs[IMGU_ABI_PARAM_CLASS_NUM - 1]
[IMGU_ABI_NUM_MEMORIES]; [IMGU_ABI_NUM_MEMORIES];
struct { struct {
struct ipu3_css_map mem[IPU3_CSS_AUX_FRAMES]; struct imgu_css_map mem[IPU3_CSS_AUX_FRAMES];
unsigned int width; unsigned int width;
unsigned int height; unsigned int height;
unsigned int bytesperline; unsigned int bytesperline;
...@@ -134,76 +134,76 @@ struct ipu3_css_pipe { ...@@ -134,76 +134,76 @@ struct ipu3_css_pipe {
} aux_frames[IPU3_CSS_AUX_FRAME_TYPES]; } aux_frames[IPU3_CSS_AUX_FRAME_TYPES];
struct { struct {
struct ipu3_css_pool parameter_set_info; struct imgu_css_pool parameter_set_info;
struct ipu3_css_pool acc; struct imgu_css_pool acc;
struct ipu3_css_pool gdc; struct imgu_css_pool gdc;
struct ipu3_css_pool obgrid; struct imgu_css_pool obgrid;
/* PARAM_CLASS_PARAM parameters for binding while streaming */ /* PARAM_CLASS_PARAM parameters for binding while streaming */
struct ipu3_css_pool binary_params_p[IMGU_ABI_NUM_MEMORIES]; struct imgu_css_pool binary_params_p[IMGU_ABI_NUM_MEMORIES];
} pool; } pool;
struct ipu3_css_map abi_buffers[IPU3_CSS_QUEUES] struct imgu_css_map abi_buffers[IPU3_CSS_QUEUES]
[IMGU_ABI_HOST2SP_BUFQ_SIZE]; [IMGU_ABI_HOST2SP_BUFQ_SIZE];
}; };
/* IPU3 Camera Sub System structure */ /* IPU3 Camera Sub System structure */
struct ipu3_css { struct imgu_css {
struct device *dev; struct device *dev;
void __iomem *base; void __iomem *base;
const struct firmware *fw; const struct firmware *fw;
struct imgu_fw_header *fwp; struct imgu_fw_header *fwp;
int iomem_length; int iomem_length;
int fw_bl, fw_sp[IMGU_NUM_SP]; /* Indices of bl and SP binaries */ int fw_bl, fw_sp[IMGU_NUM_SP]; /* Indices of bl and SP binaries */
struct ipu3_css_map *binary; /* fw binaries mapped to device */ struct imgu_css_map *binary; /* fw binaries mapped to device */
bool streaming; /* true when streaming is enabled */ bool streaming; /* true when streaming is enabled */
struct ipu3_css_pipe pipes[IMGU_MAX_PIPE_NUM]; struct imgu_css_pipe pipes[IMGU_MAX_PIPE_NUM];
struct ipu3_css_map xmem_sp_group_ptrs; struct imgu_css_map xmem_sp_group_ptrs;
/* enabled pipe(s) */ /* enabled pipe(s) */
DECLARE_BITMAP(enabled_pipes, IMGU_MAX_PIPE_NUM); DECLARE_BITMAP(enabled_pipes, IMGU_MAX_PIPE_NUM);
}; };
/******************* css v4l *******************/ /******************* css v4l *******************/
int ipu3_css_init(struct device *dev, struct ipu3_css *css, int imgu_css_init(struct device *dev, struct imgu_css *css,
void __iomem *base, int length); void __iomem *base, int length);
void ipu3_css_cleanup(struct ipu3_css *css); void imgu_css_cleanup(struct imgu_css *css);
int ipu3_css_fmt_try(struct ipu3_css *css, int imgu_css_fmt_try(struct imgu_css *css,
struct v4l2_pix_format_mplane *fmts[IPU3_CSS_QUEUES], struct v4l2_pix_format_mplane *fmts[IPU3_CSS_QUEUES],
struct v4l2_rect *rects[IPU3_CSS_RECTS], struct v4l2_rect *rects[IPU3_CSS_RECTS],
unsigned int pipe); unsigned int pipe);
int ipu3_css_fmt_set(struct ipu3_css *css, int imgu_css_fmt_set(struct imgu_css *css,
struct v4l2_pix_format_mplane *fmts[IPU3_CSS_QUEUES], struct v4l2_pix_format_mplane *fmts[IPU3_CSS_QUEUES],
struct v4l2_rect *rects[IPU3_CSS_RECTS], struct v4l2_rect *rects[IPU3_CSS_RECTS],
unsigned int pipe); unsigned int pipe);
int ipu3_css_meta_fmt_set(struct v4l2_meta_format *fmt); int imgu_css_meta_fmt_set(struct v4l2_meta_format *fmt);
int ipu3_css_buf_queue(struct ipu3_css *css, unsigned int pipe, int imgu_css_buf_queue(struct imgu_css *css, unsigned int pipe,
struct ipu3_css_buffer *b); struct imgu_css_buffer *b);
struct ipu3_css_buffer *ipu3_css_buf_dequeue(struct ipu3_css *css); struct imgu_css_buffer *imgu_css_buf_dequeue(struct imgu_css *css);
int ipu3_css_start_streaming(struct ipu3_css *css); int imgu_css_start_streaming(struct imgu_css *css);
void ipu3_css_stop_streaming(struct ipu3_css *css); void imgu_css_stop_streaming(struct imgu_css *css);
bool ipu3_css_queue_empty(struct ipu3_css *css); bool imgu_css_queue_empty(struct imgu_css *css);
bool ipu3_css_is_streaming(struct ipu3_css *css); bool imgu_css_is_streaming(struct imgu_css *css);
bool ipu3_css_pipe_queue_empty(struct ipu3_css *css, unsigned int pipe); bool imgu_css_pipe_queue_empty(struct imgu_css *css, unsigned int pipe);
/******************* css hw *******************/ /******************* css hw *******************/
int ipu3_css_set_powerup(struct device *dev, void __iomem *base); int imgu_css_set_powerup(struct device *dev, void __iomem *base);
void ipu3_css_set_powerdown(struct device *dev, void __iomem *base); void imgu_css_set_powerdown(struct device *dev, void __iomem *base);
int ipu3_css_irq_ack(struct ipu3_css *css); int imgu_css_irq_ack(struct imgu_css *css);
/******************* set parameters ************/ /******************* set parameters ************/
int ipu3_css_set_parameters(struct ipu3_css *css, unsigned int pipe, int imgu_css_set_parameters(struct imgu_css *css, unsigned int pipe,
struct ipu3_uapi_params *set_params); struct ipu3_uapi_params *set_params);
/******************* auxiliary helpers *******************/ /******************* auxiliary helpers *******************/
static inline enum ipu3_css_buffer_state static inline enum imgu_css_buffer_state
ipu3_css_buf_state(struct ipu3_css_buffer *b) imgu_css_buf_state(struct imgu_css_buffer *b)
{ {
return b->state; return b->state;
} }
/* Initialize given buffer. May be called several times. */ /* Initialize given buffer. May be called several times. */
static inline void ipu3_css_buf_init(struct ipu3_css_buffer *b, static inline void imgu_css_buf_init(struct imgu_css_buffer *b,
unsigned int queue, dma_addr_t daddr) unsigned int queue, dma_addr_t daddr)
{ {
b->state = IPU3_CSS_BUFFER_NEW; b->state = IPU3_CSS_BUFFER_NEW;
......
...@@ -15,9 +15,9 @@ ...@@ -15,9 +15,9 @@
#include "ipu3-dmamap.h" #include "ipu3-dmamap.h"
/* /*
* Free a buffer allocated by ipu3_dmamap_alloc_buffer() * Free a buffer allocated by imgu_dmamap_alloc_buffer()
*/ */
static void ipu3_dmamap_free_buffer(struct page **pages, static void imgu_dmamap_free_buffer(struct page **pages,
size_t size) size_t size)
{ {
int count = size >> PAGE_SHIFT; int count = size >> PAGE_SHIFT;
...@@ -31,7 +31,7 @@ static void ipu3_dmamap_free_buffer(struct page **pages, ...@@ -31,7 +31,7 @@ static void ipu3_dmamap_free_buffer(struct page **pages,
* Based on the implementation of __iommu_dma_alloc_pages() * Based on the implementation of __iommu_dma_alloc_pages()
* defined in drivers/iommu/dma-iommu.c * defined in drivers/iommu/dma-iommu.c
*/ */
static struct page **ipu3_dmamap_alloc_buffer(size_t size, static struct page **imgu_dmamap_alloc_buffer(size_t size,
unsigned long order_mask, unsigned long order_mask,
gfp_t gfp) gfp_t gfp)
{ {
...@@ -74,7 +74,7 @@ static struct page **ipu3_dmamap_alloc_buffer(size_t size, ...@@ -74,7 +74,7 @@ static struct page **ipu3_dmamap_alloc_buffer(size_t size,
__free_pages(page, order); __free_pages(page, order);
} }
if (!page) { if (!page) {
ipu3_dmamap_free_buffer(pages, i << PAGE_SHIFT); imgu_dmamap_free_buffer(pages, i << PAGE_SHIFT);
return NULL; return NULL;
} }
count -= order_size; count -= order_size;
...@@ -86,7 +86,7 @@ static struct page **ipu3_dmamap_alloc_buffer(size_t size, ...@@ -86,7 +86,7 @@ static struct page **ipu3_dmamap_alloc_buffer(size_t size,
} }
/** /**
* ipu3_dmamap_alloc - allocate and map a buffer into KVA * imgu_dmamap_alloc - allocate and map a buffer into KVA
* @imgu: struct device pointer * @imgu: struct device pointer
* @map: struct to store mapping variables * @map: struct to store mapping variables
* @len: size required * @len: size required
...@@ -95,7 +95,7 @@ static struct page **ipu3_dmamap_alloc_buffer(size_t size, ...@@ -95,7 +95,7 @@ static struct page **ipu3_dmamap_alloc_buffer(size_t size,
* KVA on success * KVA on success
* %NULL on failure * %NULL on failure
*/ */
void *ipu3_dmamap_alloc(struct imgu_device *imgu, struct ipu3_css_map *map, void *imgu_dmamap_alloc(struct imgu_device *imgu, struct imgu_css_map *map,
size_t len) size_t len)
{ {
unsigned long shift = iova_shift(&imgu->iova_domain); unsigned long shift = iova_shift(&imgu->iova_domain);
...@@ -114,7 +114,7 @@ void *ipu3_dmamap_alloc(struct imgu_device *imgu, struct ipu3_css_map *map, ...@@ -114,7 +114,7 @@ void *ipu3_dmamap_alloc(struct imgu_device *imgu, struct ipu3_css_map *map,
if (!iova) if (!iova)
return NULL; return NULL;
pages = ipu3_dmamap_alloc_buffer(size, alloc_sizes >> PAGE_SHIFT, pages = imgu_dmamap_alloc_buffer(size, alloc_sizes >> PAGE_SHIFT,
GFP_KERNEL); GFP_KERNEL);
if (!pages) if (!pages)
goto out_free_iova; goto out_free_iova;
...@@ -122,7 +122,7 @@ void *ipu3_dmamap_alloc(struct imgu_device *imgu, struct ipu3_css_map *map, ...@@ -122,7 +122,7 @@ void *ipu3_dmamap_alloc(struct imgu_device *imgu, struct ipu3_css_map *map,
/* Call IOMMU driver to setup pgt */ /* Call IOMMU driver to setup pgt */
iovaddr = iova_dma_addr(&imgu->iova_domain, iova); iovaddr = iova_dma_addr(&imgu->iova_domain, iova);
for (i = 0; i < size / PAGE_SIZE; ++i) { for (i = 0; i < size / PAGE_SIZE; ++i) {
rval = ipu3_mmu_map(imgu->mmu, iovaddr, rval = imgu_mmu_map(imgu->mmu, iovaddr,
page_to_phys(pages[i]), PAGE_SIZE); page_to_phys(pages[i]), PAGE_SIZE);
if (rval) if (rval)
goto out_unmap; goto out_unmap;
...@@ -153,8 +153,8 @@ void *ipu3_dmamap_alloc(struct imgu_device *imgu, struct ipu3_css_map *map, ...@@ -153,8 +153,8 @@ void *ipu3_dmamap_alloc(struct imgu_device *imgu, struct ipu3_css_map *map,
vunmap(map->vma->addr); vunmap(map->vma->addr);
out_unmap: out_unmap:
ipu3_dmamap_free_buffer(pages, size); imgu_dmamap_free_buffer(pages, size);
ipu3_mmu_unmap(imgu->mmu, iova_dma_addr(&imgu->iova_domain, iova), imgu_mmu_unmap(imgu->mmu, iova_dma_addr(&imgu->iova_domain, iova),
i * PAGE_SIZE); i * PAGE_SIZE);
map->vma = NULL; map->vma = NULL;
...@@ -164,7 +164,7 @@ void *ipu3_dmamap_alloc(struct imgu_device *imgu, struct ipu3_css_map *map, ...@@ -164,7 +164,7 @@ void *ipu3_dmamap_alloc(struct imgu_device *imgu, struct ipu3_css_map *map,
return NULL; return NULL;
} }
void ipu3_dmamap_unmap(struct imgu_device *imgu, struct ipu3_css_map *map) void imgu_dmamap_unmap(struct imgu_device *imgu, struct imgu_css_map *map)
{ {
struct iova *iova; struct iova *iova;
...@@ -173,16 +173,16 @@ void ipu3_dmamap_unmap(struct imgu_device *imgu, struct ipu3_css_map *map) ...@@ -173,16 +173,16 @@ void ipu3_dmamap_unmap(struct imgu_device *imgu, struct ipu3_css_map *map)
if (WARN_ON(!iova)) if (WARN_ON(!iova))
return; return;
ipu3_mmu_unmap(imgu->mmu, iova_dma_addr(&imgu->iova_domain, iova), imgu_mmu_unmap(imgu->mmu, iova_dma_addr(&imgu->iova_domain, iova),
iova_size(iova) << iova_shift(&imgu->iova_domain)); iova_size(iova) << iova_shift(&imgu->iova_domain));
__free_iova(&imgu->iova_domain, iova); __free_iova(&imgu->iova_domain, iova);
} }
/* /*
* Counterpart of ipu3_dmamap_alloc * Counterpart of imgu_dmamap_alloc
*/ */
void ipu3_dmamap_free(struct imgu_device *imgu, struct ipu3_css_map *map) void imgu_dmamap_free(struct imgu_device *imgu, struct imgu_css_map *map)
{ {
struct vm_struct *area = map->vma; struct vm_struct *area = map->vma;
...@@ -192,18 +192,18 @@ void ipu3_dmamap_free(struct imgu_device *imgu, struct ipu3_css_map *map) ...@@ -192,18 +192,18 @@ void ipu3_dmamap_free(struct imgu_device *imgu, struct ipu3_css_map *map)
if (!map->vaddr) if (!map->vaddr)
return; return;
ipu3_dmamap_unmap(imgu, map); imgu_dmamap_unmap(imgu, map);
if (WARN_ON(!area) || WARN_ON(!area->pages)) if (WARN_ON(!area) || WARN_ON(!area->pages))
return; return;
ipu3_dmamap_free_buffer(area->pages, map->size); imgu_dmamap_free_buffer(area->pages, map->size);
vunmap(map->vaddr); vunmap(map->vaddr);
map->vaddr = NULL; map->vaddr = NULL;
} }
int ipu3_dmamap_map_sg(struct imgu_device *imgu, struct scatterlist *sglist, int imgu_dmamap_map_sg(struct imgu_device *imgu, struct scatterlist *sglist,
int nents, struct ipu3_css_map *map) int nents, struct imgu_css_map *map)
{ {
unsigned long shift = iova_shift(&imgu->iova_domain); unsigned long shift = iova_shift(&imgu->iova_domain);
struct scatterlist *sg; struct scatterlist *sg;
...@@ -233,7 +233,7 @@ int ipu3_dmamap_map_sg(struct imgu_device *imgu, struct scatterlist *sglist, ...@@ -233,7 +233,7 @@ int ipu3_dmamap_map_sg(struct imgu_device *imgu, struct scatterlist *sglist,
dev_dbg(&imgu->pci_dev->dev, "dmamap: iova low pfn %lu, high pfn %lu\n", dev_dbg(&imgu->pci_dev->dev, "dmamap: iova low pfn %lu, high pfn %lu\n",
iova->pfn_lo, iova->pfn_hi); iova->pfn_lo, iova->pfn_hi);
if (ipu3_mmu_map_sg(imgu->mmu, iova_dma_addr(&imgu->iova_domain, iova), if (imgu_mmu_map_sg(imgu->mmu, iova_dma_addr(&imgu->iova_domain, iova),
sglist, nents) < size) sglist, nents) < size)
goto out_fail; goto out_fail;
...@@ -249,7 +249,7 @@ int ipu3_dmamap_map_sg(struct imgu_device *imgu, struct scatterlist *sglist, ...@@ -249,7 +249,7 @@ int ipu3_dmamap_map_sg(struct imgu_device *imgu, struct scatterlist *sglist,
return -EFAULT; return -EFAULT;
} }
int ipu3_dmamap_init(struct imgu_device *imgu) int imgu_dmamap_init(struct imgu_device *imgu)
{ {
unsigned long order, base_pfn; unsigned long order, base_pfn;
int ret = iova_cache_get(); int ret = iova_cache_get();
...@@ -264,7 +264,7 @@ int ipu3_dmamap_init(struct imgu_device *imgu) ...@@ -264,7 +264,7 @@ int ipu3_dmamap_init(struct imgu_device *imgu)
return 0; return 0;
} }
void ipu3_dmamap_exit(struct imgu_device *imgu) void imgu_dmamap_exit(struct imgu_device *imgu)
{ {
put_iova_domain(&imgu->iova_domain); put_iova_domain(&imgu->iova_domain);
iova_cache_put(); iova_cache_put();
......
...@@ -8,15 +8,15 @@ ...@@ -8,15 +8,15 @@
struct imgu_device; struct imgu_device;
struct scatterlist; struct scatterlist;
void *ipu3_dmamap_alloc(struct imgu_device *imgu, struct ipu3_css_map *map, void *imgu_dmamap_alloc(struct imgu_device *imgu, struct imgu_css_map *map,
size_t len); size_t len);
void ipu3_dmamap_free(struct imgu_device *imgu, struct ipu3_css_map *map); void imgu_dmamap_free(struct imgu_device *imgu, struct imgu_css_map *map);
int ipu3_dmamap_map_sg(struct imgu_device *imgu, struct scatterlist *sglist, int imgu_dmamap_map_sg(struct imgu_device *imgu, struct scatterlist *sglist,
int nents, struct ipu3_css_map *map); int nents, struct imgu_css_map *map);
void ipu3_dmamap_unmap(struct imgu_device *imgu, struct ipu3_css_map *map); void imgu_dmamap_unmap(struct imgu_device *imgu, struct imgu_css_map *map);
int ipu3_dmamap_init(struct imgu_device *imgu); int imgu_dmamap_init(struct imgu_device *imgu);
void ipu3_dmamap_exit(struct imgu_device *imgu); void imgu_dmamap_exit(struct imgu_device *imgu);
#endif #endif
This diff is collapsed.
...@@ -6,13 +6,13 @@ ...@@ -6,13 +6,13 @@
#define __IPU3_MMU_H #define __IPU3_MMU_H
/** /**
* struct ipu3_mmu_info - Describes mmu geometry * struct imgu_mmu_info - Describes mmu geometry
* *
* @aperture_start: First address that can be mapped * @aperture_start: First address that can be mapped
* @aperture_end: Last address that can be mapped * @aperture_end: Last address that can be mapped
* @pgsize_bitmap: Bitmap of page sizes in use * @pgsize_bitmap: Bitmap of page sizes in use
*/ */
struct ipu3_mmu_info { struct imgu_mmu_info {
dma_addr_t aperture_start; dma_addr_t aperture_start;
dma_addr_t aperture_end; dma_addr_t aperture_end;
unsigned long pgsize_bitmap; unsigned long pgsize_bitmap;
...@@ -21,15 +21,15 @@ struct ipu3_mmu_info { ...@@ -21,15 +21,15 @@ struct ipu3_mmu_info {
struct device; struct device;
struct scatterlist; struct scatterlist;
struct ipu3_mmu_info *ipu3_mmu_init(struct device *parent, void __iomem *base); struct imgu_mmu_info *imgu_mmu_init(struct device *parent, void __iomem *base);
void ipu3_mmu_exit(struct ipu3_mmu_info *info); void imgu_mmu_exit(struct imgu_mmu_info *info);
void ipu3_mmu_suspend(struct ipu3_mmu_info *info); void imgu_mmu_suspend(struct imgu_mmu_info *info);
void ipu3_mmu_resume(struct ipu3_mmu_info *info); void imgu_mmu_resume(struct imgu_mmu_info *info);
int ipu3_mmu_map(struct ipu3_mmu_info *info, unsigned long iova, int imgu_mmu_map(struct imgu_mmu_info *info, unsigned long iova,
phys_addr_t paddr, size_t size); phys_addr_t paddr, size_t size);
size_t ipu3_mmu_unmap(struct ipu3_mmu_info *info, unsigned long iova, size_t imgu_mmu_unmap(struct imgu_mmu_info *info, unsigned long iova,
size_t size); size_t size);
size_t ipu3_mmu_map_sg(struct ipu3_mmu_info *info, unsigned long iova, size_t imgu_mmu_map_sg(struct imgu_mmu_info *info, unsigned long iova,
struct scatterlist *sg, unsigned int nents); struct scatterlist *sg, unsigned int nents);
#endif #endif
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
#define X 0 /* Don't care value */ #define X 0 /* Don't care value */
const struct ipu3_css_bds_config const struct imgu_css_bds_config
ipu3_css_bds_configs[IMGU_BDS_CONFIG_LEN] = { { imgu_css_bds_configs[IMGU_BDS_CONFIG_LEN] = { {
/* Scale factor 32 / (32 + 0) = 1 */ /* Scale factor 32 / (32 + 0) = 1 */
.hor_phase_arr = { .hor_phase_arr = {
.even = { { 0, 0, 64, 6, 0, 0, 0 } }, .even = { { 0, 0, 64, 6, 0, 0, 0 } },
...@@ -9015,7 +9015,7 @@ const struct ipu3_css_bds_config ...@@ -9015,7 +9015,7 @@ const struct ipu3_css_bds_config
.ver_ds_en = 1 .ver_ds_en = 1
} }; } };
const s32 ipu3_css_downscale_4taps[IMGU_SCALER_DOWNSCALE_4TAPS_LEN] = { const s32 imgu_css_downscale_4taps[IMGU_SCALER_DOWNSCALE_4TAPS_LEN] = {
IMGU_SCALER_FP * -0.000000000000000, IMGU_SCALER_FP * -0.000000000000000,
IMGU_SCALER_FP * -0.000249009327023, IMGU_SCALER_FP * -0.000249009327023,
IMGU_SCALER_FP * -0.001022241683322, IMGU_SCALER_FP * -0.001022241683322,
...@@ -9146,7 +9146,7 @@ const s32 ipu3_css_downscale_4taps[IMGU_SCALER_DOWNSCALE_4TAPS_LEN] = { ...@@ -9146,7 +9146,7 @@ const s32 ipu3_css_downscale_4taps[IMGU_SCALER_DOWNSCALE_4TAPS_LEN] = {
IMGU_SCALER_FP * -0.000249009327023 IMGU_SCALER_FP * -0.000249009327023
}; };
const s32 ipu3_css_downscale_2taps[IMGU_SCALER_DOWNSCALE_2TAPS_LEN] = { const s32 imgu_css_downscale_2taps[IMGU_SCALER_DOWNSCALE_2TAPS_LEN] = {
IMGU_SCALER_FP * 0.074300676367033, IMGU_SCALER_FP * 0.074300676367033,
IMGU_SCALER_FP * 0.094030234498392, IMGU_SCALER_FP * 0.094030234498392,
IMGU_SCALER_FP * 0.115522859526596, IMGU_SCALER_FP * 0.115522859526596,
...@@ -9214,7 +9214,7 @@ const s32 ipu3_css_downscale_2taps[IMGU_SCALER_DOWNSCALE_2TAPS_LEN] = { ...@@ -9214,7 +9214,7 @@ const s32 ipu3_css_downscale_2taps[IMGU_SCALER_DOWNSCALE_2TAPS_LEN] = {
}; };
/* settings for Geometric Distortion Correction */ /* settings for Geometric Distortion Correction */
const s16 ipu3_css_gdc_lut[4][256] = { { const s16 imgu_css_gdc_lut[4][256] = { {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -2, -2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -2, -2, -2,
-2, -3, -3, -3, -4, -4, -4, -5, -5, -5, -6, -6, -7, -7, -7, -8, -8, -2, -3, -3, -3, -4, -4, -4, -5, -5, -5, -6, -6, -7, -7, -7, -8, -8,
-9, -9, -10, -10, -11, -11, -12, -12, -13, -13, -14, -14, -15, -15, -9, -9, -10, -10, -11, -11, -12, -12, -13, -13, -14, -14, -15, -15,
...@@ -9292,7 +9292,7 @@ const s16 ipu3_css_gdc_lut[4][256] = { { ...@@ -9292,7 +9292,7 @@ const s16 ipu3_css_gdc_lut[4][256] = { {
-1, 0, 1, 0, 0, 0, 0, 0, 0, 0 -1, 0, 1, 0, 0, 0, 0, 0, 0, 0
} }; } };
const struct ipu3_css_xnr3_vmem_defaults ipu3_css_xnr3_vmem_defaults = { const struct imgu_css_xnr3_vmem_defaults imgu_css_xnr3_vmem_defaults = {
.x = { .x = {
1024, 1164, 1320, 1492, 1680, 1884, 2108, 2352, 1024, 1164, 1320, 1492, 1680, 1884, 2108, 2352,
2616, 2900, 3208, 3540, 3896, 4276, 4684, 5120 2616, 2900, 3208, 3540, 3896, 4276, 4684, 5120
...@@ -9311,7 +9311,7 @@ const struct ipu3_css_xnr3_vmem_defaults ipu3_css_xnr3_vmem_defaults = { ...@@ -9311,7 +9311,7 @@ const struct ipu3_css_xnr3_vmem_defaults ipu3_css_xnr3_vmem_defaults = {
}; };
/* settings for Bayer Noise Reduction */ /* settings for Bayer Noise Reduction */
const struct ipu3_uapi_bnr_static_config ipu3_css_bnr_defaults = { const struct ipu3_uapi_bnr_static_config imgu_css_bnr_defaults = {
{ 16, 16, 16, 16 }, /* wb_gains */ { 16, 16, 16, 16 }, /* wb_gains */
{ 16, 16, 16, 16 }, /* wb_gains_thr */ { 16, 16, 16, 16 }, /* wb_gains_thr */
{ 0, X, 8, 6, X, 14 }, /* thr_coeffs */ { 0, X, 8, 6, X, 14 }, /* thr_coeffs */
...@@ -9327,18 +9327,18 @@ const struct ipu3_uapi_bnr_static_config ipu3_css_bnr_defaults = { ...@@ -9327,18 +9327,18 @@ const struct ipu3_uapi_bnr_static_config ipu3_css_bnr_defaults = {
{ 8, 4, 4, X, 8, X, 1, 1, 1, 1 }, /* dn_detect_ctrl */ { 8, 4, 4, X, 8, X, 1, 1, 1, 1 }, /* dn_detect_ctrl */
}; };
const struct ipu3_uapi_dm_config ipu3_css_dm_defaults = { const struct ipu3_uapi_dm_config imgu_css_dm_defaults = {
1, 1, 1, X, X, 8, X, 7, X, 8, X, 8, X, 4, X 1, 1, 1, X, X, 8, X, 7, X, 8, X, 8, X, 4, X
}; };
const struct ipu3_uapi_ccm_mat_config ipu3_css_ccm_defaults = { const struct ipu3_uapi_ccm_mat_config imgu_css_ccm_defaults = {
9775, -2671, 1087, 0, 9775, -2671, 1087, 0,
-1071, 8303, 815, 0, -1071, 8303, 815, 0,
-23, -7887, 16103, 0 -23, -7887, 16103, 0
}; };
/* settings for Gamma correction */ /* settings for Gamma correction */
const struct ipu3_uapi_gamma_corr_lut ipu3_css_gamma_lut = { { const struct ipu3_uapi_gamma_corr_lut imgu_css_gamma_lut = { {
63, 79, 95, 111, 127, 143, 159, 175, 191, 207, 223, 239, 255, 271, 287, 63, 79, 95, 111, 127, 143, 159, 175, 191, 207, 223, 239, 255, 271, 287,
303, 319, 335, 351, 367, 383, 399, 415, 431, 447, 463, 479, 495, 511, 303, 319, 335, 351, 367, 383, 399, 415, 431, 447, 463, 479, 495, 511,
527, 543, 559, 575, 591, 607, 623, 639, 655, 671, 687, 703, 719, 735, 527, 543, 559, 575, 591, 607, 623, 639, 655, 671, 687, 703, 719, 735,
...@@ -9362,13 +9362,13 @@ const struct ipu3_uapi_gamma_corr_lut ipu3_css_gamma_lut = { { ...@@ -9362,13 +9362,13 @@ const struct ipu3_uapi_gamma_corr_lut ipu3_css_gamma_lut = { {
7807, 7871, 7935, 7999, 8063, 8127, 8191 7807, 7871, 7935, 7999, 8063, 8127, 8191
} }; } };
const struct ipu3_uapi_csc_mat_config ipu3_css_csc_defaults = { const struct ipu3_uapi_csc_mat_config imgu_css_csc_defaults = {
4898, 9617, 1867, 0, 4898, 9617, 1867, 0,
-2410, -4732, 7143, 0, -2410, -4732, 7143, 0,
10076, -8437, -1638, 0 10076, -8437, -1638, 0
}; };
const struct ipu3_uapi_cds_params ipu3_css_cds_defaults = { const struct ipu3_uapi_cds_params imgu_css_cds_defaults = {
1, 3, 3, 1, 1, 3, 3, 1,
1, 3, 3, 1, 1, 3, 3, 1,
4, X, /* ds_nf */ 4, X, /* ds_nf */
...@@ -9376,7 +9376,7 @@ const struct ipu3_uapi_cds_params ipu3_css_cds_defaults = { ...@@ -9376,7 +9376,7 @@ const struct ipu3_uapi_cds_params ipu3_css_cds_defaults = {
0, X /* uv_bin_output */ 0, X /* uv_bin_output */
}; };
const struct ipu3_uapi_shd_config_static ipu3_css_shd_defaults = { const struct ipu3_uapi_shd_config_static imgu_css_shd_defaults = {
.grid = { .grid = {
.width = 73, .width = 73,
.height = 55, .height = 55,
...@@ -9397,7 +9397,7 @@ const struct ipu3_uapi_shd_config_static ipu3_css_shd_defaults = { ...@@ -9397,7 +9397,7 @@ const struct ipu3_uapi_shd_config_static ipu3_css_shd_defaults = {
}, },
}; };
const struct ipu3_uapi_yuvp1_iefd_config ipu3_css_iefd_defaults = { const struct ipu3_uapi_yuvp1_iefd_config imgu_css_iefd_defaults = {
.units = { .units = {
.cu_1 = { 0, 150, 7, 0 }, .cu_1 = { 0, 150, 7, 0 },
.cu_ed = { 7, 110, 244, X, 307, 409, 511, X, .cu_ed = { 7, 110, 244, X, 307, 409, 511, X,
...@@ -9436,17 +9436,17 @@ const struct ipu3_uapi_yuvp1_iefd_config ipu3_css_iefd_defaults = { ...@@ -9436,17 +9436,17 @@ const struct ipu3_uapi_yuvp1_iefd_config ipu3_css_iefd_defaults = {
{ 1, X, 2, X, 8, X } }, { 1, X, 2, X, 8, X } },
}; };
const struct ipu3_uapi_yuvp1_yds_config ipu3_css_yds_defaults = { const struct ipu3_uapi_yuvp1_yds_config imgu_css_yds_defaults = {
0, 1, 1, 0, 0, 1, 1, 0, 2, X, 0, X 0, 1, 1, 0, 0, 1, 1, 0, 2, X, 0, X
}; };
const struct ipu3_uapi_yuvp1_chnr_config ipu3_css_chnr_defaults = { const struct ipu3_uapi_yuvp1_chnr_config imgu_css_chnr_defaults = {
.coring = { 0, X, 0, X }, .coring = { 0, X, 0, X },
.sense_gain = { 6, 6, 6, X, 4, 4, 4, X }, .sense_gain = { 6, 6, 6, X, 4, 4, 4, X },
.iir_fir = { 8, X, 12, X, 0, 256 - 127, X }, .iir_fir = { 8, X, 12, X, 0, 256 - 127, X },
}; };
const struct ipu3_uapi_yuvp1_y_ee_nr_config ipu3_css_y_ee_nr_defaults = { const struct ipu3_uapi_yuvp1_y_ee_nr_config imgu_css_y_ee_nr_defaults = {
.lpf = { 4, X, 8, X, 16, X, 0 }, .lpf = { 4, X, 8, X, 16, X, 0 },
.sense = { 8191, X, 0, X, 8191, X, 0, X }, .sense = { 8191, X, 0, X, 8191, X, 0, X },
.gain = { 8, X, 0, X, 8, X, 0, X }, .gain = { 8, X, 0, X, 8, X, 0, X },
...@@ -9457,7 +9457,7 @@ const struct ipu3_uapi_yuvp1_y_ee_nr_config ipu3_css_y_ee_nr_defaults = { ...@@ -9457,7 +9457,7 @@ const struct ipu3_uapi_yuvp1_y_ee_nr_config ipu3_css_y_ee_nr_defaults = {
}; };
const struct ipu3_uapi_yuvp2_tcc_gain_pcwl_lut_static_config const struct ipu3_uapi_yuvp2_tcc_gain_pcwl_lut_static_config
ipu3_css_tcc_gain_pcwl_lut = { { imgu_css_tcc_gain_pcwl_lut = { {
1024, 1032, 1040, 1048, 1057, 1065, 1073, 1081, 1089, 1097, 1105, 1113, 1024, 1032, 1040, 1048, 1057, 1065, 1073, 1081, 1089, 1097, 1105, 1113,
1122, 1130, 1138, 1146, 1154, 1162, 1170, 1178, 1187, 1195, 1203, 1211, 1122, 1130, 1138, 1146, 1154, 1162, 1170, 1178, 1187, 1195, 1203, 1211,
1219, 1227, 1235, 1243, 1252, 1260, 1268, 1276, 1284, 1292, 1300, 1308, 1219, 1227, 1235, 1243, 1252, 1260, 1268, 1276, 1284, 1292, 1300, 1308,
...@@ -9483,12 +9483,12 @@ const struct ipu3_uapi_yuvp2_tcc_gain_pcwl_lut_static_config ...@@ -9483,12 +9483,12 @@ const struct ipu3_uapi_yuvp2_tcc_gain_pcwl_lut_static_config
} }; } };
const struct ipu3_uapi_yuvp2_tcc_r_sqr_lut_static_config const struct ipu3_uapi_yuvp2_tcc_r_sqr_lut_static_config
ipu3_css_tcc_r_sqr_lut = { { imgu_css_tcc_r_sqr_lut = { {
32, 44, 64, 92, 128, 180, 256, 364, 512, 628, 724, 808, 888, 32, 44, 64, 92, 128, 180, 256, 364, 512, 628, 724, 808, 888,
956, 1024, 1088, 1144, 1200, 1256, 1304, 1356, 1404, 1448 956, 1024, 1088, 1144, 1200, 1256, 1304, 1356, 1404, 1448
} }; } };
const struct imgu_abi_anr_config ipu3_css_anr_defaults = { const struct imgu_abi_anr_config imgu_css_anr_defaults = {
.transform = { .transform = {
.adaptive_treshhold_en = 1, .adaptive_treshhold_en = 1,
.alpha = { { 13, 13, 13, 13, 0, 0, 0, 0}, .alpha = { { 13, 13, 13, 13, 0, 0, 0, 0},
...@@ -9545,7 +9545,7 @@ const struct imgu_abi_anr_config ipu3_css_anr_defaults = { ...@@ -9545,7 +9545,7 @@ const struct imgu_abi_anr_config ipu3_css_anr_defaults = {
}; };
/* frame settings for Auto White Balance */ /* frame settings for Auto White Balance */
const struct ipu3_uapi_awb_fr_config_s ipu3_css_awb_fr_defaults = { const struct ipu3_uapi_awb_fr_config_s imgu_css_awb_fr_defaults = {
.grid_cfg = { .grid_cfg = {
.width = 16, .width = 16,
.height = 16, .height = 16,
...@@ -9560,7 +9560,7 @@ const struct ipu3_uapi_awb_fr_config_s ipu3_css_awb_fr_defaults = { ...@@ -9560,7 +9560,7 @@ const struct ipu3_uapi_awb_fr_config_s ipu3_css_awb_fr_defaults = {
}; };
/* settings for Auto Exposure */ /* settings for Auto Exposure */
const struct ipu3_uapi_ae_grid_config ipu3_css_ae_grid_defaults = { const struct ipu3_uapi_ae_grid_config imgu_css_ae_grid_defaults = {
.width = 16, .width = 16,
.height = 16, .height = 16,
.block_width_log2 = 3, .block_width_log2 = 3,
...@@ -9571,13 +9571,13 @@ const struct ipu3_uapi_ae_grid_config ipu3_css_ae_grid_defaults = { ...@@ -9571,13 +9571,13 @@ const struct ipu3_uapi_ae_grid_config ipu3_css_ae_grid_defaults = {
}; };
/* settings for Auto Exposure color correction matrix */ /* settings for Auto Exposure color correction matrix */
const struct ipu3_uapi_ae_ccm ipu3_css_ae_ccm_defaults = { const struct ipu3_uapi_ae_ccm imgu_css_ae_ccm_defaults = {
256, 256, 256, 256, /* gain_gr/r/b/gb */ 256, 256, 256, 256, /* gain_gr/r/b/gb */
.mat = { 128, 0, 0, 0, 0, 128, 0, 0, 0, 0, 128, 0, 0, 0, 0, 128 }, .mat = { 128, 0, 0, 0, 0, 128, 0, 0, 0, 0, 128, 0, 0, 0, 0, 128 },
}; };
/* settings for Auto Focus */ /* settings for Auto Focus */
const struct ipu3_uapi_af_config_s ipu3_css_af_defaults = { const struct ipu3_uapi_af_config_s imgu_css_af_defaults = {
.filter_config = { .filter_config = {
{ 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 128 }, 0, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 128 }, 0,
{ 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 128 }, 0, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 128 }, 0,
...@@ -9595,7 +9595,7 @@ const struct ipu3_uapi_af_config_s ipu3_css_af_defaults = { ...@@ -9595,7 +9595,7 @@ const struct ipu3_uapi_af_config_s ipu3_css_af_defaults = {
}; };
/* settings for Auto White Balance */ /* settings for Auto White Balance */
const struct ipu3_uapi_awb_config_s ipu3_css_awb_defaults = { const struct ipu3_uapi_awb_config_s imgu_css_awb_defaults = {
8191, 8191, 8191, 8191 | /* rgbs_thr_gr/r/gb/b */ 8191, 8191, 8191, 8191 | /* rgbs_thr_gr/r/gb/b */
IPU3_UAPI_AWB_RGBS_THR_B_EN | IPU3_UAPI_AWB_RGBS_THR_B_INCL_SAT, IPU3_UAPI_AWB_RGBS_THR_B_EN | IPU3_UAPI_AWB_RGBS_THR_B_INCL_SAT,
.grid = { .grid = {
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#define IMGU_GDC_LUT_UNIT 4 #define IMGU_GDC_LUT_UNIT 4
#define IMGU_GDC_LUT_LEN 256 #define IMGU_GDC_LUT_LEN 256
struct ipu3_css_bds_config { struct imgu_css_bds_config {
struct imgu_abi_bds_phase_arr hor_phase_arr; struct imgu_abi_bds_phase_arr hor_phase_arr;
struct imgu_abi_bds_phase_arr ver_phase_arr; struct imgu_abi_bds_phase_arr ver_phase_arr;
struct imgu_abi_bds_ptrn_arr ptrn_arr; struct imgu_abi_bds_ptrn_arr ptrn_arr;
...@@ -28,39 +28,39 @@ struct ipu3_css_bds_config { ...@@ -28,39 +28,39 @@ struct ipu3_css_bds_config {
u8 ver_ds_en; u8 ver_ds_en;
}; };
struct ipu3_css_xnr3_vmem_defaults { struct imgu_css_xnr3_vmem_defaults {
s16 x[IMGU_XNR3_VMEM_LUT_LEN]; s16 x[IMGU_XNR3_VMEM_LUT_LEN];
s16 a[IMGU_XNR3_VMEM_LUT_LEN]; s16 a[IMGU_XNR3_VMEM_LUT_LEN];
s16 b[IMGU_XNR3_VMEM_LUT_LEN]; s16 b[IMGU_XNR3_VMEM_LUT_LEN];
s16 c[IMGU_XNR3_VMEM_LUT_LEN]; s16 c[IMGU_XNR3_VMEM_LUT_LEN];
}; };
extern const struct ipu3_css_bds_config extern const struct imgu_css_bds_config
ipu3_css_bds_configs[IMGU_BDS_CONFIG_LEN]; imgu_css_bds_configs[IMGU_BDS_CONFIG_LEN];
extern const s32 ipu3_css_downscale_4taps[IMGU_SCALER_DOWNSCALE_4TAPS_LEN]; extern const s32 imgu_css_downscale_4taps[IMGU_SCALER_DOWNSCALE_4TAPS_LEN];
extern const s32 ipu3_css_downscale_2taps[IMGU_SCALER_DOWNSCALE_2TAPS_LEN]; extern const s32 imgu_css_downscale_2taps[IMGU_SCALER_DOWNSCALE_2TAPS_LEN];
extern const s16 ipu3_css_gdc_lut[IMGU_GDC_LUT_UNIT][IMGU_GDC_LUT_LEN]; extern const s16 imgu_css_gdc_lut[IMGU_GDC_LUT_UNIT][IMGU_GDC_LUT_LEN];
extern const struct ipu3_css_xnr3_vmem_defaults ipu3_css_xnr3_vmem_defaults; extern const struct imgu_css_xnr3_vmem_defaults imgu_css_xnr3_vmem_defaults;
extern const struct ipu3_uapi_bnr_static_config ipu3_css_bnr_defaults; extern const struct ipu3_uapi_bnr_static_config imgu_css_bnr_defaults;
extern const struct ipu3_uapi_dm_config ipu3_css_dm_defaults; extern const struct ipu3_uapi_dm_config imgu_css_dm_defaults;
extern const struct ipu3_uapi_ccm_mat_config ipu3_css_ccm_defaults; extern const struct ipu3_uapi_ccm_mat_config imgu_css_ccm_defaults;
extern const struct ipu3_uapi_gamma_corr_lut ipu3_css_gamma_lut; extern const struct ipu3_uapi_gamma_corr_lut imgu_css_gamma_lut;
extern const struct ipu3_uapi_csc_mat_config ipu3_css_csc_defaults; extern const struct ipu3_uapi_csc_mat_config imgu_css_csc_defaults;
extern const struct ipu3_uapi_cds_params ipu3_css_cds_defaults; extern const struct ipu3_uapi_cds_params imgu_css_cds_defaults;
extern const struct ipu3_uapi_shd_config_static ipu3_css_shd_defaults; extern const struct ipu3_uapi_shd_config_static imgu_css_shd_defaults;
extern const struct ipu3_uapi_yuvp1_iefd_config ipu3_css_iefd_defaults; extern const struct ipu3_uapi_yuvp1_iefd_config imgu_css_iefd_defaults;
extern const struct ipu3_uapi_yuvp1_yds_config ipu3_css_yds_defaults; extern const struct ipu3_uapi_yuvp1_yds_config imgu_css_yds_defaults;
extern const struct ipu3_uapi_yuvp1_chnr_config ipu3_css_chnr_defaults; extern const struct ipu3_uapi_yuvp1_chnr_config imgu_css_chnr_defaults;
extern const struct ipu3_uapi_yuvp1_y_ee_nr_config ipu3_css_y_ee_nr_defaults; extern const struct ipu3_uapi_yuvp1_y_ee_nr_config imgu_css_y_ee_nr_defaults;
extern const struct ipu3_uapi_yuvp2_tcc_gain_pcwl_lut_static_config extern const struct ipu3_uapi_yuvp2_tcc_gain_pcwl_lut_static_config
ipu3_css_tcc_gain_pcwl_lut; imgu_css_tcc_gain_pcwl_lut;
extern const struct ipu3_uapi_yuvp2_tcc_r_sqr_lut_static_config extern const struct ipu3_uapi_yuvp2_tcc_r_sqr_lut_static_config
ipu3_css_tcc_r_sqr_lut; imgu_css_tcc_r_sqr_lut;
extern const struct imgu_abi_anr_config ipu3_css_anr_defaults; extern const struct imgu_abi_anr_config imgu_css_anr_defaults;
extern const struct ipu3_uapi_awb_fr_config_s ipu3_css_awb_fr_defaults; extern const struct ipu3_uapi_awb_fr_config_s imgu_css_awb_fr_defaults;
extern const struct ipu3_uapi_ae_grid_config ipu3_css_ae_grid_defaults; extern const struct ipu3_uapi_ae_grid_config imgu_css_ae_grid_defaults;
extern const struct ipu3_uapi_ae_ccm ipu3_css_ae_ccm_defaults; extern const struct ipu3_uapi_ae_ccm imgu_css_ae_ccm_defaults;
extern const struct ipu3_uapi_af_config_s ipu3_css_af_defaults; extern const struct ipu3_uapi_af_config_s imgu_css_af_defaults;
extern const struct ipu3_uapi_awb_config_s ipu3_css_awb_defaults; extern const struct ipu3_uapi_awb_config_s imgu_css_awb_defaults;
#endif #endif
This diff is collapsed.
This diff is collapsed.
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
#define IMGU_NODE_STAT_3A 4 /* 3A statistics */ #define IMGU_NODE_STAT_3A 4 /* 3A statistics */
#define IMGU_NODE_NUM 5 #define IMGU_NODE_NUM 5
#define file_to_intel_ipu3_node(__file) \ #define file_to_intel_imgu_node(__file) \
container_of(video_devdata(__file), struct imgu_video_device, vdev) container_of(video_devdata(__file), struct imgu_video_device, vdev)
#define IPU3_INPUT_MIN_WIDTH 0U #define IPU3_INPUT_MIN_WIDTH 0U
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
#define IPU3_OUTPUT_MAX_WIDTH 4480U #define IPU3_OUTPUT_MAX_WIDTH 4480U
#define IPU3_OUTPUT_MAX_HEIGHT 34004U #define IPU3_OUTPUT_MAX_HEIGHT 34004U
struct ipu3_vb2_buffer { struct imgu_vb2_buffer {
/* Public fields */ /* Public fields */
struct vb2_v4l2_buffer vbb; /* Must be the first field */ struct vb2_v4l2_buffer vbb; /* Must be the first field */
...@@ -53,9 +53,9 @@ struct ipu3_vb2_buffer { ...@@ -53,9 +53,9 @@ struct ipu3_vb2_buffer {
}; };
struct imgu_buffer { struct imgu_buffer {
struct ipu3_vb2_buffer vid_buf; /* Must be the first field */ struct imgu_vb2_buffer vid_buf; /* Must be the first field */
struct ipu3_css_buffer css_buf; struct imgu_css_buffer css_buf;
struct ipu3_css_map map; struct imgu_css_map map;
}; };
struct imgu_node_mapping { struct imgu_node_mapping {
...@@ -107,8 +107,8 @@ struct imgu_media_pipe { ...@@ -107,8 +107,8 @@ struct imgu_media_pipe {
/* Internally enabled queues */ /* Internally enabled queues */
struct { struct {
struct ipu3_css_map dmap; struct imgu_css_map dmap;
struct ipu3_css_buffer dummybufs[IMGU_MAX_QUEUE_DEPTH]; struct imgu_css_buffer dummybufs[IMGU_MAX_QUEUE_DEPTH];
} queues[IPU3_CSS_QUEUES]; } queues[IPU3_CSS_QUEUES];
struct imgu_video_device nodes[IMGU_NODE_NUM]; struct imgu_video_device nodes[IMGU_NODE_NUM];
bool queue_enabled[IMGU_NODE_NUM]; bool queue_enabled[IMGU_NODE_NUM];
...@@ -135,11 +135,11 @@ struct imgu_device { ...@@ -135,11 +135,11 @@ struct imgu_device {
struct v4l2_file_operations v4l2_file_ops; struct v4l2_file_operations v4l2_file_ops;
/* MMU driver for css */ /* MMU driver for css */
struct ipu3_mmu_info *mmu; struct imgu_mmu_info *mmu;
struct iova_domain iova_domain; struct iova_domain iova_domain;
/* css - Camera Sub-System */ /* css - Camera Sub-System */
struct ipu3_css css; struct imgu_css css;
/* /*
* Coarse-grained lock to protect * Coarse-grained lock to protect
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment