diff --git a/drivers/media/platform/imx8/mxc-jpeg-hw.c b/drivers/media/platform/imx8/mxc-jpeg-hw.c index 5b6408bae6e432abc5cc23a248514a8247df7382..2263ec426790f155d7d44fb4fc17192a753d5248 100644 --- a/drivers/media/platform/imx8/mxc-jpeg-hw.c +++ b/drivers/media/platform/imx8/mxc-jpeg-hw.c @@ -20,26 +20,26 @@ #define internal_print_wrapper_reg(dev, base_address, reg_name, reg_offset) {\ int val;\ val = readl((base_address) + (reg_offset));\ - dev_info(dev, "Wrapper reg %s = 0x%x\n", reg_name, val);\ + dev_dbg(dev, "Wrapper reg %s = 0x%x\n", reg_name, val);\ } void print_descriptor_info(struct device *dev, struct mxc_jpeg_desc *desc) { - dev_info(dev, " MXC JPEG NEXT_DESCPT_PTR 0x%x\n", + dev_dbg(dev, " MXC JPEG NEXT_DESCPT_PTR 0x%x\n", desc->next_descpt_ptr); - dev_info(dev, " MXC JPEG BUF_BASE0 0x%x\n", desc->buf_base0); - dev_info(dev, " MXC JPEG BUF_BASE1 0x%x\n", desc->buf_base1); - dev_info(dev, " MXC JPEG LINE_PITCH %d\n", desc->line_pitch); - dev_info(dev, " MXC JPEG STM_BUFBASE 0x%x\n", desc->stm_bufbase); - dev_info(dev, " MXC JPEG STM_BUFSIZE %d\n", desc->stm_bufsize); - dev_info(dev, " MXC JPEG IMGSIZE %x (%d x %d)\n", desc->imgsize, + dev_dbg(dev, " MXC JPEG BUF_BASE0 0x%x\n", desc->buf_base0); + dev_dbg(dev, " MXC JPEG BUF_BASE1 0x%x\n", desc->buf_base1); + dev_dbg(dev, " MXC JPEG LINE_PITCH %d\n", desc->line_pitch); + dev_dbg(dev, " MXC JPEG STM_BUFBASE 0x%x\n", desc->stm_bufbase); + dev_dbg(dev, " MXC JPEG STM_BUFSIZE %d\n", desc->stm_bufsize); + dev_dbg(dev, " MXC JPEG IMGSIZE %x (%d x %d)\n", desc->imgsize, desc->imgsize >> 16, desc->imgsize & 0xFFFF); - dev_info(dev, " MXC JPEG STM_CTRL 0x%x\n", desc->stm_ctrl); + dev_dbg(dev, " MXC JPEG STM_CTRL 0x%x\n", desc->stm_ctrl); } -void print_cast_decoder_info(struct device *dev, void __iomem *reg) +void print_cast_status(struct device *dev, void __iomem *reg, unsigned int mode) { - dev_info(dev, "CAST IP decoder regs:\n"); + dev_dbg(dev, "CAST IP status regs:\n"); print_wrapper_reg(dev, reg, CAST_STATUS0); print_wrapper_reg(dev, reg, CAST_STATUS1); print_wrapper_reg(dev, reg, CAST_STATUS2); @@ -54,27 +54,19 @@ void print_cast_decoder_info(struct device *dev, void __iomem *reg) print_wrapper_reg(dev, reg, CAST_STATUS11); print_wrapper_reg(dev, reg, CAST_STATUS12); print_wrapper_reg(dev, reg, CAST_STATUS13); -} - -void print_cast_encoder_info(struct device *dev, void __iomem *reg) -{ - dev_info(dev, "CAST IP encoder regs:\n"); - print_wrapper_reg(dev, reg, CAST_MODE); - print_wrapper_reg(dev, reg, CAST_CFG_MODE); - print_wrapper_reg(dev, reg, CAST_QUALITY); - print_wrapper_reg(dev, reg, CAST_RSVD); - print_wrapper_reg(dev, reg, CAST_REC_REGS_SEL); - print_wrapper_reg(dev, reg, CAST_LUMTH); - print_wrapper_reg(dev, reg, CAST_CHRTH); - print_wrapper_reg(dev, reg, CAST_NOMFRSIZE_LO); - print_wrapper_reg(dev, reg, CAST_NOMFRSIZE_HI); - print_wrapper_reg(dev, reg, CAST_OFBSIZE_LO); - print_wrapper_reg(dev, reg, CAST_OFBSIZE_HI); + if (mode == MXC_JPEG_DECODE) + return; + print_wrapper_reg(dev, reg, CAST_STATUS14); + print_wrapper_reg(dev, reg, CAST_STATUS15); + print_wrapper_reg(dev, reg, CAST_STATUS16); + print_wrapper_reg(dev, reg, CAST_STATUS17); + print_wrapper_reg(dev, reg, CAST_STATUS18); + print_wrapper_reg(dev, reg, CAST_STATUS19); } void print_wrapper_info(struct device *dev, void __iomem *reg) { - dev_info(dev, "Wrapper regs:\n"); + dev_dbg(dev, "Wrapper regs:\n"); print_wrapper_reg(dev, reg, GLB_CTRL); print_wrapper_reg(dev, reg, COM_STATUS); print_wrapper_reg(dev, reg, BUF_BASE0); @@ -91,14 +83,15 @@ void mxc_jpeg_enable_irq(void __iomem *reg, int slot) writel(0xFFFFFFFF, reg + MXC_SLOT_OFFSET(slot, SLOT_IRQ_EN)); } -void mxc_jpeg_reset(void __iomem *reg) -{ - writel(GLB_CTRL_JPG_EN, reg + GLB_CTRL); -} - void mxc_jpeg_sw_reset(void __iomem *reg) { - writel(GLB_CTRL_SFT_RST | GLB_CTRL_JPG_EN, reg + GLB_CTRL); + /* + * engine soft reset, internal state machine reset + * this will not reset registers, however, it seems + * the registers may remain inconsistent with the internal state + * so, on purpose, at least let GLB_CTRL bits clear after this reset + */ + writel(GLB_CTRL_SFT_RST, reg + GLB_CTRL); } u32 mxc_jpeg_get_offset(void __iomem *reg, int slot) @@ -106,12 +99,9 @@ u32 mxc_jpeg_get_offset(void __iomem *reg, int slot) return readl(reg + MXC_SLOT_OFFSET(slot, SLOT_BUF_PTR)); } -void mxc_jpeg_enc_config(struct device *dev, - void __iomem *reg, struct mxc_jpeg_desc *cfg_desc, - u32 cfg_handle, u32 cfg_stream_handle, u32 jpg_handle) +void mxc_jpeg_go_enc(struct device *dev, void __iomem *reg) { - u32 slot; - + dev_dbg(dev, "CAST Encoder GO...\n"); /* * "Config_Mode" enabled, "Config_Mode auto clear enabled", * "GO" enabled, "GO bit auto clear" enabled @@ -123,28 +113,6 @@ void mxc_jpeg_enc_config(struct device *dev, /* quality factor */ writel(0x4b, reg + CAST_QUALITY); - - cfg_desc->next_descpt_ptr = 0; - cfg_desc->buf_base0 = cfg_stream_handle; - cfg_desc->buf_base1 = 0; - cfg_desc->line_pitch = 0; - cfg_desc->stm_bufbase = 0; - cfg_desc->stm_bufsize = 0x2000; - cfg_desc->imgsize = 0; - cfg_desc->stm_ctrl = STM_CTRL_CONFIG_MOD(1) | STM_CTRL_AUTO_START(1); - - slot = 0; /* TODO get slot*/ - writel(GLB_CTRL_SLOT_EN(slot) | GLB_CTRL_L_ENDIAN | GLB_CTRL_JPG_EN, - reg + GLB_CTRL); - - mxc_jpeg_enable_irq(reg, slot); - - print_descriptor_info(dev, cfg_desc); - print_wrapper_info(dev, reg); - print_cast_encoder_info(dev, reg); - - mxc_jpeg_set_desc(cfg_handle, reg, slot); - mxc_jpeg_go_auto(reg); } void wait_frmdone(struct device *dev, void __iomem *reg) @@ -171,25 +139,10 @@ int mxc_jpeg_enable(void __iomem *reg) return regval; } -void mxc_jpeg_go(void __iomem *reg) +void mxc_jpeg_go_dec(struct device *dev, void __iomem *reg) { - u32 val; - - val = readl(reg + GLB_CTRL); - writel(GLB_CTRL_L_ENDIAN | GLB_CTRL_DEC_GO | val, reg + GLB_CTRL); - writel(MXC_DEC_EXIT_IDLE_MODE, reg + CAST_STATUS13); -} - -void mxc_jpeg_go_auto(void __iomem *reg) -{ - u32 val; - - /* Automatically start the CAST encoder/decoder */ - val = readl(reg + STM_CTRL); - writel(STM_CTRL_AUTO_START(1) | val, reg + STM_CTRL); - - val = readl(reg + GLB_CTRL); - writel(GLB_CTRL_L_ENDIAN | GLB_CTRL_DEC_GO | val, reg + GLB_CTRL); + dev_dbg(dev, "CAST Decoder GO...\n"); + writel(MXC_DEC_EXIT_IDLE_MODE, reg + CAST_CTRL); } int mxc_jpeg_get_slot(void __iomem *reg) @@ -218,6 +171,15 @@ void mxc_jpeg_enable_slot(void __iomem *reg, int slot) writel(GLB_CTRL_SLOT_EN(slot) | regval, reg + GLB_CTRL); } +void mxc_jpeg_set_l_endian(void __iomem *reg, int le) +{ + u32 regval; + + regval = readl(reg + GLB_CTRL); + regval &= ~GLB_CTRL_L_ENDIAN(1); /* clear */ + writel(GLB_CTRL_L_ENDIAN(le) | regval, reg + GLB_CTRL); /* set */ +} + void mxc_jpeg_set_config_mode(void __iomem *reg, int config_mode) { u32 regval; diff --git a/drivers/media/platform/imx8/mxc-jpeg-hw.h b/drivers/media/platform/imx8/mxc-jpeg-hw.h index bd898956d34e93015fad11fd92fa353a633c3935..ce158c8cc8cc4b56d53f666d65bc106f5092079a 100644 --- a/drivers/media/platform/imx8/mxc-jpeg-hw.h +++ b/drivers/media/platform/imx8/mxc-jpeg-hw.h @@ -12,6 +12,9 @@ #ifndef _MXC_JPEG_HW_H #define _MXC_JPEG_HW_H +#define MXC_JPEG_DECODE 0 +#define MXC_JPEG_ENCODE 1 + /* JPEG Decoder/Encoder Wrapper Register Map */ #define GLB_CTRL 0x0 #define COM_STATUS 0x4 @@ -23,7 +26,7 @@ #define IMGSIZE 0x28 #define STM_CTRL 0x2C -/* CAST JPEG-Decoder Register Map */ +/* CAST JPEG-Decoder/Encoder Status Register Map (read-only)*/ #define CAST_STATUS0 0x100 #define CAST_STATUS1 0x104 #define CAST_STATUS2 0x108 @@ -38,20 +41,29 @@ #define CAST_STATUS11 0x12c #define CAST_STATUS12 0x130 #define CAST_STATUS13 0x134 +/* the following are for encoder only */ +#define CAST_STATUS14 0x138 +#define CAST_STATUS15 0x13c +#define CAST_STATUS16 0x140 +#define CAST_STATUS17 0x144 +#define CAST_STATUS18 0x148 +#define CAST_STATUS19 0x14c + +/* CAST JPEG-Decoder Control Register Map (write-only) */ +#define CAST_CTRL CAST_STATUS13 -/* CAST JPEG-Encoder Register Map */ -#define CAST_MODE 0x100 -#define CAST_CFG_MODE 0x104 -#define CAST_QUALITY 0x108 -#define CAST_RSVD 0x10c -#define CAST_REC_REGS_SEL 0x110 -#define CAST_LUMTH 0x114 -#define CAST_CHRTH 0x118 -#define CAST_NOMFRSIZE_LO 0x11c -#define CAST_NOMFRSIZE_HI 0x120 -#define CAST_OFBSIZE_LO 0x124 -#define CAST_OFBSIZE_HI 0x128 -/* TODO add more if necessary*/ +/* CAST JPEG-Encoder Control Register Map (write-only) */ +#define CAST_MODE CAST_STATUS0 +#define CAST_CFG_MODE CAST_STATUS1 +#define CAST_QUALITY CAST_STATUS2 +#define CAST_RSVD CAST_STATUS3 +#define CAST_REC_REGS_SEL CAST_STATUS4 +#define CAST_LUMTH CAST_STATUS5 +#define CAST_CHRTH CAST_STATUS6 +#define CAST_NOMFRSIZE_LO CAST_STATUS7 +#define CAST_NOMFRSIZE_HI CAST_STATUS8 +#define CAST_OFBSIZE_LO CAST_STATUS9 +#define CAST_OFBSIZE_HI CAST_STATUS10 #define MXC_MAX_SLOTS 1 /* TODO use all 4 slots*/ /* JPEG-Decoder Wrapper Slot Registers 0..3 */ @@ -67,7 +79,7 @@ #define GLB_CTRL_JPG_EN 0x1 #define GLB_CTRL_SFT_RST (0x1 << 1) #define GLB_CTRL_DEC_GO (0x1 << 2) -#define GLB_CTRL_L_ENDIAN (0x1 << 3) +#define GLB_CTRL_L_ENDIAN(le) ((le) << 3) #define GLB_CTRL_SLOT_EN(slot) (0x1 << (slot + 4)) /* STM_CTRL fields */ @@ -101,21 +113,18 @@ enum mxc_jpeg_image_format { #include "mxc-jpeg.h" void print_descriptor_info(struct device *dev, struct mxc_jpeg_desc *desc); -void print_cast_decoder_info(struct device *dev, void __iomem *reg); -void print_cast_encoder_info(struct device *dev, void __iomem *reg); +void print_cast_status(struct device *dev, void __iomem *reg, + unsigned int mode); void print_wrapper_info(struct device *dev, void __iomem *reg); -void mxc_jpeg_reset(void __iomem *reg); void mxc_jpeg_sw_reset(void __iomem *reg); int mxc_jpeg_enable(void __iomem *reg); void wait_frmdone(struct device *dev, void __iomem *reg); -void mxc_jpeg_enc_config(struct device *dev, - void __iomem *reg, struct mxc_jpeg_desc *cfg_desc, - u32 cfg_handle, u32 tbl_handle, u32 jpg_handle); -void mxc_jpeg_go(void __iomem *reg); -void mxc_jpeg_go_auto(void __iomem *reg); +void mxc_jpeg_go_enc(struct device *dev, void __iomem *reg); +void mxc_jpeg_go_dec(struct device *dev, void __iomem *reg); int mxc_jpeg_get_slot(void __iomem *reg); u32 mxc_jpeg_get_offset(void __iomem *reg, int slot); void mxc_jpeg_enable_slot(void __iomem *reg, int slot); +void mxc_jpeg_set_l_endian(void __iomem *reg, int le); void mxc_jpeg_enable_irq(void __iomem *reg, int slot); int mxc_jpeg_set_input(void __iomem *reg, u32 in_buf, u32 bufsize); int mxc_jpeg_set_output(void __iomem *reg, u16 out_pitch, u32 out_buf, diff --git a/drivers/media/platform/imx8/mxc-jpeg.c b/drivers/media/platform/imx8/mxc-jpeg.c index 08d4f92aa1dd054af30a5bbbfaadfb4d6b876f2f..4d203a6ea96d4229604db3cf3aa30739a6dbe82e 100644 --- a/drivers/media/platform/imx8/mxc-jpeg.c +++ b/drivers/media/platform/imx8/mxc-jpeg.c @@ -242,8 +242,6 @@ static irqreturn_t mxc_jpeg_dec_irq(int irq, void *priv) void __iomem *reg = jpeg->base_reg; struct device *dev = jpeg->dev; struct vb2_buffer *src_buf, *dst_buf; - struct mxc_jpeg_desc *desc; - dma_addr_t dma_handle; u32 dec_ret; int slot = 0; /* TODO remove hardcoded slot 0 */ @@ -277,36 +275,7 @@ static irqreturn_t mxc_jpeg_dec_irq(int irq, void *priv) goto job_finish; } - dev_dbg(dev, "Encoder config finished.\n"); - - /* get out of config mode*/ - mxc_jpeg_set_config_mode(reg, 0); - - slot = 0; /* TODO get slot*/ - - desc = jpeg->slot_data[slot].desc; - dma_handle = jpeg->slot_data[slot].desc_handle; - - mxc_jpeg_addrs(desc, src_buf, dst_buf, 0); - - /* TODO remove hardcodings*/ - mxc_jpeg_set_bufsize(desc, 0x1000); - mxc_jpeg_set_res(desc, 64, 64); - mxc_jpeg_set_line_pitch(desc, 64 * 2); - desc->stm_ctrl = STM_CTRL_CONFIG_MOD(0) | - STM_CTRL_AUTO_START(1) | - STM_CTRL_IMAGE_FORMAT(MXC_JPEG_YUV422); - - mxc_jpeg_enable_slot(jpeg->base_reg, slot); - mxc_jpeg_enable_irq(jpeg->base_reg, slot); - mxc_jpeg_set_desc(dma_handle, jpeg->base_reg, slot); - - print_descriptor_info(dev, desc); - print_wrapper_info(dev, jpeg->base_reg); - print_cast_encoder_info(dev, jpeg->base_reg); - - dev_dbg(dev, "Encoder starts encoding...\n"); - mxc_jpeg_go_auto(jpeg->base_reg); + dev_dbg(dev, "Encoder config finished. Start encoding...\n"); goto job_unlock; } if (ctx->mode == MXC_JPEG_ENCODE) @@ -315,9 +284,9 @@ static irqreturn_t mxc_jpeg_dec_irq(int irq, void *priv) dev_dbg(dev, "Decoding finished\n"); /* short preview of the results */ - dev_dbg(dev, "src_buf: "); + dev_dbg(dev, "src_buf preview: "); print_buf(dev, src_buf); - dev_dbg(dev, "dst_buf: "); + dev_dbg(dev, "dst_buf preview: "); print_buf(dev, dst_buf); v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx); @@ -331,29 +300,76 @@ job_unlock: return IRQ_HANDLED; } -static void mxc_jpeg_config_enc(struct vb2_buffer *out_buf, +static void mxc_jpeg_config_dec_desc(struct vb2_buffer *out_buf, int slot, - struct mxc_jpeg_dev *jpeg) + struct mxc_jpeg_dev *jpeg, + struct vb2_buffer *src_buf, struct vb2_buffer *dst_buf) { - dma_addr_t jpg_handle; + void __iomem *reg = jpeg->base_reg; + struct mxc_jpeg_desc *desc = jpeg->slot_data[slot].desc; + dma_addr_t desc_handle = jpeg->slot_data[slot].desc_handle; - jpg_handle = vb2_dma_contig_plane_dma_addr(out_buf, 0); - mxc_jpeg_enc_config(jpeg->dev, - jpeg->base_reg, - jpeg->slot_data[slot].desc, jpeg->slot_data[slot].desc_handle, - jpeg->slot_data[slot].cfg_stream_handle, jpg_handle); + mxc_jpeg_addrs(desc, dst_buf, src_buf, 0); + mxc_jpeg_set_bufsize(desc, + mxc_jpeg_align(vb2_plane_size(src_buf, 0), 1024)); + print_descriptor_info(jpeg->dev, desc); + + /* validate the decoding descriptor */ + mxc_jpeg_set_desc(desc_handle, reg, slot); +} + +static void mxc_jpeg_config_enc_desc(struct vb2_buffer *out_buf, + int slot, + struct mxc_jpeg_dev *jpeg, + struct vb2_buffer *src_buf, struct vb2_buffer *dst_buf) +{ + void __iomem *reg = jpeg->base_reg; + struct mxc_jpeg_desc *desc = jpeg->slot_data[slot].desc; + struct mxc_jpeg_desc *cfg_desc = jpeg->slot_data[slot].cfg_desc; + dma_addr_t desc_handle = jpeg->slot_data[slot].desc_handle; + dma_addr_t cfg_desc_handle = jpeg->slot_data[slot].cfg_desc_handle; + + + /* chain the config descriptor with the encoding descriptor */ + cfg_desc->next_descpt_ptr = desc_handle | MXC_NXT_DESCPT_EN; + + cfg_desc->buf_base0 = jpeg->slot_data[slot].cfg_stream_handle; + cfg_desc->buf_base1 = 0; + cfg_desc->line_pitch = 0; + cfg_desc->stm_bufbase = 0; + cfg_desc->stm_bufsize = 0x2000; + cfg_desc->imgsize = 0; + cfg_desc->stm_ctrl = STM_CTRL_CONFIG_MOD(1); + + desc->next_descpt_ptr = 0; /* end of chain */ + mxc_jpeg_addrs(desc, src_buf, dst_buf, 0); + /* TODO remove hardcodings*/ + mxc_jpeg_set_bufsize(desc, 0x1000); + mxc_jpeg_set_res(desc, 64, 64); + mxc_jpeg_set_line_pitch(desc, 64 * 2); + desc->stm_ctrl = STM_CTRL_CONFIG_MOD(0) | + STM_CTRL_IMAGE_FORMAT(MXC_JPEG_YUV422); + + dev_dbg(jpeg->dev, "cfg_desc - 0x%llx:\n", cfg_desc_handle); + print_descriptor_info(jpeg->dev, cfg_desc); + dev_dbg(jpeg->dev, "enc desc - 0x%llx:\n", desc_handle); + print_descriptor_info(jpeg->dev, desc); + print_wrapper_info(jpeg->dev, reg); + print_cast_status(jpeg->dev, reg, MXC_JPEG_ENCODE); + + /* validate the configuration descriptor */ + mxc_jpeg_set_desc(cfg_desc_handle, reg, slot); } static void mxc_jpeg_device_run(void *priv) { struct mxc_jpeg_ctx *ctx = priv; struct mxc_jpeg_dev *jpeg = ctx->mxc_jpeg; + void __iomem *reg = jpeg->base_reg; struct device *dev = jpeg->dev; struct vb2_buffer *src_buf, *dst_buf; unsigned long flags; int slot = 0; - dma_addr_t dma_handle; - struct mxc_jpeg_desc *desc; spin_lock_irqsave(&ctx->mxc_jpeg->hw_lock, flags); src_buf = v4l2_m2m_next_src_buf(ctx->fh.m2m_ctx); @@ -362,28 +378,24 @@ static void mxc_jpeg_device_run(void *priv) dev_err(dev, "Null src or dst buf\n"); goto end; } + + mxc_jpeg_sw_reset(reg); + mxc_jpeg_enable(reg); + mxc_jpeg_set_l_endian(reg, 1); + slot = 0; /* TODO get slot */ - mxc_jpeg_enable(jpeg->base_reg); + mxc_jpeg_enable_slot(reg, slot); + mxc_jpeg_enable_irq(reg, slot); if (ctx->mode == MXC_JPEG_ENCODE) { dev_dbg(dev, "Encoding on slot %d\n", slot); - mxc_jpeg_sw_reset(jpeg->base_reg); ctx->enc_state = MXC_JPEG_ENC_CONF; - mxc_jpeg_config_enc(dst_buf, slot, jpeg); + mxc_jpeg_config_enc_desc(dst_buf, slot, jpeg, src_buf, dst_buf); + mxc_jpeg_go_enc(dev, reg); } else { dev_dbg(dev, "Decoding on slot %d\n", slot); - desc = jpeg->slot_data[slot].desc; - dma_handle = jpeg->slot_data[slot].desc_handle; - - mxc_jpeg_addrs(desc, dst_buf, src_buf, 0); - - mxc_jpeg_enable_slot(jpeg->base_reg, slot); - mxc_jpeg_set_bufsize(desc, - mxc_jpeg_align(vb2_plane_size(src_buf, 0), 1024)); - mxc_jpeg_enable_irq(jpeg->base_reg, slot); - print_descriptor_info(dev, desc); - mxc_jpeg_set_desc(dma_handle, jpeg->base_reg, slot); - mxc_jpeg_go(jpeg->base_reg); + mxc_jpeg_config_dec_desc(dst_buf, slot, jpeg, src_buf, dst_buf); + mxc_jpeg_go_dec(dev, reg); } end: spin_unlock_irqrestore(&ctx->mxc_jpeg->hw_lock, flags); @@ -493,8 +505,7 @@ static u8 get_sof(struct device *dev, _bswap16(&sof->length); _bswap16(&sof->height); _bswap16(&sof->width); - dev_info(dev, "JPEG SOF: length=%d, precision=%d\n", - sof->length, sof->precision); + dev_info(dev, "JPEG SOF: precision=%d\n", sof->precision); dev_info(dev, "JPEG SOF: height=%d, width=%d\n", sof->height, sof->width); for (i = 0; i < sof->components_no; i++) { @@ -1345,4 +1356,3 @@ static struct platform_driver mxc_jpeg_driver = { }; module_platform_driver(mxc_jpeg_driver); MODULE_LICENSE("GPL v2"); - diff --git a/drivers/media/platform/imx8/mxc-jpeg.h b/drivers/media/platform/imx8/mxc-jpeg.h index 88a3fba45d1c7e884765c6d5db05f1ed715b51a8..d2eb0521321d881557bf0b8353ad5b5e80016d52 100644 --- a/drivers/media/platform/imx8/mxc-jpeg.h +++ b/drivers/media/platform/imx8/mxc-jpeg.h @@ -31,8 +31,6 @@ #define MXC_JPEG_MAX_HEIGHT 0x2000 #define MXC_JPEG_MAX_WIDTH 0x2000 #define MXC_JPEG_DEFAULT_SIZEIMAGE 10000 -#define MXC_JPEG_DECODE 0 -#define MXC_JPEG_ENCODE 1 #define MXC_JPEG_ENC_CONF 1 #define MXC_JPEG_ENC_DONE 0 #define SOF0 0xC0