All of lore.kernel.org
 help / color / mirror / Atom feed
From: shawnguo@kernel.org (Shawn Guo)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 05/12] ARM: imx: setup tctl register in device specific function
Date: Wed, 3 Jun 2015 14:16:48 +0800	[thread overview]
Message-ID: <20150603061648.GA20344@dragon> (raw)
In-Reply-To: <CAMAWPa-BYPnsqSxQ_VTa37a=Xg8xgrSQkzQgX+_65koZCNxBEg@mail.gmail.com>

On Tue, Jun 02, 2015 at 08:56:02AM -0700, Kevin Hilman wrote:
> I'm just using multi_v7_defconfig, and BROKEN is not set, but that
> driver is still built because it's explicitly selected by ARCH_MXC:
> 
> $ git describe
> next-20150601
> $ rm build/.config
> $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- O=build multi_v7_defconfig
> make[1]: Entering directory `/work/kernel/next/build'
>   GEN     ./Makefile
> arch/arm/configs/multi_v7_defconfig:603:warning: override: reassigning
> to symbol COMMON_CLK_QCOM
> warning: (ARCH_MXC) selects CLKSRC_IMX_GPT which has unmet direct
> dependencies (OF && BROKEN)
> warning: (ARCH_MXC) selects CLKSRC_IMX_GPT which has unmet direct
> dependencies (OF && BROKEN)
> #
> # configuration written to .config
> #
> make[1]: Leaving directory `/work/kernel/next/build'
> $ grep CLKSRC_IMX_GPT build/.config
> CONFIG_CLKSRC_IMX_GPT=y
> $

Yes, you're right.  It's broken on i.MX6DL/S indeed.  The cause is that
i.MX6DL/S DTBs are using the same GPT compatible string as i.MX6Q.  It
effectively makes kernel select an incorrect GPT device type on
i.MX6DL/S.  We will need to update i.MX6DL/S device tree to use
a correct compatible string.  But to keep the existing DTBs continue
working, we need the following change.  As I'm asked by Arnd to rebase
my branch, I would like fold the changes into the original patch to
save the git bisect issue.

Thanks for the bug report, and sorry for the breakage.

Shawn

-----8<------------------

diff --git a/drivers/clocksource/timer-imx-gpt.c b/drivers/clocksource/timer-imx-gpt.c
index a98d1104b3fd..e41b021b9d62 100644
--- a/drivers/clocksource/timer-imx-gpt.c
+++ b/drivers/clocksource/timer-imx-gpt.c
@@ -508,7 +508,18 @@ static void __init imx21_timer_init_dt(struct device_node *np)
 
 static void __init imx31_timer_init_dt(struct device_node *np)
 {
-       mxc_timer_init_dt(np, GPT_TYPE_IMX31);
+       enum imx_gpt_type type = GPT_TYPE_IMX31;
+
+       /*
+        * We were using the same compatible string for i.MX6Q/D and i.MX6DL/S
+        * GPT device, while they actually have different programming model.
+        * This is a workaround to keep the existing i.MX6DL/S DTBs continue
+        * working with the new kernel.
+        */
+       if (of_machine_is_compatible("fsl,imx6dl"))
+               type = GPT_TYPE_IMX6DL;
+
+       mxc_timer_init_dt(np, type);
 }
 
 static void __init imx6dl_timer_init_dt(struct device_node *np)

  reply	other threads:[~2015-06-03  6:16 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-22 15:29 [PATCH v2 00/12] ARM: imx: move timer driver into drivers/clocksource Shawn Guo
2015-05-22 15:29 ` [PATCH v2 01/12] ARM: imx: use relaxed IO accessor in timer driver Shawn Guo
2015-05-22 15:29 ` [PATCH v2 02/12] ARM: imx: move timer resources into a structure Shawn Guo
2015-05-22 15:29 ` [PATCH v2 03/12] ARM: imx: define an enum for gpt timer device type Shawn Guo
2015-05-22 15:29 ` [PATCH v2 04/12] ARM: imx: initialize gpt device type for DT boot Shawn Guo
2015-05-22 15:29 ` [PATCH v2 05/12] ARM: imx: setup tctl register in device specific function Shawn Guo
2015-06-01 23:53   ` Kevin Hilman
2015-06-02  1:11     ` Shawn Guo
2015-06-02 15:56       ` Kevin Hilman
2015-06-03  6:16         ` Shawn Guo [this message]
2015-06-03 17:41           ` Kevin Hilman
2015-06-04  1:18             ` Shawn Guo
2015-05-22 15:29 ` [PATCH v2 06/12] ARM: imx: set up .set_next_event hook via imx_gpt_data Shawn Guo
2015-05-22 15:29 ` [PATCH v2 07/12] ARM: imx: move clock event variables into imx_timer Shawn Guo
2015-05-22 15:29 ` [PATCH v2 08/12] ARM: imx: define gpt register offset per device type Shawn Guo
2015-05-22 15:29 ` [PATCH v2 09/12] ARM: imx: get rid of variable timer_base Shawn Guo
2015-05-22 15:29 ` [PATCH v2 10/12] ARM: imx: provide gpt device specific irq functions Shawn Guo
2015-05-22 15:29 ` [PATCH v2 11/12] ARM: imx: remove platform headers from timer driver Shawn Guo
2015-05-22 15:29 ` [PATCH v2 12/12] ARM: imx: move timer driver into drivers/clocksource Shawn Guo
2015-05-22 18:28   ` Shenwei Wang
2015-05-25  5:19     ` Shawn Guo
2015-05-25  5:14   ` [PATCH v3 " Shawn Guo
2015-05-27  3:11     ` Shawn Guo
2015-05-27 12:50     ` Daniel Lezcano
2015-05-27 14:04       ` Shawn Guo
2015-05-27 23:39         ` Daniel Lezcano
2015-05-28  1:18           ` Shawn Guo
2015-05-28  8:20             ` Daniel Lezcano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150603061648.GA20344@dragon \
    --to=shawnguo@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.