From patchwork Tue Sep 9 19:25:03 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Turquette X-Patchwork-Id: 4872651 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 06AE59F371 for ; Tue, 9 Sep 2014 19:29:08 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 0285720123 for ; Tue, 9 Sep 2014 19:29:07 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 08425200FF for ; Tue, 9 Sep 2014 19:29:06 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1XRR2u-0003BE-Es; Tue, 09 Sep 2014 19:25:44 +0000 Received: from mail-pd0-f178.google.com ([209.85.192.178]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1XRR2r-00036t-PO for linux-arm-kernel@lists.infradead.org; Tue, 09 Sep 2014 19:25:42 +0000 Received: by mail-pd0-f178.google.com with SMTP id p10so6672606pdj.9 for ; Tue, 09 Sep 2014 12:25:18 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version :content-transfer-encoding:to:from:in-reply-to:cc:references :message-id:user-agent:subject:date; bh=Igp9NJwPrqrRcwvl7950uuPZvXTj7fDG61g/RzeOTgI=; b=WR7PU8nfSV1YH0f3gw6k9kppvHSeylYCCW0zzEk1uAaZ+ywtBQcY3GCBPh3BKOjGDV ZgAM70rgbGW+X4fCDzz+ZUXlhlVYrE7kaTmS5OoZSLlNNrnoxkDrn6zzeSu9VxDlvM+9 7qY0QddlPDtqluyhWrYmsbcX5wVsgvuJXVi2CK51rpYiEfL3AlA1lpsL31BwT10IBNhi 9ZRqB1k0JyOb6uHIyETrkyLKzRh6IJnSZYnCXsRuBuDqwgC+V4Yumm7FgDgtr6GoTK3T tAcHhuKEuzU+CHFxgu73EZsaS7CHDS4ZRzW3SRJS+GvB14DKEPCi0fmzgOe23ogHxcz3 UWlA== X-Gm-Message-State: ALoCoQkVR6X99kn/8CSe5Sjt13mSNWVAAzPBhmZguFAHqicUXBxsntKIuBzGNhBX1KOZ2q72KGuY X-Received: by 10.68.69.8 with SMTP id a8mr8286696pbu.79.1410290718305; Tue, 09 Sep 2014 12:25:18 -0700 (PDT) Received: from localhost (pool-108-47-66-231.lsanca.fios.verizon.net. [108.47.66.231]) by mx.google.com with ESMTPSA id gf5sm12312349pbc.89.2014.09.09.12.25.16 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Tue, 09 Sep 2014 12:25:17 -0700 (PDT) MIME-Version: 1.0 To: Tomeu Vizoso From: Mike Turquette In-Reply-To: <20140909191205.19023.61366@quantum> References: <1410271329-26637-1-git-send-email-tomeu.vizoso@collabora.com> <1410271497-27148-1-git-send-email-tomeu.vizoso@collabora.com> <20140909191205.19023.61366@quantum> Message-ID: <20140909192503.19023.33476@quantum> User-Agent: alot/0.3.5 Subject: Re: [PATCH v10 2/9] clk: Move all drivers to use internal API Date: Tue, 09 Sep 2014 12:25:03 -0700 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20140909_122541_871446_5C245D6D X-CRM114-Status: GOOD ( 28.68 ) X-Spam-Score: -2.5 (--) Cc: shawn.guo@freescale.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Quoting Mike Turquette (2014-09-09 12:12:05) > Quoting Tomeu Vizoso (2014-09-09 07:04:57) > > In preparation to change the public API to return a per-user clk structure, > > remove any usage of this public API from the clock implementations. > > > > The reason for having this in a separate commit from the one that introduces > > the implementation of the new functions is to separate the changes generated > > with Coccinelle from the rest, and keep the patches' size reasonable. > > > > Signed-off-by: Tomeu Vizoso > > Tested-by: Boris Brezillon > > Tested-by: Heiko Stuebner > > Acked-by: Boris Brezillon > > > > --- > > > > v10: * Add a few more files to be converted > > * Re-generate the patch on top of the latest changes > > Hi Tomeu, > > Generating this on top of linux-next is a no-go. I can't apply it to my > tree. The best thing is to generate it on top of -rc4, and that is what > I will merge. > > Running the script against linux-next is still very useful and lets us > patch up the stuff that is not going through the clk tree. E.g. the LPSS > driver is already in mainline, so just running the semantic patch > against -rc4 is sufficient for it. However a patch like Shawn's "ARM: > imx: add an exclusive gate clock type" came in through the i.MX tree and > we'll need to patch it after the fact. > > The best way to do that is for me to host a branch with just your > changes in it that everyone can pull in as a dependency with the same > commit ids. > > > > > diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c > > index bcbdbd2..f4c6ccf 100644 > > --- a/drivers/acpi/acpi_lpss.c > > +++ b/drivers/acpi/acpi_lpss.c > > @@ -11,7 +11,6 @@ > > */ > > > > #include > > -#include > > #include > > #include > > #include > > @@ -78,7 +77,7 @@ struct lpss_private_data { > > void __iomem *mmio_base; > > resource_size_t mmio_size; > > unsigned int fixed_clk_rate; > > - struct clk *clk; > > + struct clk_core *clk; > > const struct lpss_device_desc *dev_desc; > > u32 prv_reg_ctx[LPSS_PRV_REG_COUNT]; > > }; > > @@ -229,7 +228,7 @@ static int register_device_clock(struct acpi_device *adev, > > { > > const struct lpss_device_desc *dev_desc = pdata->dev_desc; > > const char *devname = dev_name(&adev->dev); > > - struct clk *clk = ERR_PTR(-ENODEV); > > + struct clk_core *clk = ERR_PTR(-ENODEV); > > struct lpss_clk_data *clk_data; > > const char *parent, *clk_name; > > void __iomem *prv_base; > > I think the following hunk is missing from your change: > > --- a/drivers/acpi/acpi_lpss.c > +++ b/drivers/acpi/acpi_lpss.c > @@ -57,7 +57,7 @@ ACPI_MODULE_NAME("acpi_lpss"); > struct lpss_shared_clock { > const char *name; > unsigned long rate; > - struct clk *clk; > + struct clk_core *clk; > }; Looks like this hunk is missing as well: Without that change the following code will explode: static int register_device_clock(struct acpi_device *adev, struct lpss_private_data *pdata) { const struct lpss_device_desc *dev_desc = pdata->dev_desc; struct lpss_shared_clock *shared_clock = dev_desc->shared_clock; const char *devname = dev_name(&adev->dev); struct clk_core *clk = ERR_PTR(-ENODEV); struct lpss_clk_data *clk_data; const char *parent, *clk_name; void __iomem *prv_base; if (!lpss_clk_dev) lpt_register_clock_device(); clk_data = platform_get_drvdata(lpss_clk_dev); if (!clk_data) return -ENODEV; if (dev_desc->clkdev_name) { clk_register_clkdev(clk_data->clk, dev_desc->clkdev_name, devname); return 0; } I'm starting to get nervous about this Coccinelle script... Seems like a lot of things are slipping through. Regards, Mike > > > Otherwise register_device_clock will blow up because we are assigning a > struct clk * to a struct clk_core *. > > Do you mind testing with ARCH=x86_64 and allmodconfig? That will help > catch issues like this. > > Regards, > Mike diff --git a/include/linux/platform_data/clk-lpss.h b/include/linux/platform_data/clk-lpss.h index 2390199..3c3237c 100644 --- a/include/linux/platform_data/clk-lpss.h +++ b/include/linux/platform_data/clk-lpss.h @@ -15,7 +15,7 @@ struct lpss_clk_data { const char *name; - struct clk *clk; + struct clk_core *clk; };