Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp4558429pxv; Tue, 6 Jul 2021 04:01:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxw/EnMmSfty2w8c7cZbiasuCvneoNh9mWzYAVifSS/SG6N9u2PRNRMM7oeKqzMEply3+X8 X-Received: by 2002:a5d:8602:: with SMTP id f2mr15327594iol.61.1625569314679; Tue, 06 Jul 2021 04:01:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625569314; cv=none; d=google.com; s=arc-20160816; b=WDjEKdnzgchoOFfT2Hj/RDNQqI58TaM4eELlveeZthnE2wpxaiKlxj8DEcBPQA/SU2 PHrpTX2M5wgzRXG5WDEOQ/WHFduF1skQPMBXMWcBx+hxgTa1oqYmOeIm3z25pqvMScJg qCYVEwtxb4V4Eq7u6gCDa8a8i84FaF9L+hkV85CYiSpMtxN156QB6QZhhahU/trmiEyF s2Gs8KKlVOiwxVpwhPdvX10AVP+C58gMBgNRObv3o3XFrSCzzIOIBNj19JmHOVgmLnBa RbyID/qKT5sTwYIjI/eHeVJD85a1ighqhr47j98WR1N8MNhPXH6FCAYXriPbSfTb0/7t DSwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=eEmJIJa0v/rePle6ZiJmkXBLf0tXP2KOovjivMZBv80=; b=H5dSIIDwSzH6/PV+u47bUfCV1gj/zX9YD1lDRHHba7RxOkkB5BqLVZn3K44eQ+i0r9 BpOsqxqeEpXn5P0UrobS9OQ89P1t1yRCY6RXgPoI0K616Tmf6MZW6hgjCZ/9Iun5qZ6q /JprvKQ37TQ1nUkypOgm9n4aKyhN2Pg99EHTCbZRLOAvAgX7Pm+22U0u1zQvAmy0nKFC loRuGP20UIbj3pWVK/3bXV/heQw5mOfcUMPgAEIPu44fmDZCPInTIJaEZDFhrDkL9vm6 PLA5AkoK+QAuxmDbm5gZUWuvMVpOkTHGM9QkLEBAEky8Vbih+UuuWBBCcSqOm46RR0fj iBQg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=QwfTscdC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l5si23616978iow.52.2021.07.06.04.01.42; Tue, 06 Jul 2021 04:01:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=QwfTscdC; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231727AbhGFLDb (ORCPT + 99 others); Tue, 6 Jul 2021 07:03:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39898 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231743AbhGFLD3 (ORCPT ); Tue, 6 Jul 2021 07:03:29 -0400 Received: from mail-io1-xd2e.google.com (mail-io1-xd2e.google.com [IPv6:2607:f8b0:4864:20::d2e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 765ACC061765 for ; Tue, 6 Jul 2021 04:00:50 -0700 (PDT) Received: by mail-io1-xd2e.google.com with SMTP id k11so24393617ioa.5 for ; Tue, 06 Jul 2021 04:00:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=eEmJIJa0v/rePle6ZiJmkXBLf0tXP2KOovjivMZBv80=; b=QwfTscdCnYxl5W3v0uqo+Vp9odw4vdnPwAoBVqUYPoMBhGwbWub8cjaVgWVSAKbUP/ jjvblrcSDn3hzJET+O5YGqybeZbrnheV73a9Q63Tk6gBUVkpPogvHBkJVuIUso1Als8p OqwFZLETeRJmiP4aLUbJAzic7A1tPzcnwKeqxKPFNJURtV04Vlw3zRjQHhYPI3JPJUja bszPardb0bXROaBdbxG6zb+PManXPuXffhjcOjmWYt7Wday1lhU7QujyJDMdtqgK3P/8 YAV8gT1rW7h9DsJ6BfiJTLQgb866FGNuY29J/iPSihEQY+mZ3vwAxv+JmMNH2We+ebGF T0rQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=eEmJIJa0v/rePle6ZiJmkXBLf0tXP2KOovjivMZBv80=; b=kimh1MuNaaZspyntRj/Z+FY4q7zuDBrXGnujJ/dIYNHj7PepXbWojCt6N0B1mi7Odq pVzcQma9xFXTVhQwWGpKURaKkd/hLQ1HEEnqc9Zyys4HSkIvZ8D/XRxxx/dF4+JBoZZr s4AHaq8oGBmzEp71b9KIN/rX0srYAV/M9FiNCpI4uyHb7R4prXdeapoAZH4p+mEjG3e1 XD8hP6huqgeR1ne7I6v2UswWCs/F2zu1QD7zwb0X978jKZheG9ZiHbuX5RsgdyrKWo9X wisZEeaRkRc+/J+LP1Ix1ivIqv/WnnVukaOTLQ0xUM2zYKiXNrfwx6h6B+fZx7c8Fpl3 N/ew== X-Gm-Message-State: AOAM531XxF+oZ63wKdjd/peevmU8PajH0lpncqt9Eq6V3WItbge+qwA9 bRFfHNJ6R03v28Xd8GXVcsUQEkvafSdKUNTXfGLSaQ== X-Received: by 2002:a02:b155:: with SMTP id s21mr12465245jah.50.1625569249677; Tue, 06 Jul 2021 04:00:49 -0700 (PDT) MIME-Version: 1.0 References: <1625038079-25815-1-git-send-email-kyrie.wu@mediatek.com> <1625038079-25815-5-git-send-email-kyrie.wu@mediatek.com> In-Reply-To: <1625038079-25815-5-git-send-email-kyrie.wu@mediatek.com> From: Tzung-Bi Shih Date: Tue, 6 Jul 2021 19:00:38 +0800 Message-ID: Subject: Re: [PATCH v2,4/9] media: mtk-jpegenc: Refactor jpeg clock interface To: "kyrie.wu" Cc: Hans Verkuil , Mauro Carvalho Chehab , Rob Herring , Bin Liu , Matthias Brugger , Tzung-Bi Shih , Project_Global_Chrome_Upstream_Group@mediatek.com, linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Tomasz Figa , xia.jiang@mediatek.com, maoguang.meng@mediatek.com, srv_heupstream@mediatek.com Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jun 30, 2021 at 3:28 PM kyrie.wu wrote: > Using the needed param for lock on/off function. The description makes less sense. The patch is more than a "refactor". Please change the title accordingly. > static void mtk_jpeg_clk_on(struct mtk_jpeg_dev *jpeg) > { > - int ret; > + struct mtk_jpeg_dev *comp_dev; > + struct mtk_jpegenc_pm *pm; > + struct mtk_jpegenc_clk *jpegclk; > + struct mtk_jpegenc_clk_info *clk_info; > + int ret, i; > + > + if (jpeg->variant->is_encoder) { > + for (i = 0; i < MTK_JPEGENC_HW_MAX; i++) { > + comp_dev = jpeg->hw_dev[i]; > + if (!comp_dev) { > + dev_err(jpeg->dev, "Failed to get hw dev\n"); > + return; > + } > + > + pm = &comp_dev->pm; > + jpegclk = &pm->venc_clk; > + clk_info = jpegclk->clk_info; > + ret = clk_prepare_enable(clk_info->jpegenc_clk); > + if (ret) { > + dev_err(jpeg->dev, "jpegenc clk enable %d %s fail\n", > + i, jpegclk->clk_info->clk_name); > + return; > + } > + } > + return; > + } Doesn't it need to call clk_disable_unprepare() in the error paths? > + pm = &comp_dev->pm; > + jpegclk = &pm->venc_clk; > + clk_disable_unprepare(jpegclk->clk_info->jpegenc_clk); Consistency issue: mtk_jpeg_clk_on() has struct mtk_jpegenc_clk_info *clk_info. Why not also have the local variable here? Is it a good idea to just separate functions for ->is_encoder for mtk_jpeg_clk_on() and mtk_jpeg_clk_off()? For example, mtk_jpegenc_clk_on() and mtk_jpegdec_clk_on(). > +/** * struct mtk_jpegenc_clk_info - Structure used to store clock name */ > +struct mtk_jpegenc_clk_info { > + const char *clk_name; > + struct clk *jpegenc_clk; > +}; > + > +/* struct mtk_vcodec_clk - Structure used to store vcodec clock information */ > +struct mtk_jpegenc_clk { > + struct mtk_jpegenc_clk_info *clk_info; > + int clk_num; > +}; > + > +/** * struct mtk_vcodec_pm - Power management data structure */ > +struct mtk_jpegenc_pm { > + struct mtk_jpegenc_clk venc_clk; > + struct device *dev; > + struct mtk_jpeg_dev *mtkdev; > +}; > + > /** > * struct mtk_jpeg_dev - JPEG IP abstraction > * @lock: the mutex protecting this structure > @@ -103,6 +128,9 @@ struct mtk_jpeg_dev { > struct device *larb; > struct delayed_work job_timeout_work; > const struct mtk_jpeg_variant *variant; > + > + struct mtk_jpeg_dev *hw_dev[MTK_JPEGENC_HW_MAX]; > + struct mtk_jpegenc_pm pm; > }; If the declaration cannot align, using 1-space is sufficient.