-
Notifications
You must be signed in to change notification settings - Fork 5k
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
Commits on Oct 5, 2023
-
Revert "ASoC: hdmi-codec: Fix broken channel map reporting"
This reverts commit a319c6c.
Configuration menu - View commit details
-
Copy full SHA for 9f59e21 - Browse repository at this point
Copy the full SHA 9f59e21View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 6df1ac1 - Browse repository at this point
Copy the full SHA 6df1ac1View commit details -
Revert "usb: phy: generic: Get the vbus supply"
This reverts commit c0ea202.
Configuration menu - View commit details
-
Copy full SHA for 3b7a7dd - Browse repository at this point
Copy the full SHA 3b7a7ddView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 005b3d8 - Browse repository at this point
Copy the full SHA 005b3d8View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 6ee7011 - Browse repository at this point
Copy the full SHA 6ee7011View commit details -
drivers: char: delete bcm2835-gpiomem
This functionality is now provided by raspberrypi-gpiomem. Signed-off-by: Jonathan Bell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 76acb43 - Browse repository at this point
Copy the full SHA 76acb43View commit details -
Configuration menu - View commit details
-
Copy full SHA for d1ea2d1 - Browse repository at this point
Copy the full SHA d1ea2d1View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 212532c - Browse repository at this point
Copy the full SHA 212532cView commit details -
Configuration menu - View commit details
-
Copy full SHA for b6ba6f3 - Browse repository at this point
Copy the full SHA b6ba6f3View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for d8098d8 - Browse repository at this point
Copy the full SHA d8098d8View commit details -
Configuration menu - View commit details
-
Copy full SHA for cb6f30e - Browse repository at this point
Copy the full SHA cb6f30eView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 5c93a45 - Browse repository at this point
Copy the full SHA 5c93a45View commit details -
sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR speeds at 1.8v.
Configuration menu - View commit details
-
Copy full SHA for 46db054 - Browse repository at this point
Copy the full SHA 46db054View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 90b868e - Browse repository at this point
Copy the full SHA 90b868eView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 4b2a1c2 - Browse repository at this point
Copy the full SHA 4b2a1c2View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 91bcdda - Browse repository at this point
Copy the full SHA 91bcddaView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 5aec008 - Browse repository at this point
Copy the full SHA 5aec008View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for b3fb577 - Browse repository at this point
Copy the full SHA b3fb577View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 8797a8f - Browse repository at this point
Copy the full SHA 8797a8fView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 2ba7ad3 - Browse repository at this point
Copy the full SHA 2ba7ad3View commit details -
V4L2: Add PiSP opaque formats to V4L2
Signed-off-by: Naushir Patuck <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 040d304 - Browse repository at this point
Copy the full SHA 040d304View commit details -
V4L2: Add PiSP compressed formats to V4L2
Signed-off-by: Naushir Patuck <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1c4b35a - Browse repository at this point
Copy the full SHA 1c4b35aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2e292cc - Browse repository at this point
Copy the full SHA 2e292ccView commit details -
dt-binding: mfd: Add binding for Raspberry Pi RP1
Signed-off-by: Phil Elwell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4ebb6ec - Browse repository at this point
Copy the full SHA 4ebb6ecView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 480677f - Browse repository at this point
Copy the full SHA 480677fView commit details -
dt-bindings: clock: Add bindings for Raspberry Pi RP1
Signed-off-by: Phil Elwell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ae4f36f - Browse repository at this point
Copy the full SHA ae4f36fView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 2b90957 - Browse repository at this point
Copy the full SHA 2b90957View commit details -
dt-bindings: pinctrl: Add bindings for Raspberry Pi RP1
Signed-off-by: Phil Elwell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for d7b800d - Browse repository at this point
Copy the full SHA d7b800dView commit details -
RP1 exposes GPIOs. Add a pinctrl driver to allow control of those. Signed-off-by: Phil Elwell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c78448c - Browse repository at this point
Copy the full SHA c78448cView commit details -
serial: pl011: rp1 uart support
Signed-off-by: Phil Elwell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1f7d4af - Browse repository at this point
Copy the full SHA 1f7d4afView commit details -
mmc: sdhci-of-dwcmshc: define sdio timeout clocks
Signed-off-by: Liam Fraser <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 9c44de7 - Browse repository at this point
Copy the full SHA 9c44de7View commit details -
mmc: sdhci-of-dwcmshc: rp1 sdio changes
Signed-off-by: Phil Elwell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 616b202 - Browse repository at this point
Copy the full SHA 616b202View commit details -
Signed-off-by: Phil Elwell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1fccca4 - Browse repository at this point
Copy the full SHA 1fccca4View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for b557724 - Browse repository at this point
Copy the full SHA b557724View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for ee20016 - Browse repository at this point
Copy the full SHA ee20016View commit details
Commits on Oct 6, 2023
-
spi: dw: Handle combined tx and rx messages
Signed-off-by: Phil Elwell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 525dd98 - Browse repository at this point
Copy the full SHA 525dd98View commit details -
Add a driver for the RP1 PWM block. Signed-off-by: Phil Elwell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c77393f - Browse repository at this point
Copy the full SHA c77393fView commit details -
Add support for the RP1 DSI hardware. Signed-off-by: Nick Hollinghurst <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for c293cb9 - Browse repository at this point
Copy the full SHA c293cb9View commit details -
Add support for the RP1 DPI hardware. Signed-off-by: Nick Hollinghurst <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 047e85c - Browse repository at this point
Copy the full SHA 047e85cView commit details -
Add support for the RP1 VEC hardware. Signed-off-by: Nick Hollinghurst <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 9deaee4 - Browse repository at this point
Copy the full SHA 9deaee4View commit details -
v4l2: Add pisp compression format support to v4l2
Signed-off-by: Naushir Patuck <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 9b7dd28 - Browse repository at this point
Copy the full SHA 9b7dd28View commit details -
media: rp1: Add CFE (Camera Front End) support
Signed-off-by: Naushir Patuck <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for da143b1 - Browse repository at this point
Copy the full SHA da143b1View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 2dd3b31 - Browse repository at this point
Copy the full SHA 2dd3b31View commit details -
ASoC: dwc: Support set_bclk_ratio
Signed-off-by: Phil Elwell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 15891e9 - Browse repository at this point
Copy the full SHA 15891e9View commit details -
Add control of the DMACR register, which is required for paced DMA (i.e. DREQ) support. Signed-off-by: Phil Elwell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for cca5fa3 - Browse repository at this point
Copy the full SHA cca5fa3View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 54eca23 - Browse repository at this point
Copy the full SHA 54eca23View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 16a0388 - Browse repository at this point
Copy the full SHA 16a0388View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for e0058b7 - Browse repository at this point
Copy the full SHA e0058b7View commit details -
hwmon: Add RP1 ADC and temperature driver
Signed-off-by: Phil Elwell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 4af9fe1 - Browse repository at this point
Copy the full SHA 4af9fe1View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 2c3034f - Browse repository at this point
Copy the full SHA 2c3034fView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 9ded1dc - Browse repository at this point
Copy the full SHA 9ded1dcView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 0a6bd10 - Browse repository at this point
Copy the full SHA 0a6bd10View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 678092e - Browse repository at this point
Copy the full SHA 678092eView commit details -
drm/v3d: fix up register addresses for V3D 7.x
v2: fix kernel panic with debug-fs interface to list registers
Configuration menu - View commit details
-
Copy full SHA for 26c7dc8 - Browse repository at this point
Copy the full SHA 26c7dc8View commit details -
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.
Configuration menu - View commit details
-
Copy full SHA for 20b616f - Browse repository at this point
Copy the full SHA 20b616fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3b7911f - Browse repository at this point
Copy the full SHA 3b7911fView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 47506f2 - Browse repository at this point
Copy the full SHA 47506f2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 396e4b4 - Browse repository at this point
Copy the full SHA 396e4b4View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 8b14507 - Browse repository at this point
Copy the full SHA 8b14507View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for b8533d0 - Browse repository at this point
Copy the full SHA b8533d0View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for f4f6373 - Browse repository at this point
Copy the full SHA f4f6373View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 5b233a9 - Browse repository at this point
Copy the full SHA 5b233a9View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 2019075 - Browse repository at this point
Copy the full SHA 2019075View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 7bb03ab - Browse repository at this point
Copy the full SHA 7bb03abView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 3ead612 - Browse repository at this point
Copy the full SHA 3ead612View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for c4a3ddd - Browse repository at this point
Copy the full SHA c4a3dddView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 45084d4 - Browse repository at this point
Copy the full SHA 45084d4View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 0bb0316 - Browse repository at this point
Copy the full SHA 0bb0316View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for de305dc - Browse repository at this point
Copy the full SHA de305dcView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 730922a - Browse repository at this point
Copy the full SHA 730922aView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 1485495 - Browse repository at this point
Copy the full SHA 1485495View commit details -
dt: bindings: update rpi-rtc binding
Add property for bcm2712 firmware RTC driver charger control Signed-off-by: Jonathan Bell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for a9a7864 - Browse repository at this point
Copy the full SHA a9a7864View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 1095811 - Browse repository at this point
Copy the full SHA 1095811View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 690c2d6 - Browse repository at this point
Copy the full SHA 690c2d6View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for a80bc19 - Browse repository at this point
Copy the full SHA a80bc19View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for fb3f5f0 - Browse repository at this point
Copy the full SHA fb3f5f0View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 690017f - Browse repository at this point
Copy the full SHA 690017fView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 374c898 - Browse repository at this point
Copy the full SHA 374c898View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 7407487 - Browse repository at this point
Copy the full SHA 7407487View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 450be98 - Browse repository at this point
Copy the full SHA 450be98View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 71649ef - Browse repository at this point
Copy the full SHA 71649efView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 5268894 - Browse repository at this point
Copy the full SHA 5268894View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for e94f935 - Browse repository at this point
Copy the full SHA e94f935View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 2ca7e00 - Browse repository at this point
Copy the full SHA 2ca7e00View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 311ea2f - Browse repository at this point
Copy the full SHA 311ea2fView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 46fa7bf - Browse repository at this point
Copy the full SHA 46fa7bfView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 4b65cbf - Browse repository at this point
Copy the full SHA 4b65cbfView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 3471740 - Browse repository at this point
Copy the full SHA 3471740View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for ed233a4 - Browse repository at this point
Copy the full SHA ed233a4View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for cf25150 - Browse repository at this point
Copy the full SHA cf25150View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 9584ecf - Browse repository at this point
Copy the full SHA 9584ecfView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 910ae5f - Browse repository at this point
Copy the full SHA 910ae5fView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for c2b2659 - Browse repository at this point
Copy the full SHA c2b2659View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 3437e00 - Browse repository at this point
Copy the full SHA 3437e00View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 650f3dd - Browse repository at this point
Copy the full SHA 650f3ddView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 9a66bad - Browse repository at this point
Copy the full SHA 9a66badView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 5788f9b - Browse repository at this point
Copy the full SHA 5788f9bView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 48c184f - Browse repository at this point
Copy the full SHA 48c184fView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 294680a - Browse repository at this point
Copy the full SHA 294680aView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 3b93918 - Browse repository at this point
Copy the full SHA 3b93918View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for bc99e1a - Browse repository at this point
Copy the full SHA bc99e1aView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 54a466f - Browse repository at this point
Copy the full SHA 54a466fView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for c1ec026 - Browse repository at this point
Copy the full SHA c1ec026View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for c7538cf - Browse repository at this point
Copy the full SHA c7538cfView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 8897dbe - Browse repository at this point
Copy the full SHA 8897dbeView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for e5f0013 - Browse repository at this point
Copy the full SHA e5f0013View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for afdf5c9 - Browse repository at this point
Copy the full SHA afdf5c9View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for f51573b - Browse repository at this point
Copy the full SHA f51573bView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 9e6a4ba - Browse repository at this point
Copy the full SHA 9e6a4baView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for bb831f3 - Browse repository at this point
Copy the full SHA bb831f3View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 26956f4 - Browse repository at this point
Copy the full SHA 26956f4View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 7a9a43f - Browse repository at this point
Copy the full SHA 7a9a43fView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 3c103ed - Browse repository at this point
Copy the full SHA 3c103edView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 46b6dd2 - Browse repository at this point
Copy the full SHA 46b6dd2View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for cda1702 - Browse repository at this point
Copy the full SHA cda1702View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 3b2a97b - Browse repository at this point
Copy the full SHA 3b2a97bView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 3ca73e2 - Browse repository at this point
Copy the full SHA 3ca73e2View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 1db04b3 - Browse repository at this point
Copy the full SHA 1db04b3View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 93604e9 - Browse repository at this point
Copy the full SHA 93604e9View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 8af5633 - Browse repository at this point
Copy the full SHA 8af5633View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 618b9be - Browse repository at this point
Copy the full SHA 618b9beView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 3b713a9 - Browse repository at this point
Copy the full SHA 3b713a9View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for a50616a - Browse repository at this point
Copy the full SHA a50616aView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 172e667 - Browse repository at this point
Copy the full SHA 172e667View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for e4a3233 - Browse repository at this point
Copy the full SHA e4a3233View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for f896c37 - Browse repository at this point
Copy the full SHA f896c37View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for e19f1aa - Browse repository at this point
Copy the full SHA e19f1aaView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 21876a3 - Browse repository at this point
Copy the full SHA 21876a3View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for d63ecd9 - Browse repository at this point
Copy the full SHA d63ecd9View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 886a7af - Browse repository at this point
Copy the full SHA 886a7afView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 64c100a - Browse repository at this point
Copy the full SHA 64c100aView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 264c0f6 - Browse repository at this point
Copy the full SHA 264c0f6View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for f12a90f - Browse repository at this point
Copy the full SHA f12a90fView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for ffb4014 - Browse repository at this point
Copy the full SHA ffb4014View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for c2f6757 - Browse repository at this point
Copy the full SHA c2f6757View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 1c2afab - Browse repository at this point
Copy the full SHA 1c2afabView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for c172569 - Browse repository at this point
Copy the full SHA c172569View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 492eecb - Browse repository at this point
Copy the full SHA 492eecbView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 3e4bf4a - Browse repository at this point
Copy the full SHA 3e4bf4aView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for dfa28bb - Browse repository at this point
Copy the full SHA dfa28bbView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 5ab1dd4 - Browse repository at this point
Copy the full SHA 5ab1dd4View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for e05c6cd - Browse repository at this point
Copy the full SHA e05c6cdView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 7735dab - Browse repository at this point
Copy the full SHA 7735dabView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for c1f76fc - Browse repository at this point
Copy the full SHA c1f76fcView commit details -
media: rp1: cfe: Add verbose debug module parameter
Expose the verbose debug flag as a module parameter. Signed-off-by: Tomi Valkeinen <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0c9081f - Browse repository at this point
Copy the full SHA 0c9081fView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 177221d - Browse repository at this point
Copy the full SHA 177221dView commit details -
media: rp1: cfe: Drop unused field
Drop 'sensor_embedded_data' field, as it is unused. Signed-off-by: Tomi Valkeinen <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5fc1079 - Browse repository at this point
Copy the full SHA 5fc1079View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for a7ddd06 - Browse repository at this point
Copy the full SHA a7ddd06View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 9d55961 - Browse repository at this point
Copy the full SHA 9d55961View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 6fc665d - Browse repository at this point
Copy the full SHA 6fc665dView commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for a0f1973 - Browse repository at this point
Copy the full SHA a0f1973View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for d038294 - Browse repository at this point
Copy the full SHA d038294View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 9a6ba14 - Browse repository at this point
Copy the full SHA 9a6ba14View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 42e4892 - Browse repository at this point
Copy the full SHA 42e4892View commit details -
.github/workflows: Add a bcm2712 build configuration
Signed-off-by: Phil Elwell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 6c26577 - Browse repository at this point
Copy the full SHA 6c26577View commit details -
README: Show rpi-6.5.y build status
Signed-off-by: Phil Elwell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ef02314 - Browse repository at this point
Copy the full SHA ef02314View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 61794f3 - Browse repository at this point
Copy the full SHA 61794f3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3943f77 - Browse repository at this point
Copy the full SHA 3943f77View commit details -
Signed-off-by: Phil Elwell <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 5ef00d3 - Browse repository at this point
Copy the full SHA 5ef00d3View commit details