media: platform: mtk-mdp3: extend shared memory structure to 4-byte aligned
The communication between MDP3 kernel driver and SCP is pass through a shared memory, and the data structure is defined in the "mtk-img-ipi.h". However, there is a 4-byte read limit in further SCP hardware, so the data structure should be in 4-byte aligned. Signed-off-by: Moudy Ho <moudy.ho@mediatek.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
This commit is contained in:
parent
de547896aa
commit
fe4c63c1a4
|
@ -51,14 +51,14 @@ struct img_sw_addr {
|
|||
|
||||
struct img_plane_format {
|
||||
u32 size;
|
||||
u16 stride;
|
||||
u32 stride;
|
||||
} __packed;
|
||||
|
||||
struct img_pix_format {
|
||||
u16 width;
|
||||
u16 height;
|
||||
u32 width;
|
||||
u32 height;
|
||||
u32 colorformat; /* enum mdp_color */
|
||||
u16 ycbcr_prof; /* enum mdp_ycbcr_profile */
|
||||
u32 ycbcr_prof; /* enum mdp_ycbcr_profile */
|
||||
struct img_plane_format plane_fmt[IMG_MAX_PLANES];
|
||||
} __packed;
|
||||
|
||||
|
@ -72,10 +72,10 @@ struct img_image_buffer {
|
|||
#define IMG_SUBPIXEL_SHIFT 20
|
||||
|
||||
struct img_crop {
|
||||
s16 left;
|
||||
s16 top;
|
||||
u16 width;
|
||||
u16 height;
|
||||
s32 left;
|
||||
s32 top;
|
||||
u32 width;
|
||||
u32 height;
|
||||
u32 left_subpix;
|
||||
u32 top_subpix;
|
||||
u32 width_subpix;
|
||||
|
@ -90,24 +90,24 @@ struct img_crop {
|
|||
|
||||
struct img_input {
|
||||
struct img_image_buffer buffer;
|
||||
u16 flags; /* HDR, DRE, dither */
|
||||
u32 flags; /* HDR, DRE, dither */
|
||||
} __packed;
|
||||
|
||||
struct img_output {
|
||||
struct img_image_buffer buffer;
|
||||
struct img_crop crop;
|
||||
s16 rotation;
|
||||
u16 flags; /* H-flip, sharpness, dither */
|
||||
s32 rotation;
|
||||
u32 flags; /* H-flip, sharpness, dither */
|
||||
} __packed;
|
||||
|
||||
struct img_ipi_frameparam {
|
||||
u32 index;
|
||||
u32 frame_no;
|
||||
struct img_timeval timestamp;
|
||||
u8 type; /* enum mdp_stream_type */
|
||||
u8 state;
|
||||
u8 num_inputs;
|
||||
u8 num_outputs;
|
||||
u32 type; /* enum mdp_stream_type */
|
||||
u32 state;
|
||||
u32 num_inputs;
|
||||
u32 num_outputs;
|
||||
u64 drv_data;
|
||||
struct img_input inputs[IMG_MAX_HW_INPUTS];
|
||||
struct img_output outputs[IMG_MAX_HW_OUTPUTS];
|
||||
|
@ -123,51 +123,51 @@ struct img_sw_buffer {
|
|||
} __packed;
|
||||
|
||||
struct img_ipi_param {
|
||||
u8 usage;
|
||||
u32 usage;
|
||||
struct img_sw_buffer frm_param;
|
||||
} __packed;
|
||||
|
||||
struct img_frameparam {
|
||||
struct list_head list_entry;
|
||||
struct img_ipi_frameparam frameparam;
|
||||
};
|
||||
} __packed;
|
||||
|
||||
/* ISP-MDP generic output information */
|
||||
|
||||
struct img_comp_frame {
|
||||
u32 output_disable:1;
|
||||
u32 bypass:1;
|
||||
u16 in_width;
|
||||
u16 in_height;
|
||||
u16 out_width;
|
||||
u16 out_height;
|
||||
u32 output_disable;
|
||||
u32 bypass;
|
||||
u32 in_width;
|
||||
u32 in_height;
|
||||
u32 out_width;
|
||||
u32 out_height;
|
||||
struct img_crop crop;
|
||||
u16 in_total_width;
|
||||
u16 out_total_width;
|
||||
u32 in_total_width;
|
||||
u32 out_total_width;
|
||||
} __packed;
|
||||
|
||||
struct img_region {
|
||||
s16 left;
|
||||
s16 right;
|
||||
s16 top;
|
||||
s16 bottom;
|
||||
s32 left;
|
||||
s32 right;
|
||||
s32 top;
|
||||
s32 bottom;
|
||||
} __packed;
|
||||
|
||||
struct img_offset {
|
||||
s16 left;
|
||||
s16 top;
|
||||
s32 left;
|
||||
s32 top;
|
||||
u32 left_subpix;
|
||||
u32 top_subpix;
|
||||
} __packed;
|
||||
|
||||
struct img_comp_subfrm {
|
||||
u32 tile_disable:1;
|
||||
u32 tile_disable;
|
||||
struct img_region in;
|
||||
struct img_region out;
|
||||
struct img_offset luma;
|
||||
struct img_offset chroma;
|
||||
s16 out_vertical; /* Output vertical index */
|
||||
s16 out_horizontal; /* Output horizontal index */
|
||||
s32 out_vertical; /* Output vertical index */
|
||||
s32 out_horizontal; /* Output horizontal index */
|
||||
} __packed;
|
||||
|
||||
#define IMG_MAX_SUBFRAMES 14
|
||||
|
@ -250,8 +250,8 @@ struct isp_data {
|
|||
} __packed;
|
||||
|
||||
struct img_compparam {
|
||||
u16 type; /* enum mdp_comp_type */
|
||||
u16 id; /* enum mtk_mdp_comp_id */
|
||||
u32 type; /* enum mdp_comp_id */
|
||||
u32 id; /* engine alias_id */
|
||||
u32 input;
|
||||
u32 outputs[IMG_MAX_HW_OUTPUTS];
|
||||
u32 num_outputs;
|
||||
|
@ -273,12 +273,12 @@ struct img_mux {
|
|||
u32 reg;
|
||||
u32 value;
|
||||
u32 subsys_id;
|
||||
};
|
||||
} __packed;
|
||||
|
||||
struct img_mmsys_ctrl {
|
||||
struct img_mux sets[IMG_MAX_COMPONENTS * 2];
|
||||
u32 num_sets;
|
||||
};
|
||||
} __packed;
|
||||
|
||||
struct img_config {
|
||||
struct img_compparam components[IMG_MAX_COMPONENTS];
|
||||
|
|
Loading…
Reference in New Issue