Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1171058imm; Wed, 25 Jul 2018 12:50:25 -0700 (PDT) X-Google-Smtp-Source: AAOMgpeRTV0gIkgIFC7B+CVSvjmtxOVIDVWYUIWSPHPvIKCaw+1zu5h3DxS+KZNzCt/Sv7uAWkS1 X-Received: by 2002:a63:f713:: with SMTP id x19-v6mr21798328pgh.233.1532548225689; Wed, 25 Jul 2018 12:50:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532548225; cv=none; d=google.com; s=arc-20160816; b=M6g4/ZMltK+YiMJteZN12No5paMu3HP3cSH09OS+8X9FVXYL7Ohk9/4E+q97gf83Sy 23CjxpWcOBMghQm4tMZ4hsR+f8EgXLoUjOpZ6GkR3tPi/8IShD0xo26SIHGkhzKwqayk 8FctMzP9CjU46aI4DtVwe7XSc67NEyVK+5NaTcygm+U/3MA9IvELxokpMkEw4kAR9MEC nC0IxAcU01PcvHuIYEiHz9Nh7dqp9LCcwmXs27dD9KSo+B6rVX+R88Piq9oQiG0hf/eH dpXUiLD1BKJn5YCm016BR4i2vNyP71Zyr6zHi/SFjvKLFiVxCZICiq99hHW6ziOH+H+d zIIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:date:subject:user-agent:message-id :references:cc:in-reply-to:from:to:content-transfer-encoding :mime-version:dkim-signature:arc-authentication-results; bh=CbN8Lf5kT6wkgI6y5drmBC0CZGsY6ceRBFS4Ii9NnMo=; b=ar1IW5znkLqo7fQK9qpI2q8F2exkRBVa3rXMX9r/tbxqUD1q0219xVm7s/EiU2Ls3Q hv5CER9cdfZ+wnfYafeyQO4kXvfRVxly3oJlRTZ9ymwLyYeWbbd83Ry8YXrJsNn5denA hyjj6UMEzVExM2KFxcPnp12dH1stBAik9MksAJ/ZgnY8MAy0xcxDHxJ1u+tXgeWm/K3I 3amnvFCPe55Yqi44RqYy/gPG9BNa9yCzoH7t0BGoXHaho/ZF87g0bRWkXkmnsK7bfYts XsNL/LEqRJa9smJRh6jXls6hK1nKw2n6ttjZVoJ2HDZHtKJHeUBmt9CH++nmB4m8R6D9 cWaA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=k57XhAor; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y2-v6si15346486pga.141.2018.07.25.12.50.11; Wed, 25 Jul 2018 12:50:25 -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; dkim=pass header.i=@kernel.org header.s=default header.b=k57XhAor; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730643AbeGYVCF (ORCPT + 99 others); Wed, 25 Jul 2018 17:02:05 -0400 Received: from mail.kernel.org ([198.145.29.99]:36786 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729921AbeGYVCE (ORCPT ); Wed, 25 Jul 2018 17:02:04 -0400 Received: from localhost (unknown [104.132.1.75]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 768C620844; Wed, 25 Jul 2018 19:48:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1532548134; bh=GB2KuYHDmdzu1xC8Wh3XECR3bwYoSb9g+8FV3J4rhGw=; h=To:From:In-Reply-To:Cc:References:Subject:Date:From; b=k57XhAorPd1wQdOHvxihapwCo4z7+MQkp8Uk59Po9fvjvdzAnjWg8u5mT9bsG7zyN UZlNNE5QGFL6hmdAZJi1lNv9ZFEcFRfGyJtQE4YlnxFMVU/HIbMvFeYQKFsOdo0RB8 GlEncVhaclk/dZG7qTG04D8hiFh2cdy6I8N959G4= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable To: "ard.biesheuvel@linaro.org" , "dmitry.torokhov@gmail.com" , "gregkh@linuxfoundation.org" , "hkallweit1@gmail.com" , "keescook@chromium.org" , "linux-clk@vger.kernel.org" , "mark.rutland@arm.com" , "matt@codeblueprint.co.uk" , "mingo@kernel.org" , "mturquette@baylibre.com" , "robh+dt@kernel.org" , "sboyd@codeaurora.org" , "sudeep.holla@arm.com" , Jolly Shah , Michal Simek From: Stephen Boyd In-Reply-To: Cc: "devicetree@vger.kernel.org" , Tejas Patel , "linux-kernel@vger.kernel.org" , Rajan Vaja , Shubhrajyoti Datta , "linux-arm-kernel@lists.infradead.org" References: <1529516435-7315-1-git-send-email-jollys@xilinx.com> <1529516435-7315-11-git-send-email-jollys@xilinx.com> <153111401693.143105.16925315512459949259@swboyd.mtv.corp.google.com> Message-ID: <153254813376.48062.5902552373363371978@swboyd.mtv.corp.google.com> User-Agent: alot/0.7 Subject: RE: [PATCH v9 10/10] drivers: clk: Add ZynqMP clock driver Date: Wed, 25 Jul 2018 12:48:53 -0700 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Quoting Jolly Shah (2018-07-17 13:09:01) > Hi Stephen, > = > Thanks for the review, > = > > -----Original Message----- > > From: Stephen Boyd [mailto:sboyd@kernel.org] > > Sent: Sunday, July 08, 2018 10:27 PM > > To: Jolly Shah ; ard.biesheuvel@linaro.org; > > dmitry.torokhov@gmail.com; gregkh@linuxfoundation.org; > > hkallweit1@gmail.com; keescook@chromium.org; linux-clk@vger.kernel.org; > > mark.rutland@arm.com; matt@codeblueprint.co.uk; Michal Simek > > ; mingo@kernel.org; mturquette@baylibre.com; > > robh+dt@kernel.org; sboyd@codeaurora.org; sudeep.holla@arm.com > > Cc: Rajan Vaja ; linux-arm-kernel@lists.infradead.or= g; > > linux-kernel@vger.kernel.org; devicetree@vger.kernel.org; Jolly Shah > > ; Tejas Patel ; Shubhrajyoti Datta > > ; Jolly Shah > > Subject: Re: [PATCH v9 10/10] drivers: clk: Add ZynqMP clock driver > > = > > > +/** > > > + * zynqmp_pm_clock_get_parents() - Get the first 3 parents of clock = for given > > id > > > + * @clock_id: Clock ID > > > + * @index: Parent index > > > + * @parents: 3 parents of the given clock > > > + * > > > + * This function is used to get 3 parents for the clock specified by > > > + * given clock ID. > > > + * > > > + * This API will return 3 parents with a single response. To get > > > + * other parents, master should call same API in loop with new > > > + * parent index till error is returned. E.g First call should have > > > + * index 0 which will return parents 0,1 and 2. Next call, index > > > + * should be 3 which will return parent 3,4 and 5 and so on. > > > + * > > > + * Return: Returns status, either success or error+reason > > > + */ > > > +static int zynqmp_pm_clock_get_parents(u32 clock_id, u32 index, u32 > > *parents) > > > +{ > > > + struct zynqmp_pm_query_data qdata =3D {0}; > > > + u32 ret_payload[PAYLOAD_ARG_CNT]; > > = > > What's the endianness of this payload? Is it little endian? Or do the > > eemi_ops convert to CPU native endianness? > = > Its little endian Is it CPU native? This might need to be marked as __le32 for proper endianess code. > = > > > + > > > +/** > > > + * zynqmp_clock_init() - Initialize zynqmp clocks > > > + * > > > + * Return: 0 on success else error code > > > + */ > > > +static int __init zynqmp_clock_init(void) > > > +{ > > > + int ret; > > > + struct device_node *np; > > > + > > > + np =3D of_find_compatible_node(NULL, NULL, "xlnx,zynqmp"); > > > + if (!np) > > > + return -ENOENT; > > > + of_node_put(np); > > > + > > > + np =3D of_find_compatible_node(NULL, NULL, "xlnx,zynqmp-clk"); > > = > > Why can't this be a platform device driver? > = > Platform driver may probe later(an actually probing later in our case). T= his will results in clock get failure in clock consumer peripherals. So clo= ck registration needs to be done earlier. That's fine though? If a clk_get() fails because the provider isn't registered yet the consumer will see -EPROBE_DEFER and try again later.