mbox series

[v3,0/6] Make deferring probe forever optional

Message ID 20180628204344.13973-1-robh@kernel.org
Headers show
Series Make deferring probe forever optional | expand

Message

Rob Herring (Arm) June 28, 2018, 8:43 p.m. UTC
This series came out of a discussion on the ARM boot-architecture
list[1] about DT forwards and backwards compatibility issues. There are
issues with newer DTs breaking on older, stable kernels. Some of these
are difficult to solve, but cases of optional devices not having
kernel support should be solvable.

I tested this on a RPi3 B with the pinctrl driver forced off. With this
change, the MMC/SD and UART drivers can function without the pinctrl
driver. I left the dts change out this time.

v2 of this series can be found here[2].

Rob

[1] https://lists.linaro.org/pipermail/boot-architecture/2018-April/000466.html
[2] https://lore.kernel.org/patchwork/project/lkml/list/?series=347413

Rob Herring (6):
  driver core: allow stopping deferred probe after init
  dt-bindings: pinctrl: add a 'pinctrl-use-default' property
  pinctrl: Support stopping deferred probe after initcalls
  iommu: Stop deferring probe at end of initcalls
  iommu: Remove IOMMU_OF_DECLARE
  PM / Domains: Stop deferring probe at the end of initcall

 .../admin-guide/kernel-parameters.txt         |  9 +++
 .../bindings/pinctrl/pinctrl-bindings.txt     |  6 ++
 drivers/base/dd.c                             | 57 +++++++++++++++++++
 drivers/base/power/domain.c                   |  2 +-
 drivers/iommu/arm-smmu-v3.c                   |  2 -
 drivers/iommu/arm-smmu.c                      |  7 ---
 drivers/iommu/exynos-iommu.c                  |  2 -
 drivers/iommu/ipmmu-vmsa.c                    |  3 -
 drivers/iommu/msm_iommu.c                     |  2 -
 drivers/iommu/of_iommu.c                      | 21 +------
 drivers/iommu/qcom_iommu.c                    |  2 -
 drivers/iommu/rockchip-iommu.c                |  2 -
 drivers/pinctrl/devicetree.c                  | 15 +++--
 include/asm-generic/vmlinux.lds.h             |  2 -
 include/linux/device.h                        |  2 +
 include/linux/of_iommu.h                      |  4 --
 16 files changed, 88 insertions(+), 50 deletions(-)

--
2.17.1
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Linus Walleij July 2, 2018, 1:23 p.m. UTC | #1
On Thu, Jun 28, 2018 at 10:43 PM Rob Herring <robh@kernel.org> wrote:

> Pinctrl drivers are a common dependency which can prevent a system

> booting even if the default or bootloader configured settings can work.

> If a pinctrl node in DT indicates that the default pin setup can be used

> with the 'pinctrl-use-default' property, then only defer probe until

> initcalls are done. If the deferred probe timeout is enabled or loadable

> modules are disabled, then we'll stop deferring probe regardless of the

> DT property. This gives platforms the option to work without their

> pinctrl driver being enabled.

>

> Dropped the pinctrl specific deferring probe message as the driver core

> can print deferred probe related messages if needed.

>

> Signed-off-by: Rob Herring <robh@kernel.org>

> ---

> v3:

> - Drop pinctrl deferred probe msg in favor of driver core messages

> - Move the handling of "pinctrl-use-default" option out of driver core

> - Stop deferring probe if modules are not enabled.

>

> Linus, I reworked this a bit, so didn't add your ack.


Looks even better now:
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>


Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html