1. 21 10月, 2020 2 次提交
  2. 20 10月, 2020 6 次提交
  3. 19 10月, 2020 4 次提交
  4. 17 10月, 2020 13 次提交
  5. 16 10月, 2020 5 次提交
    • G
      drm/panel: mantix: Fix panel reset · 787099f8
      Guido Günther 提交于
      The mantix panel needs two reset lines (RESX and TP_RSTN) deasserted to
      output an image. Only deasserting RESX is not enough and the display
      will stay blank. Deassert in prepare() and assert in unprepare() to keep
      device held in reset when off.
      Signed-off-by: NGuido Günther <agx@sigxcpu.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/ba71a8ab010d263a8058dd4f711e3bcd95877bf2.1602584953.git.agx@sigxcpu.org
      787099f8
    • G
    • D
      drm/vkms: Switch to shmem helpers · 488c888a
      Daniel Vetter 提交于
      Inspired by a patch by Chris Wilson for vgem. Plus this gives us vmap
      at the gem bo level, which we need for generic fbdev emulation.
      
      Luckily shmem also tracks ->vaddr, so we just need to adjust the code
      all over a bit to make this fit.
      
      Also wire up handle_to_fd, dunno why that was missing.
      
      v2:
      - Drop now unused container_of #define (Melissa)
      - Make sure we keep creating cached objects, this is for testing
        (Thomas)
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Maxime Ripard <mripard@kernel.org>
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
      Cc: Melissa Wen <melissa.srw@gmail.com>
      Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
      Acked-by: NThomas Zimmermann <tzimmermann@suse.de>
      Reviewed-by: NMelissa Wen <melissa.srw@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201013111027.375999-1-daniel.vetter@ffwll.ch
      488c888a
    • D
      drm/vkms: Set preferred depth correctly · 063bc37d
      Daniel Vetter 提交于
      The only thing we support is xrgb8888.
      Acked-by: NThomas Zimmermann <tzimmermann@suse.de>
      Reviewed-by: NMelissa Wen <melissa.srw@gmail.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      Cc: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
      Cc: Melissa Wen <melissa.srw@gmail.com>
      Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201009232156.3916879-1-daniel.vetter@ffwll.ch
      063bc37d
    • Z
      drm/dp_aux_dev: check aux_dev before use in drm_dp_aux_dev_get_by_minor() · 73b62cdb
      Zwane Mwaikambo 提交于
      I observed this when unplugging a DP monitor whilst a computer is asleep
      and then waking it up. This left DP chardev nodes still being present on
      the filesystem and accessing these device nodes caused an oops because
      drm_dp_aux_dev_get_by_minor() assumes a device exists if it is opened.
      This can also be reproduced by creating a device node with mknod(1) and
      issuing an open(2)
      
      [166164.933198] BUG: kernel NULL pointer dereference, address: 0000000000000018
      [166164.933202] #PF: supervisor read access in kernel mode
      [166164.933204] #PF: error_code(0x0000) - not-present page
      [166164.933205] PGD 0 P4D 0
      [166164.933208] Oops: 0000 [#1] PREEMPT SMP NOPTI
      [166164.933211] CPU: 4 PID: 99071 Comm: fwupd Tainted: G        W
      5.8.0-rc6+ #1
      [166164.933213] Hardware name: LENOVO 20RD002VUS/20RD002VUS, BIOS R16ET25W
      (1.11 ) 04/21/2020
      [166164.933232] RIP: 0010:drm_dp_aux_dev_get_by_minor+0x29/0x70
      [drm_kms_helper]
      [166164.933234] Code: 00 0f 1f 44 00 00 55 48 89 e5 41 54 41 89 fc 48 c7
      c7 60 01 a4 c0 e8 26 ab 30 d7 44 89 e6 48 c7 c7 80 01 a4 c0 e8 47 94 d6 d6
      <8b> 50 18 49 89 c4 48 8d 78 18 85 d2 74 33 8d 4a 01 89 d0 f0 0f b1
      [166164.933236] RSP: 0018:ffffb7d7c41cbbf0 EFLAGS: 00010246
      [166164.933237] RAX: 0000000000000000 RBX: ffff8a90001fe900 RCX: 0000000000000000
      [166164.933238] RDX: 0000000000000000 RSI: 0000000000000003 RDI: ffffffffc0a40180
      [166164.933239] RBP: ffffb7d7c41cbbf8 R08: 0000000000000000 R09: ffff8a93e157d6d0
      [166164.933240] R10: 0000000000000000 R11: ffffffffc0a40188 R12: 0000000000000003
      [166164.933241] R13: ffff8a9402200e80 R14: ffff8a90001fe900 R15: 0000000000000000
      [166164.933244] FS:  00007f7fb041eb00(0000) GS:ffff8a9411500000(0000)
      knlGS:0000000000000000
      [166164.933245] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [166164.933246] CR2: 0000000000000018 CR3: 00000000352c2003 CR4: 00000000003606e0
      [166164.933247] Call Trace:
      [166164.933264]  auxdev_open+0x1b/0x40 [drm_kms_helper]
      [166164.933278]  chrdev_open+0xa7/0x1c0
      [166164.933282]  ? cdev_put.part.0+0x20/0x20
      [166164.933287]  do_dentry_open+0x161/0x3c0
      [166164.933291]  vfs_open+0x2d/0x30
      [166164.933297]  path_openat+0xb27/0x10e0
      [166164.933306]  ? atime_needs_update+0x73/0xd0
      [166164.933309]  do_filp_open+0x91/0x100
      [166164.933313]  ? __alloc_fd+0xb2/0x150
      [166164.933316]  do_sys_openat2+0x210/0x2d0
      [166164.933318]  do_sys_open+0x46/0x80
      [166164.933320]  __x64_sys_openat+0x20/0x30
      [166164.933328]  do_syscall_64+0x52/0xc0
      [166164.933336]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
      
      (gdb) disassemble drm_dp_aux_dev_get_by_minor+0x29
      Dump of assembler code for function drm_dp_aux_dev_get_by_minor:
         0x0000000000017b10 <+0>:     callq  0x17b15 <drm_dp_aux_dev_get_by_minor+5>
         0x0000000000017b15 <+5>:     push   %rbp
         0x0000000000017b16 <+6>:     mov    %rsp,%rbp
         0x0000000000017b19 <+9>:     push   %r12
         0x0000000000017b1b <+11>:    mov    %edi,%r12d
         0x0000000000017b1e <+14>:    mov    $0x0,%rdi
         0x0000000000017b25 <+21>:    callq  0x17b2a <drm_dp_aux_dev_get_by_minor+26>
         0x0000000000017b2a <+26>:    mov    %r12d,%esi
         0x0000000000017b2d <+29>:    mov    $0x0,%rdi
         0x0000000000017b34 <+36>:    callq  0x17b39 <drm_dp_aux_dev_get_by_minor+41>
         0x0000000000017b39 <+41>:    mov    0x18(%rax),%edx <=========
         0x0000000000017b3c <+44>:    mov    %rax,%r12
         0x0000000000017b3f <+47>:    lea    0x18(%rax),%rdi
         0x0000000000017b43 <+51>:    test   %edx,%edx
         0x0000000000017b45 <+53>:    je     0x17b7a <drm_dp_aux_dev_get_by_minor+106>
         0x0000000000017b47 <+55>:    lea    0x1(%rdx),%ecx
         0x0000000000017b4a <+58>:    mov    %edx,%eax
         0x0000000000017b4c <+60>:    lock cmpxchg %ecx,(%rdi)
         0x0000000000017b50 <+64>:    jne    0x17b76 <drm_dp_aux_dev_get_by_minor+102>
         0x0000000000017b52 <+66>:    test   %edx,%edx
         0x0000000000017b54 <+68>:    js     0x17b6d <drm_dp_aux_dev_get_by_minor+93>
         0x0000000000017b56 <+70>:    test   %ecx,%ecx
         0x0000000000017b58 <+72>:    js     0x17b6d <drm_dp_aux_dev_get_by_minor+93>
         0x0000000000017b5a <+74>:    mov    $0x0,%rdi
         0x0000000000017b61 <+81>:    callq  0x17b66 <drm_dp_aux_dev_get_by_minor+86>
         0x0000000000017b66 <+86>:    mov    %r12,%rax
         0x0000000000017b69 <+89>:    pop    %r12
         0x0000000000017b6b <+91>:    pop    %rbp
         0x0000000000017b6c <+92>:    retq
         0x0000000000017b6d <+93>:    xor    %esi,%esi
         0x0000000000017b6f <+95>:    callq  0x17b74 <drm_dp_aux_dev_get_by_minor+100>
         0x0000000000017b74 <+100>:   jmp    0x17b5a <drm_dp_aux_dev_get_by_minor+74>
         0x0000000000017b76 <+102>:   mov    %eax,%edx
         0x0000000000017b78 <+104>:   jmp    0x17b43 <drm_dp_aux_dev_get_by_minor+51>
         0x0000000000017b7a <+106>:   xor    %r12d,%r12d
         0x0000000000017b7d <+109>:   jmp    0x17b5a <drm_dp_aux_dev_get_by_minor+74>
      End of assembler dump.
      
      (gdb) list *drm_dp_aux_dev_get_by_minor+0x29
      0x17b39 is in drm_dp_aux_dev_get_by_minor (drivers/gpu/drm/drm_dp_aux_dev.c:65).
      60      static struct drm_dp_aux_dev *drm_dp_aux_dev_get_by_minor(unsigned index)
      61      {
      62              struct drm_dp_aux_dev *aux_dev = NULL;
      63
      64              mutex_lock(&aux_idr_mutex);
      65              aux_dev = idr_find(&aux_idr, index);
      66              if (!kref_get_unless_zero(&aux_dev->refcount))
      67                      aux_dev = NULL;
      68              mutex_unlock(&aux_idr_mutex);
      69
      (gdb) p/x &((struct drm_dp_aux_dev *)(0x0))->refcount
      $8 = 0x18
      
      Looking at the caller, checks on the minor are pushed down to
      drm_dp_aux_dev_get_by_minor()
      
      static int auxdev_open(struct inode *inode, struct file *file)
      {
          unsigned int minor = iminor(inode);
          struct drm_dp_aux_dev *aux_dev;
      
          aux_dev = drm_dp_aux_dev_get_by_minor(minor); <====
          if (!aux_dev)
              return -ENODEV;
      
          file->private_data = aux_dev;
          return 0;
      }
      
      Fixes: e94cb37b ("drm/dp: Add a drm_aux-dev module for reading/writing dpcd registers.")
      Cc: <stable@vger.kernel.org> # v4.6+
      Signed-off-by: NZwane Mwaikambo <zwane@yosper.io>
      Reviewed-by: NLyude Paul <lyude@redhat.com>
      [added Cc to stable]
      Signed-off-by: NLyude Paul <lyude@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/alpine.DEB.2.21.2010122231070.38717@montezuma.home
      73b62cdb
  6. 15 10月, 2020 5 次提交
  7. 14 10月, 2020 1 次提交
  8. 12 10月, 2020 1 次提交
    • R
      drm/aspeed: Fix Kconfig warning & subsequent build errors · bf296b35
      Randy Dunlap 提交于
      Kernel test robot reported build errors (undefined references)
      that didn't make much sense. After reproducing them, there is also
      a Kconfig warning that is the root cause of the build errors, so
      fix that Kconfig problem.
      
      Fixes this Kconfig warning:
      WARNING: unmet direct dependencies detected for CMA
        Depends on [n]: MMU [=n]
        Selected by [m]:
        - DRM_ASPEED_GFX [=m] && HAS_IOMEM [=y] && DRM [=m] && OF [=y] && (COMPILE_TEST [=y] || ARCH_ASPEED) && HAVE_DMA_CONTIGUOUS [=y]
      
      and these dependent build errors:
      (.text+0x10c8c): undefined reference to `start_isolate_page_range'
      microblaze-linux-ld: (.text+0x10f14): undefined reference to `test_pages_isolated'
      microblaze-linux-ld: (.text+0x10fd0): undefined reference to `undo_isolate_page_range'
      
      Fixes: 76356a96 ("drm: aspeed: Clean up Kconfig options")
      Reported-by: Nkernel test robot <lkp@intel.com>
      Signed-off-by: NRandy Dunlap <rdunlap@infradead.org>
      Reviewed-by: NJoel Stanley <joel@jms.id.au>
      Cc: Joel Stanley <joel@jms.id.au>
      Cc: Andrew Jeffery <andrew@aj.id.au>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Mike Rapoport <rppt@linux.ibm.com>
      Cc: linux-mm@kvack.org
      Cc: linux-aspeed@lists.ozlabs.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: David Airlie <airlied@linux.ie>
      Cc: dri-devel@lists.freedesktop.org
      Signed-off-by: NJoel Stanley <joel@jms.id.au>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201011230131.4922-1-rdunlap@infradead.orgSigned-off-by: NJoel Stanley <joel@jms.id.au>
      bf296b35
  9. 11 10月, 2020 2 次提交
  10. 09 10月, 2020 1 次提交