Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp1903351imm; Thu, 14 Jun 2018 05:51:33 -0700 (PDT) X-Google-Smtp-Source: ADUXVKKpKEReilaUXmqNMXo32mX0UBHVfg0RjZfHZNlxL1rGwqXIkbzC1G3uPpTg7UyRIMGnLE35 X-Received: by 2002:a62:c45a:: with SMTP id y87-v6mr9478399pff.190.1528980693634; Thu, 14 Jun 2018 05:51:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528980693; cv=none; d=google.com; s=arc-20160816; b=rxasjySFVbf3gHG8PYr6UJRyJEtqyWrG52MSPJMaa3bdwGkVzTE9+XcHWmtqk/1mzQ 4hpAdoXq2WLbtpmrC/O0xIP4sx+HVFGxELWSOCkrGAKknOPLii4dRKJzaY4yTVqvyAtH fq+XZATdi8Cl+IcNRfJ2DM5N7rJfaQAkzwcU8+Pp9EppeZForOlXvAdutxH1OMnmYxRT 7Zrw4O8xSzZrcH9nW9bybvkA5Ha/capZh6MhKjDBoUEabJjPpWHtZyY0B5uNp4EgTrBt XIuPMKQZfXP4GY2SGHbiLi+4/Blj2ss/efuoQdytfuHRSV5MIntLDUN0ACfoF9ymGy/K lIrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=Lm7+mE65fagdp7+42MXjWj+izYKYIdc8K90MYTLDHuQ=; b=x7niufo7OhrZ6v8b6azr13OD+WOCxyqBV1AM2DgjcNI+04nM1eoCWRtaSkfTBUw8s+ phk3qc3UXxERLG0Cwp9W9p5GLvK/RV0cTKrW0cCFavFQXYmJvdLvU2jPuZSWuaB6lLuc S2BSCKg9WVNjShPq0CTEdYjvFfAyiif0TBvoXtl57MlOrlemyVWBEmyrqSe49Y4KVTtv SVtqFjAQdA/AA2DlZn5+UlQTQbhFaIVy23b8RnAHijenGLs3JRy6GS1uWJjTiMLWSyKC ogyeSHp2wB8xyJm1N0ITVPCP/6KitHUive0uu8zLomNkMT7GgQvxkk1RBnmK70Oc/tf1 TnDA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a66-v6si5240192pfe.364.2018.06.14.05.51.19; Thu, 14 Jun 2018 05:51:33 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S964822AbeFNMtQ convert rfc822-to-8bit (ORCPT + 99 others); Thu, 14 Jun 2018 08:49:16 -0400 Received: from gloria.sntech.de ([95.129.55.99]:54690 "EHLO gloria.sntech.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964777AbeFNMtP (ORCPT ); Thu, 14 Jun 2018 08:49:15 -0400 Received: from wd0940.dip.tu-dresden.de ([141.76.111.172] helo=phil.localnet) by gloria.sntech.de with esmtpsa (TLS1.1:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from ) id 1fTRgc-0004dn-R7; Thu, 14 Jun 2018 14:49:10 +0200 From: Heiko Stuebner To: dri-devel@lists.freedesktop.org Cc: Emil Velikov , Lin Huang , David Airlie , Brian Norris , linux-kernel@vger.kernel.org, Rob Herring , Thierry Reding Subject: Re: [PATCH v4 1/3] drm/panel: refactor INNOLUX P079ZCA panel driver Date: Thu, 14 Jun 2018 14:49:05 +0200 Message-ID: <2358142.UaIIZZriA2@phil> In-Reply-To: References: <1521018736-20980-1-git-send-email-hl@rock-chips.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8BIT Content-Type: text/plain; charset="iso-8859-1" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Am Mittwoch, 14. M?rz 2018, 13:02:13 CEST schrieb Emil Velikov: > Hi Lin, > > On 14 March 2018 at 09:12, Lin Huang wrote: > > From: huang lin > > > > Refactor Innolux P079ZCA panel driver, let it support > > multi panel. > > > > Change-Id: If89be5e56dba8cb498e2d50c1bbeb0e8016123a2 > > Signed-off-by: Lin Huang [...] > > @@ -207,19 +248,28 @@ static const struct drm_panel_funcs innolux_panel_funcs = { > > > > > - innolux->supply = devm_regulator_get(dev, "power"); > > - if (IS_ERR(innolux->supply)) > > - return PTR_ERR(innolux->supply); > > + innolux = devm_kzalloc(dev, sizeof(*innolux), GFP_KERNEL); > > + if (!innolux) > > + return -ENOMEM; > > + > > + innolux->desc = desc; > > + innolux->vddi = devm_regulator_get(dev, "power"); > > + innolux->avdd = devm_regulator_get(dev, "avdd"); > > + innolux->avee = devm_regulator_get(dev, "avee"); > > > AFAICT devm_regulator_get returns a pointer which is unsuitable to be > passed into regulator_{enable,disable}. > Hence, the IS_ERR check should stay. If any of the regulators are > optional, you want to call regulator_{enable,disable} only as > applicable. using the regulator_bulk APIs should help to make this far easier, as you can just define the per-panel supplies in in the panel_desc and then get + enable the correct ones per bound panel.