Skip to content
  1. Apr 16, 2023
    • Daniel Vetter's avatar
      video/aperture: Only remove sysfb on the default vga pci device · 5ae3716c
      Daniel Vetter authored
      Instead of calling aperture_remove_conflicting_devices() to remove the
      conflicting devices, just call to aperture_detach_devices() to detach
      the device that matches the same PCI BAR / aperture range. Since the
      former is just a wrapper of the latter plus a sysfb_disable() call,
      and now that's done in this function but only for the primary devices.
      
      This fixes a regression introduced by commit ee7a69aa ("fbdev:
      Disable sysfb device registration when removing conflicting FBs"),
      where we remove the sysfb when loading a driver for an unrelated pci
      device, resulting in the user losing their efifb console or similar.
      
      Note that in practice this only is a problem with the nvidia blob,
      because that's the only gpu driver people might install which does not
      come with an fbdev driver of it's own. For everyone else the real gpu
      driver will restore a working console.
      
      Also note that in the referenced bug there's confusion that this same
      bug also happens on amdgpu. But that was just another amdgpu specific
      regression, which just happened to happen at roughly the same time and
      with the same user-observable symptoms. That bug is fixed now, see
      https://bugzilla.kernel.org/show_bug.cgi?id=216331#c15
      
      Note that we should not have any such issues on non-pci multi-gpu
      issues, because I could only find two such cases:
      - SoC with some external panel over spi or similar. These panel
        drivers do not use drm_aperture_remove_conflicting_framebuffers(),
        so no problem.
      - vga+mga, which is a direct console driver and entirely bypasses all
        this.
      
      For the above reasons the cc: stable is just notionally, this patch
      will need a backport and that's up to nvidia if they care enough.
      
      v2:
      - Explain a bit better why other multi-gpu that aren't pci shouldn't
        have any issues with making all this fully pci specific.
      
      v3
      - polish commit message (Javier)
      
      v4:
      - Fix commit message style (i.e., commit 1234 ("..."))
      - fix Daniel's S-o-b address
      
      v5:
      - add back an S-o-b tag with Daniel's Intel address
      
      Fixes: ee7a69aa
      
       ("fbdev: Disable sysfb device registration when removing conflicting FBs")
      Tested-by: default avatarAaron Plattner <aplattner@nvidia.com>
      Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=216303#c28
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Cc: Aaron Plattner <aplattner@nvidia.com>
      Cc: Javier Martinez Canillas <javierm@redhat.com>
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Cc: Helge Deller <deller@gmx.de>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Cc: Alex Deucher <alexander.deucher@amd.com>
      Cc: <stable@vger.kernel.org> # v5.19+ (if someone else does the backport)
      Link: https://patchwork.freedesktop.org/patch/msgid/20230406132109.32050-8-tzimmermann@suse.de
      5ae3716c
    • Daniel Vetter's avatar
      video/aperture: Drop primary argument · 5fbcc670
      Daniel Vetter authored
      
      
      With the preceding patches it's become defunct. Also I'm about to add
      a different boolean argument, so it's better to keep the confusion
      down to the absolute minimum.
      
      v2: Since the hypervfb patch got droppped (it's only a pci device for
      gen1 vm, not for gen2) there is one leftover user in an actual driver
      left to touch.
      
      v4:
      - fixes to commit message
      - fix Daniel's S-o-b address
      
      v5:
      - add back an S-o-b tag with Daniel's Intel address
      
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Cc: Javier Martinez Canillas <javierm@redhat.com>
      Cc: Helge Deller <deller@gmx.de>
      Cc: linux-fbdev@vger.kernel.org
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Maxime Ripard <mripard@kernel.org>
      Cc: "K. Y. Srinivasan" <kys@microsoft.com>
      Cc: Haiyang Zhang <haiyangz@microsoft.com>
      Cc: Wei Liu <wei.liu@kernel.org>
      Cc: Dexuan Cui <decui@microsoft.com>
      Cc: linux-hyperv@vger.kernel.org
      Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230406132109.32050-7-tzimmermann@suse.de
      5fbcc670
    • Daniel Vetter's avatar
      video/aperture: Move vga handling to pci function · f1d599d3
      Daniel Vetter authored
      
      
      A few reasons for this:
      
      - It's really the only one where this matters. I tried looking around,
        and I didn't find any non-pci vga-compatible controllers for x86
        (since that's the only platform where we had this until a few
        patches ago), where a driver participating in the aperture claim
        dance would interfere.
      
      - I also don't expect that any future bus anytime soon will
        not just look like pci towards the OS, that's been the case for like
        25+ years by now for practically everything (even non non-x86).
      
      - Also it's a bit funny if we have one part of the vga removal in the
        pci function, and the other in the generic one.
      
      v2: Rebase.
      
      v4:
      - fix Daniel's S-o-b address
      
      v5:
      - add back an S-o-b tag with Daniel's Intel address
      
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Cc: Javier Martinez Canillas <javierm@redhat.com>
      Cc: Helge Deller <deller@gmx.de>
      Cc: linux-fbdev@vger.kernel.org
      Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230406132109.32050-6-tzimmermann@suse.de
      f1d599d3
    • Daniel Vetter's avatar
      video/aperture: Only kick vgacon when the pdev is decoding vga · 7450cd23
      Daniel Vetter authored
      
      
      Otherwise it's a bit silly, and we might throw out the driver for the
      screen the user is actually looking at. I haven't found a bug report
      for this case yet, but we did get bug reports for the analog case
      where we're throwing out the efifb driver.
      
      v2: Flip the check around to make it clear it's a special case for
      kicking out the vgacon driver only (Thomas)
      
      v4:
      - fixes to commit message
      - fix Daniel's S-o-b address
      
      v5:
      - add back an S-o-b tag with Daniel's Intel address
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=216303
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Cc: Javier Martinez Canillas <javierm@redhat.com>
      Cc: Helge Deller <deller@gmx.de>
      Cc: linux-fbdev@vger.kernel.org
      Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230406132109.32050-5-tzimmermann@suse.de
      7450cd23
    • Daniel Vetter's avatar
      drm/aperture: Remove primary argument · 62aeaeaa
      Daniel Vetter authored
      
      
      Only really pci devices have a business setting this - it's for
      figuring out whether the legacy vga stuff should be nuked too. And
      with the preceding two patches those are all using the pci version of
      this.
      
      Which means for all other callers primary == false and we can remove
      it now.
      
      v2:
      - Reorder to avoid compile fail (Thomas)
      - Include gma500, which retained it's called to the non-pci version.
      
      v4:
      - fix Daniel's S-o-b address
      
      v5:
      - add back an S-o-b tag with Daniel's Intel address
      
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Cc: Javier Martinez Canillas <javierm@redhat.com>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Maxime Ripard <mripard@kernel.org>
      Cc: Deepak Rawat <drawat.floss@gmail.com>
      Cc: Neil Armstrong <neil.armstrong@linaro.org>
      Cc: Kevin Hilman <khilman@baylibre.com>
      Cc: Jerome Brunet <jbrunet@baylibre.com>
      Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
      Cc: Thierry Reding <thierry.reding@gmail.com>
      Cc: Jonathan Hunter <jonathanh@nvidia.com>
      Cc: Emma Anholt <emma@anholt.net>
      Cc: Helge Deller <deller@gmx.de>
      Cc: David Airlie <airlied@gmail.com>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: linux-hyperv@vger.kernel.org
      Cc: linux-amlogic@lists.infradead.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-tegra@vger.kernel.org
      Cc: linux-fbdev@vger.kernel.org
      Acked-by: default avatarMartin Blumenstingl <martin.blumenstingl@googlemail.com>
      Acked-by: default avatarThierry Reding <treding@nvidia.com>
      Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230406132109.32050-4-tzimmermann@suse.de
      62aeaeaa
    • Daniel Vetter's avatar
      video/aperture: use generic code to figure out the vga default device · db082219
      Daniel Vetter authored
      Since vgaarb has been promoted to be a core piece of the pci subsystem
      we don't have to open code random guesses anymore, we actually know
      this in a platform agnostic way, and there's no need for an x86
      specific hack. See also commit 1d38fe6e
      
       ("PCI/VGA: Move vgaarb to
      drivers/pci")
      
      This should not result in any functional change, and the non-x86
      multi-gpu pci systems are probably rare enough to not matter (I don't
      know of any tbh). But it's a nice cleanup, so let's do it.
      
      There's been a few questions on previous iterations on dri-devel and
      irc:
      
      - fb_is_primary_device() seems to be yet another implementation of
        this theme, and at least on x86 it checks for both
        vga_default_device OR rom shadowing. There shouldn't ever be a case
        where rom shadowing gives any additional hints about the boot vga
        device, but if there is then the default vga selection in vgaarb
        should probably be fixed. And not special-case checks replicated all
        over.
      
      - Thomas also brought up that on most !x86 systems
        fb_is_primary_device() returns 0, except on sparc/parisc. But these
        2 special cases are about platform specific devices and not pci, so
        shouldn't have any interactions.
      
      - Furthermore fb_is_primary_device() is a bit a red herring since it's
        only used to select the right fbdev driver for fbcon, and not for
        the fw handover dance which the aperture helpers handle. At least
        for x86 we might want to look into unifying them, but that's a
        separate thing.
      
      v2: Extend commit message trying to summarize various discussions.
      
      v4:
      - make the test for the primary device easier to read (Javier)
      - fix commit message style (i.e., commit 1234 ("..."))
      - fix Daniel's S-o-b address
      
      v5:
      - add back an S-o-b tag with Daniel's Intel address
      
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Cc: Javier Martinez Canillas <javierm@redhat.com>
      Cc: Helge Deller <deller@gmx.de>
      Cc: linux-fbdev@vger.kernel.org
      Cc: Bjorn Helgaas <bhelgaas@google.com>
      Cc: linux-pci@vger.kernel.org
      Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230406132109.32050-3-tzimmermann@suse.de
      db082219
    • Daniel Vetter's avatar
      drm/gma500: Use drm_aperture_remove_conflicting_pci_framebuffers · 80e99398
      Daniel Vetter authored
      
      
      This one nukes all framebuffers, which is a bit much. In reality
      gma500 is igpu and never shipped with anything discrete, so there should
      not be any difference.
      
      v2: Unfortunately the framebuffer sits outside of the pci bars for
      gma500, and so only using the pci helpers won't be enough. Otoh if we
      only use non-pci helper, then we don't get the vga handling, and
      subsequent refactoring to untangle these special cases won't work.
      
      It's not pretty, but the simplest fix (since gma500 really is the only
      quirky pci driver like this we have) is to just have both calls.
      
      v4:
      - fix Daniel's S-o-b address
      
      v5:
      - add back an S-o-b tag with Daniel's Intel address
      
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Cc: Javier Martinez Canillas <javierm@redhat.com>
      Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230406132109.32050-2-tzimmermann@suse.de
      80e99398
    • Dan Carpenter's avatar
      drm/imx/lcdc: fix a NULL vs IS_ERR() bug in probe · dae2f7b8
      Dan Carpenter authored
      The devm_drm_dev_alloc() function returns error pointers.  It never
      returns NULL.  Fix the check.
      
      Fixes: c87e859c
      
       ("drm/imx/lcdc: Implement DRM driver for imx25")
      Signed-off-by: default avatarDan Carpenter <error27@gmail.com>
      Reviewed-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Signed-off-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/d0a1fc55-3ef6-444e-b3ef-fdc937d8d57a@kili.mountain
      dae2f7b8
  2. Apr 15, 2023
  3. Apr 12, 2023
  4. Apr 11, 2023
  5. Apr 07, 2023
  6. Apr 06, 2023