Commit graph

1,189,987 commits

Author SHA1 Message Date
Ard Biesheuvel
161a438d73 efi: random: reduce seed size to 32 bytes
We no longer need at least 64 bytes of random seed to permit the early
crng init to complete. The RNG is now based on Blake2s, so reduce the
EFI seed size to the Blake2s hash size, which is sufficient for our
purposes.

While at it, drop the READ_ONCE(), which was supposed to prevent size
from being evaluated after seed was unmapped. However, this cannot
actually happen, so READ_ONCE() is unnecessary here.

Cc: <stable@vger.kernel.org> # v4.14+
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Jason A. Donenfeld <Jason@zx2c4.com>
Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
2022-10-24 10:21:02 +02:00
Yang Yingliang
dbbd909eeb pinctrl: qcom: sdm670: change sdm670_reserved_gpios to static
sdm670_reserved_gpios is only used in pinctrl-sdm670.c now, change it
to static.

Fixes: 61164d220f ("pinctrl: qcom: add sdm670 pinctrl")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Link: https://lore.kernel.org/r/20221020075650.1031228-1-yangyingliang@huawei.com
Acked-by: Richard Acayan <mailingradian@gmail.com>
[Fix up subject]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2022-10-24 10:17:28 +02:00
Pin-yen Lin
ab28896f1a
drm/bridge: it6505: Improve synchronization between extcon subsystem
Originally, the it6505 relies on a short sleep in the IRQ handler and a
long sleep to make sure it6505->lane_swap and it6505->lane_count is
configured in it6505_extcon_work and it6505_detect, respectively.

Use completion and additional DPCD read to remove the unnecessary waits,
and use a different lock for it6505_extcon_work and the threaded IRQ
handler because they no longer need to run exclusively.

The wait time of the completion is usually less than 10ms in local
experiments, but leave it larger here just in case.

Signed-off-by: Pin-yen Lin <treapking@chromium.org>
Reviewed-by: Robert Foss <robert.foss@linaro.org>
Signed-off-by: Robert Foss <robert.foss@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20221013110411.1674359-4-treapking@chromium.org
2022-10-24 10:08:49 +02:00
Pin-yen Lin
5827b1e1c2
drm/bridge: it6505: Setup links in it6505_irq_hpd
Move the DPCD read and link setup steps to HPD IRQ handler to remove
an unnecessary dependency between .detect callback and the HPD IRQ
handler before registering it6505 as a DRM bridge. This is safe because
there is always a .detect call after each HPD IRQ handler triggered by
the drm_helper_hpd_irq_event call.

Signed-off-by: Pin-yen Lin <treapking@chromium.org>
Reviewed-by: Robert Foss <robert.foss@linaro.org>
Signed-off-by: Robert Foss <robert.foss@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20221013110411.1674359-3-treapking@chromium.org
2022-10-24 10:08:48 +02:00
Pin-yen Lin
e577d4b130
drm/bridge: it6505: Initialize AUX channel in it6505_i2c_probe
During device boot, the HPD interrupt could be triggered before the DRM
subsystem registers it6505 as a DRM bridge. In such cases, the driver
tries to access AUX channel and causes NULL pointer dereference.
Initializing the AUX channel earlier to prevent such error.

Fixes: b5c84a9edc ("drm/bridge: add it6505 driver")
Signed-off-by: Pin-yen Lin <treapking@chromium.org>
Reviewed-by: Robert Foss <robert.foss@linaro.org>
Signed-off-by: Robert Foss <robert.foss@linaro.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20221013110411.1674359-2-treapking@chromium.org
2022-10-24 10:08:47 +02:00
Linus Walleij
7cac5ffc08 Qualcomm pinctrl Devicetree bindings changes for v6.2
Big set of refactoring and improving Qualcomm pin controller bindings:
 1. Convert several bindings from TXT to DT schema format: MDM9615,
    MSM8974, MSM8994, MSM8996, MSM8998, SC7180, SDM630, SDM845, SM8150.
 
 2. Refactor existing DT schema bindings to be consistent and similar to
    each other, remove unneeded pieces (provided by common bindings) and
    unify the style.
 
 2. Fix matching of the existing DT schema bindings, so they properly
    validate the DTS.  When looking for pin configuration (children
    nodes), be specific and expect "state" or "pins" suffixes (depending
    on the nesting.  This allows the schema later to properly parse also
    GPIO hogs, although it is not yet implemented.  The changes require
    aligning the DTS to new layout, but it does not break any
    compatibility.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmNV3dwQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD12YYD/9BMKOMGJFUJyO++ZI1/0h+fwmwLY4wxmBa
 YeijGi1veL0A722kI/bqIrx8ye7insTWzyStBBUyyCM9C1Oo0vj2R4H7E3YPoRtE
 YstZbEiW5WLTaaV6zGIVYt/uFjnOT0J4j2VUtqyRfP4AQWOhxQA0esy2CF8xEy8N
 /WEqe7CtgFTfTfCQwnHhx1LcudqH/cDsY5ObxZOUGqkLaRtCkMc6OgXWTEDCEtXQ
 AUrdrCoSFanL5TmxIRgEZ5ETo02cB0J2qyORbRD5I3PMx1GwJ4hC5Mf1kp0R54H9
 YiSBqBnfN9nj/HJeGxY+IDjqdCj1zBUkGCyGBHTRSg3lDLw3qkrWJeByJtWsRs93
 DBVJS6np5xR5uLSD7VzvGB5dvB6jSqpQQE69A5OAvlXCADskwv4e7c724RAQei9H
 NhiP7lMmR9Yd9mHkwKp4UCah0Y6cBuk5hGqJwKu6ORLLwcd+6O/PxNTwrjzKolTx
 uqzK5+1cBAfLmCnNSExip7a1g9yjif+/CVhLhoU5i9X1iXMJtE8ku2iD/ssOw0nA
 8PgxyNBHfhT7FmKs/HeUMwXSERCVI2UQQ2WOyqM+ijgit8DW0CVQ+RmZp455lkRQ
 +LvoGuPamyhHu2zWXMN3cM0Ir1ID2NWVWSz04gTpTEO+goodNMo3YUsLPUN8kX6D
 T2wdxls0IA==
 =i7RK
 -----END PGP SIGNATURE-----

Merge tag 'qcom-pinctrl-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt into devel

Qualcomm pinctrl Devicetree bindings changes for v6.2

Big set of refactoring and improving Qualcomm pin controller bindings:
1. Convert several bindings from TXT to DT schema format: MDM9615,
   MSM8974, MSM8994, MSM8996, MSM8998, SC7180, SDM630, SDM845, SM8150.

2. Refactor existing DT schema bindings to be consistent and similar to
   each other, remove unneeded pieces (provided by common bindings) and
   unify the style.

2. Fix matching of the existing DT schema bindings, so they properly
   validate the DTS.  When looking for pin configuration (children
   nodes), be specific and expect "state" or "pins" suffixes (depending
   on the nesting.  This allows the schema later to properly parse also
   GPIO hogs, although it is not yet implemented.  The changes require
   aligning the DTS to new layout, but it does not break any
   compatibility.
2022-10-24 09:48:37 +02:00
Geert Uytterhoeven
39d9dfc6fb arm64: dts: renesas: r8a779g0: Add remaining HSCIF nodes
Add device nodes for the remaining High Speed Serial Communication
Interfaces with FIFO (HSCIF) on the Renesas R-Car V4H (R8A779G0) SoC,
including DMA support.

Reformat the existing HSCIF0 node for consistency.

Based on patches in the BSP by Takeshi Kihara and Vinh Nguyen.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Link: https://lore.kernel.org/r/64c15b2d13439b2072cde0b588a251cb54f7dc01.1666361314.git.geert+renesas@glider.be
2022-10-24 09:34:34 +02:00
Geert Uytterhoeven
a4c31c56d2 arm64: dts: renesas: r8a779g0: Add SCIF nodes
Add device nodes for the Serial Communication Interfaces with FIFO
(SCIF) on the Renesas R-Car V4H (R8A779G0) SoC, including DMA support.

Based on patches in the BSP by Takeshi Kihara and Vinh Nguyen.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Link: https://lore.kernel.org/r/3f0ad7ce0fedfca2783001a6eb3eca96aea72115.1666361314.git.geert+renesas@glider.be
2022-10-24 09:34:33 +02:00
Miquel Raynal
4161634bce mac802154: Ensure proper scan-level filtering
We now have a fine grained filtering information so let's ensure proper
filtering in scan mode, which means that only beacons are processed.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Acked-by: Alexander Aring <aahringo@redhat.com>
Link: https://lore.kernel.org/r/20221019134423.877169-4-miquel.raynal@bootlin.com
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
2022-10-24 09:34:15 +02:00
Miquel Raynal
19177eedcf ieee802154: hwsim: Save the current filtering level and use it
Save the requested filtering level in the ->set_promiscuous()
helper. The logic is: either we want to enable promiscuous mode and we
want to disable filters entirely, or we want to use the highest
filtering level by default. This is of course an assumption that only
works today, but if in the future intermediate levels (such as scan
filtering level) are implemented in the core, this logic will need to be
updated. This would imply replacing ->set_promiscuous() by something
more fine grained anyway, so we are probably safe with this assumption.

Once saved in the PIB structure, we can use this value instead of trying
to access the PHY structure to know what hardware filtering level has
been advertised.

Suggested-by: Alexander Aring <alex.aring@gmail.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Acked-by: Alexander Aring <aahringo@redhat.com>
Link: https://lore.kernel.org/r/20221019134423.877169-3-miquel.raynal@bootlin.com
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
2022-10-24 09:34:02 +02:00
Miquel Raynal
9a60850e8c ieee802154: hwsim: Introduce a helper to update all the PIB attributes
Perform the update of the PIB structure only in a single place. This way
we can have much simpler functions when updating the page, channel or
address filters. This helper will become even more useful when we will
update the ->set_promiscuous() callback to actually save the filtering
level in the PIB structure.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Acked-by: Alexander Aring <aahringo@redhat.com>
Link: https://lore.kernel.org/r/20221019134423.877169-2-miquel.raynal@bootlin.com
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
2022-10-24 09:33:35 +02:00
wangjianli
2556e1a835
gpu/drm: fix repeated words in comments
Delete the redundant word 'the'.

Signed-off-by: wangjianli <wangjianli@cdjrlc.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20221022060701.58280-1-wangjianli@cdjrlc.com
2022-10-24 09:27:04 +02:00
wangjianli
7e160d9c66
gpu/drm: fix repeated words in comments
Delete the redundant word 'the'.

Signed-off-by: wangjianli <wangjianli@cdjrlc.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20221022060551.56918-1-wangjianli@cdjrlc.com
2022-10-24 09:26:56 +02:00
Colin Ian King
a7af4d67cf
drm/vc4: Fix spelling mistake "mmaping" -> "mmapping"
There are a couple of spelling mistakes in DRM_DEBUG messages. Fix them.

Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20221021084035.65367-1-colin.i.king@gmail.com
2022-10-24 09:26:48 +02:00
Greg Kroah-Hartman
d76308f03e Revert "coresight: cti: Fix hang in cti_disable_hw()"
This reverts commit 665c157e02.

It causes reported build warnings:

drivers/hwtracing/coresight/coresight-cti-core.c: In functio
n 'cti_enable_hw':
drivers/hwtracing/coresight/coresight-cti-core.c:93:24: warning: unused variable 'dev' [-Wunused-variable]
   93 |         struct device *dev = &drvdata->csdev->dev;
      |                        ^~~
drivers/hwtracing/coresight/coresight-cti-core.c: In function 'cti_disable_hw':
drivers/hwtracing/coresight/coresight-cti-core.c:154:24: warning: unused variable 'dev' [-Wunused-variable]
  154 |         struct device *dev = &drvdata->csdev->dev;
      |                        ^~~

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Aishwarya TCV <Aishwarya.TCV@arm.com>
Cc: Cristian Marussi <Cristian.Marussi@arm.com>
Cc: Suzuki Poulose <Suzuki.Poulose@arm.com>
Cc: James Clark <james.clark@arm.com>
Cc: Mike Leach <mike.leach@linaro.org>
Cc: Mike Leach <mike.leach@linaro.org>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Fixes: 665c157e02 ("coresight: cti: Fix hang in cti_disable_hw()")
Link: https://lore.kernel.org/r/20221024135752.2b83af97@canb.auug.org.au
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-10-24 08:33:45 +02:00
Jerry Snitselaar
f4cd18c5b2 efi/tpm: Pass correct address to memblock_reserve
memblock_reserve() expects a physical address, but the address being
passed for the TPM final events log is what was returned from
early_memremap(). This results in something like the following:

[    0.000000] memblock_reserve: [0xffffffffff2c0000-0xffffffffff2c00e4] efi_tpm_eventlog_init+0x324/0x370

Pass the address from efi like what is done for the TPM events log.

Fixes: c46f340569 ("tpm: Reserve the TPM final events table")
Cc: Matthew Garrett <mjg59@google.com>
Cc: Jarkko Sakkinen <jarkko@kernel.org>
Cc: Bartosz Szczepanek <bsz@semihalf.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com>
Acked-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2022-10-24 08:04:25 +02:00
Martin Povišer
56fed763f6 arm64: dts: apple: Add ADMAC resets on t8103/t600x
There's a shared reset for the ADMAC and MCA peripherals. The MCA node
already describes it, and being a shared reset it is important we
describe it on the ADMAC node too.

Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-10-24 13:44:22 +09:00
Martin Povišer
d52ca60191 dt-bindings: dma: apple,admac: Add reset
On the SoCs there is usually a shared audio reset line, so add
a property for that.

Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-10-24 13:44:22 +09:00
Janne Grunau
51979fbb7f arm64: dts: apple: t600x: Add MCA and its support
Add the MCA I2S transceiver and its supporting ADMAC and NCO nodes.

Signed-off-by: Janne Grunau <j@jannau.net>
Acked-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-10-24 13:44:22 +09:00
Martin Povišer
8a3df85ad8 arm64: dts: apple: t8103: Add MCA and its support
Add the MCA I2S transceiver node and its supporting NCO, ADMAC nodes.

Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
Signed-off-by: Janne Grunau <j@jannau.net>
Acked-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-10-24 13:44:22 +09:00
Martin Povišer
50e320adf4 arm64: dts: apple: t8103: Add AUDIO_P parent to the SIO_ADMA power domain
The SIO_ADMA is a power domain of the Audio DMA Controller. In addition
to it, the AUDIO_P domain must be on for the controller's MMIO registers
to be accessible.

On t600x and t8112, AUDIO_P is a parent of SIO_ADMA. On t8103, it isn't
so, at least as far as Apple's firmware goes. To make our life easier,
add the parent-child relationship on t8103 also.

Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
Signed-off-by: Janne Grunau <j@jannau.net>
Acked-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-10-24 13:44:22 +09:00
Janne Grunau
aaa1d42a4c arm64: dts: apple: Add J375 devicetrees
These are the Mac Studio devices with M1 Max (t6001) and
M1 Ultra (t6002).

Signed-off-by: Janne Grunau <j@jannau.net>
Acked-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-10-24 13:44:22 +09:00
Hector Martin
cad7a077d6 arm64: dts: apple: Add J314 and J316 devicetrees
These are the 14-inch and 16-inch 2021 MacBooks, in both M1 Pro and M1
Max variants (t6000 and t6001).

Signed-off-by: Janne Grunau <j@jannau.net>
Acked-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-10-24 13:44:22 +09:00
Hector Martin
7b0b0191a2 arm64: dts: apple: Add initial t6000/t6001/t6002 DTs
These SoCs are found in Apple devices with M1 Pro (t6000), M1 Max
(t6001) and M1 Ultra (t6002).

t6000 is a cut-down version of t6001, so the former just includes the
latter and disables the missing bits (This is currently just one PMGR
node and all of its domains.

t6002 is two connected t6001 dies. The implementation seems to use
t6001 with blocks disabled (mostly on the second die). MMIO addresses on
the second die have a constant offset. The interrupt controller is
multi-die aware. This setup can be represented in the device tree with
two top level "soc" nodes. The MMIO offset is applied via "ranges" and
devices are included with preproceesor macros to make the node labels
unique and to specify the die number for the interrupt definition.

Device nodes are distributed over dtsi files based on whether they are
present on both dies or just on the first die. The only execption is the
NVMe controller which resides on the second die. Its nodes are in a
separate file.

Co-developed-by: Janne Grunau <j@jannau.net>
Signed-off-by: Janne Grunau <j@jannau.net>
Acked-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-10-24 13:44:22 +09:00
Hector Martin
6053bb2ce4 arm64: dts: apple: Fix j45x model years
The Apple silicon iMac models were released in April 2021.

Signed-off-by: Janne Grunau <j@jannau.net>
Acked-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-10-24 13:44:22 +09:00
Janne Grunau
a450fc9a43 dt-bindings: arm: apple: Add t6001/t6002 Mac Studio compatibles
This adds the following apple,t6001 platform:

- apple,j375c - Mac Studio (M1 Max, 2022)

And the initial apple,t6002 platform:

- apple,j375d - Mac Studio (M1 Ultra, 2022)

Signed-off-by: Janne Grunau <j@jannau.net>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Acked-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-10-24 13:44:22 +09:00
Janne Grunau
9d86cffecd dt-bindings: apple,aic2: Add CPU PMU per-cpu pseudo-interrupts
Advertise the two pseudo-interrupts that tied to the two PMU
flavours present in the Apple M1 Pro/Max/Ultra SoC.

We choose the expose two different pseudo-interrupts to the OS
as the e-core PMU is obviously different from the p-core one,
effectively presenting two different devices.

Imported from "apple,aic".

Signed-off-by: Janne Grunau <j@jannau.net>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Acked-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-10-24 13:44:21 +09:00
Sven Peter
8cc8bdceb6 dt-bindings: iommu: dart: add t6000 compatible
The M1 Max/Pro SoCs come with a new DART variant that is incompatible with
the previous one. Add a new compatible for those.

Signed-off-by: Sven Peter <sven@svenpeter.dev>
Acked-by: Rob Herring <robh@kernel.org>

Signed-off-by: Janne Grunau <j@jannau.net>
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-10-24 13:44:21 +09:00
Krzysztof Kozlowski
7b76547835 ARM: dts: ls1021: correct indentation
Do not use spaces for indentation.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-10-24 10:18:09 +08:00
Frank Li
8065fc937f arm64: dts: imx8dxl: add usb1 and usb2 support
There are two chipidea usb controller in 8dxl.
Add usb node at common connect subsystem.
Enable two usb at imx8dxl_evk boards dts.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-10-24 10:14:04 +08:00
Frank Li
d9b98063c3 firmware: imx: scu-pd: add missed USB_1_PHY pd
USB_1_PHY is not defined in pd driver on 8DXL.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-10-24 10:05:27 +08:00
Dmitry Torokhov
3c713925fd ARM: dts: vf610-zii-dev-rev-c: fix polarity of at86rf233 reset line
at86rf230 driver starts with having reset line high, and then drives it
low and then high again, and even calls it "rstn" internally, therefore
it needs to be annotated as "active low" in the DTS.

This will make difference when at86rf230 driver will be converted to
gpiod API that respects declared line polarity.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-10-24 10:04:06 +08:00
Marcel Ziswiler
49f8992cc1 ARM: dts: imx7-colibri: remove spurious debounce property
Remove spurious debounce property from linux,extcon-usb-gpio.

Note that debouncing is hard-coded to 20 ms (USB_GPIO_DEBOUNCE_MS
define).

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-10-24 09:46:37 +08:00
Marcel Ziswiler
63d217e9da ARM: dts: colibri-imx6: specify usbh_pen gpio being active-low
Specify USBH_PEN GPIO being active-low rather than active-high.

Note that this should not have any functional impact as for fixed
regulators the regular GPIO polarity is ignored and a true active-high
enable GPIO would need an additional enable-active-high property which
is/was not the case here. However, this may be rather confusing which
this patch fixes.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-10-24 09:46:33 +08:00
Marcel Ziswiler
3904b814e6 ARM: dts: colibri-imx6: move vbus-supply to module level device tree
Move USB VBUS supply from single carrier board to module level device
tree. This pin is as per Colibri module family standard.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-10-24 09:46:29 +08:00
Philippe Schenker
fecd4624de ARM: dts: colibri-imx6: usb dual-role switching
Introduce USBC_DET GPIO based USB dual-role aka device/host switching.

While at it re-work pinmux comment adding SODIMM number to the USBC_DET
entry.

Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-10-24 09:46:16 +08:00
Marcel Ziswiler
41f501d517 ARM: imx_v6_v7_defconfig: Enable USB GPIO extcon support
Enable USB GPIO extcon support aka CONFIG_EXTCON_USB_GPIO as e.g. used
on Colibri iMX6 and Colibri iMX7 for USB device/host role switching.

Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-10-24 09:45:33 +08:00
Marek Vasut
375347575f arm64: dts: imx8mm: Drop QCA clk out setup on Data Modul i.MX8M Mini eDM SBC
The PHY clock output is not connected to anything, drop the clock output
configuration. This way, the PHY does not generate output clock.

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-10-24 09:25:02 +08:00
Marek Vasut
9509593f32 arm64: dts: imx8mm: Model PMIC to SNVS RTC clock path on Data Modul i.MX8M Mini eDM SBC
The PMIC is the 32 kHz clock source for the RTC_XTALI input of the SoC
on this system. The RTC_XTALI input is used to supply 32 kHz clock to
the SVNS RTC per "i.MX 8M Mini Applications Processor Reference Manual,
Rev. 3, 11/2020" page 759 "The 32KHz XTAL module uses a different IP and
it is used as the clock source for the RTC, located in the SNVS." The
PMIC has its own dedicated 32 kHz XTAL on input.

Model the connection in DT.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-10-24 09:23:38 +08:00
Andreas Kemnade
21683c0d39 ARM: dts: imx: Add devicetree for Kobo Aura 2
This adds a devicetree for the Kobo Aura 2 Ebook reader. It is based
on boards marked with "37NB-E60QL0+4B1". It is equipped with an i.MX6SL
SoC.

Expected to work:
  - Buttons
  - Wifi (with external module)
  - LED
  - uSD
  - USB
  - RTC
  - Fuel Gauge
  - Backlight (if the required regulator is probed before the backlight,
    specifying a supply is not supported by backlightdriver)

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-10-24 09:16:31 +08:00
Andreas Kemnade
2eee1c48e5 dt-bindings: arm: fsl: add compatible string for Kobo Aura 2
This adds a compatible string for the Kobo Aura 2 eBook reader.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-10-24 09:15:09 +08:00
Peng Fan
f98c2dfedb arm64: dts: imx8m: align anatop with bindings
The CCM ANALOG module is used for generate PLLs, align the node
with DT bindings

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-10-24 09:03:14 +08:00
Peng Fan
1a3e93814c dt-bindings: clock: add i.MX8M Anatop
i.MX8M Family features an anatop module the produces PLL to clock
control module(CCM) root clock. Add the missing yaml file.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-10-24 09:02:54 +08:00
Jinlong Chen
8ed40ee35d block: fix up elevator_type refcounting
The current reference management logic of io scheduler modules contains
refcnt problems. For example, blk_mq_init_sched may fail before or after
the calling of e->ops.init_sched. If it fails before the calling, it does
nothing to the reference to the io scheduler module. But if it fails after
the calling, it releases the reference by calling kobject_put(&eq->kobj).

As the callers of blk_mq_init_sched can't know exactly where the failure
happens, they can't handle the reference to the io scheduler module
properly: releasing the reference on failure results in double-release if
blk_mq_init_sched has released it, and not releasing the reference results
in ghost reference if blk_mq_init_sched did not release it either.

The same problem also exists in io schedulers' init_sched implementations.

We can address the problem by adding releasing statements to the error
handling procedures of blk_mq_init_sched and init_sched implementations.
But that is counterintuitive and requires modifications to existing io
schedulers.

Instead, We make elevator_alloc get the io scheduler module references
that will be released by elevator_release. And then, we match each
elevator_get with an elevator_put. Therefore, each reference to an io
scheduler module explicitly has its own getter and releaser, and we no
longer need to worry about the refcnt problems.

The bugs and the patch can be validated with tools here:
https://github.com/nickyc975/linux_elv_refcnt_bug.git

[hch: split out a few bits into separate patches, use a non-try
      module_get in elevator_alloc]

Signed-off-by: Jinlong Chen <nickyc975@zju.edu.cn>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20221020064819.1469928-5-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-10-23 18:59:17 -06:00
Jinlong Chen
b54c2ad9b7 block: check for an unchanged elevator earlier in __elevator_change
No need to find the actual elevator_type struct for this comparism,
the name is all that is needed.

Signed-off-by: Jinlong Chen <nickyc975@zju.edu.cn>
[hch: split from a larger patch]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20221020064819.1469928-4-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-10-23 18:59:17 -06:00
Christoph Hellwig
58367c8a5f block: sanitize the elevator name before passing it to __elevator_change
The stripped name should also be used for the none check.  To do so
strip it in the caller and pass in the sanitized name.  Drop the pointless
__ prefix in the function name while we're at it.

Based on a patch from Jinlong Chen <nickyc975@zju.edu.cn>.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20221020064819.1469928-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-10-23 18:59:17 -06:00
Christoph Hellwig
dd6f7f17bf block: add proper helpers for elevator_type module refcount management
Make sure we have helpers for all relevant module refcount operations on
the elevator_type in elevator.h, and use them.  Move the call to the get
helper in blk_mq_elv_switch_none a bit so that it is obvious with a less
verbose comment.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20221020064819.1469928-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-10-23 18:59:17 -06:00
Yu Kuai
671fae5e51 blk-wbt: don't enable throttling if default elevator is bfq
Commit b5dc5d4d1f ("block,bfq: Disable writeback throttling") tries to
disable wbt for bfq, it's done by calling wbt_disable_default() in
bfq_init_queue(). However, wbt is still enabled if default elevator is
bfq:

device_add_disk
 elevator_init_mq
  bfq_init_queue
   wbt_disable_default -> done nothing

 blk_register_queue
  wbt_enable_default -> wbt is enabled

Fix the problem by adding a new flag ELEVATOR_FLAG_DISBALE_WBT, bfq
will set the flag in bfq_init_queue, and following wbt_enable_default()
won't enable wbt while the flag is set.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20221019121518.3865235-7-yukuai1@huaweicloud.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-10-23 18:59:17 -06:00
Yu Kuai
181d066374 elevator: add new field flags in struct elevator_queue
There are only one flag to indicate that elevator is registered currently,
prepare to add a flag to disable wbt if default elevator is bfq.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20221019121518.3865235-6-yukuai1@huaweicloud.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-10-23 18:59:17 -06:00
Yu Kuai
3642ef4d95 blk-wbt: don't show valid wbt_lat_usec in sysfs while wbt is disabled
Currently, if wbt is initialized and then disabled by
wbt_disable_default(), sysfs will still show valid wbt_lat_usec, which
will confuse users that wbt is still enabled.

This patch shows wbt_lat_usec as zero if it's disabled.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reported-and-tested-by: Holger Hoffstätte <holger@applied-asynchrony.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20221019121518.3865235-5-yukuai1@huaweicloud.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-10-23 18:59:17 -06:00