Commit Graph

64 Commits

Author SHA1 Message Date
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
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