Skip to content
Permalink
Sascha-Hauer/d…
Switch branches/tags

Commits on Dec 8, 2021

  1. clk: rk3568: do not divide dclk_vop0

    On the rk3568 we have this (simplified) situation:
    
     .--------.     .-----.    .---------.
    -| hpll   |--.--| /n  |----|dclk_vop0|-
     `--------´  |  `-----´    `---------´
                 |  .-----.    .---------.
                 `--| /m  |----|dclk_vop1|-
                 |  `-----´    `---------´
                 |             .---------.
                 `-------------|hdmi_ref |-
                               `---------´
    
    hpll is the PLL that drives the HDMI reference clock and the pixel
    clocks for the different CRTCs (dclk_vop0/1). Between the pixel clocks
    and the hpll there are programmable dividers whereas the HDMI reference
    clock is directly connected to the hpll.
    
    For the HDMI output to work the pixel clock must be the same as the HDMI
    reference clock, hence the dividers must be programmed to 1. Normally a
    rate change on dclk_vop0/1 propagates through to the hpll and the clock
    framework picks a suitable combination of hpll and divider settings. by
    accident it picks a divider setting of 1 for the standard 1080p case,
    but other divider settings for most other resolutions leaving the HDMI
    port non working.
    
    This patch is not a solution, it merely puts the finger in the wound. We
    leave out the divider for the composite clock for dclk_vop0 which then
    leaves the divider at the bootloader default setting of 1. I assume
    the divider is disturbing only for the HDMI case, but needed for other
    outputs. Any thoughts how this can be handled?
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    saschahauer authored and intel-lab-lkp committed Dec 8, 2021
  2. drm: rockchip: Add VOP2 driver

    The VOP2 unit is found on Rockchip SoCs beginning with rk3566/rk3568.
    It replaces the VOP unit found in the older Rockchip SoCs.
    
    This driver has been derived from the downstream Rockchip Kernel and
    heavily modified:
    
    - All nonstandard DRM properties have been removed
    - dropped struct vop2_plane_state and pass around less data between
      functions
    - Dropped all DRM_FORMAT_* not known on upstream
    - rework register access to get rid of excessively used macros
    - Drop all waiting for framesyncs
    
    The driver is tested with HDMI and MIPI-DSI display on a RK3568-EVB
    board. Overlay support is tested with the modetest utility. AFBC support
    on the cluster windows is tested with weston-simple-dmabuf-egl on
    weston using the (yet to be upstreamed) panfrost driver support.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    Andy Yan authored and intel-lab-lkp committed Dec 8, 2021
  3. drm/rockchip: Make VOP driver optional

    With upcoming VOP2 support VOP won't be the only choice anymore, so make
    the VOP driver optional.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    saschahauer authored and intel-lab-lkp committed Dec 8, 2021
  4. drm/encoder: Add of_graph port to struct drm_encoder

    Add a device node to drm_encoder which corresponds with the port node
    in the DT description of the encoder. This allows drivers to find the
    of_graph link between a crtc and an encoder.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    saschahauer authored and intel-lab-lkp committed Dec 8, 2021
  5. arm64: dts: rockchip: enable vop2 and hdmi tx on quartz64a

    Enable the RK356x Video Output Processor (VOP) 2 on the Pine64
    Quartz64 Model A.
    
    Signed-off-by: Michael Riesch <michael.riesch@wolfvision.net>
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    mriesch-wv authored and intel-lab-lkp committed Dec 8, 2021
  6. arm64: dts: rockchip: rk3568-evb: Enable VOP2 and hdmi

    This enabled the VOP2 display controller along with hdmi and the
    required port routes which is enough to get a picture out of the
    hdmi port of the board.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    saschahauer authored and intel-lab-lkp committed Dec 8, 2021
  7. arm64: dts: rockchip: rk356x: Add HDMI nodes

    Add support for the HDMI port found on RK3568.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    saschahauer authored and intel-lab-lkp committed Dec 8, 2021
  8. arm64: dts: rockchip: rk356x: Add VOP2 nodes

    The VOP2 is the display output controller on the RK3568. Add the node
    for it to the dtsi file along with the required display-subsystem node
    and the iommu node.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    saschahauer authored and intel-lab-lkp committed Dec 8, 2021
  9. dt-bindings: display: rockchip: Add binding for VOP2

    The VOP2 is found on newer Rockchip SoCs like the rk3568 or the rk3566.
    The binding differs slightly from the existing VOP binding, so add a new
    binding file for it.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    saschahauer authored and intel-lab-lkp committed Dec 8, 2021
  10. arm64: dts: rockchip: rk3399: reorder hmdi clocks

    The binding specifies the clock order to "cec", "grf", "vpll". Reorder
    the clocks accordingly.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    saschahauer authored and intel-lab-lkp committed Dec 8, 2021
  11. dt-bindings: display: rockchip: dw-hdmi: Add regulator support

    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    saschahauer authored and intel-lab-lkp committed Dec 8, 2021
  12. dt-bindings: display: rockchip: dw-hdmi: Allow "ref" as clock name

    "vpll" is a misnomer. A clock input to a device should be named after
    the usage in the device, not after the clock that drives it. On the
    rk3568 the same clock is driven by the HPLL.
    To fix that, this patch renames the vpll clock to ref clock.  The clock
    name "vpll" is left for compatibility to old device trees.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    saschahauer authored and intel-lab-lkp committed Dec 8, 2021
  13. dt-bindings: display: rockchip: dw-hdmi: Make unwedge pinctrl optional

    None of the upstream device tree files has a "unwedge" pinctrl
    specified. Make it optional.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    saschahauer authored and intel-lab-lkp committed Dec 8, 2021
  14. dt-bindings: display: rockchip: dw-hdmi: Add compatible for rk3568 HDMI

    Define a new compatible for rk3568 HDMI.
    This version of HDMI hardware block needs two new clocks hclk_vio and hclk
    to provide phy reference clocks.
    
    Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20210707120323.401785-2-benjamin.gaignard@collabora.com
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    Benjamin Gaignard authored and intel-lab-lkp committed Dec 8, 2021
  15. drm/rockchip: dw_hdmi: add regulator support

    The RK3568 has HDMI_TX_AVDD0V9 and HDMI_TX_AVDD_1V8 supply inputs needed
    for the HDMI port. add support for these to the driver for boards which
    have them supplied by switchable regulators.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    saschahauer authored and intel-lab-lkp committed Dec 8, 2021
  16. drm/rockchip: dw_hdmi: add rk3568 support

    Add a new dw_hdmi_plat_data struct and new compatible for rk3568.
    
    Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    saschahauer authored and intel-lab-lkp committed Dec 8, 2021
  17. drm/rockchip: dw_hdmi: rename vpll clock to reference clock

    "vpll" is a misnomer. A clock input to a device should be named after
    the usage in the device, not after the clock that drives it. On the
    rk3568 the same clock is driven by the HPLL.
    To fix that, this patch renames the vpll clock to ref clock. The clock
    name "vpll" is left for compatibility to old device trees.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    saschahauer authored and intel-lab-lkp committed Dec 8, 2021
  18. drm/rockchip: dw_hdmi: Do not leave clock enabled in error case

    The driver returns an error when devm_phy_optional_get() fails leaving
    the previously enabled clock turned on. Change order and enable the
    clock only after the phy has been acquired.
    
    Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
    saschahauer authored and intel-lab-lkp committed Dec 8, 2021

Commits on Nov 21, 2021

  1. arm64: dts: rockchip: fix poweroff on helios64

    Adding the rockchip,system-power-controller property here will use the
    rk808 to power off the system.
    
    Fixes: 09e006c ("arm64: dts: rockchip: Add basic support for Kobol's Helios64")
    Signed-off-by: Florian Klink <flokli@flokli.de>
    Tested-by: Dennis Gilmore <dgilmore@redhat.com>
    Link: https://lore.kernel.org/r/20211020095926.735938-2-flokli@flokli.de
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    flokli authored and mmind committed Nov 21, 2021
  2. arm64: dts: rockchip: Enable HDD power on helios64

    This adds the hdd_{a,b}_power blocks present in the armbian helios64
    dts. [1]
    
    Without those powered up, no HDDs will appear (except one connected via
    the m.2 slot).
    
    >From https://wiki.kobol.io/helios64/sata/#hdd-power:
    
    > The power delivery of the HDDs is divided into two group:
    >
    >     HDD Rail A (Max. 3x Drives)
    >     HDD Rail B (Max. 2x Drives)
    >
    > Helios64 implements a power staggering approach where HDD Rail A will be
    > powered up first, then few seconds later HDD Rail B will be powered up.
    > This power control scenario is performed to reduce the inrush current
    > during disk spin-up.
    
    In practice, this power staggering approach will be included in the
    bootloader (not in the kernel), as we might want to boot from a SATA
    drive.
    
    >From my experiments, if the bootloader doesn't implement the power
    staggering, only one HDD will get recognized (probably cause the others
    didn't boot due to few power).
    
    Still, it makes sense to expose this block in the device-tree, so the
    kernel can ensure both rails are on (and this can be shared with
    u-boot).
    
    [1] https://github.com/armbian/build/blob/744ea89a589d62cb6f409baab60fc6664520bc39/patch/kernel/archive/rockchip64-5.14/add-board-helios64.patch
    
    Signed-off-by: Florian Klink <flokli@flokli.de>
    Tested-by: Dennis Gilmore <dgilmore@redhat.com>
    Link: https://lore.kernel.org/r/20211020095926.735938-1-flokli@flokli.de
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    flokli authored and mmind committed Nov 21, 2021
  3. arm64: dts: rockchip: add variables for pcie completion to helios64

    without ep-gpios defined u-boot does not initialise PCIe
    rockchip_pcie pcie@f8000000: failed to find ep-gpios property
    
    additionally set max-link-speed and pinctrl-names for completeness
    
    with this patch and the ones from Florian Klink applied to the dts
    file in u-boot sata drives show up in both u-boot and linux
    
    Signed-off-by: Dennis Gilmore <dgilmore@redhat.com>
    Acked-By: Florian Klink <flokli@flokli.de>
    Link: https://lore.kernel.org/r/20211029005323.144652-1-dgilmore@redhat.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    ausil authored and mmind committed Nov 21, 2021
  4. arm64: dts: rockchip: define usb hub and 2.5GbE nic on helios64

    Add the 4 ports on the internal hub and define and turn on the 2.5GbE
    nic.
    
    Signed-off-by: Dennis Gilmore <dgilmore@redhat.com>
    Tested-by: Florian Klink <flokli@flokli.de>
    Link: https://lore.kernel.org/r/20211026150751.70115-1-dgilmore@redhat.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    ausil authored and mmind committed Nov 21, 2021
  5. arm64: dts: rockchip: add interrupt and headphone-detection for Rock …

    …Pi4's audio codec
    
    As schematics at [1] and [2] show C- and plus-revisions have interrupt and
    headphone detection lines of ES8316 codec connected.
    
    Add them to the respective device trees.
    
    [1] https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi_4c_v12_sch_20200620.pdf
    [2] https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4b_plus_v16_sch_20200628.pdf
    
    Signed-off-by: Alex Bee <knaerzche@gmail.com>
    Link: https://lore.kernel.org/r/20211027143726.165809-2-knaerzche@gmail.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    knaerzche authored and mmind committed Nov 21, 2021
  6. arm64: dts: rockchip: fix audio-supply for Rock Pi 4

    As stated in the schematics [1] and [2] P5 the APIO5 domain is supplied
    by RK808-D Buck4, which in our case vcc1v8_codec - i.e. a 1.8 V regulator.
    
    Currently only white noise comes from the ES8316's output, which - for
    whatever reason - came up only after the the correct switch from i2s0_8ch_bus
    to i2s0_2ch_bus for i2s0's pinctrl was done.
    
    Fix this by setting the correct regulator for audio-supply.
    
    [1] https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi4_v13_sch_20181112.pdf
    [2] https://dl.radxa.com/rockpi4/docs/hw/rockpi4/rockpi_4c_v12_sch_20200620.pdf
    
    Fixes: 1b5715c ("arm64: dts: rockchip: add ROCK Pi 4 DTS support")
    Signed-off-by: Alex Bee <knaerzche@gmail.com>
    Link: https://lore.kernel.org/r/20211027143726.165809-1-knaerzche@gmail.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    knaerzche authored and mmind committed Nov 21, 2021
  7. arm64: dts: rockchip: fix rk3399-leez-p710 vcc3v3-lan supply

    Correct a typo in the vin-supply property.  The input supply is
    always-on, so this mistake doesn't affect whether the supply is actually
    enabled correctly.
    
    Fixes: fc702ed ("arm64: dts: rockchip: Add dts for Leez RK3399 P710 SBC")
    Signed-off-by: John Keeping <john@metanate.com>
    Link: https://lore.kernel.org/r/20211102182908.3409670-3-john@metanate.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    johnkeeping authored and mmind committed Nov 21, 2021
  8. arm64: dts: rockchip: fix rk3308-roc-cc vcc-sd supply

    Correct a typo in the vin-supply property.  The input supply is
    always-on, so this mistake doesn't affect whether the supply is actually
    enabled correctly.
    
    Fixes: 4403e12 ("arm64: dts: rockchip: Add devicetree for board roc-rk3308-cc")
    Signed-off-by: John Keeping <john@metanate.com>
    Link: https://lore.kernel.org/r/20211102182908.3409670-2-john@metanate.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    johnkeeping authored and mmind committed Nov 21, 2021
  9. arm64: dts: rockchip: remove mmc-hs400-enhanced-strobe from rk3399-kh…

    …adas-edge
    
    Remove mmc-hs400-enhanced-strobe from the rk3399-khadas-edge dts to
    improve compatibility with a wider range of eMMC chips.
    
    Before (BJTD4R 29.1 GiB):
    
    [    7.001493] mmc2: CQHCI version 5.10
    [    7.027971] mmc2: SDHCI controller on fe330000.mmc [fe330000.mmc] using ADMA
    .......
    [    7.207086] mmc2: mmc_select_hs400es failed, error -110
    [    7.207129] mmc2: error -110 whilst initialising MMC card
    [    7.308893] mmc2: mmc_select_hs400es failed, error -110
    [    7.308921] mmc2: error -110 whilst initialising MMC card
    [    7.427524] mmc2: mmc_select_hs400es failed, error -110
    [    7.427546] mmc2: error -110 whilst initialising MMC card
    [    7.590993] mmc2: mmc_select_hs400es failed, error -110
    [    7.591012] mmc2: error -110 whilst initialising MMC card
    
    After:
    
    [    6.960785] mmc2: CQHCI version 5.10
    [    6.984672] mmc2: SDHCI controller on fe330000.mmc [fe330000.mmc] using ADMA
    [    7.175021] mmc2: Command Queue Engine enabled
    [    7.175053] mmc2: new HS400 MMC card at address 0001
    [    7.175808] mmcblk2: mmc2:0001 BJTD4R 29.1 GiB
    [    7.176033] mmcblk2boot0: mmc2:0001 BJTD4R 4.00 MiB
    [    7.176245] mmcblk2boot1: mmc2:0001 BJTD4R 4.00 MiB
    [    7.176495] mmcblk2rpmb: mmc2:0001 BJTD4R 4.00 MiB, chardev (242:0)
    
    Fixes: c2aacce ("arm64: dts: rockchip: Add support for Khadas Edge/Edge-V/Captain boards")
    Signed-off-by: Artem Lapkin <art@khadas.com>
    Link: https://lore.kernel.org/r/20211115083321.2627461-1-art@khadas.com
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Artem Lapkin authored and mmind committed Nov 21, 2021
  10. ARM: rockchip: Use memcpy_toio instead of memcpy on smp bring-up

    This fixes a potential kernel panic on memcpy when FORTIFY_SOURCE
    is enabled. Because memory is iomem use appropriate function for
    accessing it.
    
    Signed-off-by: Ivan T. Ivanov <iivanov@suse.de>
    Link: https://lore.kernel.org/r/20211116084616.24811-1-iivanov@suse.de
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    hanzyd authored and mmind committed Nov 21, 2021

Commits on Nov 14, 2021

  1. Linux 5.16-rc1

    torvalds committed Nov 14, 2021
  2. kconfig: Add support for -Wimplicit-fallthrough

    Add Kconfig support for -Wimplicit-fallthrough for both GCC and Clang.
    
    The compiler option is under configuration CC_IMPLICIT_FALLTHROUGH,
    which is enabled by default.
    
    Special thanks to Nathan Chancellor who fixed the Clang bug[1][2]. This
    bugfix only appears in Clang 14.0.0, so older versions still contain
    the bug and -Wimplicit-fallthrough won't be enabled for them, for now.
    
    This concludes a long journey and now we are finally getting rid
    of the unintentional fallthrough bug-class in the kernel, entirely. :)
    
    Link: llvm/llvm-project@9ed4a94 [1]
    Link: https://bugs.llvm.org/show_bug.cgi?id=51094 [2]
    Link: KSPP#115
    Link: ClangBuiltLinux#236
    Co-developed-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Co-developed-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
    Reviewed-by: Nathan Chancellor <nathan@kernel.org>
    Tested-by: Nathan Chancellor <nathan@kernel.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    GustavoARSilva authored and torvalds committed Nov 14, 2021
  3. Merge tag 'xfs-5.16-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/x…

    …fs-linux
    
    Pull xfs cleanups from Darrick Wong:
     "The most 'exciting' aspect of this branch is that the xfsprogs
      maintainer and I have worked through the last of the code
      discrepancies between kernel and userspace libxfs such that there are
      no code differences between the two except for #includes.
    
      IOWs, diff suffices to demonstrate that the userspace tools behave the
      same as the kernel, and kernel-only bits are clearly marked in the
      /kernel/ source code instead of just the userspace source.
    
      Summary:
    
       - Clean up open-coded swap() calls.
    
       - A little bit of #ifdef golf to complete the reunification of the
         kernel and userspace libxfs source code"
    
    * tag 'xfs-5.16-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
      xfs: sync xfs_btree_split macros with userspace libxfs
      xfs: #ifdef out perag code for userspace
      xfs: use swap() to make dabtree code cleaner
    torvalds committed Nov 14, 2021
  4. Merge tag 'for-5.16/parisc-3' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/deller/parisc-linux
    
    Pull more parisc fixes from Helge Deller:
     "Fix a build error in stracktrace.c, fix resolving of addresses to
      function names in backtraces, fix single-stepping in assembly code and
      flush userspace pte's when using set_pte_at()"
    
    * tag 'for-5.16/parisc-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
      parisc/entry: fix trace test in syscall exit path
      parisc: Flush kernel data mapping in set_pte_at() when installing pte for user page
      parisc: Fix implicit declaration of function '__kernel_text_address'
      parisc: Fix backtrace to always include init funtion names
    torvalds committed Nov 14, 2021
Older