diff --git a/arch/arm64/boot/dts/rockchip/rk3562-amp.dtsi b/arch/arm64/boot/dts/rockchip/rk3562-amp.dtsi index 58c9df9d44e6..0cf505c7ee30 100644 --- a/arch/arm64/boot/dts/rockchip/rk3562-amp.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3562-amp.dtsi @@ -17,7 +17,7 @@ pinctrl-0 = <&uart7m1_xfer>; amp-cpu-aff-maskbits = /bits/ 64 <0x0 0x1 0x1 0x2 0x2 0x4 0x3 0x8>; - amp-irqs = /bits/ 64 ; + amp-irqs = /bits/ 64 ; status = "okay"; }; @@ -57,7 +57,8 @@ mbox-names = "rpmsg-rx", "rpmsg-tx"; mboxes = <&mailbox 0 &mailbox 3>; rockchip,vdev-nums = <1>; - rockchip,link-id = <0x04>; + /* CPU3: link-id 0x03; MCU: link-id 0x04; */ + rockchip,link-id = <0x03>; reg = <0x0 0x7c00000 0x0 0x20000>; memory-region = <&rpmsg_dma_reserved>; diff --git a/drivers/media/i2c/os02k10.c b/drivers/media/i2c/os02k10.c index 398805307dae..16df5d5972e3 100644 --- a/drivers/media/i2c/os02k10.c +++ b/drivers/media/i2c/os02k10.c @@ -47,7 +47,7 @@ #define OS02K10_XVCLK_FREQ 24000000 -#define CHIP_ID 0x530243 +#define CHIP_ID 0x005302 #define OS02K10_REG_CHIP_ID 0x300a #define OS02K10_REG_CTRL_MODE 0x0100 @@ -2095,11 +2095,11 @@ static int os02k10_probe(struct i2c_client *client, return -EINVAL; } - os02k10->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_ASIS); + os02k10->reset_gpio = devm_gpiod_get(dev, "reset", os02k10->is_thunderboot ? GPIOD_ASIS : GPIOD_OUT_LOW); if (IS_ERR(os02k10->reset_gpio)) dev_warn(dev, "Failed to get reset-gpios\n"); - os02k10->pwdn_gpio = devm_gpiod_get(dev, "pwdn", GPIOD_ASIS); + os02k10->pwdn_gpio = devm_gpiod_get(dev, "pwdn", os02k10->is_thunderboot ? GPIOD_ASIS : GPIOD_OUT_LOW); if (IS_ERR(os02k10->pwdn_gpio)) dev_warn(dev, "Failed to get pwdn-gpios\n"); diff --git a/drivers/media/platform/rockchip/isp/rkisp.c b/drivers/media/platform/rockchip/isp/rkisp.c index fde2617f5049..35f405e13e0c 100644 --- a/drivers/media/platform/rockchip/isp/rkisp.c +++ b/drivers/media/platform/rockchip/isp/rkisp.c @@ -1469,7 +1469,7 @@ static void rkisp_config_cmsk_dual(struct rkisp_device *dev, left.win[0].win_en &= ~BIT(i); left.win[1].win_en &= ~BIT(i); left.win[2].win_en &= ~BIT(i); - right.win[i].h_offs = right.win[i].h_offs - w; + right.win[i].h_offs = h_offs - w + RKMOUDLE_UNITE_EXTEND_PIXEL; } else { /* cmsk window at dual isp */ left.win[i].h_size = ALIGN(w - h_offs, 8); diff --git a/drivers/video/rockchip/rga3/rga_drv.c b/drivers/video/rockchip/rga3/rga_drv.c index fa480095ec49..0ea84e48f0ef 100644 --- a/drivers/video/rockchip/rga3/rga_drv.c +++ b/drivers/video/rockchip/rga3/rga_drv.c @@ -885,11 +885,6 @@ static long rga_ioctl_blit(unsigned long arg, uint32_t cmd, struct rga_session * /* In the BLIT_SYNC/BLIT_ASYNC command, in_fence_fd needs to be set. */ request->acquire_fence_fd = rga_req->in_fence_fd; - if (DEBUGGER_EN(MSG)) { - pr_info("Blit mode: request id = %d", user_request.id); - rga_cmd_print_debug_info(rga_req); - } - ret = rga_request_submit(request); if (ret < 0) { pr_err("request[%d] submit failed!\n", user_request.id); diff --git a/drivers/video/rockchip/rga3/rga_job.c b/drivers/video/rockchip/rga3/rga_job.c index 647fc2bd643c..0093aa2f7c2f 100644 --- a/drivers/video/rockchip/rga3/rga_job.c +++ b/drivers/video/rockchip/rga3/rga_job.c @@ -820,7 +820,14 @@ int rga_request_commit(struct rga_request *request) struct rga_job *job; for (i = 0; i < request->task_count; i++) { - job = rga_job_commit(&(request->task_list[i]), request); + struct rga_req *req = &(request->task_list[i]); + + if (DEBUGGER_EN(MSG)) { + pr_info("commit request[%d] task[%d]:\n", request->id, i); + rga_cmd_print_debug_info(req); + } + + job = rga_job_commit(req, request); if (IS_ERR(job)) { pr_err("request[%d] task[%d] job_commit failed.\n", request->id, i); rga_request_release_abort(request, PTR_ERR(job)); diff --git a/drivers/video/rockchip/rga3/rga_mm.c b/drivers/video/rockchip/rga3/rga_mm.c index d261833b3ace..94b54d45af08 100644 --- a/drivers/video/rockchip/rga3/rga_mm.c +++ b/drivers/video/rockchip/rga3/rga_mm.c @@ -842,7 +842,8 @@ static int rga_mm_handle_remove(int id, void *ptr, void *data) static struct rga_internal_buffer * rga_mm_lookup_external(struct rga_mm *mm_session, - struct rga_external_buffer *external_buffer) + struct rga_external_buffer *external_buffer, + struct mm_struct *current_mm) { int id; struct dma_buf *dma_buf = NULL; @@ -875,8 +876,12 @@ rga_mm_lookup_external(struct rga_mm *mm_session, continue; if (temp_buffer->virt_addr->addr == external_buffer->memory) { - output_buffer = temp_buffer; - break; + if (temp_buffer->current_mm == current_mm) { + output_buffer = temp_buffer; + break; + } + + continue; } } @@ -1482,6 +1487,11 @@ static void rga_mm_put_buffer(struct rga_mm *mm, if (rga_mm_sync_dma_sg_for_cpu(internal_buffer, job, dir)) pr_err("sync sgt for cpu error!\n"); + if (DEBUGGER_EN(MM)) { + pr_info("handle[%d] put info:\n", (int)internal_buffer->handle); + rga_mm_dump_buffer(internal_buffer); + } + mutex_lock(&mm->lock); kref_put(&internal_buffer->refcount, rga_mm_kref_release_buffer); mutex_unlock(&mm->lock); @@ -2023,11 +2033,17 @@ uint32_t rga_mm_import_buffer(struct rga_external_buffer *external_buffer, mutex_lock(&mm->lock); /* first, Check whether to rga_mm */ - internal_buffer = rga_mm_lookup_external(mm, external_buffer); + internal_buffer = rga_mm_lookup_external(mm, external_buffer, current->mm); if (!IS_ERR_OR_NULL(internal_buffer)) { kref_get(&internal_buffer->refcount); mutex_unlock(&mm->lock); + + if (DEBUGGER_EN(MM)) { + pr_info("import existing buffer:\n"); + rga_mm_dump_buffer(internal_buffer); + } + return internal_buffer->handle; } diff --git a/sound/soc/rockchip/rockchip_sai.c b/sound/soc/rockchip/rockchip_sai.c index 8faad87458ce..165de415dfec 100644 --- a/sound/soc/rockchip/rockchip_sai.c +++ b/sound/soc/rockchip/rockchip_sai.c @@ -881,39 +881,39 @@ static const char * const tpaths_text[] = { "From PATH0", "From PATH1", "From PATH2", "From PATH3" }; /* TXCR */ -static SOC_ENUM_SINGLE_DECL(tsft_enum, SAI_TXCR, 22, edge_shift_text); +static SOC_ENUM_SINGLE_DECL(__maybe_unused tsft_enum, SAI_TXCR, 22, edge_shift_text); static const struct soc_enum tx_lanes_enum = SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(tx_lanes_text), tx_lanes_text); -static SOC_ENUM_SINGLE_DECL(tsjm_enum, SAI_TXCR, 19, sjm_text); -static SOC_ENUM_SINGLE_DECL(tfbm_enum, SAI_TXCR, 18, fbm_text); -static SOC_ENUM_SINGLE_DECL(tvdj_enum, SAI_TXCR, 10, vdj_text); -static SOC_ENUM_SINGLE_DECL(tsbw_enum, SAI_TXCR, 5, sbw_text); +static SOC_ENUM_SINGLE_DECL(__maybe_unused tsjm_enum, SAI_TXCR, 19, sjm_text); +static SOC_ENUM_SINGLE_DECL(__maybe_unused tfbm_enum, SAI_TXCR, 18, fbm_text); +static SOC_ENUM_SINGLE_DECL(__maybe_unused tvdj_enum, SAI_TXCR, 10, vdj_text); +static SOC_ENUM_SINGLE_DECL(__maybe_unused tsbw_enum, SAI_TXCR, 5, sbw_text); /* FSCR */ -static SOC_ENUM_SINGLE_DECL(edge_enum, SAI_FSCR, 24, edge_text); -static const struct soc_enum fpw_enum = +static SOC_ENUM_SINGLE_DECL(__maybe_unused edge_enum, SAI_FSCR, 24, edge_text); +static const struct soc_enum __maybe_unused fpw_enum = SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(fpw_text), fpw_text); -static const struct soc_enum fw_ratio_enum = +static const struct soc_enum __maybe_unused fw_ratio_enum = SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(fw_ratio_text), fw_ratio_text); /* RXCR */ -static SOC_ENUM_SINGLE_DECL(rsft_enum, SAI_RXCR, 22, edge_shift_text); +static SOC_ENUM_SINGLE_DECL(__maybe_unused rsft_enum, SAI_RXCR, 22, edge_shift_text); static const struct soc_enum rx_lanes_enum = SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(rx_lanes_text), rx_lanes_text); -static SOC_ENUM_SINGLE_DECL(rsjm_enum, SAI_RXCR, 19, sjm_text); -static SOC_ENUM_SINGLE_DECL(rfbm_enum, SAI_RXCR, 18, fbm_text); -static SOC_ENUM_SINGLE_DECL(rvdj_enum, SAI_RXCR, 10, vdj_text); -static SOC_ENUM_SINGLE_DECL(rsbw_enum, SAI_RXCR, 5, sbw_text); +static SOC_ENUM_SINGLE_DECL(__maybe_unused rsjm_enum, SAI_RXCR, 19, sjm_text); +static SOC_ENUM_SINGLE_DECL(__maybe_unused rfbm_enum, SAI_RXCR, 18, fbm_text); +static SOC_ENUM_SINGLE_DECL(__maybe_unused rvdj_enum, SAI_RXCR, 10, vdj_text); +static SOC_ENUM_SINGLE_DECL(__maybe_unused rsbw_enum, SAI_RXCR, 5, sbw_text); /* MONO_CR */ static SOC_ENUM_SINGLE_DECL(rmono_switch, SAI_MONO_CR, 1, mono_text); static SOC_ENUM_SINGLE_DECL(tmono_switch, SAI_MONO_CR, 0, mono_text); /* CKR */ -static const struct soc_enum mss_switch = +static const struct soc_enum __maybe_unused mss_switch = SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(mss_text), mss_text); -static SOC_ENUM_SINGLE_DECL(sp_switch, SAI_CKR, 1, ckp_text); -static SOC_ENUM_SINGLE_DECL(fp_switch, SAI_CKR, 0, ckp_text); +static SOC_ENUM_SINGLE_DECL(__maybe_unused sp_switch, SAI_CKR, 1, ckp_text); +static SOC_ENUM_SINGLE_DECL(__maybe_unused fp_switch, SAI_CKR, 0, ckp_text); /* PATH_SEL */ static SOC_ENUM_SINGLE_DECL(lp3_enum, SAI_PATH_SEL, 28, lpx_text);