]> Git Repo - linux.git/commitdiff
Merge tag 'drm-misc-next-2024-08-01' of https://gitlab.freedesktop.org/drm/misc/kerne...
authorDaniel Vetter <[email protected]>
Thu, 8 Aug 2024 16:58:45 +0000 (18:58 +0200)
committerDaniel Vetter <[email protected]>
Thu, 8 Aug 2024 16:58:46 +0000 (18:58 +0200)
drm-misc-next for v6.12:

UAPI Changes:

virtio:
- Define DRM capset

Cross-subsystem Changes:

dma-buf:
- heaps: Clean up documentation

printk:
- Pass description to kmsg_dump()

Core Changes:

CI:
- Update IGT tests
- Point upstream repo to GitLab instance

modesetting:
- Introduce Power Saving Policy property for connectors
- Add might_fault() to drm_modeset_lock priming
- Add dynamic per-crtc vblank configuration support

panic:
- Avoid build-time interference with framebuffer console

docs:
- Document Colorspace property

scheduler:
- Remove full_recover from drm_sched_start

TTM:
- Make LRU walk restartable after dropping locks
- Allow direct reclaim to allocate local memory

Driver Changes:

amdgpu:
- Support Power Saving Policy connector property

ast:
- astdp: Support AST2600 with VGA; Clean up HPD

bridge:
- Silence error message on -EPROBE_DEFER
- analogix: Clean aup
- bridge-connector: Fix double free
- lt6505: Disable interrupt when powered off
- tc358767: Make default DP port preemphasis configurable

gma500:
- Update i2c terminology

ivpu:
- Add MODULE_FIRMWARE()

lcdif:
- Fix pixel clock

loongson:
- Use GEM refcount over TTM's

mgag200:
- Improve BMC handling
- Support VBLANK intterupts

nouveau:
- Refactor and clean up internals
- Use GEM refcount over TTM's

panel:
- Shutdown fixes plus documentation
- Refactor several drivers for better code sharing
- boe-th101mb31ig002: Support for starry-er88577 MIPI-DSI panel plus
  DT; Fix porch parameter
- edp: Support AOU B116XTN02.3, AUO B116XAN06.1, AOU B116XAT04.1,
  BOE NV140WUM-N41, BOE NV133WUM-N63, BOE NV116WHM-A4D, CMN N116BCA-EA2,
  CMN N116BCP-EA2, CSW MNB601LS1-4
- himax-hx8394: Support Microchip AC40T08A MIPI Display panel plus DT
- ilitek-ili9806e: Support Densitron DMT028VGHMCMI-1D TFT plus DT
- jd9365da: Support Melfas lmfbx101117480 MIPI-DSI panel plus DT; Refactor
  for code sharing

sti:
- Fix module owner

stm:
- Avoid UAF wih managed plane and CRTC helpers
- Fix module owner
- Fix error handling in probe
- Depend on COMMON_CLK
- ltdc: Fix transparency after disabling plane; Remove unused interrupt

tegra:
- Call drm_atomic_helper_shutdown()

v3d:
- Clean up perfmon

vkms:
- Clean up

Signed-off-by: Daniel Vetter <[email protected]>
From: Thomas Zimmermann <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
21 files changed:
1  2 
MAINTAINERS
drivers/gpu/drm/Kconfig
drivers/gpu/drm/ast/ast_dp.c
drivers/gpu/drm/ast/ast_drv.h
drivers/gpu/drm/ast/ast_mode.c
drivers/gpu/drm/drm_fb_helper.c
drivers/gpu/drm/gma500/cdv_intel_lvds.c
drivers/gpu/drm/gma500/psb_intel_lvds.c
drivers/gpu/drm/nouveau/nouveau_bo.c
drivers/gpu/drm/nouveau/nouveau_chan.c
drivers/gpu/drm/nouveau/nouveau_dmem.c
drivers/gpu/drm/nouveau/nouveau_fence.c
drivers/gpu/drm/nouveau/nouveau_gem.c
drivers/gpu/drm/panthor/panthor_sched.c
drivers/gpu/drm/stm/lvds.c
drivers/gpu/drm/ttm/ttm_bo.c
drivers/gpu/drm/v3d/v3d_sched.c
drivers/gpu/drm/xe/xe_vm.c
fs/pstore/platform.c
kernel/panic.c
kernel/printk/printk.c

diff --cc MAINTAINERS
Simple merge
Simple merge
index e6c7f0d64e99592534d1736013647972b83e64b7,bae004b7fda29286b18fb26b7975c59d64b5fad8..5d07678b502c2dfd36ce418e4ff71a76807590eb
@@@ -130,42 -95,32 +95,39 @@@ out
  /*
   * Launch Aspeed DP
   */
void ast_dp_launch(struct drm_device *dev)
int ast_dp_launch(struct ast_device *ast)
  {
-       u32 i = 0;
-       u8 bDPExecute = 1;
-       struct ast_device *ast = to_ast_device(dev);
+       struct drm_device *dev = &ast->base;
+       unsigned int i = 10;
  
-       // Wait one second then timeout.
-       while (ast_get_index_reg_mask(ast, AST_IO_VGACRI, 0xD1, ASTDP_MCU_FW_EXECUTING) !=
-               ASTDP_MCU_FW_EXECUTING) {
-               i++;
-               // wait 100 ms
-               msleep(100);
+       while (i) {
+               u8 vgacrd1 = ast_get_index_reg(ast, AST_IO_VGACRI, 0xd1);
  
-               if (i >= 10) {
-                       // DP would not be ready.
-                       bDPExecute = 0;
+               if (vgacrd1 & AST_IO_VGACRD1_MCU_FW_EXECUTING)
                        break;
-               }
+               --i;
+               msleep(100);
        }
-       if (!bDPExecute)
+       if (!i) {
                drm_err(dev, "Wait DPMCU executing timeout\n");
+               return -ENODEV;
+       }
  
-       ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xE5,
-                              (u8) ~ASTDP_HOST_EDID_READ_DONE_MASK,
-                              ASTDP_HOST_EDID_READ_DONE);
+       ast_set_index_reg_mask(ast, AST_IO_VGACRI, 0xe5,
+                              (u8) ~AST_IO_VGACRE5_EDID_READ_DONE,
+                              AST_IO_VGACRE5_EDID_READ_DONE);
+       return 0;
  }
  
 +bool ast_dp_power_is_on(struct ast_device *ast)
 +{
 +      u8 vgacre3;
 +
 +      vgacre3 = ast_get_index_reg(ast, AST_IO_VGACRI, 0xe3);
  
 +      return !(vgacre3 & AST_DP_PHY_SLEEP);
 +}
  
  void ast_dp_power_on_off(struct drm_device *dev, bool on)
  {
index 47bab5596c16ed24714bb000e4305d0564556745,b54a89676e9f78f1df520f356bf8b0e7269570f0..d23b98ce4359899b01d9a52544aef37b9c7f6f4a
@@@ -471,9 -471,9 +471,10 @@@ void ast_init_3rdtx(struct drm_device *
  /* aspeed DP */
  bool ast_astdp_is_connected(struct ast_device *ast);
  int ast_astdp_read_edid(struct drm_device *dev, u8 *ediddata);
- void ast_dp_launch(struct drm_device *dev);
+ int ast_dp_launch(struct ast_device *ast);
 +bool ast_dp_power_is_on(struct ast_device *ast);
  void ast_dp_power_on_off(struct drm_device *dev, bool no);
+ void ast_dp_link_training(struct ast_device *ast);
  void ast_dp_set_on_off(struct drm_device *dev, bool no);
  void ast_dp_set_mode(struct drm_crtc *crtc, struct ast_vbios_mode_info *vbios_mode);
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 9bd7453b25ad23ada992789423dd55c2221628d4,fd29a00b233c0ba57ee26ecacb47fc0d9206e9db..42d4f4a2dba2a2f98ba8c035e93c6b9abedeb446
@@@ -351,8 -353,8 +353,7 @@@ v3d_rewrite_csd_job_wg_counts_from_indi
        struct v3d_bo *bo = to_v3d_bo(job->base.bo[0]);
        struct v3d_bo *indirect = to_v3d_bo(indirect_csd->indirect);
        struct drm_v3d_submit_csd *args = &indirect_csd->job->args;
--      struct v3d_dev *v3d = job->base.v3d;
--      u32 num_batches, *wg_counts;
++      u32 *wg_counts;
  
        v3d_get_bo_vaddr(bo);
        v3d_get_bo_vaddr(indirect);
        args->cfg[0] = wg_counts[0] << V3D_CSD_CFG012_WG_COUNT_SHIFT;
        args->cfg[1] = wg_counts[1] << V3D_CSD_CFG012_WG_COUNT_SHIFT;
        args->cfg[2] = wg_counts[2] << V3D_CSD_CFG012_WG_COUNT_SHIFT;
--
--      num_batches = DIV_ROUND_UP(indirect_csd->wg_size, 16) *
--                    (wg_counts[0] * wg_counts[1] * wg_counts[2]);
--
--      /* V3D 7.1.6 and later don't subtract 1 from the number of batches */
--      if (v3d->ver < 71 || (v3d->ver == 71 && v3d->rev < 6))
--              args->cfg[4] = num_batches - 1;
--      else
--              args->cfg[4] = num_batches;
--
--      WARN_ON(args->cfg[4] == ~0);
++      args->cfg[4] = DIV_ROUND_UP(indirect_csd->wg_size, 16) *
++                     (wg_counts[0] * wg_counts[1] * wg_counts[2]) - 1;
  
        for (int i = 0; i < 3; i++) {
                /* 0xffffffff indicates that the uniform rewrite is not needed */
index f225107bdd65dcafef5ad6651a527776388e554a,c3bdb6362fe980d0662ee66e53a656346b6ea623..b715883f40d838d3dc58c0b2b97d42ada923db40
@@@ -1670,10 -1604,7 +1673,11 @@@ static void vm_destroy_work_func(struc
                XE_WARN_ON(vm->pt_root[id]);
  
        trace_xe_vm_free(vm);
+       ttm_lru_bulk_move_fini(&xe->ttm, &vm->lru_bulk_move);
 +
 +      if (vm->xef)
 +              xe_file_put(vm->xef);
 +
        kfree(vm);
  }
  
Simple merge
diff --cc kernel/panic.c
Simple merge
Simple merge
This page took 0.182742 seconds and 4 git commands to generate.