Loading Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -409,7 +409,7 @@ CHECK = sparse # Use the wrapper for the compiler. This wrapper scans for new # warnings and causes the build to stop upon encountering them CC = $(PYTHON) $(srctree)/scripts/gcc-wrapper.py $(REAL_CC) CC = $(PYTHON2) $(srctree)/scripts/gcc-wrapper.py $(REAL_CC) CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \ -Wbitwise -Wno-return-void -Wno-unknown-attribute $(CF) Loading arch/arm64/configs/vendor/bengal_defconfig +1 −0 Original line number Diff line number Diff line Loading @@ -633,6 +633,7 @@ CONFIG_IIO=y CONFIG_QCOM_SPMI_ADC5=y CONFIG_PWM=y CONFIG_PWM_QTI_LPG=y CONFIG_PWM_QCOM=y CONFIG_ARM_GIC_V3_ACL=y CONFIG_QCOM_MPM=y CONFIG_PHY_XGENE=y Loading drivers/char/adsprpc.c +28 −11 Original line number Diff line number Diff line Loading @@ -415,8 +415,8 @@ struct fastrpc_mmap { int uncached; int secure; uintptr_t attr; bool is_filemap; /* flag to indicate map used in process init */ bool is_filemap; /* flag to indicate map used in process init */ unsigned int ctx_refs; /* Indicates reference count for context map */ }; enum fastrpc_perfkeys { Loading Loading @@ -862,8 +862,9 @@ static int fastrpc_mmap_remove(struct fastrpc_file *fl, uintptr_t va, return 0; } hlist_for_each_entry_safe(map, n, &fl->maps, hn) { if (map->refs == 1 && map->raddr == va && map->raddr + map->len == va + len && /* Remove if only one reference map and no context map */ if (map->refs == 1 && !map->ctx_refs && map->raddr == va && map->raddr + map->len == va + len && /* Remove map if not used in process initialization */ !map->is_filemap) { match = map; Loading Loading @@ -903,14 +904,14 @@ static void fastrpc_mmap_free(struct fastrpc_mmap *map, uint32_t flags) map->flags == ADSP_MMAP_REMOTE_HEAP_ADDR) { spin_lock(&me->hlock); map->refs--; if (!map->refs) if (!map->refs && !map->ctx_refs) hlist_del_init(&map->hn); spin_unlock(&me->hlock); if (map->refs > 0) return; } else { map->refs--; if (!map->refs) if (!map->refs && !map->ctx_refs) hlist_del_init(&map->hn); if (map->refs > 0 && !flags) return; Loading Loading @@ -1008,6 +1009,7 @@ static int fastrpc_mmap_create(struct fastrpc_file *fl, int fd, map->fd = fd; map->attr = attr; map->is_filemap = false; map->ctx_refs = 0; if (mflags == ADSP_MMAP_HEAP_ADDR || mflags == ADSP_MMAP_REMOTE_HEAP_ADDR) { map->apps = me; Loading Loading @@ -1533,8 +1535,11 @@ static void context_free(struct smq_invoke_ctx *ctx) spin_unlock(&ctx->fl->hlock); mutex_lock(&ctx->fl->map_mutex); for (i = 0; i < nbufs; ++i) for (i = 0; i < nbufs; ++i) { if (ctx->maps[i] && ctx->maps[i]->ctx_refs) ctx->maps[i]->ctx_refs--; fastrpc_mmap_free(ctx->maps[i], 0); } mutex_unlock(&ctx->fl->map_mutex); fastrpc_buf_free(ctx->buf, 1); Loading Loading @@ -1757,6 +1762,8 @@ static int get_args(uint32_t kernel, struct smq_invoke_ctx *ctx) err = fastrpc_mmap_create(ctx->fl, ctx->fds[i], ctx->attrs[i], buf, len, mflags, &ctx->maps[i]); if (ctx->maps[i]) ctx->maps[i]->ctx_refs++; mutex_unlock(&ctx->fl->map_mutex); if (err) goto bail; Loading @@ -1774,9 +1781,14 @@ static int get_args(uint32_t kernel, struct smq_invoke_ctx *ctx) err = fastrpc_mmap_create(ctx->fl, ctx->fds[i], FASTRPC_ATTR_NOVA, 0, 0, dmaflags, &ctx->maps[i]); if (!err && ctx->maps[i]) ctx->maps[i]->ctx_refs++; if (err) { for (j = bufs; j < i; j++) for (j = bufs; j < i; j++) { if (ctx->maps[j] && ctx->maps[j]->ctx_refs) ctx->maps[j]->ctx_refs--; fastrpc_mmap_free(ctx->maps[j], 0); } mutex_unlock(&ctx->fl->map_mutex); goto bail; } Loading Loading @@ -2059,6 +2071,8 @@ static int put_args(uint32_t kernel, struct smq_invoke_ctx *ctx, goto bail; } else { mutex_lock(&ctx->fl->map_mutex); if (ctx->maps[i]->ctx_refs) ctx->maps[i]->ctx_refs--; fastrpc_mmap_free(ctx->maps[i], 0); mutex_unlock(&ctx->fl->map_mutex); ctx->maps[i] = NULL; Loading @@ -2070,10 +2084,13 @@ static int put_args(uint32_t kernel, struct smq_invoke_ctx *ctx, if (!fdlist[i]) break; if (!fastrpc_mmap_find(ctx->fl, (int)fdlist[i], 0, 0, 0, 0, &mmap)) 0, 0, &mmap)) { if (mmap && mmap->ctx_refs) mmap->ctx_refs--; fastrpc_mmap_free(mmap, 0); } } } mutex_unlock(&ctx->fl->map_mutex); if (ctx->crc && crclist && rpra) K_COPY_TO_USER(err, kernel, ctx->crc, Loading drivers/clk/qcom/gcc-scuba.c +19 −0 Original line number Diff line number Diff line Loading @@ -2246,6 +2246,19 @@ static struct clk_regmap_div gcc_disp_gpll0_clk_src = { }, }; static struct clk_regmap_div gcc_pwm0_xo512_div_clk_src = { .reg = 0x20030, .shift = 0, .width = 9, .clkr.hw.init = &(const struct clk_init_data) { .name = "gcc_pwm0_xo512_div_clk_src", .parent_names = (const char *[]){ "bi_tcxo" }, .num_parents = 1, .ops = &clk_regmap_div_ops, }, }; static struct clk_branch gcc_disp_gpll0_div_clk_src = { .halt_check = BRANCH_HALT_DELAY, .clkr = { Loading Loading @@ -2522,6 +2535,11 @@ static struct clk_branch gcc_pwm0_xo512_clk = { .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_pwm0_xo512_clk", .parent_names = (const char *[]){ "gcc_pwm0_xo512_div_clk_src", }, .num_parents = 1, .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, Loading Loading @@ -3178,6 +3196,7 @@ static struct clk_regmap *gcc_scuba_clocks[] = { [GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr, [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr, [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr, [GCC_PWM0_XO512_DIV_CLK_SRC] = &gcc_pwm0_xo512_div_clk_src.clkr, [GCC_GPU_IREF_CLK] = &gcc_gpu_iref_clk.clkr, [GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr, [GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr, Loading drivers/crypto/msm/qcedev.c +3 −0 Original line number Diff line number Diff line Loading @@ -2283,8 +2283,11 @@ static int qcedev_remove(struct platform_device *pdev) podev = platform_get_drvdata(pdev); if (!podev) return 0; qcedev_ce_high_bw_req(podev, true); if (podev->qce) qce_close(podev->qce); qcedev_ce_high_bw_req(podev, false); if (podev->platform_support.bus_scale_table != NULL) msm_bus_scale_unregister_client(podev->bus_scale_handle); Loading Loading
Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -409,7 +409,7 @@ CHECK = sparse # Use the wrapper for the compiler. This wrapper scans for new # warnings and causes the build to stop upon encountering them CC = $(PYTHON) $(srctree)/scripts/gcc-wrapper.py $(REAL_CC) CC = $(PYTHON2) $(srctree)/scripts/gcc-wrapper.py $(REAL_CC) CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \ -Wbitwise -Wno-return-void -Wno-unknown-attribute $(CF) Loading
arch/arm64/configs/vendor/bengal_defconfig +1 −0 Original line number Diff line number Diff line Loading @@ -633,6 +633,7 @@ CONFIG_IIO=y CONFIG_QCOM_SPMI_ADC5=y CONFIG_PWM=y CONFIG_PWM_QTI_LPG=y CONFIG_PWM_QCOM=y CONFIG_ARM_GIC_V3_ACL=y CONFIG_QCOM_MPM=y CONFIG_PHY_XGENE=y Loading
drivers/char/adsprpc.c +28 −11 Original line number Diff line number Diff line Loading @@ -415,8 +415,8 @@ struct fastrpc_mmap { int uncached; int secure; uintptr_t attr; bool is_filemap; /* flag to indicate map used in process init */ bool is_filemap; /* flag to indicate map used in process init */ unsigned int ctx_refs; /* Indicates reference count for context map */ }; enum fastrpc_perfkeys { Loading Loading @@ -862,8 +862,9 @@ static int fastrpc_mmap_remove(struct fastrpc_file *fl, uintptr_t va, return 0; } hlist_for_each_entry_safe(map, n, &fl->maps, hn) { if (map->refs == 1 && map->raddr == va && map->raddr + map->len == va + len && /* Remove if only one reference map and no context map */ if (map->refs == 1 && !map->ctx_refs && map->raddr == va && map->raddr + map->len == va + len && /* Remove map if not used in process initialization */ !map->is_filemap) { match = map; Loading Loading @@ -903,14 +904,14 @@ static void fastrpc_mmap_free(struct fastrpc_mmap *map, uint32_t flags) map->flags == ADSP_MMAP_REMOTE_HEAP_ADDR) { spin_lock(&me->hlock); map->refs--; if (!map->refs) if (!map->refs && !map->ctx_refs) hlist_del_init(&map->hn); spin_unlock(&me->hlock); if (map->refs > 0) return; } else { map->refs--; if (!map->refs) if (!map->refs && !map->ctx_refs) hlist_del_init(&map->hn); if (map->refs > 0 && !flags) return; Loading Loading @@ -1008,6 +1009,7 @@ static int fastrpc_mmap_create(struct fastrpc_file *fl, int fd, map->fd = fd; map->attr = attr; map->is_filemap = false; map->ctx_refs = 0; if (mflags == ADSP_MMAP_HEAP_ADDR || mflags == ADSP_MMAP_REMOTE_HEAP_ADDR) { map->apps = me; Loading Loading @@ -1533,8 +1535,11 @@ static void context_free(struct smq_invoke_ctx *ctx) spin_unlock(&ctx->fl->hlock); mutex_lock(&ctx->fl->map_mutex); for (i = 0; i < nbufs; ++i) for (i = 0; i < nbufs; ++i) { if (ctx->maps[i] && ctx->maps[i]->ctx_refs) ctx->maps[i]->ctx_refs--; fastrpc_mmap_free(ctx->maps[i], 0); } mutex_unlock(&ctx->fl->map_mutex); fastrpc_buf_free(ctx->buf, 1); Loading Loading @@ -1757,6 +1762,8 @@ static int get_args(uint32_t kernel, struct smq_invoke_ctx *ctx) err = fastrpc_mmap_create(ctx->fl, ctx->fds[i], ctx->attrs[i], buf, len, mflags, &ctx->maps[i]); if (ctx->maps[i]) ctx->maps[i]->ctx_refs++; mutex_unlock(&ctx->fl->map_mutex); if (err) goto bail; Loading @@ -1774,9 +1781,14 @@ static int get_args(uint32_t kernel, struct smq_invoke_ctx *ctx) err = fastrpc_mmap_create(ctx->fl, ctx->fds[i], FASTRPC_ATTR_NOVA, 0, 0, dmaflags, &ctx->maps[i]); if (!err && ctx->maps[i]) ctx->maps[i]->ctx_refs++; if (err) { for (j = bufs; j < i; j++) for (j = bufs; j < i; j++) { if (ctx->maps[j] && ctx->maps[j]->ctx_refs) ctx->maps[j]->ctx_refs--; fastrpc_mmap_free(ctx->maps[j], 0); } mutex_unlock(&ctx->fl->map_mutex); goto bail; } Loading Loading @@ -2059,6 +2071,8 @@ static int put_args(uint32_t kernel, struct smq_invoke_ctx *ctx, goto bail; } else { mutex_lock(&ctx->fl->map_mutex); if (ctx->maps[i]->ctx_refs) ctx->maps[i]->ctx_refs--; fastrpc_mmap_free(ctx->maps[i], 0); mutex_unlock(&ctx->fl->map_mutex); ctx->maps[i] = NULL; Loading @@ -2070,10 +2084,13 @@ static int put_args(uint32_t kernel, struct smq_invoke_ctx *ctx, if (!fdlist[i]) break; if (!fastrpc_mmap_find(ctx->fl, (int)fdlist[i], 0, 0, 0, 0, &mmap)) 0, 0, &mmap)) { if (mmap && mmap->ctx_refs) mmap->ctx_refs--; fastrpc_mmap_free(mmap, 0); } } } mutex_unlock(&ctx->fl->map_mutex); if (ctx->crc && crclist && rpra) K_COPY_TO_USER(err, kernel, ctx->crc, Loading
drivers/clk/qcom/gcc-scuba.c +19 −0 Original line number Diff line number Diff line Loading @@ -2246,6 +2246,19 @@ static struct clk_regmap_div gcc_disp_gpll0_clk_src = { }, }; static struct clk_regmap_div gcc_pwm0_xo512_div_clk_src = { .reg = 0x20030, .shift = 0, .width = 9, .clkr.hw.init = &(const struct clk_init_data) { .name = "gcc_pwm0_xo512_div_clk_src", .parent_names = (const char *[]){ "bi_tcxo" }, .num_parents = 1, .ops = &clk_regmap_div_ops, }, }; static struct clk_branch gcc_disp_gpll0_div_clk_src = { .halt_check = BRANCH_HALT_DELAY, .clkr = { Loading Loading @@ -2522,6 +2535,11 @@ static struct clk_branch gcc_pwm0_xo512_clk = { .enable_mask = BIT(0), .hw.init = &(struct clk_init_data){ .name = "gcc_pwm0_xo512_clk", .parent_names = (const char *[]){ "gcc_pwm0_xo512_div_clk_src", }, .num_parents = 1, .flags = CLK_SET_RATE_PARENT, .ops = &clk_branch2_ops, }, }, Loading Loading @@ -3178,6 +3196,7 @@ static struct clk_regmap *gcc_scuba_clocks[] = { [GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr, [GCC_GPU_GPLL0_CLK_SRC] = &gcc_gpu_gpll0_clk_src.clkr, [GCC_GPU_GPLL0_DIV_CLK_SRC] = &gcc_gpu_gpll0_div_clk_src.clkr, [GCC_PWM0_XO512_DIV_CLK_SRC] = &gcc_pwm0_xo512_div_clk_src.clkr, [GCC_GPU_IREF_CLK] = &gcc_gpu_iref_clk.clkr, [GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr, [GCC_GPU_SNOC_DVM_GFX_CLK] = &gcc_gpu_snoc_dvm_gfx_clk.clkr, Loading
drivers/crypto/msm/qcedev.c +3 −0 Original line number Diff line number Diff line Loading @@ -2283,8 +2283,11 @@ static int qcedev_remove(struct platform_device *pdev) podev = platform_get_drvdata(pdev); if (!podev) return 0; qcedev_ce_high_bw_req(podev, true); if (podev->qce) qce_close(podev->qce); qcedev_ce_high_bw_req(podev, false); if (podev->platform_support.bus_scale_table != NULL) msm_bus_scale_unregister_client(podev->bus_scale_handle); Loading