21 May, 2013

2 commits

  • Pull radeon sun/hainan support from Dave Airlie:
    "Since I know its outside the merge window, but since this is new hw I
    thought I'd try and provoke the new hw exception, it just fills in the
    blanks in the driver for the new AMD sun and hainan chipsets."

    * 'drm-radeon-sun-hainan' of git://people.freedesktop.org/~airlied/linux:
    drm/radeon: add Hainan pci ids
    drm/radeon: add golden register settings for Hainan (v2)
    drm/radeon: sun/hainan chips do not have UVD (v2)
    drm/radeon: track which asics have UVD
    drm/radeon: radeon-asic updates for Hainan
    drm/radeon: fill in ucode loading support for Hainan
    drm/radeon: don't touch DCE or VGA regs on Hainan (v3)
    drm/radeon: fill in GPU init for Hainan (v2)
    drm/radeon: add chip family for Hainan

    Linus Torvalds
     
  • Signed-off-by: Alex Deucher
    Reviewed-by: Christian König

    Alex Deucher
     

17 May, 2013

1 commit

  • Pull drm fixes from Dave Airlie:
    "Fix for radeon nomodeset regression, old radeon interface cliprects
    fix, 2 qxl crasher fixes, and a couple of minor cleanups.

    I may have a new AMD hw support branch next week, its one of those
    doesn't affect anything existing just adds new support, I'll see how
    it shapes up and I might ask you to take it, just thought I'd warn in
    advance."

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux:
    drm/radeon: restore nomodeset operation (v2)
    qxl: fix bug with object eviction and update area
    drm/qxl: drop active_user_framebuffer as its unneeded
    qxl: drop unused variable.
    drm/qxl: fix ioport interactions for kernel submitted commands.
    drm: remove unused wrapper macros
    drm/radeon: check incoming cliprects pointer

    Linus Torvalds
     

13 May, 2013

2 commits

  • Pull drm fixes from Dave Airlie:
    "Just a few straggling fixes I hoovered up, and an intel fixes pull
    from Daniel which fixes some regressions, and some mgag200 fixes from
    Matrox."

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux:
    drm/mgag200: Fix framebuffer base address programming
    drm/mgag200: Convert counter delays to jiffies
    drm/mgag200: Fix writes into MGA1064_PIX_CLK_CTL register
    drm/mgag200: Don't change unrelated registers during modeset
    drm: Only print a debug message when the polled connector has changed
    drm: Make the HPD status updates debug logs more readable
    drm: Use names of ioctls in debug traces
    drm: Remove pointless '-' characters from drm_fb_helper documentation
    drm: Add kernel-doc for drm_fb_helper_funcs->initial_config
    drm: refactor call to request_module
    drm: Don't prune modes loudly when a connector is disconnected
    drm: Add missing break in the command line mode parsing code
    drm/i915: clear the stolen fb before resuming
    Revert "drm/i915: Calculate correct stolen size for GEN7+"
    drm/i915: hsw: fix link training for eDP on port-A
    Revert "drm/i915: revert eDP bpp clamping code changes"
    drm: don't check modeset locks in panic handler
    drm/i915: Fix pipe enabled mask for pipe C in WM calculations
    drm/mm: fix dump table BUG
    drm/i915: Always normalize return timeout for wait_timeout_ioctl

    Linus Torvalds
     
  • We don't use these anymore so nuke them.

    Signed-off-by: Dave Airlie

    Dave Airlie
     

10 May, 2013

3 commits

  • The intention here is to make the output of dmesg with full verbosity a
    bit easier for a human to parse. This commit transforms:

    [drm:drm_ioctl], pid=699, cmd=0x6458, nr=0x58, dev 0xe200, auth=1
    [drm:drm_ioctl], pid=699, cmd=0xc010645b, nr=0x5b, dev 0xe200, auth=1
    [drm:drm_ioctl], pid=699, cmd=0xc0106461, nr=0x61, dev 0xe200, auth=1
    [drm:drm_ioctl], pid=699, cmd=0xc01c64ae, nr=0xae, dev 0xe200, auth=1
    [drm:drm_mode_addfb], [FB:32]
    [drm:drm_ioctl], pid=699, cmd=0xc0106464, nr=0x64, dev 0xe200, auth=1
    [drm:drm_vm_open_locked], 0x7fd9302fe000,0x00a00000
    [drm:drm_ioctl], pid=699, cmd=0x400c645f, nr=0x5f, dev 0xe200, auth=1
    [drm:drm_ioctl], pid=699, cmd=0xc00464af, nr=0xaf, dev 0xe200, auth=1
    [drm:intel_crtc_set_config], [CRTC:3] [NOFB]

    into:

    [drm:drm_ioctl], pid=699, dev=0xe200, auth=1, I915_GEM_THROTTLE
    [drm:drm_ioctl], pid=699, dev=0xe200, auth=1, I915_GEM_CREATE
    [drm:drm_ioctl], pid=699, dev=0xe200, auth=1, I915_GEM_SET_TILING
    [drm:drm_ioctl], pid=699, dev=0xe200, auth=1, IOCTL_MODE_ADDFB
    [drm:drm_mode_addfb], [FB:32]
    [drm:drm_ioctl], pid=699, dev=0xe200, auth=1, I915_GEM_MMAP_GTT
    [drm:drm_vm_open_locked], 0x7fd9302fe000,0x00a00000
    [drm:drm_ioctl], pid=699, dev=0xe200, auth=1, I915_GEM_SET_DOMAIN
    [drm:drm_ioctl], pid=699, dev=0xe200, auth=1, DRM_IOCTL_MODE_RMFB
    [drm:intel_crtc_set_config], [CRTC:3] [NOFB]

    v2: drm_ioctls is now a constant (Ville Syrjälä)

    Signed-off-by: Chris Cummins
    Signed-off-by: Dave Airlie

    Chris Cummins
     
  • Signed-off-by: Ville Syrjälä
    Signed-off-by: Dave Airlie

    Ville Syrjälä
     
  • Signed-off-by: Ville Syrjälä
    Signed-off-by: Dave Airlie

    Ville Syrjälä
     

03 May, 2013

1 commit

  • Pull drm updates from Dave Airlie:
    "This is the main drm pull request for 3.10.

    Wierd bits:
    - OMAP drm changes required OMAP dss changes, in drivers/video, so I
    took them in here.
    - one more fbcon fix for font handover
    - VT switch avoidance in pm code
    - scatterlist helpers for gpu drivers - have acks from akpm

    Highlights:
    - qxl kms driver - driver for the spice qxl virtual GPU

    Nouveau:
    - fermi/kepler VRAM compression
    - GK110/nvf0 modesetting support.

    Tegra:
    - host1x core merged with 2D engine support

    i915:
    - vt switchless resume
    - more valleyview support
    - vblank fixes
    - modesetting pipe config rework

    radeon:
    - UVD engine support
    - SI chip tiling support
    - GPU registers initialisation from golden values.

    exynos:
    - device tree changes
    - fimc block support

    Otherwise:
    - bunches of fixes all over the place."

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (513 commits)
    qxl: update to new idr interfaces.
    drm/nouveau: fix build with nv50->nvc0
    drm/radeon: fix handling of v6 power tables
    drm/radeon: clarify family checks in pm table parsing
    drm/radeon: consolidate UVD clock programming
    drm/radeon: fix UPLL_REF_DIV_MASK definition
    radeon: add bo tracking debugfs
    drm/radeon: add new richland pci ids
    drm/radeon: add some new SI PCI ids
    drm/radeon: fix scratch reg handling for UVD fence
    drm/radeon: allocate SA bo in the requested domain
    drm/radeon: fix possible segfault when parsing pm tables
    drm/radeon: fix endian bugs in atom_allocate_fb_scratch()
    OMAPDSS: TFP410: return EPROBE_DEFER if the i2c adapter not found
    OMAPDSS: VENC: Add error handling for venc_probe_pdata
    OMAPDSS: HDMI: Add error handling for hdmi_probe_pdata
    OMAPDSS: RFBI: Add error handling for rfbi_probe_pdata
    OMAPDSS: DSI: Add error handling for dsi_probe_pdata
    OMAPDSS: SDI: Add error handling for sdi_probe_pdata
    OMAPDSS: DPI: Add error handling for dpi_probe_pdata
    ...

    Linus Torvalds
     

02 May, 2013

4 commits


01 May, 2013

1 commit

  • Currently we have a problem with this:
    1. i915: create gem object
    2. i915: export gem object to prime
    3. radeon: import gem object
    4. close prime fd
    5. radeon: unref object
    6. i915: unref object

    i915 has an imported object reference in its file priv, that isn't
    cleaned up properly until fd close. The reference gets added at step 2,
    but at step 6 we don't have enough info to clean it up.

    The solution is to take a reference on the dma-buf when we export it,
    and drop the reference when the gem handle goes away.

    So when we export a dma_buf from a gem object, we keep track of it
    with the handle, we take a reference to the dma_buf. When we close
    the handle (i.e. userspace is finished with the buffer), we drop
    the reference to the dma_buf, and it gets collected.

    This patch isn't meant to fix any other problem or bikesheds, and it doesn't
    fix any races with other scenarios.

    v1.1: move export symbol line back up.

    v2: okay I had to do a bit more, as the first patch showed a leak
    on one of my tests, that I found using the dma-buf debugfs support,
    the problem case is exporting a buffer twice with the same handle,
    we'd add another export handle for it unnecessarily, however
    we now fail if we try to export the same object with a different gem handle,
    however I'm not sure if that is a case I want to support, and I've
    gotten the code to WARN_ON if we hit something like that.

    v2.1: rebase this patch, write better commit msg.
    v3: cleanup error handling, track import vs export in linked list,
    these two patches were separate previously, but seem to work better
    like this.
    v4: danvet is correct, this code is no longer useful, since the buffer
    better exist, so remove it.
    v5: always take a reference to the dma buf object, import or export.
    (Imre Deak contributed this originally)
    v6: square the circle, remove import vs export tracking now
    that there is no difference

    Reviewed-by: Daniel Vetter
    Cc: stable@vger.kernel.org
    Signed-off-by: Dave Airlie

    Dave Airlie
     

30 Apr, 2013

2 commits

  • There is no way to use modes added to the user_modes list. We never
    look at the contents of said list in the kernel, and the only operations
    userspace can do are attach and detach. So the only "benefit" of this
    interface is wasting kernel memory.

    Fortunately it seems no real user space application ever used these
    ioctls. So just kill them.

    Also remove the prototypes for the non-existing drm_mode_addmode_ioctl()
    and drm_mode_rmmode_ioctl() functions.

    v2: Use drm_noop instead of completely removing the ioctls

    Signed-off-by: Ville Syrjälä
    Signed-off-by: Dave Airlie

    Ville Syrjälä
     
  • drivers/gpu/drm/drm_pci.c:155:5: warning: symbol 'drm_pci_set_busid' was not declared. Should it be static?
    drivers/gpu/drm/drm_pci.c:197:5: warning: symbol 'drm_pci_set_unique' was not declared. Should it be static?
    drivers/gpu/drm/drm_pci.c:269:5: warning: symbol 'drm_pci_agp_init' was not declared. Should it be static?

    drivers/gpu/drm/drm_crtc.c:181:1: warning: symbol 'drm_get_dirty_info_name' was not declared. Should it be static?
    drivers/gpu/drm/drm_crtc.c:1123:5: warning: symbol 'drm_mode_group_init' was not declared. Should it be static?

    drivers/gpu/drm/drm_modes.c:918:6: warning: symbol 'drm_mode_validate_clocks' was not declared. Should it be static?

    Signed-off-by: Ville Syrjälä
    Signed-off-by: Dave Airlie

    Ville Syrjälä
     

26 Apr, 2013

2 commits

  • drm_mode_equal_no_clocks() is like drm_mode_equal() except it doesn't
    compare the clock or vrefresh values. drm_mode_equal() is now
    implemented by first doing the clock checks, and then calling
    drm_mode_equal_no_clocks().

    v2: Add missing EXPORT_SYMBOL()

    Reviewed-by: Paulo Zanoni
    Signed-off-by: Ville Syrjälä
    Signed-off-by: Dave Airlie

    Ville Syrjälä
     
  • No need to zero initialize .vrefresh in DRM_MODE() since it's using
    desgignated initializers.

    This will also avoid some duplicate initialization warnings later.

    Reviewed-by: Paulo Zanoni
    Signed-off-by: Ville Syrjälä
    Signed-off-by: Dave Airlie

    Ville Syrjälä
     

24 Apr, 2013

1 commit

  • Some devices (ATI/AMD cards) don't support passing ELD struct to the
    hardware but just require filling specific registers and then the
    hardware/firmware does the rest. In such cases we need to read the info
    from SAD blocks and put them in the correct registers.

    agd5f: note that the returned pointer needs to be kfreed as per
    Christian's suggestion.

    v2: fix warning

    Signed-off-by: Rafał Miłecki
    Reviewed-by: Christian König
    Signed-off-by: Alex Deucher

    Rafał Miłecki
     

16 Apr, 2013

1 commit

  • …m-intel into drm-next

    Daniel writes:
    Since I expect Linus to open the merge window in about a week I guess this
    is the last i915 feature pull for 3.10. Highlights:
    Updated testing tree for -next. Highlights:
    - Corner case fixes discovered with static analyzers (Damien).
    - More fixes to combat unclaimed register errors on Haswell (Paulo).
    - Some small fixes to the gpu turbo code (Rodrigo+Ben), Ben has more
    fixes for overclocking support pending.
    - More prep work for fastboot from Chris.
    - VT-switchless suspend/resume from Jesse.
    - The prep work of Egbert Eich's hpd irq storm handling. Hopefully we can
    squeeze in the actual storm handling code for 3.10 ...
    - More convenience helpers for Imre's sg iterator. Core parts acked by
    Andrew Morton.
    - A bit of backlight code cleanup from Jani.
    - Fixed ilk gpu reset (Jesse).
    - Reduced color range handling fixes for VLV (Ville).

    The big item here is though the introduction of pipe_config to properly
    pre-compute the desired modeset state before touching the hw. Together
    with some very basic support to read out the current config from the hw
    and compare the state with the sw tracking. This is all prep work for more
    reliable fastboot, atomic modesets and other cool features. Stuff
    converted to the new world includes:
    - Most simple pipe attributes (reduce color range, pixel multiplier).
    - Pipe bpp/dither handling.
    - Some convenience flags like ->has_pch_encoder to simplify the code flow.
    - (Almost) DP clock handling, had to be reverted since part of a prep
    patch was lost in rebasing ...
    Expect a lot of patches for this throughout 3.11, there's tons of work
    till we have all state properly tracked for fastbooting to woExpect a lot
    of patches for this throughout 3.11, there's tons of work till we have all
    state properly tracked for fastbooting to work.

    For 3.10 I have a bunch of fixes queued up and I plan to send them all out
    at the end of this week. I need to shuffle patches in my -next queue a bit
    so that we don't but feature-y stuff in there, too. The main thing I'd
    like to sneak in is Egbert's hpd irq storm handling, which should be
    pretty low-risk since all the infrastructure work has landed already. I
    also have the oops fix pending, but that only mustered review before the
    w/e and giving how hairy that part of our modeset code is, I want to give
    it some more testing before forwarding.

    Note: annarchy.fd.o seems to run out of disk space, so couldn't push the
    usual for-airlied branch. Tag should work though.

    Note 2: I've had to do a backmerge since conflicts grew too ugly, but the
    upstream -rc I've backmerged is already in your drm-next.

    * tag 'drm-intel-next-2013-04-06' of git://people.freedesktop.org/~danvet/drm-intel: (75 commits)
    drm/i915: info level for simulated gpu hang dmesg notice
    drm/i915: revert eDP bpp clamping code changes
    Revert "drm/i915: fix DP get_hw_state return value"
    drm/i915: Don't use the HDMI port color range bit on Valleyview
    drm/i915: Set PIPECONF color range bit on Valleyview
    drm/i915: extract i9xx_set_pipeconf
    drm/i915: Add no-lvds quirk for Fujitsu Esprimo Q900
    drm/i915: create pipe_config->dpll for clock state
    drm/i915: hw readout support for ->has_pch_encoders
    drm/i915: add hw state readout/checking for pipe_config
    drm/i915: rip out superflous is_dp&is_cpu_edp tracking
    drm/i915: remove leaky eDP functions
    drm/i915: track dp target_clock in pipe_config
    drm/i915: move dp_m_n computation to dp_encoder->compute_config
    drm/i915: clear up the fdi/dp set_m_n confusion
    drm/i915: Fix sdvo connector get_hw_state function
    drm/i915: drop DPFLIPSTAT enables on VLV v3
    drm/i915: add Punit read/write routines for VLV v2
    drm/i915: panel power sequencing for VLV eDP v2
    drm/i915/dp: fix up VLV DP handling v2
    ...

    Dave Airlie
     

12 Apr, 2013

3 commits


03 Apr, 2013

1 commit

  • Backmerge Linux 3.9-rc5 since I want to merge a few dp clock cleanups
    for -next, but they will conflict all over the place with

    commit 9d1a455b0ca1c2c956b4d9ab212864a8695270f1
    Author: Takashi Iwai
    Date: Mon Mar 18 11:25:36 2013 +0100

    drm/i915: Use the fixed pixel clock for eDP in intel_dp_set_m_n()

    from -fixes.

    Conflicts:
    drivers/gpu/drm/i915/intel_dp.c: Simply adjacent lines changed.
    drivers/gpu/drm/i915/intel_panel.c: A field rename in -next
    conflicts with a bugfix in -fixes. Take the version from
    -fixes and apply the rename.

    Signed-off-by: Daniel Vetter

    Daniel Vetter
     

27 Mar, 2013

1 commit

  • Rather than building a config which may or may not work, let the driver
    build an initial fb config. This allows the driver to use the BIOS boot
    configuration for example, displaying kernel messages and the initial fb
    console on the same outputs the BIOS lit up at boot time. If that
    fails, the driver can still fall back the same way as the core.

    Signed-off-by: Jesse Barnes
    Signed-off-by: Chris Wilson
    Cc: dri-devel@lists.freedesktop.org
    Acked-by: Dave Airlie
    Reviewed-by: Imre Deak
    Signed-off-by: Daniel Vetter

    Jesse Barnes
     

16 Mar, 2013

1 commit


08 Mar, 2013

1 commit


22 Feb, 2013

3 commits


21 Feb, 2013

1 commit

  • KMS driver for TI LCD controller

    * 'tilcdc-next' of git://people.freedesktop.org/~robclark/linux:
    drm/tilcdc: add support for LCD panels (v5)
    drm/tilcdc: add encoder slave (v2)
    drm/i2c: nxp-tda998x (v3)
    drm/tilcdc: add TI LCD Controller DRM driver (v4)
    drm/nouveau: use i2c encoder helper wrappers
    drm: i2c encoder helper wrappers
    drm/cma: add debugfs helpers
    drm: small fix in drm_send_vblank_event()
    drm: Don't set the plane->fb to NULL on successfull set_plane
    drm/cma-helper: fixup compilation

    Conflicts:
    drivers/gpu/drm/Kconfig
    drivers/gpu/drm/Makefile
    drivers/gpu/drm/drm_fb_cma_helper.c

    Dave Airlie
     

20 Feb, 2013

1 commit

  • So here's my promised pile of fixes for 3.9. I've dropped the core prep
    patches for vt-switchless suspend/resume as discussed on irc. Highlights:
    - Fix dmar on g4x. Not really gfx related, but I'm fed up with getting
    blamed for dmar crapouts.
    - Disable wc ptes updates on ilk when dmar is enabled (Chris). So again,
    dmar, but this time gfx related :(
    - Reduced range support for hsw, using the pipe CSC (Ville).
    - Fixup pll limits for gen3/4 (Patrick Jakobsson). The sdvo patch is
    already confirmed to fix 2 bug reports, so added cc: stable on that one.
    - Regression fix for 8bit fb console (Ville).
    - Preserve lane reversal bits on DDI/FDI ports (Damien).
    - Page flip vs. gpu hang fixes (Ville). Unfortuntely not quite all of
    them, need to decide what to do with the currently still in-flight ones.
    - Panel fitter regression fix from Mika Kuoppala (was accidentally left on
    on some pipes with the new modset code since 3.7). This also improves
    the modeset sequence and might help a few other unrelated issues with
    lvds.
    - Write backlight regs even harder ... another installement in our eternal
    fight against the BIOS and backlights.
    - Fixup lid notifier vs. suspend/resume races (Zhang Rui). Prep work for
    new ACPI stuff, but closing the race itself seems worthwile on its own.
    - A few other small fixes and tiny cleanups all over.

    Lots of the patches are cc: stable since I've stalled on a few
    not-so-important fixes for 3.8 due to the grumpy noise Linus made.

    * 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel: (33 commits)
    intel/iommu: force writebuffer-flush quirk on Gen 4 Chipsets
    drm/i915: Disable WC PTE updates to w/a buggy IOMMU on ILK
    drm/i915: Implement pipe CSC based limited range RGB output
    drm/i915: inverted brightness quirk for Acer Aspire 4736Z
    drm/i915: Print the hw context status is debugfs
    drm/i915: Use HAS_L3_GPU_CACHE in i915_gem_l3_remap
    drm/i915: Fix PIPE_CONTROL DW/QW write through global GTT on IVB+
    drm/i915: Set i9xx sdvo clock limits according to specifications
    drm/i915: Set i9xx lvds clock limits according to specifications
    drm/i915: Preserve the DDI link reversal configuration
    drm/i915: Preserve the FDI line reversal override bit on CPT
    drm/i915: add missing \n to UTS_RELEASE in the error_state
    drm: Use C8 instead of RGB332 when determining the format from depth/bpp
    drm: Fill depth/bits_per_pixel for C8 format
    drm/i915: don't clflush gem objects in stolen memory
    drm/i915: Don't wait for page flips if there was GPU reset
    drm/i915: Kill obj->pending_flip
    drm/i915: Fix a typo in a intel_modeset_stage_output_state() comment
    drm/i915: remove bogus mutex_unlock from error-path
    drm/i915: Print the pipe control page GTT address
    ...

    Dave Airlie
     

18 Feb, 2013

2 commits

  • Simplify life for drivers using an encoder-slave, so that they can make
    their drm_encoder_helper_funcs const, rather than needing to dynamically
    allocate and populate them.

    Signed-off-by: Rob Clark

    Rob Clark
     
  • Add helper to display fb's which can be used directly in drm_info_list:

    static struct drm_info_list foo_debugfs_list[] = {
    ...
    { "fb", drm_fb_cma_debugfs_show, 0 },
    };

    to display information about CMA fb objects, as well as a
    drm_gem_cma_describe() which can be used if the driver bothers to keep
    a list of CMA GEM objects.

    Signed-off-by: Rob Clark

    Rob Clark
     

15 Feb, 2013

1 commit

  • When I refactored the code initially, I forgot that gen2 uses a
    different bar for the CPU mappable aperture. The agp-less code knows
    nothing of generations less than 5, so we have to expand the gtt_probe
    function to include the mappable base and end.

    It was originally broken by me:
    commit baa09f5fd8a6d033ec075355dda99a65b7f6a0f3
    Author: Ben Widawsky
    Date: Thu Jan 24 13:49:57 2013 -0800

    drm/i915: Add probe and remove to the gtt ops

    Reported-by: Chris Wilson
    Signed-off-by: Ben Widawsky
    Signed-off-by: Daniel Vetter

    Ben Widawsky
     

14 Feb, 2013

5 commits

  • Spotted by Rob Clark.

    Reviewed-by: Rob Clark
    Signed-off-by: Daniel Vetter

    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
    Acked-by: Laurent Pinchart
    Signed-off-by: Daniel Vetter

    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: Rob Clark
    Signed-off-by: Daniel Vetter

    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: Rob Clark
    Signed-off-by: Daniel Vetter

    Daniel Vetter
     
  • ... it's required. Fix up exynos and the cma helper, and add a
    corresponding WARN_ON to drm_fb_helper_restore_fbdev_mode.

    Note that tegra calls the fbdev cma helper restore function also from
    it's driver-load callback. Which is a bit against current practice,
    since usually the call is only from ->lastclose, and initial setup is
    done by drm_fb_helper_initial_config.

    Also add the relevant drm DocBook entry.

    v2: Add promised WARN to restore_fbdev_mode.

    Reviewed-by: Rob Clark
    Signed-off-by: Daniel Vetter

    Daniel Vetter