Commit Graph

69 Commits

Author SHA1 Message Date
Linus Torvalds 2e17c5a97e Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux
Pull drm updates from Dave Airlie:
 "Okay this is the big one, I was stalled on the fbdev pull req as I
  stupidly let fbdev guys merge a patch I required to fix a warning with
  some patches I had, they ended up merging the patch from the wrong
  place, but the warning should be fixed.  In future I'll just take the
  patch myself!

  Outside drm:

  There are some snd changes for the HDMI audio interactions on haswell,
  they've been acked for inclusion via my tree.  This relies on the
  wound/wait tree from Ingo which is already merged.

  Major changes:

  AMD finally released the dynamic power management code for all their
  GPUs from r600->present day, this is great, off by default for now but
  also a huge amount of code, in fact it is most of this pull request.

  Since it landed there has been a lot of community testing and Alex has
  sent a lot of fixes for any bugs found so far.  I suspect radeon might
  now be the biggest kernel driver ever :-P p.s.  radeon.dpm=1 to enable
  dynamic powermanagement for anyone.

  New drivers:

  Renesas r-car display unit.

  Other highlights:

   - core: GEM CMA prime support, use new w/w mutexs for TTM
     reservations, cursor hotspot, doc updates
   - dvo chips: chrontel 7010B support
   - i915: Haswell (fbc, ips, vecs, watermarks, audio powerwell),
     Valleyview (enabled by default, rc6), lots of pll reworking, 30bpp
     support (this time for sure)
   - nouveau: async buffer object deletion, context/register init
     updates, kernel vp2 engine support, GF117 support, GK110 accel
     support (with external nvidia ucode), context cleanups.
   - exynos: memory leak fixes, Add S3C64XX SoC series support, device
     tree updates, common clock framework support,
   - qxl: cursor hotspot support, multi-monitor support, suspend/resume
     support
   - mgag200: hw cursor support, g200 mode limiting
   - shmobile: prime support
   - tegra: fixes mostly

  I've been banging on this quite a lot due to the size of it, and it
  seems to okay on everything I've tested it on."

* 'drm-next' of git://people.freedesktop.org/~airlied/linux: (811 commits)
  drm/radeon/dpm: implement vblank_too_short callback for si
  drm/radeon/dpm: implement vblank_too_short callback for cayman
  drm/radeon/dpm: implement vblank_too_short callback for btc
  drm/radeon/dpm: implement vblank_too_short callback for evergreen
  drm/radeon/dpm: implement vblank_too_short callback for 7xx
  drm/radeon/dpm: add checks against vblank time
  drm/radeon/dpm: add helper to calculate vblank time
  drm/radeon: remove stray line in old pm code
  drm/radeon/dpm: fix display_gap programming on rv7xx
  drm/nvc0/gr: fix gpc firmware regression
  drm/nouveau: fix minor thinko causing bo moves to not be async on kepler
  drm/radeon/dpm: implement force performance level for TN
  drm/radeon/dpm: implement force performance level for ON/LN
  drm/radeon/dpm: implement force performance level for SI
  drm/radeon/dpm: implement force performance level for cayman
  drm/radeon/dpm: implement force performance levels for 7xx/eg/btc
  drm/radeon/dpm: add infrastructure to force performance levels
  drm/radeon: fix surface setup on r1xx
  drm/radeon: add support for 3d perf states on older asics
  drm/radeon: set default clocks for SI when DPM is disabled
  ...
2013-07-09 16:04:31 -07:00
Laurent Pinchart 421cda3e32 drm/doc: Document the KMS property API
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2013-06-28 14:43:07 +10:00
Laurent Pinchart 02c030a718 drm/doc: Remove outdated note about i915 driver not behaving properly
The i915 driver has been fixed not to modify the mode argument of the
encoder mode_fixup operation. Remove the related comment from the
documentation.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2013-06-28 14:43:06 +10:00
Laurent Pinchart 02b6298541 drm: Improve manual IRQ installation documentation
Define the rules for using irqs from drm drivers.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2013-06-28 14:43:05 +10:00
Anatol Pomozov f884ab15af doc: fix misspellings with 'codespell' tool
Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2013-05-28 12:02:12 +02:00
Ville Syrjälä 039735369c drm: Fix drm_rect documentation
The 'struct' keyword was missing so struct drm_rect documentation never
ended up in the generated docs.

Also move the drm_rect documentations to a new section alognside the
various helper functions and add a short description about the intended
purpose of drm_rect.

v2: Move to new section and add general description

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-05-23 12:51:32 +02:00
Ville Syrjälä 3512f976d2 drm: Add struct drm_rect and assorted utility functions
struct drm_rect represents a simple rectangle. The utility
functions are there to help driver writers.

v2: Moved the region stuff into its own file, made the smaller funcs
    static inline, used 64bit maths in the scaled clipping function to
    avoid overflows (instead it will saturate to INT_MIN or INT_MAX).
v3: Renamed drm_region to drm_rect, drm_region_clip to
    drm_rect_intersect, and drm_region_subsample to drm_rect_downscale.
v4: Renamed some function parameters, improve kernel-doc comments a bit,
    and actually generate documentation for drm_rect.[ch].
v5: s/RETUTRNS/RETURNS/

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Acked-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-04-30 22:19:08 +02:00
Dave Airlie 28ee46184f Merge branch 'drm/hdmi-for-3.9' of git://anongit.freedesktop.org/tegra/linux into drm-next
Thierry writes:
"Remove a duplicate implementation of the CEA VIC lookup and move the CEA
and other mode tables to drm_edid.c to make it more difficult to create
duplicates of the tables.

Add some helpers to pack CEA-861/HDMI AVI, audio and SPD infoframes into
binary buffers that can easily be written into hardware registers. A new
helper function makes it easy construct an AVI infoframe from a DRM
display mode.

Convert the Tegra and Radeon drivers to use the new HDMI helpers."
* 'drm/hdmi-for-3.9' of git://anongit.freedesktop.org/tegra/linux:
  drm/radeon: Use generic HDMI infoframe helpers
  drm/tegra: Use generic HDMI infoframe helpers
  drm: Add EDID helper documentation
  drm: Add HDMI infoframe helpers
  video: Add generic HDMI infoframe helpers
  drm: Add some missing forward declarations
  drm: Move mode tables to drm_edid.c
  drm: Remove duplicate drm_mode_cea_vic()
2013-02-24 12:39:42 +10:00
Thierry Reding 8cf1e98114 drm: Add consistency check for page-flipping
Driver implementations of the drm_crtc's .page_flip() function are
required to update the crtc->fb field on success to reflect that the new
framebuffer is now in use. This is important to keep reference counting
on the framebuffers balanced.

While at it, document this requirement to keep others from falling into
the same trap.

Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-02-22 08:21:07 +01:00
Thierry Reding 5e308591a8 drm: Add EDID helper documentation
Add a reference section about the EDID helper functions to the DRM
documentation.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
2013-02-22 08:20:15 +01:00
Daniel Vetter 207fd32970 drm/fb-helper: improve kerneldoc
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: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-02-14 00:08:32 +01:00
Aaron Plattner 89177644a7 drm: add prime helpers
Instead of reimplementing all of the dma_buf functionality in every driver,
create helpers drm_prime_import and drm_prime_export that implement them in
terms of new, lower-level hook functions:

  gem_prime_pin: callback when a buffer is created, used to pin buffers into GTT
  gem_prime_get_sg_table: convert a drm_gem_object to an sg_table for export
  gem_prime_import_sg_table: convert an sg_table into a drm_gem_object
  gem_prime_vmap, gem_prime_vunmap: map and unmap an object

These hooks are optional; drivers can opt in by using drm_gem_prime_import and
drm_gem_prime_export as the .gem_prime_import and .gem_prime_export fields of
struct drm_driver.

v2:
- Drop .begin_cpu_access.  None of the drivers this code replaces implemented
  it.  Having it here was a leftover from when I was trying to include i915 in
  this rework.
- Use mutex_lock instead of mutex_lock_interruptible, as these three drivers
  did.  This patch series shouldn't change that behavior.
- Rename helpers to gem_prime_get_sg_table and gem_prime_import_sg_table.
  Rename struct sg_table* variables to 'sgt' for clarity.
- Update drm.tmpl for these new hooks.

v3:
- Pass the vaddr down to the driver.  This lets drivers that just call vunmap on
  the pointer avoid having to store the pointer in their GEM private structures.
- Move documentation into a /** DOC */ comment in drm_prime.c and include it in
  drm.tmpl with a !P line.  I tried to use !F lines to include documentation of
  the individual functions from drmP.h, but the docproc / kernel-doc scripts
  barf on that file, so hopefully this is good enough for now.
- apply refcount fix from commit be8a42ae60
  ("drm/prime: drop reference on imported dma-buf come from gem")

Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: David Airlie <airlied@linux.ie>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2013-02-08 13:39:08 +10:00
Daniel Vetter 5d7a951537 drm/doc: updates for new framebuffer lifetime rules
Now that framebuffer are reference-counted for all use-sites, update
the documentation accordingly to stress the new rules for
initialization and teardown.

Also add a short paragraph about the implications for drivers of the
new locking rules.

Reviewed-by: Rob Clark <rob@ti.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-01-20 22:17:16 +01:00
Daniel Vetter 065a50ed3e drm/doc: integrate drm_crtc.c kerneldoc
And do a quick pass to adjust them to the last few (years?) of changes
...

This time actually compile-tested ;-)

Reviewed-by: Rob Clark <rob@ti.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-01-20 15:29:18 +01:00
Daniel Vetter 28164fdad8 drm/doc: add new dp helpers into drm DocBook
I didn't bother with documenting the really trivial new "extract
something from dpcd" helpers, but the i2c over aux ch is now
documented a bit.

v2: Clarify the comment for i2c_dp_aux_add_bus a bit.

v3: Fix more spelling fail spotted by Laurent Pinchart.

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-11-28 20:26:53 +10:00
Daniel Vetter d0ddc0338a drm/doc: integrate fb helper reference into docs
Again only minimal changes to make kerneldoc no longer shout. Plus a
little introduction in the form of a inline DOC: section to quickly
explain what this is all about.

v2: Fixup spelling fail.

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-11-28 20:26:52 +10:00
Daniel Vetter 0d4ed4c8f9 drm/doc: integrate crtc helper api into docbook
- Add the missing doc for drm_helper_move_panel_connectors_to_head.
- Fixup any outdated stuff in existing sections. I've only looked at
  those kerneldoc headers that actually resulted in a complaint from
  the kerneldoc parser tool.

v2:
- Actually include the docbook snippet in the right patch.
- Fix spelling fail.

v3: It's now called drm_crtc_helper_set_mode, spotted by Laurent
Pinchart.

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-11-28 20:19:58 +10:00
Daniel Vetter e4949f2974 drm/doc: Helpers are not a Midlayer!
I'm devoting all my wrath to that fight, so don't misname it ;-)

v2: Make it clear that this section talks about kms helpers.

Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-11-28 20:17:07 +10:00
Rob Clark c6eefa1750 drm: add drm_send_vblank_event() helper (v5)
A helper that drivers can use to send vblank event after a pageflip.
If the driver doesn't support proper vblank irq based time/seqn then
just pass -1 for the pipe # to get do_gettimestamp() behavior (since
there are a lot of drivers that don't use drm_vblank_count_and_time())

Also an internal send_vblank_event() helper for the various other code
paths within drm_irq that also need to send vblank events.

v1: original
v2: add back 'vblwait->reply.sequence = seq' which should not have
    been deleted
v3: add WARN_ON() in case lock is not held and comments
v4: use WARN_ON_SMP() instead to fix issue with !SMP && !DEBUG_SPINLOCK
    as pointed out by Marcin Slusarz
v5: update docbook

Signed-off-by: Rob Clark <rob@ti.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-11-20 15:47:21 +10:00
Laurent Pinchart 9cad9c95d7 Documentation: DocBook DRM framework documentation
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Rob Clark <rob.clark@linaro.org>
2012-08-23 12:02:53 +02:00
Michael Witten bcd3cfc121 DocBook/drm: Clean up a todo-note
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:37 +00:00
Michael Witten 7f0925aca5 DocBook/drm: `device aware' -> `device-aware'
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:35 +00:00
Michael Witten a5294e01f2 DocBook/drm: `(device|driver) specific' -> `(device|driver)-specific'
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:33 +00:00
Michael Witten 5a462d58c8 DocBook/drm: Clean up the paragraph on framebuffer objects
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:32 +00:00
Michael Witten 964d32dcbe DocBook/drm: Use `; otherwise,'
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:30 +00:00
Michael Witten e355b2014d DocBook/drm: Better flow with `, and then'
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:28 +00:00
Michael Witten b8c6e0fe46 DocBook/drm: Refer to the domain-setting function as a device-specific ioctl
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:26 +00:00
Michael Witten 2d43f5d667 DocBook/drm: Improve flow of GPU/CPU coherence sentence
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:24 +00:00
Michael Witten 0c2d91a80a DocBook/drm: Use an <itemizelist> for fundamental GEM operations
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:22 +00:00
Michael Witten f877bd4ad5 DocBook/drm: Insert a comma
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:20 +00:00
Michael Witten 51b9500de2 DocBook/drm: Use a <variablelist> for vblank ioctls
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:18 +00:00
Michael Witten 65ffef508f DocBook/drm: Use an itemizedlist for what an encoder needs to provide
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:16 +00:00
Michael Witten 4dc0152d57 DocBook/drm: Insert `the' for readability, and change `set' to `setting'
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:14 +00:00
Michael Witten 896ee65fb6 DocBook/drm: Remove extraneous commas
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:12 +00:00
Michael Witten 8a9ba910ac DocBook/drm: Use a colon
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:09 +00:00
Michael Witten 327d6fb962 DocBook/drm: Clarify `final initialization' via better formatting
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:07 +00:00
Michael Witten 3bf7df6156 DocBook/drm: Remove redundancy
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:05 +00:00
Michael Witten 1dbd39c3ea DocBook/drm: Insert `it' for smooth reading
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:03 +00:00
Michael Witten 9029bd7a42 DocBook/drm: The word `so-called'; I do not think it connotes what you think it connotes
From Webster's Revised Unabridged Dictionary (1913) [web1913]:

    So-called \So"-called`\, a.
       So named; called by such a name (but perhaps called thus with
       doubtful propriety).

  From WordNet (r) 2.0 [wn]:

    so-called
         adj : doubtful or suspect; "these so-called experts are no help"
               [syn: {alleged(a)}, {supposed}]

My strong conviction is that widespread use of 'so gennant'
or 'sogennant' in German has led to the creeping misuse of
'so-called' in English (especially through technical writings).

In English, it would be better to use:

  what is called

or a better translation of 'so gennant':

  so named

Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 20:00:01 +00:00
Michael Witten 54f2cb8fc9 DocBook/drm: Use a singular subject for grammatical cleanliness
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:59:59 +00:00
Michael Witten 482b2ad8e4 DocBook/drm: basic -> core
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:59:56 +00:00
Michael Witten 049cc903e7 DocBook/drm: Streamline wording of GEM initialization
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:59:54 +00:00
Michael Witten ae63d793a4 DocBook/drm: Insert `()' after function name
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:59:52 +00:00
Michael Witten 1c86de2216 DocBook/drm: Remove parentheses and unnecessary repetition
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:59:50 +00:00
Michael Witten 005d7f4a01 DocBook/drm: Insert missing comma
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:59:48 +00:00
Michael Witten eb2b8d4273 DocBook/drm: , -> :
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:59:45 +00:00
Michael Witten 8d36ffae67 DocBook/drm: can -> could
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:31:10 +00:00
Michael Witten 118bdd70bd DocBook/drm: Offset modifiers with commas
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:31:08 +00:00
Michael Witten 9c2416adac DocBook/drm: Use the passive voice
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:31:06 +00:00
Michael Witten bb49a6a1f3 DocBook/drm: `at driver load time' -> `when the driver is loaded'
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:31:03 +00:00