Loading drivers/media/platform/msm/vidc/venus_hfi.c +22 −13 Original line number Original line Diff line number Diff line Loading @@ -3386,6 +3386,7 @@ static inline int __init_clocks(struct venus_hfi_device *device) static inline void __disable_unprepare_clks(struct venus_hfi_device *device) static inline void __disable_unprepare_clks(struct venus_hfi_device *device) { { struct clock_info *cl; struct clock_info *cl; int rc = 0; if (!device) { if (!device) { dprintk(VIDC_ERR, "Invalid params: %pK\n", device); dprintk(VIDC_ERR, "Invalid params: %pK\n", device); Loading @@ -3395,6 +3396,18 @@ static inline void __disable_unprepare_clks(struct venus_hfi_device *device) venus_hfi_for_each_clock_reverse(device, cl) { venus_hfi_for_each_clock_reverse(device, cl) { dprintk(VIDC_DBG, "Clock: %s disable and unprepare\n", dprintk(VIDC_DBG, "Clock: %s disable and unprepare\n", cl->name); cl->name); rc = clk_set_flags(cl->clk, CLKFLAG_NORETAIN_PERIPH); if (rc) { dprintk(VIDC_WARN, "Failed set flag NORETAIN_PERIPH %s\n", cl->name); } rc = clk_set_flags(cl->clk, CLKFLAG_NORETAIN_MEM); if (rc) { dprintk(VIDC_WARN, "Failed set flag NORETAIN_MEM %s\n", cl->name); } clk_disable_unprepare(cl->clk); clk_disable_unprepare(cl->clk); } } } } Loading @@ -3418,22 +3431,18 @@ static inline int __prepare_enable_clks(struct venus_hfi_device *device) if (cl->has_scaling) if (cl->has_scaling) clk_set_rate(cl->clk, clk_round_rate(cl->clk, 0)); clk_set_rate(cl->clk, clk_round_rate(cl->clk, 0)); if (cl->has_mem_retention) { rc = clk_set_flags(cl->clk, CLKFLAG_RETAIN_PERIPH); rc = clk_set_flags(cl->clk, CLKFLAG_NORETAIN_PERIPH); if (rc) { if (rc) { dprintk(VIDC_WARN, dprintk(VIDC_WARN, "Failed set flag NORETAIN_PERIPH %s\n", "Failed set flag RETAIN_PERIPH %s\n", cl->name); cl->name); } } rc = clk_set_flags(cl->clk, CLKFLAG_RETAIN_MEM); rc = clk_set_flags(cl->clk, CLKFLAG_NORETAIN_MEM); if (rc) { if (rc) { dprintk(VIDC_WARN, dprintk(VIDC_WARN, "Failed set flag NORETAIN_MEM %s\n", "Failed set flag RETAIN_MEM %s\n", cl->name); cl->name); } } } rc = clk_prepare_enable(cl->clk); rc = clk_prepare_enable(cl->clk); if (rc) { if (rc) { dprintk(VIDC_ERR, "Failed to enable clocks\n"); dprintk(VIDC_ERR, "Failed to enable clocks\n"); Loading Loading
drivers/media/platform/msm/vidc/venus_hfi.c +22 −13 Original line number Original line Diff line number Diff line Loading @@ -3386,6 +3386,7 @@ static inline int __init_clocks(struct venus_hfi_device *device) static inline void __disable_unprepare_clks(struct venus_hfi_device *device) static inline void __disable_unprepare_clks(struct venus_hfi_device *device) { { struct clock_info *cl; struct clock_info *cl; int rc = 0; if (!device) { if (!device) { dprintk(VIDC_ERR, "Invalid params: %pK\n", device); dprintk(VIDC_ERR, "Invalid params: %pK\n", device); Loading @@ -3395,6 +3396,18 @@ static inline void __disable_unprepare_clks(struct venus_hfi_device *device) venus_hfi_for_each_clock_reverse(device, cl) { venus_hfi_for_each_clock_reverse(device, cl) { dprintk(VIDC_DBG, "Clock: %s disable and unprepare\n", dprintk(VIDC_DBG, "Clock: %s disable and unprepare\n", cl->name); cl->name); rc = clk_set_flags(cl->clk, CLKFLAG_NORETAIN_PERIPH); if (rc) { dprintk(VIDC_WARN, "Failed set flag NORETAIN_PERIPH %s\n", cl->name); } rc = clk_set_flags(cl->clk, CLKFLAG_NORETAIN_MEM); if (rc) { dprintk(VIDC_WARN, "Failed set flag NORETAIN_MEM %s\n", cl->name); } clk_disable_unprepare(cl->clk); clk_disable_unprepare(cl->clk); } } } } Loading @@ -3418,22 +3431,18 @@ static inline int __prepare_enable_clks(struct venus_hfi_device *device) if (cl->has_scaling) if (cl->has_scaling) clk_set_rate(cl->clk, clk_round_rate(cl->clk, 0)); clk_set_rate(cl->clk, clk_round_rate(cl->clk, 0)); if (cl->has_mem_retention) { rc = clk_set_flags(cl->clk, CLKFLAG_RETAIN_PERIPH); rc = clk_set_flags(cl->clk, CLKFLAG_NORETAIN_PERIPH); if (rc) { if (rc) { dprintk(VIDC_WARN, dprintk(VIDC_WARN, "Failed set flag NORETAIN_PERIPH %s\n", "Failed set flag RETAIN_PERIPH %s\n", cl->name); cl->name); } } rc = clk_set_flags(cl->clk, CLKFLAG_RETAIN_MEM); rc = clk_set_flags(cl->clk, CLKFLAG_NORETAIN_MEM); if (rc) { if (rc) { dprintk(VIDC_WARN, dprintk(VIDC_WARN, "Failed set flag NORETAIN_MEM %s\n", "Failed set flag RETAIN_MEM %s\n", cl->name); cl->name); } } } rc = clk_prepare_enable(cl->clk); rc = clk_prepare_enable(cl->clk); if (rc) { if (rc) { dprintk(VIDC_ERR, "Failed to enable clocks\n"); dprintk(VIDC_ERR, "Failed to enable clocks\n"); Loading