Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port Pi 5 changes to rpi-6.6.y #5636

Merged
merged 159 commits into from
Oct 6, 2023
Merged

Port Pi 5 changes to rpi-6.6.y #5636

merged 159 commits into from
Oct 6, 2023

Commits on Oct 5, 2023

  1. Revert "ASoC: hdmi-codec: Fix broken channel map reporting"

    This reverts commit a319c6c.
    HiassofT authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    9f59e21 View commit details
    Browse the repository at this point in the history
  2. ASoC: hdmi-codec: Fix broken channel map reporting

    Commit b84b531 upstream.
    
    Commit 4e08713 ("ASoC: hdmi-codec: fix channel info for
    compressed formats") accidentally changed hcp->chmap_idx from
    ca_id, the CEA channel allocation ID, to idx, the index to
    the table of channel mappings ordered by preference.
    
    This resulted in wrong channel maps being reported to userspace,
    eg for 5.1 "FL,FR,LFE,FC" was reported instead of the expected
    "FL,FR,LFE,FC,RL,RR":
    
    ~ # speaker-test -c 6 -t sine
    ...
     0 - Front Left
     3 - Front Center
     1 - Front Right
     2 - LFE
     4 - Unknown
     5 - Unknown
    
    ~ # amixer cget iface=PCM,name='Playback Channel Map' | grep ': values'
      : values=3,4,8,7,0,0,0,0
    
    Switch this back to ca_id in case of PCM audio so the correct channel
    map is reported again and set it to HDMI_CODEC_CHMAP_IDX_UNKNOWN in
    case of non-PCM audio so the PCM channel map control returns "Unknown"
    channels (value 0).
    
    Fixes: 4e08713 ("ASoC: hdmi-codec: fix channel info for compressed formats")
    Cc: [email protected]
    Signed-off-by: Matthias Reichl <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Mark Brown <[email protected]>
    HiassofT authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    6df1ac1 View commit details
    Browse the repository at this point in the history
  3. Revert "usb: phy: generic: Get the vbus supply"

    This reverts commit c0ea202.
    popcornmix authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    3b7a7dd View commit details
    Browse the repository at this point in the history
  4. drivers: char: add generic gpiomem driver

    Based on bcm2835-gpiomem.
    
    We allow export of the "GPIO registers" to userspace via a chardev as
    this allows for finer access control (e.g. users must be group gpio, root
    not required).
    
    This driver allows access to either rp1-gpiomem or gpiomem, depending on
    which nodes are populated in devicetree.
    
    RP1 has a different look-and-feel to BCM283x SoCs as it has split ranges
    for IO controls and the parallel registered OE/IN/OUT access. To handle
    this, the driver concatenates the ranges for an IO bank and the
    corresponding RIO instance into a contiguous buffer.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    P33M authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    005b3d8 View commit details
    Browse the repository at this point in the history
  5. defconfigs: Add RASPBERRYPI_GPIOMEM as a module

    This wants to be merged before
    "drivers: char: delete bcm2835-gpiomem"
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    6ee7011 View commit details
    Browse the repository at this point in the history
  6. drivers: char: delete bcm2835-gpiomem

    This functionality is now provided by raspberrypi-gpiomem.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    P33M authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    76acb43 View commit details
    Browse the repository at this point in the history
  7. bcm2708_fb: Hack out dma support

    popcornmix authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    d1ea2d1 View commit details
    Browse the repository at this point in the history
  8. gpio_brcmstb: Allow to build for ARCH_BCM2835

    gpio-brcmstb: Report the correct bank width
    
    gpio: brcmstb: Use bank address as gpiochip label
    
    If the path to the device node is used as gpiochip label then
    gpio-brcmstb instances with multiple banks end up with duplicated
    names. Instead, use a combination of the driver name with the physical
    address of the bank, which is both unique and helpful for devmem
    debugging.
    
    Signed-off-by: Phil Elwell <[email protected]>
    
    gpio: mmio: Add DIRECT mode for shared access
    
    The generic MMIO GPIO library uses shadow registers for efficiency,
    but this breaks attempts by raspi-gpio to change other GPIOs in the
    same bank. Add a DIRECT mode that makes fewer assumptions about the
    existing register contents, but note that genuinely simultaneous
    accesses are likely to lose updates.
    
    Signed-off-by: Phil Elwell <[email protected]>
    
    gpio: brcmstb: Don't always clear interrupt mask
    
    If the GPIO controller is not being used as an interrupt source
    leave the interrupt mask register alone. On BCM2712 it might be used
    to generate interrupts to the VPU firmware, and on other devices it
    doesn't matter since no interrupts will be generated.
    
    Signed-off-by: Phil Elwell <[email protected]>
    popcornmix authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    212532c View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    b6ba6f3 View commit details
    Browse the repository at this point in the history
  10. pinctrl: bcm2712 pinctrl/pinconf driver

    pinctrl: bcm2712: Reject invalid pulls
    
    Reject attempts to set pulls on aon-sgpios, and fix pull shift
    values.
    
    pinctrl: bcm2712: Add 7712 support, fix 2712 count
    
    Signed-off-by: Phil Elwell <[email protected]>
    
    pinctrl-bcm2712: add EMMC pins so pulls can be set
    
    These pins have pad controls but not mux controls. They look enough like
    GPIOs to squeeze in at the end of the list though.
    
    pinctrl: bcm2712: correct BCM2712C0 AON_GPIO pad pull control offset
    
    Signed-off-by: Jonathan Bell <[email protected]>
    
    pinctrl: bcm2712: on C0 the regular GPIO pad control register moves too
    
    Signed-off-by: Jonathan Bell <[email protected]>
    
    pinctrl: bcm2712: Implement (partially) pinconf_get
    
    Signed-off-by: Phil Elwell <[email protected]>
    
    pinctrl: bcm2712: Convert to generic pinconf
    
    Remove the legacy brcm,* pin configuration support and replace it with
    a proper generic pinconf interface, using named functions instead of
    alt function numbers. This is nicer for users, less error-prone, and
    immune to some of the C0->D0 changes.
    
    Signed-off-by: Phil Elwell <[email protected]>
    
    pinctrl: bcm2712: Remove vestigial pull parameter
    
    Now the legacy brcm, pinconf parameters are no longer supported, this
    custom pin config parameter is not needed.
    
    Signed-off-by: Phil Elwell <[email protected]>
    
    pinctrl: bcm2712: Guard against bad func numbers
    
    Signed-off-by: Phil Elwell <[email protected]>
    
    pinctrl: bcm2712: A better attempt at D0 support
    
    The BCM2712D0 sparse pinctrl maps play havoc with the old GPIO_REGS
    macro, so make the bit positions explicit. And delete the unwanted
    GPIO and pinmux declarations on D0.
    
    Note that a Pi 5 with D0 requires a separate DTS file with "bcm2712d0"
    compatible strings.
    
    Signed-off-by: Phil Elwell <[email protected]>
    
    pinctrl: bcm2712: Delete base register constants
    
    BCM2712D0 deletes many GPIOs and their associated mux and pad bits,
    so much so that the offsets to the start of the pad control registers
    changes. Remove the constant offsets from the *GPIO_REGS macros,
    compensating by adjusting the per-GPIO values.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    d8098d8 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    cb6f30e View commit details
    Browse the repository at this point in the history
  12. mmc: brcmstb: add support for BCM2712

    BCM2712 has an SD Express capable SDHCI implementation and uses
    the SDIO CFG register block present on other STB chips.
    
    Add plumbing for SD Express handover and BCM2712-specific functions.
    
    Due to the common bus infrastructure between BCM2711 and BCM2712,
    the driver also needs to implement 32-bit IO accessors.
    
    mmc: brcmstb: override card presence if broken-cd is set
    
    Not just if the card is declared as nonremovable.
    
    sdhci: brcmstb: align SD express switchover with SD spec v8.00
    
    Part 1 of the Physical specification, figure 3-24, details the switch
    sequence for cards initially probed as SD. Add a missing check for DAT2
    level after switching VDD2 on.
    
    sdhci: brcmstb: clean up SD Express probe and error handling
    
    Refactor to avoid spurious error messages in dmesg if the requisite SD
    Express DT nodes aren't present.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    
    mmc: sdhci-brcmstb: only use the delay line PHY for tuneable speeds
    
    The MMC core has a 200MHz core clock which allows the use of DDR50 and
    below without incremental phase tuning. SDR50/SDR104 and the EMMC HS200
    speeds require tuning.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    storulf authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    5c93a45 View commit details
    Browse the repository at this point in the history
  13. sdhci: Add SD Express hook

    sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR speeds at 1.8v.
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    46db054 View commit details
    Browse the repository at this point in the history
  14. Add new "pispbe" driver (though not yet the Makesfiles or DT required…

    … to use it)
    
    media: bcm2712: Initial commit of the PiSP BE driver
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    media: bcm2712_pisp_be: PiSP driver updates.
    
    - Start registering video nodes from /dev/video20
    - Formatting fixes
    - Define MODULE_DEVICE_TABLE() to probe correctly
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    media: pisp_be: Improve image format support
    
    Add a new format table that lists the V4L2 format enums and their properties.
    Keep the exising 'RPBP' format to support the userland verification tools.
    This format requires userland to fill all plane properties. Standard V4L2
    formats will derive these properties from the format table.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    media: pisp_be: Advertise the meta output format explictily.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    drivers: pisp_be: Various updates and cleanups
    
    - Switch to a single node group for now.
    - Add a node description table to simplify node handling.
    - Switch HoG output to V4L2_CAP_META_CAPTURE type.
    - Use string descriptions for node names in logging messages.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    pisp_be: Updates for libcamera usage:
    
    - Remove indexes from device entity names
    - Add enumframesize and enumfmts ioctls
    - Add default format to all nodes.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    v4l2: pisp_be: Move format definitions into v4l2 core
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    media: raspberrypi: Move PiSP common headers to a single location
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    media: raspberrypi: Remove old pispbe driver.
    
    This is now supersede by the driver in drivers/media/platform/raspberrypi/
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    PISP-BE Driver: Automate buffer-cycling for TDN and Stitch state.
    Remove "tdn-input" and "stitch-input" nodes altogether (the output
    nodes must still be opened and REQBUFS called with 1 or 2 buffers).
    Also, a bit of tidying of buffer address handling and locking.
    
    PISP-BE driver: Turn debug level right down to reduce overly-chatty messages
    
    media: bcm2712: Depend on CONFIG_PM
    
    Depend on CONFIG_PM as the driver uses the runtime_pm infrastructure.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    drivers: media: pisp_be: Move BE driver to a raspberrypi directory
    
    Move the pisp_be driver from drivers/media/platform/raspberrypi/ to
    drivers/media/platform/raspberrypi/pisp_be/. This seems the accepted
    convention in the drivers/media/platform/ directory structure.
    
    Also rename the driver module from bcm2712_pisp_be to pisp_be.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    pisp_be: Updates for libcamera streaming:
    
    - Add some required v4l2 formats
    - Add buf_prepare ioctl
    - Set plane offsets correctly before reprogramming
    
    pisp_be: Reduce logging verbosity
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    pisp_be: Add buffer timestamps
    
    While at it, remove duplicate code when checking if the HW has completed
    multiple jobs.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    pisp_be: Remove queue size allocation constraint
    
    PISP-BE driver: Fix ISR to handle multiple done/start events.
    
    PISP-BE: Fix variable-name shadowing bugette
    
    PISP-BE: Support for two node groups. Reorganize the driver.
    
    To support 2 concurrent libcamera applications, we need 2 node groups,
    need to allow multiple opens of each node (because libcamera does this)
    and create a separate media device per group (to support file-locking).
    
    This triggered significant rearrangement of the driver. Some calls
    that we formerly intercepted have been delegated back to v4l2/vb2.
    Logging changes arising from multiple v4l2_dev. Refactored probe()
    and initialization. Avoid dynamically-allocated entity name strings.
    
    drivers: media: pisp_be: Add vidioc_enum_fmt_meta_out
    
    This was missing in the struct v4l2_ioctl_ops definition.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    drivers: media: pispe_be: Add Bayer compressed formats
    
    Add PiSP Bayer compressed formats to the list of supported pixel formats
    for the PiSP backend driver.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    drivers: meida: pisp_be: Fix overflow in plane size calculations
    
    The calculations for buffer plane sizes can overflow because of the
    plane factor shift. Fix this by using u64 integers for the calculations.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    drivers: media: pisp_be: Use 0P3 for plane factors
    
    Use less precision for the plane factors to avoid any nasty overflows.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    media: pisp: Checkpatch and coding style fixups
    
    Signed-off-by: Dave Stevenson <[email protected]>
    
    media: pisp_be: More coding style fixups
    
    media: platform: bcm2712: pisp_be: Fix crash when buffer format not set
    
    Signed-off-by: Nick Hollinghurst <[email protected]>
    
    media: platform: bcm2712: pisp_be: Allow non-SRGB colour spaces on RGB outputs
    
    Allow colour spaces other than SRGB when the output format in question
    is an RGB output. This commit merely ports over existing changes from
    the vc4 ISP driver.
    
    Signed-off-by: David Plowman <[email protected]>
    
    media: platform: bcm2712: Tweak list of BE supported image formats
    
    Remove RGB565 and 10- and 12-bit packed raw formats, which ISP-BE
    can't support for input or output. Add NV12M and NV21M which it can.
    (I didn't bother adding YUV422P, which apparently is not widely used.)
    
    Signed-off-by: Nick Hollinghurst <[email protected]>
    
    pisp_be: Fill the hardware revision in the media entity struct
    
    This can be used by userland to determine the hardware capabilities.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    bcm2712: Use BIT() macro
    
    Use the BIT() macro instead of plain bit shifting.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    bcm2712: Invert condition in pispbe_schedule_internal()
    
    Return earlier and save one indentation level
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    bcm2712: Invert condition in for loop
    
    Save one indentation level by continuing if the node is not streaming.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    bcm2712: Do not declare a local variable
    
    There already is a truct pispbe_node *node in the function scope.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    bcm21712: Siplify pispbe_schedule_one()
    
    A little more verbose but easier to follow ?
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    bcm2712: Rename pispbe_schedule_all() to pispbe_schedule_any()
    
    The pispbe_schedule_all() function name is misleading, as the function
    schedule a single job from any of the node groups. Rename it.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    media: platform: bcm2712: Remove buffer auto-cycling from ISP-BE
    
    Previously, the ISP-BE driver tried to automate "ping pong" buffers
    for TDN and HDR state, but did not fully conceal them from users.
    
    The automation has been removed: there are now separate output and
    capture queues for each of TDN and Stitch, which must be managed by
    user code (DMABUFs may be used to circulate buffers between queues).
    
    Signed-off-by: Nick Hollinghurst <[email protected]>
    
    drivers: media: pisp_be: Cache BE config buffer vaddr
    
    When programming a new job, we access at the config buffer, possibly
    from ISR context. So fetch and the virtual address when queuing the
    buffer.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    drivers: media: pisp_be: Remove all traces of ctrls and request API
    
    These APIs are not (and will not) be used by the driver, so remove them.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    media: bcm2712: Replace v4l2_dbg with dev_dbg
    
    Replace the v4l2 debug helpers with the device debug once, which are
    preferred.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    media: bcm2712: Remove of_match_ptr()
    
    The of_match_ptr() usage could cause a compiler warning if
    CONFIG_OF is not enabled, as the pispbe_of_match variable would
    result unused.
    
    As the of_match_table field of struct platform_driver exists
    unconditionally, drop of_match_ptr() to avoid a warning.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    drivers: media: pispbe: Add local config buffer DMA allocation
    
    When initialiasing the driver, allocate a number of tiles + config
    structures used for storing hardware config internally in the driver.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    drivers: media: pispbe: Use local config buffers
    
    Store a copy of the config + tiles buffer locally when the buffer gets
    queued. This resolves the security issue where a userland process may
    modify the config buffer after it has been queued.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    drivers: media: pispbe: Validate config buffers
    
    Perform a basic config validation on the device output nodes to ensure
    the buffer size and stride values do not result in a buffer overrun.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    media: bcm2712: Rework probe sequence order
    
    Rework the probe sequence to:
    1) Use dev_err_probe() when failing to get clocks
    2) Disable clock on error path
    3) Disable the node groups if they have been enabled and
       propagate the error up
    
    Also disable clocks in the remove() function.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    media: bcm2712: Use pm_runtime_ops
    
    Introduce usage of runtime resume and suspend operations.
    
    The diver only uses a single clock source which is enable/disabled
    at resume and suspend time.
    
    Implement file open and release operations to control enablement of
    the clock provider.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    media: bcm2712: Demote info message
    
    Demote info message about clock enablement to dev_dbg()
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    media: bcm2712: Move pm_runtime calls to streamon/streamoff
    
    Move the calls to pm_runtime_resume_and_get() and pm_runtime_put()
    to the streamon and streamoff ioctl handlers.
    
    Remove custom handlers for the open and close file operations and use
    the framework provided helpers.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    media: bcm2712: Use pm_runtime_autosuspend()
    
    Use the _autosuspend() version of runtime_pm_put() in order to avoid
    resuming and suspending the peripheral in between streaming sessions
    closely apart one from the other.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    drivers: media: pisp_be: Conditionally check buffers when preparing jobs
    
    When preparing a job, check the global enables in the config structure
    to see if the Output0/1, Tdn and Stitch blocks are enabled, and only
    test for a buffer queued if they are.
    
    This will allow userland to control the outputs selectively without
    disabling/re-enabling the respective device nodes.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    media: bcm2712: Rework media controller registration
    
    The current implementation register the v4l2_device and the video
    devices first, then creates the media controller and manually registers
    entities there.
    
    Rework the registration procedure to first create the v4l2_device and
    register the media_device with it. Then create the video nodes which
    gets automatically registered in the media graph by the core.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    media: bcm2712: Create v4l2_subdev for ISP entity
    
    Create a v4l2 subdevice to represent the PISPBE ISP entity.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    media: bcm2712: Fix v4l2-compliance warn on QUERYCAP
    
    Fix:
    
    warn: v4l2-compliance.cpp(669): media bus_info
    'platform:1000880000.pisp_be' differs from V4L2 bus_info
    'platform:pispbe'
    
    by populating the driver caps bus_info by using dev_name().
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    media: bcm2712: Fix v4l2-compliance warn on invalid pixfmt
    
    The V4L2 API for the TRY_FMT/S_FMT ioctl allows the ioctl handler to
    return an error code only in specific conditions. If an invalid pixel
    format is supplied it should be adjusted instead of an error being
    returned.
    
    Albeit, v4l2-compliance treats this situation as a warning and not as
    an error because the behaviour has been discussed in length in the past.
    
    warn: v4l2-test-formats.cpp(794): TRY_FMT cannot handle an invalid pixelformat.
    warn: v4l2-test-formats.cpp(795): This may or may not be a problem. For more information see:
    warn: v4l2-test-formats.cpp(796): http://www.mail-archive.com/[email protected]/msg56550.html
    VIDIOC_TRY_FMT returned -1 (Invalid argument)
    
    Regardless of the warning vs failure decision, adjust the try_format()
    function implementation to use V4L2_PIX_FMT_YUV420M as default pixel
    format if the supplied one is invalid.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    media: bcm2712: Fix v4l2-compliance warn on HOG pix format
    
    The try_format() implementation for the HOG video device node returns
    an error if the supplied pixel format is not correct.
    
    As per the video device output and capture video nodes, this contradicts
    the V4L2 specification even if it is treated as a warning by
    v4l2-compliance.
    
    Fix this by forcing the buffer pixel format and size to the default
    supported one. While at here, use the BIT() macro in the format
    initialization function.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    media: bcm2712: Fix formats enumeration
    
    Right now a single implementation of enum_fmt() is used for all nodes
    in a group. This means that all the BE supported formats are listed for
    all the nodes. This is incorrect as the meta capture and output node
    formats should be restricted, and the meta formats should not be
    enumerated for video output and capture devices.
    
    Fix this by restricting the enumeration of META formats to the config
    and hog nodes. Split out from the list of supported_formats the
    V4L2_META_FMT_RPI_BE_CFG which is only used for the meta_out node, while
    V4L2_PIX_FMT_RPI_BE is kept in the list of supported_formats as it can
    be used as an opaque format for both meta_cap, video_cap and video_out
    nodes.
    
    Signed-off-by: Jacopo Mondi <[email protected]>
    
    media: bcm2712: Minor fixes to support PiSP regression tests
    
    Allow RGB input, not just Bayer (but only of those at once);
    Allow Wallpaper image formats. XXX They are not yet size-checked;
    Set "chicken bits" to test BURST_TRIM and AXI AWID/BID variation.
    Convert some v4l2_err() to dev_err()
    
    Signed-off-by: Nick Hollinghurst <[email protected]>
    
    drivers: media: pisp_be: Use the maximum number of config buffers
    
    Set PISP_BE_NUM_CONFIG_BUFFERS the the maximum number of possible
    buffers.  In the worst case, this overallocates config buffers, but
    given their size, it's not too much of a problem.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    
    media: pisp_be: Fix extra PM runtime put
    
    vidioc_streamoff callback can be called even if vidioc_streamon was
    never called. The driver currently does PM runtime get/put in these
    callbacks, which may lead to a put without a matching get.
    
    Fix this by moving the PM runtime get/put to vb2_ops's start_streaming &
    stop_streaming, which the framework makes sure won't get extra calls.
    
    Signed-off-by: Tomi Valkeinen <[email protected]>
    
    drivers: media: pisp_be: Don't report V4L2_PIX_FMT_RPI_BE format
    
    This is an internal opaque format, not to be reported in enum_fmt.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    Nick Hollinghurst authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    90b868e View commit details
    Browse the repository at this point in the history
  15. irqchip: irq-bcm2712-mip: Support for 2712's MIP

    irqchip: irq-bcm2712-mip: specify bitmap search size as ilog2(N) not N
    
    Freeing also has the same interface.
    
    irqchip: irq-bcm2712-mip: Fix build warnings
    
    Signed-off-by: Phil Elwell <[email protected]>
    
    irqchip: bcm2712-mip: add a quick hack to optionally shift MSI vectors
    
    There are two MIP peripherals in bcm2712, the first gets a first-class
    treatment where 64 consecutive GIC SPIs are assigned to all 64 output
    vectors. The second gets an agglomeration of 17 GIC SPIs, but only 8 of
    these are consecutive starting at the 8th output vector.
    
    For now, allow the use of this smaller contiguous range within a larger
    whole.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    4b2a1c2 View commit details
    Browse the repository at this point in the history
  16. reset: reset-brcmstb-rescal: Support shared use

    reset_control_reset should not be used with shared reset controllers.
    Add support for reset_control_assert and _deassert to get the desired
    behaviour and avoid ugly warnings in the kernel log.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    91bcdda View commit details
    Browse the repository at this point in the history
  17. net: macb: Also set DMA coherent mask

    macb: Add device tree properties that allow configuration of the AXI max pipeline register
    
    net: macb: add support for ethtool interrupt moderation configuration
    
    Only global throttling of rx or tx by time quanta is supported.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    
    macb: add platform device shutdown function. Prevents AXI master over PCIE from hanging when the host is rebooted.
    
    net: macb: increase polling interval for MDIO completion
    
    MDIO is a slow bus (single-digit MHz). Polling at 1us intervals
    is a bit aggressive, so increase to 100us as the transaction
    usually takes 100-200us to complete.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    
    net: macb: Several patches for RP1
    
    64-bit RX fix
    
    Also set DMA coherent mask
    
    Add device tree properties that allow configuration of the AXI max
    pipeline register
    
    Add support for ethtool interrupt moderation configuration
    
    Only global throttling of rx or tx by time quanta is supported.
    
    Add platform device shutdown function. Prevents AXI master over PCIE
    from hanging when the host is rebooted.
    
    Increase polling interval for MDIO completion
    
    MDIO is a slow bus (single-digit MHz). Polling at 1us intervals
    is a bit aggressive, so increase to 100us as the transaction
    usually takes 100-200us to complete.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    
    net: macb: Support the phy-reset-gpios property
    
    Allow a PHY to be reset with an optional GPIO. The reset duration can
    be specified in milliseconds - the default is 10ms.
    
    Signed-off-by: Phil Elwell <[email protected]>
    
    drivers: net: macb: close device on driver shutdown
    
    Fix some suspicious locking and instead call into macb_close, which
    deregisters and frees all resources the corresponding macb_open
    claimed.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    
    net: macb: add hack to prevent TX stalls in a quiet system
    
    See raspberrypi/linux-2712#89
    
    There is some critical window during TX where a further write to the
    TSTART bit while TX is active does not cause newly queued TX descriptors
    to be consumed.
    
    For now "wait a bit, then try anyway" seems to work.
    
    Requires further investigation, but this unsticks NFS reliably.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    
    net: macb: set default interrupt moderation for GEM hardware
    
    Defaulting to intmod = 0 is antisocial, as the MAC can generate over
    130,000 interrupts per second. 50us is a sensible default.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    5aec008 View commit details
    Browse the repository at this point in the history
  18. usb: dwc3: Set DMA and coherent masks early

    dwc3 allocates scratch and event buffers in the top-level driver. Hack the
    probe function to set the DMA mask before trying to allocate these.
    
    I think the event buffers are only used in device mode, but the scratch
    buffers may be used if core hibernation is enabled.
    
    usb: dwc3: add support for new DT quirks
    
    Apply the optional axi-pipe-limit and dis-in-autoretry-quirk properties
    during driver probe.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    
    phy: phy-brcm-usb: Add 2712 support
    
    usb: dwc3: if the host controller instance number is present in DT, use it
    
    If two instances of a dwc3 host controller are specified in devicetree,
    then the probe order may be arbitrary which results in the device names
    swapping on a per-boot basis.
    
    If a "usb" alias with the instance number is specified, then use
    that to construct the device name instead of autogenerating one.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    
    rp1 dwc3 changes
    
    drivers: usb: dwc3: allow setting GTXTHRCFG on dwc_usb3.0 hardware
    
    Equivalent register fields exist in the SuperSpeed Host version of the
    hardware, so allow the use of TX thresholds if specified in devicetree.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    
    drivers: usb: dwc3: remove downstream quirk dis-in-autoretry
    
    Upstream have unilaterally disabled the feature.
    
    Partially reverts 6e9142a (downstream)
    
    Signed-off-by: Jonathan Bell <[email protected]>
    P33M authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    b3fb577 View commit details
    Browse the repository at this point in the history
  19. drm/panel/raspberrypi-touchscreen: Insert more delays.

    This avoids failures in cases where the panel is enabled
    or re-probed very soon after being disabled or probed.
    These can occur because the Atmel device can mis-behave
    over I2C for a few ms after any write to the POWERON register.
    Nick Hollinghurst authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    8797a8f View commit details
    Browse the repository at this point in the history
  20. PCI: brcmstb: Add BCM2712 support

    PCI: brcmstb: differing register offsets on 2712
    
    pcie-brcmstb: Add 2712 bridge reset support
    
    pcie: 2712 PORT_MASK and rescal support
    
    pcie-brcmstb: don't alter the L1SS debug register
    
    For reasons unknown, this disables the reference clock
    
    pcie-brcmstb: fix BAR2 enable and window decode
    
    Set UBUS ACCESS_EN to let inbound DMA work. Also BCM2712 has grown
    an index in the inbound window size decode register.
    
    PCIe: brcmstb: Enable support for 64 MSI-Xs
    
    Signed-off-by: Phil Elwell <[email protected]>
    
    pcie-brcmstb: Suppress read error responses
    
    If the link is down or the EP fails to return a read completion, the
    RC's default behaviour is to return an AXI error. This causes fatal
    exceptions on A76, so it's better to respond with all 1s instead.
    
    pcie-brcmstb: increase UBUS timeout to cater for link retrain events
    
    pcie-brcmstb: Handle additional inbound regions
    
    Signed-off-by: Phil Elwell <[email protected]>
    
    pcie-brcmstb: Add support for external MSI controller
    
    pcie-brcmstb: add a reasonable default traffic class to priority map
    
    BCM2712 supports multiple traffic classes (TCs) with independent
    maximally sized transfer queues for each TC. Traffic classes have no
    transaction ordering requirements between them, which facilitates
    out-of-order completions and arbitration between posted writes for
    data streams that have no dependence on each other.
    
    In addition to the above benefits of splitting endpoint traffic into
    individual queues, priorities can be assigned to traffic classes by
    a heuristic or deterministic mechanism. The heuristic elevates AXI
    QOS priority in accordance with the number of pending transfers in
    each TC's queue, but for true priority signalling a forwarding
    mechanism using vendor-defined messages is implemented.
    
    Receipt of a 3 DWORD VDM assigns a priority tag to a TC on-the-fly,
    and this tag corresponds to a configurable AXI QOS value.
    
    As a simple baseline, assign a linear map of AXI QOS to each tag.
    
    pcie: brcmstb: set up the VDM forwarding interface when setting up QoS
    
    pcie-brcmstb: clean up debug messages
    
    pcie-brcmstb: fix BCM2712A0 PHY PM errata
    
    The power management clock is 54MHz not 50MHz, so adjust the PM clock period
    to suit. Powering off the PHY PLL in L1.2 is unsafe, so force it on.
    
    pcie-brcmstb: set CLKREQ functionality according to link partner support
    
    The RC supports either L1 with clock PM or L1 sub-state control, not both
    at the same time. Examine the link partner's capabilities to determine
    which is the most suitable scheme to use.
    
    pcie: brcmstb: don't reset block bridges in suspend or removal cases
    
    BCM2712 has a single rescal block for all three root complexes, and
    holding PCIE1's bridge in reset will hang the chip if a different
    RC wants to access any of the rescal registers.
    
    pcie: brcmstb: guard 2712-specific setup with a RC type check
    
    BCM2711 doesn't implement the UBUS control registers.
    
    pcie: brcmstb: On 2712 keeping the PLL powered in L1.x is not required
    
    A separate misconfiguration when enabling SSC (the MDIO registers no
    longer do the same thing on BCM2712) had the side-effect of breaking
    PLL powerdown and resume sequencing.
    
    Allow entry into a true L1.2 state where analogue is depowered.
    
    pcie: brcmstb: Fix reset warning on probe failure
    
    Signed-off-by: Phil Elwell <[email protected]>
    
    bcm2712: pcie: adjust PHY PLL setup to use a 54MHz input refclk
    
    Use canned MDIO writes from Broadcom that switch the ref_clk output
    pair to run from the internal fractional PLL, and set the internal PLL
    to expect a 54MHz input reference clock.
    
    Gen3 operation is not guaranteed to be stable in this setup, so default
    to gen2.
    
    This only works if the LCPLL is bypassed (requires latest bootloader).
    
    pcie: brcmstb: add missing register writes
    
    drivers: pcie: brcmstb: cater for BCM2712C0 bug dropping QoS on the floor
    
    The AXI QoS value extracted from the request fifo ends up as zero forever.
    Disabling this means that "panic" signalling doesn't do anything useful,
    but static priorites do work.
    
    Also align the selected TC:QoS map with RP1's expectations of service.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    
    drivers: pcie: brcmstb: shuffle TC priorities up to 8
    
    Use the range 8-11 which puts the highest below HVS but leaves space
    below for other 2712 masters.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    
    drivers: pcie: brcmstb: optionally enable QoS features by DT for BCM2712
    
    It's a bad idea to universally enable "realtime" priorities for TCs
    across all the RC instances on the chip. Endpoints other than RP1 may
    make use of these, so you don't want e.g. NVMe descriptor fetches getting
    higher priority than your remote display.
    
    Add two optional DT properties controlling the behaviour - FIFO-based
    backpressure QoS or "message-based". Message-based signalling is
    fundamentally broken due to a chip bug, so it collapses into a set of
    static assignments that RP1 needs.
    
    The default if neither property is specified is to assign everything a
    QoS of 0.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    
    drivers: pcie: brcmstb: adjust completion timeouts for bcm2712
    
    Setting the RC config retry timeout makes CRS auto-polling work, but
    the UBUS timeout will override the config retry. Both need to be large.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    jamesequinlan authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    2ba7ad3 View commit details
    Browse the repository at this point in the history
  21. V4L2: Add PiSP opaque formats to V4L2

    Signed-off-by: Naushir Patuck <[email protected]>
    naushir authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    040d304 View commit details
    Browse the repository at this point in the history
  22. V4L2: Add PiSP compressed formats to V4L2

    Signed-off-by: Naushir Patuck <[email protected]>
    naushir authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    1c4b35a View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    2e292cc View commit details
    Browse the repository at this point in the history
  24. dt-binding: mfd: Add binding for Raspberry Pi RP1

    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    4ebb6ec View commit details
    Browse the repository at this point in the history
  25. mfd: Add rp1 driver

    RP1 is a multifunction PCIe device that exposes a range of
    peripherals.
    Add the parent driver to manage these.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    480677f View commit details
    Browse the repository at this point in the history
  26. dt-bindings: clock: Add bindings for Raspberry Pi RP1

    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    ae4f36f View commit details
    Browse the repository at this point in the history
  27. clk: Add rp1 clock driver

    RP1 contains various PLLs and clocks for driving the hardware
    blocks, so add a driver to configure these.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    2b90957 View commit details
    Browse the repository at this point in the history
  28. dt-bindings: pinctrl: Add bindings for Raspberry Pi RP1

    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    d7b800d View commit details
    Browse the repository at this point in the history
  29. pinctrl: Add rp1 driver

    RP1 exposes GPIOs. Add a pinctrl driver to allow control of those.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    c78448c View commit details
    Browse the repository at this point in the history
  30. serial: pl011: rp1 uart support

    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    1f7d4af View commit details
    Browse the repository at this point in the history
  31. mmc: sdhci-of-dwcmshc: define sdio timeout clocks

    Signed-off-by: Liam Fraser <[email protected]>
    liamfraser authored and pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    9c44de7 View commit details
    Browse the repository at this point in the history
  32. mmc: sdhci-of-dwcmshc: rp1 sdio changes

    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    616b202 View commit details
    Browse the repository at this point in the history
  33. clk: rp1: Add sdio-clk driver

    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    1fccca4 View commit details
    Browse the repository at this point in the history
  34. i2c: designware: Add SMBUS quick command support

    The SMBUS emulation code turns an SMBUS quick command into a zero-
    length read. This controller can't do zero length accesses, but it
    can do quick commands, so reverse the emulation. The alternative
    would be to properly implement the SMBUS support but that is a lot
    more work, and unnecessary just to get i2cdetect working.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    b557724 View commit details
    Browse the repository at this point in the history
  35. dmaengine: dw-axi-dmac: Fixes for RP1

    Don't assume that DMA addresses of devices are the same as their
    physical addresses - convert correctly.
    
    The CFG2 register layout is used when there are more than 8 channels,
    but also when configured for more than 16 target peripheral devices
    because the index of the handshake signal has to be made wider.
    
    Reset the DMAC on probe
    
    The driver goes to the trouble of tracking when transfers have been
    paused, but then doesn't report that state when queried.
    
    Not having APB registers is not an error - for most use cases it's
    not even of interest, it's expected. Demote the message to debug level,
    which is disabled by default.
    
    Each channel has a descriptor pool, which is shared between transfers.
    It is unsafe to treat the total number of descriptors allocated from a
    pool as the number allocated to a specific transfer; doing so leads
    to releasing buffers that shouldn't be released and walking off the
    ends of descriptor lists. Instead, give each transfer descriptor its
    own count.
    
    Support partial transfers:
    Some use cases involve streaming from a device where the transfer only
    proceeds when the device's FIFO occupancy exceeds a certain threshold.
    In such cases (e.g. when pulling data from a UART) it is important to
    know how much data has been transferred so far, in order that remaining
    bytes can be read from the FIFO directly by software.
    
    Add the necessary code to provide this "residue" value with a finer,
    sub-transfer granularity.
    
    In order to prevent the occasional byte getting stuck in the DMA
    controller's internal buffers, restrict the destination memory width
    to the source register width.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 5, 2023
    Configuration menu
    Copy the full SHA
    ee20016 View commit details
    Browse the repository at this point in the history

Commits on Oct 6, 2023

  1. spi: dw: Handle combined tx and rx messages

    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    525dd98 View commit details
    Browse the repository at this point in the history
  2. pwm: Add support for RP1 PWM

    Add a driver for the RP1 PWM block.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    c77393f View commit details
    Browse the repository at this point in the history
  3. drm: Add RP1 DSI driver

    Add support for the RP1 DSI hardware.
    
    Signed-off-by: Nick Hollinghurst <[email protected]>
    njhollinghurst authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    c293cb9 View commit details
    Browse the repository at this point in the history
  4. drm: Add RP1 DPI driver

    Add support for the RP1 DPI hardware.
    
    Signed-off-by: Nick Hollinghurst <[email protected]>
    njhollinghurst authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    047e85c View commit details
    Browse the repository at this point in the history
  5. drm: Add RP1 VEC driver

    Add support for the RP1 VEC hardware.
    
    Signed-off-by: Nick Hollinghurst <[email protected]>
    njhollinghurst authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    9deaee4 View commit details
    Browse the repository at this point in the history
  6. v4l2: Add pisp compression format support to v4l2

    Signed-off-by: Naushir Patuck <[email protected]>
    naushir authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    9b7dd28 View commit details
    Browse the repository at this point in the history
  7. media: rp1: Add CFE (Camera Front End) support

    Signed-off-by: Naushir Patuck <[email protected]>
    naushir authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    da143b1 View commit details
    Browse the repository at this point in the history
  8. dt-bindings: net: cdns,macb: AXI tuning properties

    Add optional properties to tune the AXI interface -
    cdns,aw2w-max-pipe, cdns,ar2r-max-pipe and cdns,use-aw2b-fill.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    2dd3b31 View commit details
    Browse the repository at this point in the history
  9. ASoC: dwc: Support set_bclk_ratio

    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    15891e9 View commit details
    Browse the repository at this point in the history
  10. ASoC: dwc: Add DMACR handling

    Add control of the DMACR register, which is required for paced DMA
    (i.e. DREQ) support.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    cca5fa3 View commit details
    Browse the repository at this point in the history
  11. ASOC: dwc: Improve DMA shutdown

    Disabling the I2S interface with outstanding transfers prevents the
    DMAC from shutting down, so keep it partially active after a stop.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    54eca23 View commit details
    Browse the repository at this point in the history
  12. ASOC: dwc: Fix 16-bit audio handling

    IMO the Synopsys datasheet could be clearer in this area, but it seems
    that the DMA data ports (DMATX and DMARX) expect left and right samples
    in alternate writes; if a stereo pair is pushed in a single 32-bit
    write, the upper half is ignored, leading to double speed audio with a
    confused stereo image. Make sure the necessary changes happen by
    updating the DMA configuration data in the hw_params method.
    
    The set_bclk_ratio change was made at a time when it looked like it
    could be causing an error, but I think the division of responsibilities
    is clearer this way (and the kernel log clearer without the info-level
    message).
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    16a0388 View commit details
    Browse the repository at this point in the history
  13. ASoC: bcm: Remove dependency on BCM2835 I2S

    These soundcard drivers don't rely on a specific I2S interface, so
    remove the dependency declarations.
    
    See: raspberrypi/linux-2712#111
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    e0058b7 View commit details
    Browse the repository at this point in the history
  14. hwmon: Add RP1 ADC and temperature driver

    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    4af9fe1 View commit details
    Browse the repository at this point in the history
  15. mfd: bcm2835-pm: Add support for BCM2712

    BCM2712 lacks the "asb" and "rpivid_asb" register ranges, but still
    requires the use of the bcm2835-power driver to reset the V3D block.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    2c3034f View commit details
    Browse the repository at this point in the history
  16. soc: bcm: bcm2835-power: Add support for BCM2712

    BCM2712 has a PM block but neither ASB nor RPIVID_ASB. Use the absence
    of the "asb" register range to indicate BCM2712 and its different PM
    register range.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    9ded1dc View commit details
    Browse the repository at this point in the history
  17. spi: gpio: Fix spi-gpio to correctly implement sck-idle-input

    Formerly, if configured using DT, CS GPIOs were driven from spi.c
    and it was possible for CS to be asserted (low) *before* starting
    to drive SCK. CS GPIOs have been brought under control of this
    driver in both ACPI and DT cases, with a fixup for GPIO polarity.
    
    Signed-off-by: Nick Hollinghurst <[email protected]>
    njhollinghurst authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    0a6bd10 View commit details
    Browse the repository at this point in the history
  18. spi: spi-gpio: Implement spidelay when requested bit rate <= 1 Mbps

    Formerly the delay was omitted as bit-banged SPI seldom achieved
    even one Mbit/s; but some modern platforms can run faster, and
    some SPI devices may need to be clocked slower.
    
    Signed-off-by: Nick Hollinghurst <[email protected]>
    njhollinghurst authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    678092e View commit details
    Browse the repository at this point in the history
  19. drm/v3d: fix up register addresses for V3D 7.x

    v2: fix kernel panic with debug-fs interface to list registers
    itoral authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    26c7dc8 View commit details
    Browse the repository at this point in the history
  20. drm/v3d: update UAPI to match user-space for V3D 7.x

    V3D t.x takes a new parameter to configure TFU jobs that needs
    to be provided by user space.
    itoral authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    20b616f View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    3b7911f View commit details
    Browse the repository at this point in the history
  22. drm/v3d: Improve MMU support for larger pages

    The built-in MMU driver went most of the way towards supporting larger
    kernel pages, but dropped the ball when it comes to calculating indexes
    into the page table. Fix it.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    47506f2 View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    396e4b4 View commit details
    Browse the repository at this point in the history
  24. drivers: hwmon: rp1-adc: check conversion validity before supplying v…

    …alue
    
    The SAR ADC architecture may complete a conversion but instability in the
    comparator can corrupt the result. Such corruption is signalled in the CS
    ERR bit, asserted alongside each conversion result.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    P33M authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    8b14507 View commit details
    Browse the repository at this point in the history
  25. dmaengine: bcm2835: Add BCM2712 support

    BCM2712 has 6 40-bit channels - DMA6 to DMA11. Add a new compatible
    string to indicate that the current platform is BCM2712.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    b8533d0 View commit details
    Browse the repository at this point in the history
  26. dmaengine: bcm2835: HACK: Support DMA-Lite channels

    The BCM2712 has a DMA-Lite controller that is basically a BCM2835-style
    DMA controller that supports 40 bits DMA addresses.
    
    We need it for HDMI audio to work, but this breaks BCM2835-38 so we
    should rework this later.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    f4f6373 View commit details
    Browse the repository at this point in the history
  27. clk: bcm: rpi: Add disp clock

    BCM2712 has an extra clock exposed by the firmware called DISP, and used
    by (at least) the HVS. Let's add it to the list of clocks to register in
    Linux.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    5b233a9 View commit details
    Browse the repository at this point in the history
  28. net: phy: broadcom: optionally enable link-down powersave based on DT

    It's really a function of the board whether or not to use this feature
    as it may require MAC compatibility as well as interop testing.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    P33M authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    2019075 View commit details
    Browse the repository at this point in the history
  29. dmaengine: bcm2835: Rename to_bcm2711_cbaddr to to_40bit_cbaddr

    As the shifted address also applies to bcm2712,
    give the function a more specific name.
    
    Signed-off-by: Dom Cobley <[email protected]>
    popcornmix authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    7bb03ab View commit details
    Browse the repository at this point in the history
  30. dmaengine: bcm2835: Fix dma driver for BCM2835-38

    The previous commit broke support on older devices.
    Make the breaking parts of patch conditional on
    the device being used.
    
    Fixes: 6e1856ac7c39 ("dmaengine: bcm2835: HACK: Support DMA-Lite channels")
    
    Signed-off-by: Dom Cobley <[email protected]>
    popcornmix authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    3ead612 View commit details
    Browse the repository at this point in the history
  31. drivers: iommu: Add BCM2712 IOMMU

    Add a driver for BCM2712 IOMMUs.
    There is a small driver for the Shared IOMMU TLB Cache.
    Each IOMMU instance is a separate device.
    
    IOMMUs are set up with a "pass-through" range covering
    the lowest 40BGytes (which should cover all of SDRAM)
    for the benefit of non-IOMMU-aware devices that share
    a physical IOMMU; and translation for addresses in the
    range 40GB to 42GB.
    
    An optional parameter adds a DMA offset (which otherwise
    would be lost?) to virtual addresses for DMA masters on a
    bus such as PCIe.
    
    Signed-off-by: Nick Hollinghurst <[email protected]>
    njhollinghurst authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    c4a3ddd View commit details
    Browse the repository at this point in the history
  32. irqchip/irq-brcmstb-l2: Add config for 2711 controller

    We currently see these regularly:
    [   25.157560] irq 31, desc: 00000000c15e6d2c, depth: 0, count: 0, unhandled: 0
    [   25.164658] ->handle_irq():  00000000b1775675, brcmstb_l2_intc_irq_handle+0x0/0x1a8
    [   25.172352] ->irq_data.chip(): 00000000fea59f1c, gic_chip_mode1+0x0/0x108
    [   25.179166] ->action(): 000000003eda6d6f
    [   25.183096] ->action->handler(): 000000002c09e646, bad_chained_irq+0x0/0x58
    [   25.190084]      IRQ_LEVEL set
    [   25.193142]    IRQ_NOPROBE set
    [   25.196198]  IRQ_NOREQUEST set
    [   25.199255]   IRQ_NOTHREAD set
    
    with:
    $ cat /proc/interrupts  | grep 31:
     31:          1          0          0          0     GICv2 129 Level     (null)
    
    The interrupt is described in DT with IRQ_TYPE_LEVEL_HIGH
    
    But the current compatible string uses the controller in edge triggered mode
    (as that config matches our register layout).
    
    Add a new compatible structure for level driven interrupt with our register layout.
    
    We had already been using this compatible string in device tree, so no change needed
    there.
    
    Signed-off-by: Dom Cobley <[email protected]>
    popcornmix authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    45084d4 View commit details
    Browse the repository at this point in the history
  33. rtc: rtc-rpi: Add simple RTC driver for Raspberry Pi

    This supports setting and reading the real time clock
    and supports wakeup alarms.
    
    To support wake up alarms you want this bootloader config:
     POWER_OFF_ON_HALT=1
     WAKE_ON_GPIO=0
    
    You can test with:
      echo +600 | sudo tee /sys/class/rtc/rtc0/wakealarm
      sudo halt
    
    That will halt (in an almost no power state),
    then wake and restart after 10 minutes.
    
    Signed-off-by: Dom Cobley <[email protected]>
    popcornmix authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    0bb0316 View commit details
    Browse the repository at this point in the history
  34. dt-bindings: rtc: new binding for Raspberry Pi RTC driver

    Add binding for the new RTC driver for Raspberry Pi.
    This platform has an RTC managed by firmware, and this RTC
    driver provides the simple mailbox interface to access it.
    
    Signed-off-by: Dom Cobley <[email protected]>
    popcornmix authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    de305dc View commit details
    Browse the repository at this point in the history
  35. hwmon: (pwm-fan) Add fan speed register support

    Some platforms include a fan-speed register that reports RPM directly
    as an alternative to counting interrupts from the fan tachometer input.
    Add support for reading a register at a given offset (rpm-offset) within
    a block declared in another node (rpm-regmap). This indirection allows
    the usual address mapping to be performed, and for address sharing with
    another driver.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    730922a View commit details
    Browse the repository at this point in the history
  36. media: i2c: imx296: Add 2ms delay after releasing standby

    The delay seems to be required to reliably read model ID.
    (The same delay is already used when starting the camera.)
    
    Signed-off-by: Nick Hollinghurst <[email protected]>
    njhollinghurst authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    1485495 View commit details
    Browse the repository at this point in the history
  37. dt: bindings: update rpi-rtc binding

    Add property for bcm2712 firmware RTC driver charger control
    
    Signed-off-by: Jonathan Bell <[email protected]>
    P33M authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    a9a7864 View commit details
    Browse the repository at this point in the history
  38. drivers: rtc-rpi: add battery charge circuit control and readback

    Parse devicetree for a charger voltage and apply it. If nonzero and a
    valid voltage, the firmware will enable charging, otherwise the charger
    circuit is disabled.
    
    Add sysfs attributes to read back the supported charge voltage range,
    the measured battery voltage, and the charger setpoint.
    
    Signed-off-by: Jonathan Bell <[email protected]>
    P33M authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    1095811 View commit details
    Browse the repository at this point in the history
  39. vc4_drv: Avoid panic when booted with no kms

    If kms/fkms overlay is not present we have no matching drivers
    and so match is NULL.
    
    It is not safe to call component_master_add_with_match with a null match argument.
    
    So don't do that
    
    Signed-off-by: Dom Cobley <[email protected]>
    popcornmix authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    690c2d6 View commit details
    Browse the repository at this point in the history
  40. drm/vc4: Treat zero sized destination as full screen

    Kodi video planes come through with all zeros for fullscreen
    Without this check, we WARN when writing width-1, height-1
    to destination dlist
    
    Signed-off-by: Dom Cobley <[email protected]>
    popcornmix authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    a80bc19 View commit details
    Browse the repository at this point in the history
  41. drm/vc4: Fix FKMS for when the YUV chroma planes are different buffers

    The code was assuming that it was a single buffer with offsets,
    when kmstest uses separate buffers and 0 offsets for each plane.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    fb3f5f0 View commit details
    Browse the repository at this point in the history
  42. drm/vc4: hdmi: Enable the audio clock

    The audio clock is used by the HDMI controller driver and we were using
    it to get its audio rate and compute the dividers needed to reach a
    given audio sample rate.
    
    However, we were never enabling it, which was resulting in lockups on
    the BCM2712.
    
    Fixes: 632ee3a ("drm/vc4: hdmi: Add audio-related callbacks")
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    690017f View commit details
    Browse the repository at this point in the history
  43. drm/vc4: hdmi: Warn if writing to an unknown HDMI register

    The VC4 HDMI driver has a bunch of accessors to read from a register.
    The read accessor was warning when accessing an unknown register, but
    the write one was just returning silently.
    
    Let's make sure we warn also when writing to an unknown register.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    374c898 View commit details
    Browse the repository at this point in the history
  44. drm/vc4: hvs: More logging for dlist generation

    DLIST generation can get pretty tricky and there's not a lot of debug in
    the driver to help. Let's add a few more to track the generated DLIST
    size.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    7407487 View commit details
    Browse the repository at this point in the history
  45. drm/vc4: hvs: Print error if we fail an allocation

    We need to allocate a few additional structures when checking our
    atomic_state, especially related to hardware SRAM that will hold the
    plane descriptors (DLIST) and the current line context (LBM) during
    composition.
    
    Since those allocation can fail, let's add some error message in that
    case to help debug what goes wrong.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    450be98 View commit details
    Browse the repository at this point in the history
  46. drm/vc4: plane: Add more debugging for LBM allocation

    LBM allocations need a different size depending on the line length,
    format, etc.
    
    This can get tricky, and fail. Let's add some more prints to ease the
    debugging when it does.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    71649ef View commit details
    Browse the repository at this point in the history
  47. drm/vc4: plane: Use return variable in atomic_check

    The vc4_plane_atomic_check() directly returns the result of the final
    function it calls.
    
    Using the already defined ret variable to check its content on error,
    and a separate return 0 on success, makes it easier to extend.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    5268894 View commit details
    Browse the repository at this point in the history
  48. drm/vc4: crtc: Move assigned_channel to a variable

    We access multiple times the vc4_crtc_state->assigned_channel variable
    in the vc4_crtc_get_scanout_position() function, so let's store it in a
    local variable.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    e94f935 View commit details
    Browse the repository at this point in the history
  49. drm/vc4: Introduce generation number enum

    With the introduction of the BCM2712 support, we will get yet another
    generation of display engine to support.
    
    The binary check of whether it's VC5 or not thus doesn't work anymore,
    especially since some parts of the driver will have changed with BCM2711,
    and some others with BCM2712.
    
    Let's introduce an enum to store the generation the driver is running
    on, which should provide more flexibility.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    2ca7e00 View commit details
    Browse the repository at this point in the history
  50. drm/vc4: Make v3d paths unavailable on any generation newer than vc4

    The V3D IP has been separate since BCM2711, so let's make sure we issue
    a WARN if we're running not only on BCM2711, but also anything newer.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    311ea2f View commit details
    Browse the repository at this point in the history
  51. drm/vc4: hvs: Use switch statement to simplify vc4_hvs_get_fifo_from_…

    …output
    
    Since we'll support BCM2712 soon, let's move the logic behind
    vc4_hvs_get_fifo_from_output() to a switch to extend it more easily.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    46fa7bf View commit details
    Browse the repository at this point in the history
  52. drm/vc4: hvs: Use switch statement to simplify enabling/disabling irq

    Since we'll support BCM2712 soon, let's move the logic to enable and
    disable the end-of-frame interrupts to a switch to extend it more
    easily.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    4b65cbf View commit details
    Browse the repository at this point in the history
  53. drm/vc4: hvs: Test if the EOF interrupts are enabled

    We currently enable the EOF interrupts through the CRTC destroy_state
    implementation.
    
    However, nothing guarantees that we can't call destroy_state multiple
    times in a row, and therefore before the EOF interrupt even happens.
    
    This means we would enable the interrupt multiple times but disable it
    only once. It wasn't an issue so far since the interrupts were only
    enabled by setting a bit in a register, but with BCM2712 we will use an
    external interrupt controller, with a refcounted interrupt.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    3471740 View commit details
    Browse the repository at this point in the history
  54. drm/vc4: hvs: Create hw_init function

    Since the BCM2712 will feature a significantly different HVS, let's move
    the hardware initialisation part of our bind function into a separate
    function.
    
    That way, it will be easier to extend in the future.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    ed233a4 View commit details
    Browse the repository at this point in the history
  55. drm/vc4: hvs: Create cob_init function

    Just like the HVS itself, the COB parameters will be fairly different in
    the BCM2712.
    
    Let's move the COB parameters computation and its initialisation to a
    separate function that will be easier to extend in the future.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    cf25150 View commit details
    Browse the repository at this point in the history
  56. drm/vc4: hvs: Rename hvs_regs list

    The HVS register set has been heavily modified in the BCM2712, and we'll
    thus need a separate debugfs_reg32 array for it.
    
    The name hvs_regs is thus a bit too generic, so let's rename it to
    something more specific.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    9584ecf View commit details
    Browse the repository at this point in the history
  57. drm/vc4: plane: Change ptr0_offset to an array

    The BCM2712 will have a fairly different dlist, that will feature one
    Pointer 0 word for each plane.
    
    Let's prepare by changing the ptr0_offset variable that holds the offset
    in a dlist of the pointer 0 word to an array.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    910ae5f View commit details
    Browse the repository at this point in the history
  58. drm/vc4: hvs: Rework LBM alignment

    With the introduction of the support for BCM2712, the check of whether
    we're running on vc5 or not to compute the LBM alignment requirement
    doesn't work anymore.
    
    Moreover, the LBM size will need to be computed in words for the
    BCM2712, while we've had sizes in bytes so far.
    
    Aligning on either 64 or 32 words is thus fairly harmful on BCM2712, so
    let's just explicitly align the size when needed, and then call
    drm_mm_insert_node_generic() with an alignment of 1.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    c2b2659 View commit details
    Browse the repository at this point in the history
  59. drm/vc4: hvs: Change prototype of __vc4_hvs_alloc to pass registers

    The BCM2712 HVS has registers to report the size of the various SRAM the
    driver uses, and their size actually differ depending on the stepping.
    
    The initialisation of the memory pools happen in the __vc4_hvs_alloc()
    function that also allocates the main HVS structure, that will then hold
    the pointer to the memory mapping of the registers.
    
    This creates some kind of circular dependency that we can break by
    passing the mapping pointer as an argument for __vc4_hvs_alloc() to use
    to query to get the SRAM sizes and initialise the memory pools
    accordingly.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    3437e00 View commit details
    Browse the repository at this point in the history
  60. drm/vc4: UV planes vertical scaling must always be enabled

    It has been observed that a YUV422 unity scaled plane isn't displayed.
    Enabling vertical scaling on the UV planes solves this. There is
    already a similar clause to always enable horizontal scaling on the
    UV planes.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    650f3dd View commit details
    Browse the repository at this point in the history
  61. drm/vc4: hdmi: Avoid hang with debug registers when suspended

    Trying to read /sys/kernel/debug/dri/1/hdmi1_regs
    when the hdmi is disconnected results in a fatal system hang.
    
    This is due to the pm suspend code disabling the dvp clock.
    That is just a gate of the 108MHz clock in DVP_HT_RPI_MISC_CONFIG,
    which results in accesses hanging AXI bus.
    
    Protect against this.
    
    Signed-off-by: Dom Cobley <[email protected]>
    popcornmix authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    9a66bad View commit details
    Browse the repository at this point in the history
  62. drm/vc4: Move the buffer offset out of the vc4_plane_state

    The offset fields in vc4_plane_state are described as being
    the offset for each buffer in the bo, however it is used to
    store the complete DMA address that is then written into the
    register.
    
    The DMA address including the fb ofset  can be retrieved
    using drm_fb_dma_get_gem_addr, and the offset adjustment due to
    clipping is local to vc4_plane_mode_set.
    Drop the offset field from the state, and compute the complete
    DMA address in vc4_plane_mode_set.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    5788f9b View commit details
    Browse the repository at this point in the history
  63. drm/vc4: Fix dlist debug not resetting the next entry pointer

    The debug function to display the dlists didn't reset next_entry_start
    when starting each display, so resulting in not stopping the
    list at the correct place.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    48c184f View commit details
    Browse the repository at this point in the history
  64. drm: vc4: Remove incorrect limit from hvs_dlist debugfs function

    The debugfs function to dump dlists aborted at 256 bytes,
    when actually the dlist memory is generally significantly
    larger but varies based on SoC.
    
    We already have the correct limit in __vc4_hvs_alloc, so
    store it for use in the debugfs dlist function.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    294680a View commit details
    Browse the repository at this point in the history
  65. drm/vc4: hvs: Remove ABORT_ON_EMPTY flag

    ABORT_ON_EMPTY chooses whether the HVS abandons the current frame
    when it experiences an underflow, or attempts to continue.
    
    In theory the frame should be black from the point of underflow,
    compared to a shift of sebsequent pixels to the left.
    
    Unfortunately it seems to put the HVS is a bad state where it is not
    possible to recover simply. This typically requires a reboot
    following the 'flip done timed out message'.
    
    Discussion with Broadcom has suggested we don't use this flag.
    All their testing is done with it disabled.
    
    Additionally setting BLANK_INSERT_EN causes the HDMI to output
    blank pixels on an underflow which avoids it losing sync.
    
    After this change a 'flip done timed out' due to sdram bandwidth
    starvation or too low a clock is recoverable once the situation improves.
    
    Signed-off-by: Dom Cobley <[email protected]>
    popcornmix authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    3b93918 View commit details
    Browse the repository at this point in the history
  66. drm/vc4: Enable SCALER_CONTROL early in HVS init

    Always enable SCALER_CONTROL before attempting other HVS
    operations. It's safe to write to some parts of the HVS but
    in general it's dangerous to do this because it can cause bus
    lockups.
    
    Signed-off-by: Tim Gover <[email protected]>
    timg236 authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    bc99e1a View commit details
    Browse the repository at this point in the history
  67. dt-bindings: display: Add BCM2712 HDMI bindings

    The BCM2712 HDMI controller uses a slightly different HDMI controller
    than the BCM2711, and a completely different PHY.
    
    Let's introduce a new compatible for it.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    54a466f View commit details
    Browse the repository at this point in the history
  68. dt-bindings: display: Add BCM2712 HVS bindings

    The BCM2712 has a completely different HVS than the previous
    generations, so let's add a new compatible for it.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    c1ec026 View commit details
    Browse the repository at this point in the history
  69. dt-bindings: display: Add BCM2712 PixelValve bindings

    The BCM2712 has 3 different pixelvalves that are similar to the ones
    found in the previous generations but with slightly different
    capabilities.
    
    Express that using a new set of compatibles.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    c7538cf View commit details
    Browse the repository at this point in the history
  70. dt-bindings: display: Add BCM2712 MOP bindings

    The BCM2712 has a MOP controller which is basically a new revision of
    the TXP.
    
    Express that by adding a new compatible for it.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    8897dbe View commit details
    Browse the repository at this point in the history
  71. dt-bindings: display: Add BCM2712 MOPLET bindings

    The BCM2712 has a MOPLET controller which is basically a TXP without the
    transpose feature.
    
    Express that by adding a new compatible for it.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    e5f0013 View commit details
    Browse the repository at this point in the history
  72. dt-bindings: display: Add BCM2712 KMS driver bindings

    The BCM2712 SoC comes with a new variation of the videocore display
    pipeline. Let's create a new compatible for it.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    afdf5c9 View commit details
    Browse the repository at this point in the history
  73. drm/vc4: drv: Support BCM2712

    The BCM2712 has an improved display pipeline, most notably with a
    different HVS and only HDMI and writeback outputs.
    
    Let's introduce it as a new VideoCore generation and compatible.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    f51573b View commit details
    Browse the repository at this point in the history
  74. drm/vc4: hvs: Support BCM2712 HVS

    The HVS found in the BCM2712, while having a similar role, is very
    different from the one found in the previous SoCs. Indeed, the register
    layout is fairly different, and the DLIST format is new as well.
    
    Let's introduce the needed functions to support the new HVS.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    9e6a4ba View commit details
    Browse the repository at this point in the history
  75. drm/vc4: crtc: Add support for BCM2712 PixelValves

    The PixelValves found on the BCM2712 are similar to the ones found in
    the previous generation.
    
    Compared to BCM2711, the pixelvalves only drive one HDMI controller each
    and HDMI1 PixelValve has a FIFO long enough to support 4k at 60Hz.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    bb831f3 View commit details
    Browse the repository at this point in the history
  76. drm/vc4: hdmi: Add support for BCM2712 HDMI controllers

    The HDMI controllers found in the BCM2712 are largely the ones found in
    the BCM2711 with a different PHY.
    
    There's some difference with how timings are split between registers,
    and HDMI1 is now able to run at 4k/60Hz.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    26956f4 View commit details
    Browse the repository at this point in the history
  77. drm/vc4: txp: Introduce structure to deal with revision differences

    The BCM2712 will have several TXP with small differences. Let's add a
    structure tied to the compatible to deal with those differences.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    7a9a43f View commit details
    Browse the repository at this point in the history
  78. drm/vc4: txp: Rename TXP data structure

    The TXP data structure has a name too generic for the multiple variants
    we'll have to support. Let's rename it to mention the SoC it applies to.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    3c103ed View commit details
    Browse the repository at this point in the history
  79. drm/vc4: txp: Add byte enable toggle bit

    The MOPLET doesn't have the BYTE_ENABLE field to set, but the TXP and
    MOP do, so let's add a boolean to control whether or not we need to set
    it.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    46b6dd2 View commit details
    Browse the repository at this point in the history
  80. drm/vc4: txp: Add horizontal and vertical size offset toggle bit

    The new writeback controllers that can be found on the BCM2712 require
    to have their horizontal and vertical size reduced by one.
    
    Let's tie that behaviour to the compatible so we can support both the
    new and old controllers.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    cda1702 View commit details
    Browse the repository at this point in the history
  81. drm/vc4: txp: Handle 40-bits DMA Addresses

    The BCM2712 MOP and MOPLET can handle addresses larger than 32bits
    through an extra register. We can easily support it and make it
    conditional based on the compatible through a boolean in our variant
    structure.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    3b2a97b View commit details
    Browse the repository at this point in the history
  82. drm/vc4: txp: Move the encoder type in the variant structure

    We'll have multiple TXP instances in the BCM2712, so we can't use a
    single encoder type anymore. Let's tie the encoder type to the
    compatible.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    3ca73e2 View commit details
    Browse the repository at this point in the history
  83. drm/vc4: txp: Add a new TXP encoder type

    Starting with BCM2712, we'll have a two TXP. Let's follow the HDMI
    example and add two encoder types for TXP: TXP0 and TXP1.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    1db04b3 View commit details
    Browse the repository at this point in the history
  84. drm/vc4: txp: Add support for BCM2712 MOP

    The BCM2712 has an evolution of what used to be called TXP in the
    earlier SoCs, but is now called MOP.
    
    There's a few differences still, so we can add a new compatible to deal
    with them easily.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    93604e9 View commit details
    Browse the repository at this point in the history
  85. drm/vc4: txp: Add BCM2712 MOPLET support

    The BCM2712 features a simpler TXP called MOPLET. Let's add support for
    it.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    8af5633 View commit details
    Browse the repository at this point in the history
  86. drm/vc4: Add additional warn_on

    Some code path in vc4 are conditional to a generation and cannot be
    executed on others. Let's put a WARN_ON if that ever happens.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    618b9be View commit details
    Browse the repository at this point in the history
  87. drm/vc4: tests: Switch generation mockup to a switch

    Testing whether the VideoCore generation we want to mock is vc5 or vc4
    worked so far, but will be difficult to extend to support BCM2712 (VC6).
    
    Convert to a switch.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    3b713a9 View commit details
    Browse the repository at this point in the history
  88. drm/vc4: tests: Drop drm parameter for vc4_find_crtc_for_encoder

    The DRM device pointer and the DRM encoder pointer are redundant, since
    the latter is attached to the former and we can just follow the
    drm_encoder->dev pointer.
    
    Let's remove the drm_device pointer argument.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    a50616a View commit details
    Browse the repository at this point in the history
  89. drm/vc4: tests: Return the allocated output

    Some tests will need to retrieve the output that was just allocated by
    vc4_mock_atomic_add_output().
    
    Instead of making them look them up in the DRM device, we can simply
    make vc4_mock_atomic_add_output() return an error pointer that holds the
    allocated output instead of the error code.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    172e667 View commit details
    Browse the repository at this point in the history
  90. drm/vc4: tests: Add BCM2712 mock driver

    The BCM2712 has a simpler pipeline that can only output to a writeback
    connector and two HDMI controllers.
    
    Let's allow our kunit tests to create a mock of that pipeline.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    e4a3233 View commit details
    Browse the repository at this point in the history
  91. drm/vc4: tests: Add tests for BCM2712 PixelValve Muxing

    The BCM2712 has a simpler pipeline than the BCM2711, and thus the muxing
    requirements are different. Create some tests to make sure we get proper
    muxing decisions.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    f896c37 View commit details
    Browse the repository at this point in the history
  92. drm/vc4: fkms: Rename plane related functions

    The name collide with the Full KMS functions that are going to be made
    public.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    e19f1aa View commit details
    Browse the repository at this point in the history
  93. drm/vc4: tests: Use custom plane state for mock

    The current mock planes were just using the regular drm_plane_state,
    while the driver expect struct vc4_plane_state that subclasses
    drm_plane_state.
    
    Hook the proper implementations of reset, duplicate_state, destroy and
    atomic_check to create vc4_plane_state.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    21876a3 View commit details
    Browse the repository at this point in the history
  94. drm/vc4: tests: Add function to lookup a plane for a CRTC

    Some tests will need to find a plane to run a test on for a given CRTC.
    Let's create a small helper to do that.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    d63ecd9 View commit details
    Browse the repository at this point in the history
  95. drm/vc4: tests: Add helper to add a new plane to a state

    We'll start to add some tests for the plane state logic, so let's create
    a helper to add a plane to an existing atomic state.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    886a7af View commit details
    Browse the repository at this point in the history
  96. drm/vc4: tests: Support a few more plane formats

    We'll start testing our planes code in situations where we will use more
    than XRGB8888, so let's add a few common pixel formats.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    64c100a View commit details
    Browse the repository at this point in the history
  97. drm/vc4: tests: Introduce a test for LBM buffer size

    The BCM2712 comes with a different LBM size computation than the
    previous generations, so let's add the few examples provided as kunit
    tests to make sure we always satisfy those requirements.
    
    Signed-off-by: Maxime Ripard <[email protected]>
    mripard authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    264c0f6 View commit details
    Browse the repository at this point in the history
  98. drm/vc4: kms: Avoid setting core and disp clocks for hdmi modes

    On 2712, the firmware always runs these clock at a speed sufficient
    for dual 4kp60.
    
    The requests here prevent the gpu from going into its lowest voltage
    mode, so just skip the clock requests.
    
    With this applied the idle voltage on my pi 5 reduces from 0.7424V
    to 0.72V.
    
    Signed-off-by: Dom Cobley <[email protected]>
    popcornmix authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    f12a90f View commit details
    Browse the repository at this point in the history
  99. drm/vc4: Assign LBM memory during atomic_flush.

    Avoid double buffering LBM allocations by making the
    allocation a single alloc per crtc at atomic_flush.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    ffb4014 View commit details
    Browse the repository at this point in the history
  100. drm/panel: simple: Alter the timing for the Pi 7" DSI display

    vc4 has always fixed up the timing, so the values defined have
    never actually appeared on the wire.
    The display appears to want a slightly longer HFP, so extend
    the timings and recompute the clock to give the same frame rate.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    c2f6757 View commit details
    Browse the repository at this point in the history
  101. drm/panel: waveshare: Fix up timings for 10.1" panel

    The 10.1" panel doesn't work with the timings defined. vc4
    will always have been fixing up the timing due to the limited
    integer divider, so compute the fixed up mode and use it
    directly.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    1c2afab View commit details
    Browse the repository at this point in the history
  102. media: i2c: imx477: Fix locking in imx477_init_controls()

    The driver does not lock the imx477 mutex when calling
    imx477_set_framing_limits(), leading to:
    
    WARNING: CPU: 3 PID: 426 at drivers/media/v4l2-core/v4l2-ctrls-api.c:934 __v4l2_ctrl_modify_range+0x1a0/0x210 [
    videodev]
    
    Fix this by taking the lock.
    
    Signed-off-by: Tomi Valkeinen <[email protected]>
    tomba authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    c172569 View commit details
    Browse the repository at this point in the history
  103. media: rp1: cfe: Fix use of freed memory on errors

    cfe_probe_complete() calls cfe_put() on both success and fail code paths.
    This works for the success path, but causes the cfe_device struct to be
    freed, even if it will be used later in the teardown code.
    
    Fix this by making the ref handling a bit saner: Let the video nodes
    have the refs as they do now, but also keep a ref in the "main" driver,
    released only at cfe_remove() time. This way the driver does not depend
    on the video nodes keeping the refs.
    
    Signed-off-by: Tomi Valkeinen <[email protected]>
    tomba authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    492eecb View commit details
    Browse the repository at this point in the history
  104. media: rp1: cfe: Fix width & height in cfe_start_channel()

    The logic for handling width & height in cfe_start_channel() is somewhat
    odd and, afaics, broken. The code reads:
    
    bool start_fe = is_fe_enabled(cfe) &&
                    test_all_nodes(cfe, NODE_ENABLED, NODE_STREAMING);
    
    if (start_fe || is_image_output_node(node)) {
            width = node->fmt.fmt.pix.width;
            height = node->fmt.fmt.pix.height;
    }
    
    cfe_start_channel() is called for all video nodes that will be used. So
    this means that if, say, fe_stats is enabled as the last node, start_fe
    will be true, and width and height will be taken from fe_stats' node.
    The width and height will thus contain garbage, which then gets
    programmed to the csi2 registers.
    
    It seems that this often still works fine, though, probably if the width
    & height are large enough.
    
    Drop the above code, and instead get the width & height from the csi2
    subdev's sink pad for the csi2 channel that is used. For metadata the
    width & height will be 0 as before.
    
    Signed-off-by: Tomi Valkeinen <[email protected]>
    tomba authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    3e4bf4a View commit details
    Browse the repository at this point in the history
  105. media: rp1: csi2: Fix missing reg writes

    The driver has two places where it writes a register based on a
    condition, and when that condition is false, the driver presumes that
    the register has the reset value. This is not a good idea, so fix those
    places to always write the register.
    
    Signed-off-by: Tomi Valkeinen <[email protected]>
    tomba authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    dfa28bb View commit details
    Browse the repository at this point in the history
  106. media: rp1: fe: Use ~0, not -1, when working with unsigned values

    Use ~0, not -1, when working with unsigned values (-1 is not unsigned).
    
    Signed-off-by: Tomi Valkeinen <[email protected]>
    tomba authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    5ab1dd4 View commit details
    Browse the repository at this point in the history
  107. media: rp1: cfe: Fix verbose debug print

    The debug print in cfe_schedule_next_csi2_job() is printed every frame,
    and should thus use cfe_dbg_irq() to avoid spamming, rather than cfe_dbg().
    
    Signed-off-by: Tomi Valkeinen <[email protected]>
    tomba authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    e05c6cd View commit details
    Browse the repository at this point in the history
  108. media: rp1: cfe: Rename xxx_dbg_irq() to xxx_dbg_verbose()

    Rename the xxx_dbg_irq() macros to xxx_dbg_verbose(), as they can be
    used to verbose debugs outside irq context too.
    
    Signed-off-by: Tomi Valkeinen <[email protected]>
    tomba authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    7735dab View commit details
    Browse the repository at this point in the history
  109. media: rp1: Add back reg write debug prints

    Add back debug prints in csi2 and pisp_fe reg_write() functions, but use
    the 'irq' variants to avoid spamming in normal situation.
    
    Signed-off-by: Tomi Valkeinen <[email protected]>
    tomba authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    c1f76fc View commit details
    Browse the repository at this point in the history
  110. media: rp1: cfe: Add verbose debug module parameter

    Expose the verbose debug flag as a module parameter.
    
    Signed-off-by: Tomi Valkeinen <[email protected]>
    tomba authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    0c9081f View commit details
    Browse the repository at this point in the history
  111. media: rp1: csi2: Track CSI-2 errors

    Track the errors from the CSI-2 receiver: overflows and discards. These
    are recorded in a table which can be read by the userspace via debugfs.
    
    As tracking the errors may cause much more interrupt load, the tracking
    needs to be enabled with a module parameter.
    
    Note that the recording is not perfect: we only record the last
    discarded DT for each discard type, instead of recording all of them.
    This means that e.g. if the device is discarding two unmatched DTs, the
    debugfs file only shows the last one recorded. Recording all of them
    would need a more sophisticated recording system to avoid the need of a
    very large table, or dynamic allocation.
    
    Signed-off-by: Tomi Valkeinen <[email protected]>
    tomba authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    177221d View commit details
    Browse the repository at this point in the history
  112. media: rp1: cfe: Drop unused field

    Drop 'sensor_embedded_data' field, as it is unused.
    
    Signed-off-by: Tomi Valkeinen <[email protected]>
    tomba authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    5fc1079 View commit details
    Browse the repository at this point in the history
  113. media: rp1: csi2: Set values for enum csi2_mode

    Set hardcoded values for enum csi2_mode, as the values will be
    programmed to HW registers.
    
    Signed-off-by: Tomi Valkeinen <[email protected]>
    tomba authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    a7ddd06 View commit details
    Browse the repository at this point in the history
  114. media: rp1: fe: Fix default mbus code

    When pisp_fe_pad_set_fmt() is given an mbus code that CFE does not
    support, it currently defaults to MEDIA_BUS_FMT_SBGGR10_1X10. This is
    not correct, as FE does not support SBGGR10.
    
    Set the default to MEDIA_BUS_FMT_SRGGB16_1X16 instead.
    
    Signed-off-by: Tomi Valkeinen <[email protected]>
    tomba authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    9d55961 View commit details
    Browse the repository at this point in the history
  115. media: rp1: cfe: Fix default meta format's field

    Set default meta format's field to V4L2_FIELD_NONE, instead of zeroing
    it which indicates V4L2_FIELD_ANY. Metadata doesn't have fields, so NONE
    makes sense, and furthermore the default v4l2 link validation will check
    for matching fields, or that the sink field is NONE.
    
    Signed-off-by: Tomi Valkeinen <[email protected]>
    tomba authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    6fc665d View commit details
    Browse the repository at this point in the history
  116. media: rp1: cfe: Fail streaming if FE_CONFIG node is not enabled

    When the FE is enabled, ensure that the FE_CONFIG node is enabled.
    Otherwise fail cfe_start_streaming() entirely.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    naushir authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    a0f1973 View commit details
    Browse the repository at this point in the history
  117. media: i2c: Move Kconfig entry for IMX477 to the camera sensor section

    It was accidentally placed in the audio decoder section.
    
    Signed-off-by: Naushir Patuck <[email protected]>
    naushir authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    d038294 View commit details
    Browse the repository at this point in the history
  118. drm: Look for an alias for the displays to use as the DRM device name

    Allow DT aliases of eg DSI2 to force make DRM allocate the
    display with the requested name.
    
    Signed-off-by: Dave Stevenson <[email protected]>
    6by9 authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    9a6ba14 View commit details
    Browse the repository at this point in the history
  119. vc4/drm: Remove the clear of SCALER_DISPBKGND_FILL

    Since "drm/vc4: hvs: Support BCM2712 HVS" booting Pi4
    with dual 4kp30 displays connected fails with:
    vc4-drm gpu: [drm] *ERROR* [CRTC:107:pixelvalve-4] flip_done timed out
    
    It has been tracked down to the referenced commit adding a
    path to clear the SCALER_DISPBKGND_FILL when not required.
    
    Dual 4kp30 works with a core clock of 297MHz when background fill
    is enabled, but requires a higher value with it disabled.
    320MHz still fails, while 330MHz seems okay.
    
    Lets always enable background fill for Pi0-4.
    
    Fixes: e84da23 ("drm/vc4: hvs: Support BCM2712 HVS")
    
    Signed-off-by: Dom Cobley <[email protected]>
    popcornmix authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    42e4892 View commit details
    Browse the repository at this point in the history
  120. .github/workflows: Add a bcm2712 build configuration

    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    6c26577 View commit details
    Browse the repository at this point in the history
  121. README: Show rpi-6.5.y build status

    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    ef02314 View commit details
    Browse the repository at this point in the history
  122. dts: 2712: Update for device tree

    dtoverlays: Fix up edt5406 entries to match with vc4-kms-dsi-7inch
    
    vc4-kms-dsi-7inch expects the touch fragment to be named ts_i2c_frag,
    but edt5406 didn't do this.
    
    dt: Add DSI1 and DSI2 aliases to 2712
    
    In order to keep the DRM names consistent as DSI-1 and DSI-2, add
    aliases to the Pi5 DT.
    
    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    61794f3 View commit details
    Browse the repository at this point in the history
  123. config: 2712: Update defconfig

    popcornmix authored and pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    3943f77 View commit details
    Browse the repository at this point in the history
  124. config: Regenerate defconfigs

    Signed-off-by: Phil Elwell <[email protected]>
    pelwell committed Oct 6, 2023
    Configuration menu
    Copy the full SHA
    5ef00d3 View commit details
    Browse the repository at this point in the history