drm: Update connector documentation
- Shuffle docs from drm-kms.rst into the structure docs where it makes sense. - Put the remaining bits into a new overview section. One thing I've changed is around probing: Old docs says that you _must_ use the probe helpers, which isn't correct. Helpers are always optional. v2: Review from Sean. Cc: Sean Paul <seanpaul@chromium.org> Reviewed-by: Sean Paul <seanpaul@chromium.org> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/1471034937-651-17-git-send-email-daniel.vetter@ffwll.ch
This commit is contained in:
@@ -27,6 +27,37 @@
|
||||
#include "drm_crtc_internal.h"
|
||||
#include "drm_internal.h"
|
||||
|
||||
/**
|
||||
* DOC: overview
|
||||
*
|
||||
* In DRM connectors are the general abstraction for display sinks, and include
|
||||
* als fixed panels or anything else that can display pixels in some form. As
|
||||
* opposed to all other KMS objects representing hardware (like CRTC, encoder or
|
||||
* plane abstractions) connectors can be hotplugged and unplugged at runtime.
|
||||
* Hence they are reference-counted using drm_connector_reference() and
|
||||
* drm_connector_unreference().
|
||||
*
|
||||
* KMS driver must create, initialize, register and attach at a struct
|
||||
* &drm_connector for each such sink. The instance is created as other KMS
|
||||
* objects and initialized by setting the following fields.
|
||||
*
|
||||
* The connector is then registered with a call to drm_connector_init() with a
|
||||
* pointer to the connector functions and a connector type, and exposed through
|
||||
* sysfs with a call to drm_connector_register().
|
||||
*
|
||||
* Connectors must be attached to an encoder to be used. For devices that map
|
||||
* connectors to encoders 1:1, the connector should be attached at
|
||||
* initialization time with a call to drm_mode_connector_attach_encoder(). The
|
||||
* driver must also set the struct &drm_connector encoder field to point to the
|
||||
* attached encoder.
|
||||
*
|
||||
* For connectors which are not fixed (like built-in panels) the driver needs to
|
||||
* support hotplug notifications. The simplest way to do that is by using the
|
||||
* probe helpers, see drm_kms_helper_poll_init() for connectors which don't have
|
||||
* hardware support for hotplug interrupts. Connectors with hardware hotplug
|
||||
* support can instead use e.g. drm_helper_hpd_irq_event().
|
||||
*/
|
||||
|
||||
struct drm_conn_prop_enum_list {
|
||||
int type;
|
||||
const char *name;
|
||||
@@ -77,7 +108,7 @@ void drm_connector_ida_destroy(void)
|
||||
* drm_connector_get_cmdline_mode - reads the user's cmdline mode
|
||||
* @connector: connector to quwery
|
||||
*
|
||||
* The kernel supports per-connector configration of its consoles through
|
||||
* The kernel supports per-connector configuration of its consoles through
|
||||
* use of the video= parameter. This function parses that option and
|
||||
* extracts the user's specified mode (or enable/disable status) for a
|
||||
* particular connector. This is typically only used during the early fbdev
|
||||
|
Reference in New Issue
Block a user