Commit 53ebeea5 authored by Ming Qian's avatar Ming Qian Committed by Mauro Carvalho Chehab

media: imx-jpeg: Support to assign slot for encoder/decoder

imx jpeg encoder and decoder support 4 slots each,
aim to support some virtualization scenarios.

driver should only enable one slot one time.

but due to some hardware issue,
only slot 0 can be enabled in imx8q platform,
and they may be fixed in imx9 platform.
Signed-off-by: default avatarMing Qian <ming.qian@nxp.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@kernel.org>
parent dcff0b56
...@@ -58,7 +58,6 @@ ...@@ -58,7 +58,6 @@
#define CAST_OFBSIZE_LO CAST_STATUS18 #define CAST_OFBSIZE_LO CAST_STATUS18
#define CAST_OFBSIZE_HI CAST_STATUS19 #define CAST_OFBSIZE_HI CAST_STATUS19
#define MXC_MAX_SLOTS 1 /* TODO use all 4 slots*/
/* JPEG-Decoder Wrapper Slot Registers 0..3 */ /* JPEG-Decoder Wrapper Slot Registers 0..3 */
#define SLOT_BASE 0x10000 #define SLOT_BASE 0x10000
#define SLOT_STATUS 0x0 #define SLOT_STATUS 0x0
......
...@@ -97,7 +97,7 @@ struct mxc_jpeg_ctx { ...@@ -97,7 +97,7 @@ struct mxc_jpeg_ctx {
struct mxc_jpeg_q_data cap_q; struct mxc_jpeg_q_data cap_q;
struct v4l2_fh fh; struct v4l2_fh fh;
enum mxc_jpeg_enc_state enc_state; enum mxc_jpeg_enc_state enc_state;
unsigned int slot; int slot;
unsigned int source_change; unsigned int source_change;
bool header_parsed; bool header_parsed;
struct v4l2_ctrl_handler ctrl_handler; struct v4l2_ctrl_handler ctrl_handler;
...@@ -106,6 +106,7 @@ struct mxc_jpeg_ctx { ...@@ -106,6 +106,7 @@ struct mxc_jpeg_ctx {
}; };
struct mxc_jpeg_slot_data { struct mxc_jpeg_slot_data {
int slot;
bool used; bool used;
struct mxc_jpeg_desc *desc; // enc/dec descriptor struct mxc_jpeg_desc *desc; // enc/dec descriptor
struct mxc_jpeg_desc *cfg_desc; // configuration descriptor struct mxc_jpeg_desc *cfg_desc; // configuration descriptor
...@@ -128,7 +129,7 @@ struct mxc_jpeg_dev { ...@@ -128,7 +129,7 @@ struct mxc_jpeg_dev {
struct v4l2_device v4l2_dev; struct v4l2_device v4l2_dev;
struct v4l2_m2m_dev *m2m_dev; struct v4l2_m2m_dev *m2m_dev;
struct video_device *dec_vdev; struct video_device *dec_vdev;
struct mxc_jpeg_slot_data slot_data[MXC_MAX_SLOTS]; struct mxc_jpeg_slot_data slot_data;
int num_domains; int num_domains;
struct device **pd_dev; struct device **pd_dev;
struct device_link **pd_link; struct device_link **pd_link;
......
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