Commit Graph

62 Commits

Author SHA1 Message Date
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
Michael Witten 5b658bf2bf DocBook/drm: `setup' is the noun; `to set up' is the verb
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:30:59 +00:00
Michael Witten f07faf693c DocBook/drm: Insert missing `an'
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:30:56 +00:00
Michael Witten 8814630f0b DocBook/drm: Insert missing `that'
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:30:53 +00:00
Michael Witten 57a15fd663 DocBook/drm: Clearer wording with `for consumption by'
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:30:50 +00:00
Michael Witten 06fa7b8066 DocBook/drm: Better wording
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:30:47 +00:00
Michael Witten 6e375f44b6 DocBook/drm: Replace the paragraph's first sentence with its last sentence
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:30:45 +00:00
Michael Witten 75aa9df5a2 DocBook/drm: Rearrange wording to make more sense
Signed-off-by: Michael Witten <mfwitten@gmail.com>
2011-08-29 19:30:42 +00:00