mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 20:32:04 +09:00
video: rockchip: vop: 3399: add win2 and win3 when get dsp_info
Change-Id: Ib1ae76de66656b0531683eede117346945587008 Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
This commit is contained in:
committed by
Huang, Tao
parent
306e4f63c0
commit
52649986e8
@@ -3522,6 +3522,17 @@ static char *vop_format_to_string(int format, char *fmt)
|
||||
break;
|
||||
case 6:
|
||||
strcpy(fmt, "YCbCr444");
|
||||
case 8:
|
||||
strcpy(fmt, "YUYV422");
|
||||
break;
|
||||
case 9:
|
||||
strcpy(fmt, "YUYV420");
|
||||
break;
|
||||
case 10:
|
||||
strcpy(fmt, "UYVY422");
|
||||
break;
|
||||
case 11:
|
||||
strcpy(fmt, "UYVY420");
|
||||
break;
|
||||
default:
|
||||
strcpy(fmt, "invalid\n");
|
||||
@@ -3545,11 +3556,21 @@ static ssize_t vop_get_disp_info(struct rk_lcdc_driver *dev_drv,
|
||||
u32 fmt_id;
|
||||
char format_w0[9] = "NULL";
|
||||
char format_w1[9] = "NULL";
|
||||
char format_w2_0[9] = "NULL";
|
||||
char format_w2_1[9] = "NULL";
|
||||
char format_w2_2[9] = "NULL";
|
||||
char format_w2_3[9] = "NULL";
|
||||
char format_w3_0[9] = "NULL";
|
||||
char format_w3_1[9] = "NULL";
|
||||
char format_w3_2[9] = "NULL";
|
||||
char format_w3_3[9] = "NULL";
|
||||
char dsp_buf[100];
|
||||
u32 win_ctrl, zorder, vir_info, act_info, dsp_info, dsp_st;
|
||||
u32 y_factor, uv_factor;
|
||||
u8 layer0_sel, layer1_sel;
|
||||
u8 w0_state, w1_state;
|
||||
u8 layer0_sel, layer1_sel, layer2_sel, layer3_sel;
|
||||
u8 w0_state, w1_state, w2_state, w3_state;
|
||||
u8 w2_0_state, w2_1_state, w2_2_state, w2_3_state;
|
||||
u8 w3_0_state, w3_1_state, w3_2_state, w3_3_state;
|
||||
|
||||
u32 w0_vir_y, w0_vir_uv, w0_act_x, w0_act_y, w0_dsp_x, w0_dsp_y;
|
||||
u32 w0_st_x = h_pw_bp, w0_st_y = v_pw_bp;
|
||||
@@ -3558,6 +3579,21 @@ static ssize_t vop_get_disp_info(struct rk_lcdc_driver *dev_drv,
|
||||
u32 w0_y_h_fac, w0_y_v_fac, w0_uv_h_fac, w0_uv_v_fac;
|
||||
u32 w1_y_h_fac, w1_y_v_fac, w1_uv_h_fac, w1_uv_v_fac;
|
||||
|
||||
u32 w2_0_vir_y, w2_1_vir_y, w2_2_vir_y, w2_3_vir_y;
|
||||
u32 w2_0_dsp_x, w2_1_dsp_x, w2_2_dsp_x, w2_3_dsp_x;
|
||||
u32 w2_0_dsp_y, w2_1_dsp_y, w2_2_dsp_y, w2_3_dsp_y;
|
||||
u32 w2_0_st_x = h_pw_bp, w2_1_st_x = h_pw_bp;
|
||||
u32 w2_2_st_x = h_pw_bp, w2_3_st_x = h_pw_bp;
|
||||
u32 w2_0_st_y = v_pw_bp, w2_1_st_y = v_pw_bp;
|
||||
u32 w2_2_st_y = v_pw_bp, w2_3_st_y = v_pw_bp;
|
||||
|
||||
u32 w3_0_vir_y, w3_1_vir_y, w3_2_vir_y, w3_3_vir_y;
|
||||
u32 w3_0_dsp_x, w3_1_dsp_x, w3_2_dsp_x, w3_3_dsp_x;
|
||||
u32 w3_0_dsp_y, w3_1_dsp_y, w3_2_dsp_y, w3_3_dsp_y;
|
||||
u32 w3_0_st_x = h_pw_bp, w3_1_st_x = h_pw_bp;
|
||||
u32 w3_2_st_x = h_pw_bp, w3_3_st_x = h_pw_bp;
|
||||
u32 w3_0_st_y = v_pw_bp, w3_1_st_y = v_pw_bp;
|
||||
u32 w3_2_st_y = v_pw_bp, w3_3_st_y = v_pw_bp;
|
||||
u32 dclk_freq;
|
||||
int size = 0;
|
||||
|
||||
@@ -3569,10 +3605,13 @@ static ssize_t vop_get_disp_info(struct rk_lcdc_driver *dev_drv,
|
||||
zorder = vop_readl(vop_dev, DSP_CTRL1);
|
||||
layer0_sel = (zorder & MASK(DSP_LAYER0_SEL)) >> 8;
|
||||
layer1_sel = (zorder & MASK(DSP_LAYER1_SEL)) >> 10;
|
||||
layer2_sel = (zorder & MASK(DSP_LAYER2_SEL)) >> 12;
|
||||
layer3_sel = (zorder & MASK(DSP_LAYER3_SEL)) >> 14;
|
||||
/* WIN0 */
|
||||
win_ctrl = vop_readl(vop_dev, WIN0_CTRL0);
|
||||
w0_state = win_ctrl & MASK(WIN0_EN);
|
||||
fmt_id = (win_ctrl & MASK(WIN0_DATA_FMT)) >> 1;
|
||||
fmt_id |= (win_ctrl & MASK(WIN0_YUYV)) >> 14; /* yuyv*/
|
||||
vop_format_to_string(fmt_id, format_w0);
|
||||
vir_info = vop_readl(vop_dev, WIN0_VIR);
|
||||
act_info = vop_readl(vop_dev, WIN0_ACT_INFO);
|
||||
@@ -3599,6 +3638,7 @@ static ssize_t vop_get_disp_info(struct rk_lcdc_driver *dev_drv,
|
||||
win_ctrl = vop_readl(vop_dev, WIN1_CTRL0);
|
||||
w1_state = win_ctrl & MASK(WIN1_EN);
|
||||
fmt_id = (win_ctrl & MASK(WIN1_DATA_FMT)) >> 1;
|
||||
fmt_id |= (win_ctrl & MASK(WIN1_YUYV)) >> 14; /* yuyv*/
|
||||
vop_format_to_string(fmt_id, format_w1);
|
||||
vir_info = vop_readl(vop_dev, WIN1_VIR);
|
||||
act_info = vop_readl(vop_dev, WIN1_ACT_INFO);
|
||||
@@ -3620,14 +3660,126 @@ static ssize_t vop_get_disp_info(struct rk_lcdc_driver *dev_drv,
|
||||
w1_y_v_fac = (y_factor & MASK(WIN1_VS_FACTOR_YRGB)) >> 16;
|
||||
w1_uv_h_fac = uv_factor & MASK(WIN1_HS_FACTOR_CBR);
|
||||
w1_uv_v_fac = (uv_factor & MASK(WIN1_VS_FACTOR_CBR)) >> 16;
|
||||
|
||||
/*WIN2 */
|
||||
win_ctrl = vop_readl(vop_dev, WIN2_CTRL0);
|
||||
w2_state = win_ctrl & MASK(WIN2_EN);
|
||||
w2_0_state = (win_ctrl & 0x10) >> 4;
|
||||
w2_1_state = (win_ctrl & 0x100) >> 8;
|
||||
w2_2_state = (win_ctrl & 0x1000) >> 12;
|
||||
w2_3_state = (win_ctrl & 0x10000) >> 16;
|
||||
vir_info = vop_readl(vop_dev, WIN2_VIR0_1);
|
||||
w2_0_vir_y = vir_info & MASK(WIN2_VIR_STRIDE0);
|
||||
w2_1_vir_y = (vir_info & MASK(WIN2_VIR_STRIDE1)) >> 16;
|
||||
vir_info = vop_readl(vop_dev, WIN2_VIR2_3);
|
||||
w2_2_vir_y = vir_info & MASK(WIN2_VIR_STRIDE2);
|
||||
w2_3_vir_y = (vir_info & MASK(WIN2_VIR_STRIDE3)) >> 16;
|
||||
|
||||
fmt_id = (win_ctrl & MASK(WIN2_DATA_FMT0)) >> 5;
|
||||
vop_format_to_string(fmt_id, format_w2_0);
|
||||
fmt_id = (win_ctrl & MASK(WIN2_DATA_FMT1)) >> 9;
|
||||
vop_format_to_string(fmt_id, format_w2_1);
|
||||
fmt_id = (win_ctrl & MASK(WIN2_DATA_FMT2)) >> 13;
|
||||
vop_format_to_string(fmt_id, format_w2_2);
|
||||
fmt_id = (win_ctrl & MASK(WIN2_DATA_FMT3)) >> 17;
|
||||
vop_format_to_string(fmt_id, format_w2_3);
|
||||
|
||||
dsp_info = vop_readl(vop_dev, WIN2_DSP_INFO0);
|
||||
dsp_st = vop_readl(vop_dev, WIN2_DSP_ST0);
|
||||
w2_0_dsp_x = (dsp_info & MASK(WIN2_DSP_WIDTH0)) + 1;
|
||||
w2_0_dsp_y = ((dsp_info & MASK(WIN2_DSP_HEIGHT0)) >> 16) + 1;
|
||||
if (w2_0_state) {
|
||||
w2_0_st_x = dsp_st & MASK(WIN2_DSP_XST0);
|
||||
w2_0_st_y = (dsp_st & MASK(WIN2_DSP_YST0)) >> 16;
|
||||
}
|
||||
dsp_info = vop_readl(vop_dev, WIN2_DSP_INFO1);
|
||||
dsp_st = vop_readl(vop_dev, WIN2_DSP_ST1);
|
||||
w2_1_dsp_x = (dsp_info & MASK(WIN2_DSP_WIDTH1)) + 1;
|
||||
w2_1_dsp_y = ((dsp_info & MASK(WIN2_DSP_HEIGHT1)) >> 16) + 1;
|
||||
if (w2_1_state) {
|
||||
w2_1_st_x = dsp_st & MASK(WIN2_DSP_XST1);
|
||||
w2_1_st_y = (dsp_st & MASK(WIN2_DSP_YST1)) >> 16;
|
||||
}
|
||||
dsp_info = vop_readl(vop_dev, WIN2_DSP_INFO2);
|
||||
dsp_st = vop_readl(vop_dev, WIN2_DSP_ST2);
|
||||
w2_2_dsp_x = (dsp_info & MASK(WIN2_DSP_WIDTH2)) + 1;
|
||||
w2_2_dsp_y = ((dsp_info & MASK(WIN2_DSP_HEIGHT2)) >> 16) + 1;
|
||||
if (w2_2_state) {
|
||||
w2_2_st_x = dsp_st & MASK(WIN2_DSP_XST2);
|
||||
w2_2_st_y = (dsp_st & MASK(WIN2_DSP_YST2)) >> 16;
|
||||
}
|
||||
dsp_info = vop_readl(vop_dev, WIN2_DSP_INFO3);
|
||||
dsp_st = vop_readl(vop_dev, WIN2_DSP_ST3);
|
||||
w2_3_dsp_x = (dsp_info & MASK(WIN2_DSP_WIDTH3)) + 1;
|
||||
w2_3_dsp_y = ((dsp_info & MASK(WIN2_DSP_HEIGHT3)) >> 16) + 1;
|
||||
if (w2_3_state) {
|
||||
w2_3_st_x = dsp_st & MASK(WIN2_DSP_XST3);
|
||||
w2_3_st_y = (dsp_st & MASK(WIN2_DSP_YST3)) >> 16;
|
||||
}
|
||||
|
||||
/*WIN3 */
|
||||
win_ctrl = vop_readl(vop_dev, WIN3_CTRL0);
|
||||
w3_state = win_ctrl & MASK(WIN3_EN);
|
||||
w3_0_state = (win_ctrl & 0x10) >> 4;
|
||||
w3_1_state = (win_ctrl & 0x100) >> 8;
|
||||
w3_2_state = (win_ctrl & 0x1000) >> 12;
|
||||
w3_3_state = (win_ctrl & 0x10000) >> 16;
|
||||
vir_info = vop_readl(vop_dev, WIN3_VIR0_1);
|
||||
w3_0_vir_y = vir_info & MASK(WIN3_VIR_STRIDE0);
|
||||
w3_1_vir_y = (vir_info & MASK(WIN3_VIR_STRIDE1)) >> 16;
|
||||
vir_info = vop_readl(vop_dev, WIN3_VIR2_3);
|
||||
w3_2_vir_y = vir_info & MASK(WIN3_VIR_STRIDE2);
|
||||
w3_3_vir_y = (vir_info & MASK(WIN3_VIR_STRIDE3)) >> 16;
|
||||
|
||||
fmt_id = (win_ctrl & MASK(WIN3_DATA_FMT0)) >> 5;
|
||||
vop_format_to_string(fmt_id, format_w3_0);
|
||||
fmt_id = (win_ctrl & MASK(WIN3_DATA_FMT1)) >> 9;
|
||||
vop_format_to_string(fmt_id, format_w3_1);
|
||||
fmt_id = (win_ctrl & MASK(WIN3_DATA_FMT2)) >> 13;
|
||||
vop_format_to_string(fmt_id, format_w3_2);
|
||||
fmt_id = (win_ctrl & MASK(WIN3_DATA_FMT3)) >> 17;
|
||||
vop_format_to_string(fmt_id, format_w3_3);
|
||||
|
||||
dsp_info = vop_readl(vop_dev, WIN3_DSP_INFO0);
|
||||
dsp_st = vop_readl(vop_dev, WIN3_DSP_ST0);
|
||||
w3_0_dsp_x = (dsp_info & MASK(WIN3_DSP_WIDTH0)) + 1;
|
||||
w3_0_dsp_y = ((dsp_info & MASK(WIN3_DSP_HEIGHT0)) >> 16) + 1;
|
||||
if (w3_0_state) {
|
||||
w3_0_st_x = dsp_st & MASK(WIN3_DSP_XST0);
|
||||
w3_0_st_y = (dsp_st & MASK(WIN3_DSP_YST0)) >> 16;
|
||||
}
|
||||
dsp_info = vop_readl(vop_dev, WIN3_DSP_INFO1);
|
||||
dsp_st = vop_readl(vop_dev, WIN3_DSP_ST1);
|
||||
w3_1_dsp_x = (dsp_info & MASK(WIN3_DSP_WIDTH1)) + 1;
|
||||
w3_1_dsp_y = ((dsp_info & MASK(WIN3_DSP_HEIGHT1)) >> 16) + 1;
|
||||
if (w3_1_state) {
|
||||
w3_1_st_x = dsp_st & MASK(WIN3_DSP_XST1);
|
||||
w3_1_st_y = (dsp_st & MASK(WIN3_DSP_YST1)) >> 16;
|
||||
}
|
||||
dsp_info = vop_readl(vop_dev, WIN3_DSP_INFO2);
|
||||
dsp_st = vop_readl(vop_dev, WIN3_DSP_ST2);
|
||||
w3_2_dsp_x = (dsp_info & MASK(WIN3_DSP_WIDTH2)) + 1;
|
||||
w3_2_dsp_y = ((dsp_info & MASK(WIN3_DSP_HEIGHT2)) >> 16) + 1;
|
||||
if (w3_2_state) {
|
||||
w3_2_st_x = dsp_st & MASK(WIN3_DSP_XST2);
|
||||
w3_2_st_y = (dsp_st & MASK(WIN3_DSP_YST2)) >> 16;
|
||||
}
|
||||
dsp_info = vop_readl(vop_dev, WIN3_DSP_INFO3);
|
||||
dsp_st = vop_readl(vop_dev, WIN3_DSP_ST3);
|
||||
w3_3_dsp_x = (dsp_info & MASK(WIN3_DSP_WIDTH3)) + 1;
|
||||
w3_3_dsp_y = ((dsp_info & MASK(WIN3_DSP_HEIGHT3)) >> 16) + 1;
|
||||
if (w3_3_state) {
|
||||
w3_3_st_x = dsp_st & MASK(WIN3_DSP_XST3);
|
||||
w3_3_st_y = (dsp_st & MASK(WIN3_DSP_YST3)) >> 16;
|
||||
}
|
||||
} else {
|
||||
spin_unlock(&vop_dev->reg_lock);
|
||||
return -EPERM;
|
||||
}
|
||||
spin_unlock(&vop_dev->reg_lock);
|
||||
size += snprintf(dsp_buf, 80,
|
||||
"z-order:\n win[%d]\n win[%d]\n",
|
||||
layer1_sel, layer0_sel);
|
||||
"z-order:\n win[%d]\n win[%d]\n win[%d]\n win[%d]\n",
|
||||
layer1_sel, layer0_sel, layer2_sel, layer3_sel);
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
/* win0 */
|
||||
@@ -3682,6 +3834,122 @@ static ssize_t vop_get_disp_info(struct rk_lcdc_driver *dev_drv,
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
|
||||
/*win2*/
|
||||
size += snprintf(dsp_buf, 80,
|
||||
"win2:\n state:%d\n",
|
||||
w2_state);
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
/*area 0*/
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" area0: state:%d, fmt:%7s, dsp_x:%4d, dsp_y:%4d,",
|
||||
w2_0_state, format_w2_0, w2_0_dsp_x, w2_0_dsp_y);
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" x_st:%4d, y_st:%4d, y_addr:0x%08x\n",
|
||||
w2_0_st_x - h_pw_bp, w2_0_st_y - v_pw_bp,
|
||||
vop_readl(vop_dev, WIN2_MST0));
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
|
||||
/*area 1*/
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" area1: state:%d, fmt:%7s, dsp_x:%4d, dsp_y:%4d,",
|
||||
w2_1_state, format_w2_1, w2_1_dsp_x, w2_1_dsp_y);
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" x_st:%4d, y_st:%4d, y_addr:0x%08x\n",
|
||||
w2_1_st_x - h_pw_bp, w2_1_st_y - v_pw_bp,
|
||||
vop_readl(vop_dev, WIN2_MST1));
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
|
||||
/*area 2*/
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" area2: state:%d, fmt:%7s, dsp_x:%4d, dsp_y:%4d,",
|
||||
w2_2_state, format_w2_2, w2_2_dsp_x, w2_2_dsp_y);
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" x_st:%4d, y_st:%4d, y_addr:0x%08x\n",
|
||||
w2_2_st_x - h_pw_bp, w2_2_st_y - v_pw_bp,
|
||||
vop_readl(vop_dev, WIN2_MST2));
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
|
||||
/*area 3*/
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" area3: state:%d, fmt:%7s, dsp_x:%4d, dsp_y:%4d,",
|
||||
w2_3_state, format_w2_3, w2_3_dsp_x, w2_3_dsp_y);
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" x_st:%4d, y_st:%4d, y_addr:0x%08x\n",
|
||||
w2_3_st_x - h_pw_bp, w2_3_st_y - v_pw_bp,
|
||||
vop_readl(vop_dev, WIN2_MST3));
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
|
||||
/*win3*/
|
||||
size += snprintf(dsp_buf, 80,
|
||||
"win3:\n state:%d\n",
|
||||
w3_state);
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
/*area 0*/
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" area0: state:%d, fmt:%7s, dsp_x:%4d, dsp_y:%4d,",
|
||||
w3_0_state, format_w3_0, w3_0_dsp_x, w3_0_dsp_y);
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" x_st:%4d, y_st:%4d, y_addr:0x%08x\n",
|
||||
w3_0_st_x - h_pw_bp, w3_0_st_y - v_pw_bp,
|
||||
vop_readl(vop_dev, WIN3_MST0));
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
|
||||
/*area 1*/
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" area1: state:%d, fmt:%7s, dsp_x:%4d, dsp_y:%4d,",
|
||||
w3_1_state, format_w3_1, w3_1_dsp_x, w3_1_dsp_y);
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" x_st:%4d, y_st:%4d, y_addr:0x%08x\n",
|
||||
w3_1_st_x - h_pw_bp, w3_1_st_y - v_pw_bp,
|
||||
vop_readl(vop_dev, WIN3_MST1));
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
|
||||
/*area 2*/
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" area2: state:%d, fmt:%7s, dsp_x:%4d, dsp_y:%4d,",
|
||||
w3_2_state, format_w3_2, w3_2_dsp_x, w3_2_dsp_y);
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" x_st:%4d, y_st:%4d, y_addr:0x%08x\n",
|
||||
w3_2_st_x - h_pw_bp, w3_2_st_y - v_pw_bp,
|
||||
vop_readl(vop_dev, WIN3_MST2));
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
|
||||
/*area 3*/
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" area3: state:%d, fmt:%7s, dsp_x:%4d, dsp_y:%4d,",
|
||||
w3_3_state, format_w3_3, w3_3_dsp_x, w3_3_dsp_y);
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
size += snprintf(dsp_buf, 80,
|
||||
" x_st:%4d, y_st:%4d, y_addr:0x%08x\n",
|
||||
w3_3_st_x - h_pw_bp, w3_3_st_y - v_pw_bp,
|
||||
vop_readl(vop_dev, WIN3_MST3));
|
||||
strcat(buf, dsp_buf);
|
||||
memset(dsp_buf, 0, sizeof(dsp_buf));
|
||||
|
||||
return size;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user