1. 29 8月, 2016 1 次提交
    • A
      drm/fb-helper: don't call remove_conflicting_framebuffers for FB=m && DRM=y · 749cc6f7
      Arnd Bergmann 提交于
      When CONFIG_DRM_KMS_FB_HELPER is disabled, we can have a configuration
      in which some DRM drivers are built-in, but the framebuffer core is a
      loadable module. This results in a link error, such as:
      
      drivers/gpu/drm/radeon/radeon.o: In function `radeon_pci_probe':
      radeon_kfd.c:(.text.radeon_pci_probe+0xbc): undefined reference to `remove_conflicting_framebuffers'
      drivers/gpu/drm/amd/amdgpu/amdgpu.o: In function `amdgpu_pci_probe':
      amdgpu_mn.c:(.text.amdgpu_pci_probe+0xa8): undefined reference to `remove_conflicting_framebuffers'
      drivers/gpu/drm/mgag200/mgag200.o: In function `mga_vram_init':
      mgag200_ttm.c:(.text.mga_vram_init+0xa8): undefined reference to `remove_conflicting_framebuffers'
      drivers/gpu/drm/mgag200/mgag200.o: In function `mga_pci_probe':
      mgag200_ttm.c:(.text.mga_pci_probe+0x88): undefined reference to `remove_conflicting_framebuffers'
      Makefile:969: recipe for target 'vmlinux' failed
      
      This changes the compile-time check to IS_REACHABLE, which means we end up
      not calling remove_conflicting_framebuffers() in the configuration, which
      seems good enough, as we know that no framebuffer driver is loaded by the
      time that the built-in DRM driver calls remove_conflicting_framebuffers.
      
      We could alternatively avoid the link error by forcing CONFIG_FB to not
      be a module in this case, but that wouldn't change anything at runtime,
      and just make the already convoluted set of dependencies worse here.
      
      I could not find out what happens if the fbdev driver gets loaded as
      a module after the DRM driver is already initialized, but that is a case
      that can happen with or without this patch.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Fixes: 0a3bfe29 ("drm/fb-helper: Fix the dummy remove_conflicting_framebuffers")
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: http://patchwork.freedesktop.org/patch/msgid/20160829123428.3260105-1-arnd@arndb.de
      Link: http://patchwork.freedesktop.org/patch/msgid/1472461923-14364-1-git-send-email-gnuiyl@gmail.com
      749cc6f7
  2. 24 8月, 2016 1 次提交
  3. 23 8月, 2016 2 次提交
  4. 17 8月, 2016 1 次提交
  5. 12 8月, 2016 1 次提交
  6. 09 6月, 2016 1 次提交
  7. 02 5月, 2016 1 次提交
  8. 12 2月, 2016 1 次提交
  9. 08 12月, 2015 2 次提交
  10. 17 9月, 2015 2 次提交
  11. 08 9月, 2015 1 次提交
  12. 06 8月, 2015 6 次提交
    • A
      drm: Add top level Kconfig option for DRM fbdev emulation · a03fdcb1
      Archit Taneja 提交于
      Legacy fbdev emulation support via DRM is achieved through KMS FB helpers.
      Most modesetting drivers enable provide fbdev emulation by default by
      selecting KMS FB helpers. A few provide a separate Kconfig option for the
      user to enable or disbale fbdev emulation.
      
      Enabling fbdev emulation is finally a distro-level decision. Having a top
      level Kconfig option for fbdev emulation helps by providing a uniform way
      to enable/disable fbdev emulation for any modesetting driver. It also lets
      us remove unnecessary driver specific Kconfig options that causes bloat.
      
      With a top level Kconfig in place, we can stub out the fb helper functions
      when not needed without breaking functionality. Having stub functions also
      prevents drivers to require wrapping fb helper function calls with #ifdefs.
      
      DRM_FBDEV_EMULATION defaults to y since many drivers enable fbdev
      emulation by default and majority of distributions expect the fbdev
      interface in the kernel.
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      a03fdcb1
    • A
      drm/fb_helper: Create a wrapper for fb_set_suspend · fdefa58a
      Archit Taneja 提交于
      Some drm drivers call fb_set_suspend. Create a drm_fb_helper function
      that wraps around these calls.
      
      This is part of an effort to prevent drm drivers from calling fbdev
      functions directly, in order to make fbdev emulation a top level drm
      option.
      
      v3:
      - Fixed kerneldoc errors
      
      v2:
      - Added kerneldocs
      - Added a check for non-NULL fb_helper before proceeding. This will
        make the helpers work when we have a module param for fbdev emulation
      - Follow the drm way of aligning of arguments in func definitions
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      fdefa58a
    • A
      drm/fb_helper: Create wrappers for blit, copyarea and fillrect funcs · 742547b7
      Archit Taneja 提交于
      drm drivers that emulate fbdev populate their fb_fillrect, fb_copyarea
      and fb_imageblit fb_ops with the help of cfb_* or sys_* fbdev core
      helper functions.
      
      Create drm_fb_helper functions that wrap around these calls.
      
      This is part of an effort to prevent drm drivers from calling fbdev
      functions directly, in order to make fbdev emulation a top level drm
      option.
      
      v3:
      - Fixed kerneldoc errors
      
      v2:
      - Added kerneldocs
      - Follow the drm way of aligning of arguments in func definitions
      - Remove unnecessary checks for non NULL fb_info
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      742547b7
    • A
      drm/fb_helper: Create wrappers for fb_sys_read/write funcs · cbb1a82e
      Archit Taneja 提交于
      Some drm drivers populate their fb_ops with fb_sys_read/write fb sysfs
      ops.
      
      Create a drm_fb_helper function that wraps around these calls.
      
      This is part of an effort to prevent drm drivers from calling fbdev
      functions directly, in order to make fbdev emulation a top level drm
      option.
      
      v3:
      - Fix kerneldoc errors
      
      v2:
      - Added kerneldocs
      - Follow the drm way of aligning of arguments in func definitions
      - Remove unnecessary checks for non NULL fb_info
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      cbb1a82e
    • A
      drm/fb_helper: Create a wrapper for unlink_framebuffer · 47074ab7
      Archit Taneja 提交于
      Some drm drivers call unlink_framebuffer. Create a drm_fb_helper function
      that wraps around these calls.
      
      This is part of an effort to prevent drm drivers from calling fbdev
      functions directly, in order to make fbdev emulation a top level drm
      option.
      
      v2:
      - Added kerneldocs
      - Added a check for non-NULL fb_helper before proceeding. This will
        make the helpers work when we have a module param for fbdev emulation
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      47074ab7
    • A
      drm/fb_helper: Add drm_fb_helper functions to manage fb_info creation · b8017d6c
      Archit Taneja 提交于
      Every drm driver calls framebuffer_alloc, fb_alloc_cmap,
      unregister_framebuffer, fb_dealloc_cmap and framebuffer_release in
      order to emulate fbdev support.
      
      Create drm_fb_helper functions that perform the above operations.
      
      This is part of an effort to prevent drm drivers from calling fbdev
      functions directly. It also removes repetitive code from drivers.
      
      There are some drivers that call alloc_apertures after framebuffer_alloc
      and some that don't. Make the helper always call alloc_apertures. This
      would make certain drivers allocate memory for apertures but not use
      them. Since it's a small amount of memory, it shouldn't be an issue.
      
      v2:
      - Added kerneldocs
      - Added a check for non-NULL fb_helper before proceeding. This will
        make the helpers work when we have a module param for fbdev emulation
      Signed-off-by: NArchit Taneja <architt@codeaurora.org>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      b8017d6c
  13. 12 3月, 2015 1 次提交
  14. 21 1月, 2015 1 次提交
  15. 09 12月, 2014 1 次提交
  16. 06 8月, 2014 1 次提交
    • C
      drm: Perform cmdline mode parsing during connector initialisation · eaf99c74
      Chris Wilson 提交于
      i915.ko has a custom fbdev initialisation routine that aims to preserve
      the current mode set by the BIOS, unless overruled by the user. The
      user's wishes are determined by what, if any, mode is specified on the
      command line (via the video= parameter). However, that command line mode
      is first parsed by drm_fb_helper_initial_config() which is called after
      i915.ko's custom initial_config() as a fallback method. So in order for
      us to honour it, we need to move the cmdline parser earlier. If we
      perform the connector cmdline parsing as soon as we initialise the
      connector, that cmdline mode and forced status is then available even if
      the fbdev helper is not compiled in or never called.
      
      We also then expose the cmdline user mode in the connector mode lists.
      
      v2: Rebase after connector->name upheaval.
      
      v3: Adapt mga200 to look for the cmdline mode in the new place. Nicely
      simplifies things while at that.
      
      v4: Fix checkpatch.
      
      v5: Select FB_CMDLINE to adapt to the changed fbdev patch.
      
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73154
      Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (v2)
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> (v2)
      Cc: dri-devel@lists.freedesktop.org
      Cc: Julia Lemire <jlemire@matrox.com>
      Cc: Dave Airlie <airlied@redhat.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      eaf99c74
  17. 08 7月, 2014 3 次提交
  18. 05 6月, 2014 1 次提交
  19. 19 2月, 2014 1 次提交
  20. 13 2月, 2014 1 次提交
  21. 10 5月, 2013 2 次提交
  22. 12 4月, 2013 1 次提交
  23. 27 3月, 2013 1 次提交
  24. 14 2月, 2013 4 次提交
    • D
      drm/fb-helper: remove unused members of struct drm_fb_helper · a065b46a
      Daniel Vetter 提交于
      Spotted by Rob Clark.
      Reviewed-by: NRob Clark <robdclark@gmail.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      a065b46a
    • D
      drm/fb-helper: improve kerneldoc · 207fd329
      Daniel Vetter 提交于
      Now that the fbdev helper interface for drivers is trimmed down,
      update the kerneldoc for all the remaining exported functions.
      
      I've tried to beat the DocBook a bit by reordering the function
      references a bit into a more sensible ordering. But that didn't work
      out at all. Hence just extend the in-code DOC: section a bit.
      
      Also remove the LOCKING: sections - especially for the setup functions
      they're totally bogus. But that's not a documentation problem, but
      simply an artifact of the current rather hazardous locking around drm
      init and even more so around fbdev setup ...
      
      v2: Some further improvements:
      - Also add documentation for drm_fb_helper_single_add_all_connectors,
        Dave Airlie didn't want me to kill this one from the fb helper
        interface.
      - Update docs for drm_fb_helper_fill_var/fix - they should be used
        from the driver's ->fb_probe callback to setup the fbdev info
        structure.
      - Clarify what the ->fb_probe callback should all do - it needs to
        setup both the fbdev info and allocate the drm framebuffer used as
        backing storage.
      - Add basic documentaation for the drm_fb_helper_funcs driver callback
        vfunc.
      
      v3: Implement clarifications Laurent Pinchart suggested in his review.
      
      v4: Fix another mispelling Laurent spotted.
      
      Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      207fd329
    • D
      drm/fb-helper: unexport drm_fb_helper_single_fb_probe · de1ace5b
      Daniel Vetter 提交于
      Not called by anyone, and really, shouldn't be. Drivers are supposed
      either drm_fb_helper_initial_config or drm_fb_helper_hotplug_event.
      Originally this was done differently, but is now consolidated in the
      helper functions and no longer done by drivers directly.
      Reviewed-by: NRob Clark <robdclark@gmail.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      de1ace5b
    • D
      drm/fb-helper: kill drm_fb_helper_restore · d21bf469
      Daniel Vetter 提交于
      It's only used internally for the sysrq and panic handlers provided by
      the drm fb helper implementation. Hence just inline it, kill the
      export and remove the confusing kerneldoc. Driver's are supposed to
      call drm_fb_helper_restore_fbdev_mode on lastclose.
      
      Note that locking is totally fubar - the sysrq case doesn't take any
      locks at all. The panic handler probably shouldn't take any locks
      since it'll only make things worse. Otoh it's probably better to
      switch things over to the atomic modeset callbacks (and disable the
      panic handler for those drivers which don't implement it).
      
      But that's both better done in separate patches.
      Reviewed-by: NRob Clark <robdclark@gmail.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      d21bf469
  25. 03 2月, 2012 2 次提交