From: stefan@agner.ch (Stefan Agner)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/9] ARM: vf610: Suspend/resume support
Date: Mon, 29 Sep 2014 14:47:13 +0200 [thread overview]
Message-ID: <64d37b2cfb24737db93afbb6cf47978a@agner.ch> (raw)
In-Reply-To: <20140928030857.GA12999@dragon>
Hi Bill, Hi Shawn,
Am 2014-09-28 05:08, schrieb Shawn Guo:
> On Wed, Sep 24, 2014 at 12:33:00PM -0400, Bill Pringlemeir wrote:
>> >> I think that Shawn Guo already did a patchset to remove stuff from
>> >> the vf610.dtsi to the machine/configuration DT files.
>
> Do you mean the pin configuration? That's really more board-specific.
> But IP block/device is not really the case.
>
>>
>> In this patchset, I suggested that we could include the notation in the
>> headers which are included in the 'DT' files. So instead of 'dtsi', we
>> could use,
>>
>> #define VF610_GPC_SUPPORT \
>> gpc: gpc at 4006c000 { \
>> compatible = "fsl,vf610-gpc"; \
>> reg = <0x4006c000 0x1000>; \
>> };
>>
>> Or even,
>>
>> #define VF610_SUSPEND_DT_SUPPORT \ ...
>
> I don't think this will be accepted by DT maintainers. We have already
> got some objections when we define pin function ID as multiple integers.
> They expect the DT macro is used for single integer case.
>
>>
>> Anyways, the DT issue doesn't matter so much. People will have to make
>> custom versions for their own boards. Although, I don't think it is not
>> that hard to support it at the machine level.
>>
>> I agree that so far there are some peripherals that make it difficult to
>> run the mainline Linux with an MQX. However, I think this patch set
>> seems to bring it closer to making it impossible. I am only suggesting
>> that we make it a configuration option and not include it for all Vybrid
>> devices.
>>
>> Is it clear that the desired way is to use,
>>
>> &gpc { status = "disabled"; };
>> &src { status = "disabled"; };
>>
>> We have,
>>
>> arch/arm/mach-imx/gpc.c
>>
>> void __init vf610_gpc_init(void)
>> {
>> struct device_node *np;
>>
>> np = of_find_compatible_node(NULL, NULL, "fsl,vf610-gpc");
>> gpc_base = of_iomap(np, 0);
>> gpc_imr_base = gpc_base + VF610_GPC_IMR1;
>> ...
>>
>> arch/arm/mach-imx/mach-vf610.c
>>
>> static void __init vf610_init_irq(void)
>> {
>> vf610_gpc_init();
>> irqchip_init();
>> }
>>
>> ...
>>
>> + .init_irq = vf610_init_irq,
>>
>> I don't think this will work.
>
> Yes, you're right. But I guess this can be fixed by an additional
> of_device_is_available() check after of_find_compatible_node() call.
>
>> Not to mention that 'mach-vf610.c' will
>> not build if HAVE_IMX_GPC is not defined.
>
> HAVE_IMX_GPC cannot be configured out, because it's selected by
> SOC_VF610.
>
Maybe we can make that optional when CONFIG_PM is on, e.g.
select HAVE_IMX_GPC if PM
The GPC module is all about power management, hence in case we want the
M4 taken care of that, we just have to configure a Linux kernel without
CONFIG_PM support.
>> Also, I don't really see a
>> use of the GPC module unless suspend/resume is active? Even some wall
>> powered designs may wish to exclude this functionality?
>>
>> I think that the SRC maybe needed for secure parts. I think that some
>> designs might wish to restrict Linux's access to these registers as
>> well. I don't actually see why we need this module? I think the imx6
>> needs it due to multi-CPU bring-up, but in the Vybrid case, this does
>> not exist. Can you check to see why we need the SRC? I don't see where
>> we actually use it? In patch9/9, we record it but do we actually access
>> the registers? Is it just for the vf610_src_init() code? Even that
>> seems the whole 'src.c' file is only needed for the 'src_base'
>> reference, which we don't use?
>
> +1. I'm also wondering how SRC is used by suspend routine in this
> series.
Well I tried to bring LPStop modes to work, which would need GPR0/GPR1
registers of SRC. If I have it working in the next series, I will need
that, but if not, I will drop those changes.
--
Stefan
next prev parent reply other threads:[~2014-09-29 12:47 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-22 17:09 [PATCH 0/9] ARM: vf610: Suspend/resume support Stefan Agner
2014-09-22 17:09 ` Stefan Agner
2014-09-22 17:09 ` [PATCH 1/9] ARM: dts: vf610: Add system reset controller (SRC) Stefan Agner
2014-09-22 17:09 ` Stefan Agner
2014-09-22 17:09 ` Stefan Agner
2014-09-24 9:16 ` Linus Walleij
2014-09-24 9:16 ` Linus Walleij
2014-09-24 16:41 ` Stefan Agner
2014-09-24 16:41 ` Stefan Agner
2014-09-25 13:08 ` Philipp Zabel
2014-09-25 13:08 ` Philipp Zabel
2014-09-22 17:09 ` [PATCH 2/9] ARM: dts: vf610: add global power controller (GPC) Stefan Agner
2014-09-22 17:09 ` Stefan Agner
2014-09-22 17:09 ` Stefan Agner
2014-09-22 17:09 ` [PATCH 3/9] ARM: dts: vf610: add on-chip SRAM Stefan Agner
2014-09-22 17:09 ` Stefan Agner
2014-09-22 17:09 ` Stefan Agner
2014-09-22 17:09 ` [PATCH 4/9] ARM: dts: vf610-colibri: GPIO power key Stefan Agner
2014-09-22 17:09 ` Stefan Agner
2014-09-22 17:09 ` Stefan Agner
2014-09-22 17:09 ` [PATCH 5/9] gpio: vf610: Extend with wakeup support Stefan Agner
2014-09-22 17:09 ` Stefan Agner
2014-09-24 9:19 ` Linus Walleij
2014-09-24 9:19 ` Linus Walleij
2014-09-24 16:33 ` Stefan Agner
2014-09-24 16:33 ` Stefan Agner
2014-09-24 10:06 ` Lucas Stach
2014-09-24 10:06 ` Lucas Stach
2014-09-24 16:51 ` Stefan Agner
2014-09-24 16:51 ` Stefan Agner
2014-09-22 17:09 ` [PATCH 6/9] ARM: imx: gpc: Support vf610 global power controller Stefan Agner
2014-09-22 17:09 ` Stefan Agner
2014-09-22 17:09 ` [PATCH 7/9] ARM: imx: src: Support vf610 system reset controller Stefan Agner
2014-09-22 17:09 ` Stefan Agner
2014-09-22 17:09 ` [PATCH 8/9] ARM: imx: clk-gate2: allow custom gate configuration Stefan Agner
2014-09-22 17:09 ` Stefan Agner
2014-09-28 2:02 ` Shawn Guo
2014-09-28 2:02 ` Shawn Guo
2014-09-28 2:02 ` Shawn Guo
2014-09-22 17:09 ` [PATCH 9/9] ARM: vf610: initial suspend/resume support Stefan Agner
2014-09-22 17:09 ` Stefan Agner
2014-09-23 15:36 ` [PATCH 0/9] ARM: vf610: Suspend/resume support Bill Pringlemeir
2014-09-24 8:22 ` Stefan Agner
2014-09-24 16:33 ` Bill Pringlemeir
2014-09-28 3:08 ` Shawn Guo
2014-09-29 12:47 ` Stefan Agner [this message]
2014-09-29 15:39 ` Bill Pringlemeir
2014-09-28 3:15 ` Shawn Guo
2014-09-28 3:15 ` Shawn Guo
2014-09-28 3:15 ` Shawn Guo
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=64d37b2cfb24737db93afbb6cf47978a@agner.ch \
--to=stefan@agner.ch \
--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.