mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
Merge tag 'drm-next-2022-05-25' of git://anongit.freedesktop.org/drm/drm
Pull drm updates from Dave Airlie:
"Intel have enabled DG2 on certain SKUs for laptops, AMD has started
some new GPU support, msm has user allocated VA controls
dma-buf:
- add dma_resv_replace_fences
- add dma_resv_get_singleton
- make dma_excl_fence private
core:
- EDID parser refactorings
- switch drivers to drm_mode_copy/duplicate
- DRM managed mutex initialization
display-helper:
- put HDMI, SCDC, HDCP, DSC and DP into new module
gem:
- rework fence handling
ttm:
- rework bulk move handling
- add common debugfs for resource managers
- convert to kvcalloc
format helpers:
- support monochrome formats
- RGB888, RGB565 to XRGB8888 conversions
fbdev:
- cfb/sys_imageblit fixes
- pagelist corruption fix
- create offb platform device
- deferred io improvements
sysfb:
- Kconfig rework
- support for VESA mode selection
bridge:
- conversions to devm_drm_of_get_bridge
- conversions to panel_bridge
- analogix_dp - autosuspend support
- it66121 - audio support
- tc358767 - DSI to DPI support
- icn6211 - PLL/I2C fixes, DT property
- adv7611 - enable DRM_BRIDGE_OP_HPD
- anx7625 - fill ELD if no monitor
- dw_hdmi - add audio support
- lontium LT9211 support, i.MXMP LDB
- it6505: Kconfig fix, DPCD set power fix
- adv7511 - CEC support for ADV7535
panel:
- ltk035c5444t, B133UAN01, NV3052C panel support
- DataImage FG040346DSSWBG04 support
- st7735r - DT bindings fix
- ssd130x - fixes
i915:
- DG2 laptop PCI-IDs ("motherboard down")
- Initial RPL-P PCI IDs
- compute engine ABI
- DG2 Tile4 support
- DG2 CCS clear color compression support
- DG2 render/media compression formats support
- ATS-M platform info
- RPL-S PCI IDs added
- Bump ADL-P DMC version to v2.16
- Support static DRRS
- Support multiple eDP/LVDS native mode refresh rates
- DP HDR support for HSW+
- Lots of display refactoring + fixes
- GuC hwconfig support and query
- sysfs support for multi-tile
- fdinfo per-client gpu utilisation
- add geometry subslices query
- fix prime mmap with LMEM
- fix vm open count and remove vma refcounts
- contiguous allocation fixes
- steered register write support
- small PCI BAR enablement
- GuC error capture support
- sunset igpu legacy mmap support for newer devices
- GuC version 70.1.1 support
amdgpu:
- Initial SoC21 support
- SMU 13.x enablement
- SMU 13.0.4 support
- ttm_eu cleanups
- USB-C, GPUVM updates
- TMZ fixes for RV
- RAS support for VCN
- PM sysfs code cleanup
- DC FP rework
- extend CG/PG flags to 64-bit
- SI dpm lockdep fix
- runtime PM fixes
amdkfd:
- RAS/SVM fixes
- TLB flush fixes
- CRIU GWS support
- ignore bogus MEC signals more efficiently
msm:
- Fourcc modifier for tiled but not compressed layouts
- Support for userspace allocated IOVA (GPU virtual address)
- DPU: DSC (Display Stream Compression) support
- DP: eDP support
- DP: conversion to use drm_bridge and drm_bridge_connector
- Merge DPU1 and MDP5 MDSS driver
- DPU: writeback support
nouveau:
- make some structures static
- make some variables static
- switch to drm_gem_plane_helper_prepare_fb
radeon:
- misc fixes/cleanups
mxsfb:
- rework crtc mode setting
- LCDIF CRC support
etnaviv:
- fencing improvements
- fix address space collisions
- cleanup MMU reference handling
gma500:
- GEM/GTT improvements
- connector handling fixes
komeda:
- switch to plane reset helper
mediatek:
- MIPI DSI improvements
omapdrm:
- GEM improvements
qxl:
- aarch64 support
vc4:
- add a CL submission tracepoint
- HDMI YUV support
- HDMI/clock improvements
- drop is_hdmi caching
virtio:
- remove restriction of non-zero blob types
vmwgfx:
- support for cursormob and cursorbypass 4
- fence improvements
tidss:
- reset DISPC on startup
solomon:
- SPI support
- DT improvements
sun4i:
- allwinner D1 support
- drop is_hdmi caching
imx:
- use swap() instead of open-coding
- use devm_platform_ioremap_resource
- remove redunant initializations
ast:
- Displayport support
rockchip:
- Refactor IOMMU initialisation
- make some structures static
- replace drm_detect_hdmi_monitor with drm_display_info.is_hdmi
- support swapped YUV formats,
- clock improvements
- rk3568 support
- VOP2 support
mediatek:
- MT8186 support
tegra:
- debugabillity improvements"
* tag 'drm-next-2022-05-25' of git://anongit.freedesktop.org/drm/drm: (1740 commits)
drm/i915/dsi: fix VBT send packet port selection for ICL+
drm/i915/uc: Fix undefined behavior due to shift overflowing the constant
drm/i915/reg: fix undefined behavior due to shift overflowing the constant
drm/i915/gt: Fix use of static in macro mismatch
drm/i915/audio: fix audio code enable/disable pipe logging
drm/i915: Fix CFI violation with show_dynamic_id()
drm/i915: Fix 'mixing different enum types' warnings in intel_display_power.c
drm/i915/gt: Fix build error without CONFIG_PM
drm/msm/dpu: handle pm_runtime_get_sync() errors in bind path
drm/msm/dpu: add DRM_MODE_ROTATE_180 back to supported rotations
drm/msm: don't free the IRQ if it was not requested
drm/msm/dpu: limit writeback modes according to max_linewidth
drm/amd: Don't reset dGPUs if the system is going to s2idle
drm/amdgpu: Unmap legacy queue when MES is enabled
drm: msm: fix possible memory leak in mdp5_crtc_cursor_set()
drm/msm: Fix fb plane offset calculation
drm/msm/a6xx: Fix refcount leak in a6xx_gpu_init
drm/msm/dsi: don't powerup at modeset time for parade-ps8640
drm/rockchip: Change register space names in vop2
dt-bindings: display: rockchip: make reg-names mandatory for VOP2
...
This commit is contained in:
@@ -503,7 +503,6 @@ int of_platform_default_populate(struct device_node *root,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(of_platform_default_populate);
|
||||
|
||||
#ifndef CONFIG_PPC
|
||||
static const struct of_device_id reserved_mem_matches[] = {
|
||||
{ .compatible = "phram" },
|
||||
{ .compatible = "qcom,rmtfs-mem" },
|
||||
@@ -524,27 +523,74 @@ static int __init of_platform_default_populate_init(void)
|
||||
if (!of_have_populated_dt())
|
||||
return -ENODEV;
|
||||
|
||||
/*
|
||||
* Handle certain compatibles explicitly, since we don't want to create
|
||||
* platform_devices for every node in /reserved-memory with a
|
||||
* "compatible",
|
||||
*/
|
||||
for_each_matching_node(node, reserved_mem_matches)
|
||||
if (IS_ENABLED(CONFIG_PPC)) {
|
||||
struct device_node *boot_display = NULL;
|
||||
struct platform_device *dev;
|
||||
int ret;
|
||||
|
||||
/* Check if we have a MacOS display without a node spec */
|
||||
if (of_get_property(of_chosen, "linux,bootx-noscreen", NULL)) {
|
||||
/*
|
||||
* The old code tried to work out which node was the MacOS
|
||||
* display based on the address. I'm dropping that since the
|
||||
* lack of a node spec only happens with old BootX versions
|
||||
* (users can update) and with this code, they'll still get
|
||||
* a display (just not the palette hacks).
|
||||
*/
|
||||
dev = platform_device_alloc("bootx-noscreen", 0);
|
||||
if (WARN_ON(!dev))
|
||||
return -ENOMEM;
|
||||
ret = platform_device_add(dev);
|
||||
if (WARN_ON(ret)) {
|
||||
platform_device_put(dev);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* For OF framebuffers, first create the device for the boot display,
|
||||
* then for the other framebuffers. Only fail for the boot display;
|
||||
* ignore errors for the rest.
|
||||
*/
|
||||
for_each_node_by_type(node, "display") {
|
||||
if (!of_get_property(node, "linux,opened", NULL) ||
|
||||
!of_get_property(node, "linux,boot-display", NULL))
|
||||
continue;
|
||||
dev = of_platform_device_create(node, "of-display", NULL);
|
||||
if (WARN_ON(!dev))
|
||||
return -ENOMEM;
|
||||
boot_display = node;
|
||||
break;
|
||||
}
|
||||
for_each_node_by_type(node, "display") {
|
||||
if (!of_get_property(node, "linux,opened", NULL) || node == boot_display)
|
||||
continue;
|
||||
of_platform_device_create(node, "of-display", NULL);
|
||||
}
|
||||
|
||||
} else {
|
||||
/*
|
||||
* Handle certain compatibles explicitly, since we don't want to create
|
||||
* platform_devices for every node in /reserved-memory with a
|
||||
* "compatible",
|
||||
*/
|
||||
for_each_matching_node(node, reserved_mem_matches)
|
||||
of_platform_device_create(node, NULL, NULL);
|
||||
|
||||
node = of_find_node_by_path("/firmware");
|
||||
if (node) {
|
||||
of_platform_populate(node, NULL, NULL, NULL);
|
||||
of_node_put(node);
|
||||
}
|
||||
|
||||
node = of_get_compatible_child(of_chosen, "simple-framebuffer");
|
||||
of_platform_device_create(node, NULL, NULL);
|
||||
|
||||
node = of_find_node_by_path("/firmware");
|
||||
if (node) {
|
||||
of_platform_populate(node, NULL, NULL, NULL);
|
||||
of_node_put(node);
|
||||
|
||||
/* Populate everything else. */
|
||||
of_platform_default_populate(NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
node = of_get_compatible_child(of_chosen, "simple-framebuffer");
|
||||
of_platform_device_create(node, NULL, NULL);
|
||||
of_node_put(node);
|
||||
|
||||
/* Populate everything else. */
|
||||
of_platform_default_populate(NULL, NULL, NULL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
arch_initcall_sync(of_platform_default_populate_init);
|
||||
@@ -555,7 +601,6 @@ static int __init of_platform_sync_state_init(void)
|
||||
return 0;
|
||||
}
|
||||
late_initcall_sync(of_platform_sync_state_init);
|
||||
#endif
|
||||
|
||||
int of_platform_device_destroy(struct device *dev, void *data)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user