* [PATCH 01/12] drm: remove unused connector_count field from drm_display_mode
2011-11-07 20:03 Misc. cleanups Jesse Barnes
@ 2011-11-07 20:03 ` Jesse Barnes
2011-11-07 20:03 ` [PATCH 02/12] drm: remove unused save/restore functions from drm_crtc_funcs & fix comments Jesse Barnes
` (11 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Jesse Barnes @ 2011-11-07 20:03 UTC (permalink / raw)
To: dri-devel
Doesn't really belong here anyway.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
include/drm/drm_crtc.h | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 8020798..b0df23a 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -118,7 +118,6 @@ struct drm_display_mode {
char name[DRM_DISPLAY_MODE_LEN];
- int connector_count;
enum drm_mode_status status;
int type;
--
1.7.4.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 02/12] drm: remove unused save/restore functions from drm_crtc_funcs & fix comments
2011-11-07 20:03 Misc. cleanups Jesse Barnes
2011-11-07 20:03 ` [PATCH 01/12] drm: remove unused connector_count field from drm_display_mode Jesse Barnes
@ 2011-11-07 20:03 ` Jesse Barnes
2011-11-07 20:03 ` [PATCH 03/12] drm: fix comments for drm_crtc struct Jesse Barnes
` (10 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Jesse Barnes @ 2011-11-07 20:03 UTC (permalink / raw)
To: dri-devel
Remove two unused fields from this struct and cleanup/correct the comments.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
include/drm/drm_crtc.h | 18 ++++--------------
1 files changed, 4 insertions(+), 14 deletions(-)
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index b0df23a..a960020 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -281,18 +281,12 @@ struct drm_pending_vblank_event;
/**
* drm_crtc_funcs - control CRTCs for a given device
* @reset: reset CRTC after state has been invalidate (e.g. resume)
- * @dpms: control display power levels
- * @save: save CRTC state
- * @resore: restore CRTC state
- * @lock: lock the CRTC
- * @unlock: unlock the CRTC
- * @shadow_allocate: allocate shadow pixmap
- * @shadow_create: create shadow pixmap for rotation support
- * @shadow_destroy: free shadow pixmap
- * @mode_fixup: fixup proposed mode
- * @mode_set: set the desired mode on the CRTC
+ * @cursor_set: set new cursor params
+ * @cursor_move: move the cursor
* @gamma_set: specify color ramp for CRTC
* @destroy: deinit and free object.
+ * @set_config: apply a new configuration to this CRTC
+ * @page_flip: queue an asynchronous framebuffer flip
*
* The drm_crtc_funcs structure is the central CRTC management structure
* in the DRM. Each CRTC controls one or more connectors (note that the name
@@ -304,10 +298,6 @@ struct drm_pending_vblank_event;
* bus accessors.
*/
struct drm_crtc_funcs {
- /* Save CRTC state */
- void (*save)(struct drm_crtc *crtc); /* suspend? */
- /* Restore CRTC state */
- void (*restore)(struct drm_crtc *crtc); /* resume? */
/* Reset CRTC state */
void (*reset)(struct drm_crtc *crtc);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 03/12] drm: fix comments for drm_crtc struct
2011-11-07 20:03 Misc. cleanups Jesse Barnes
2011-11-07 20:03 ` [PATCH 01/12] drm: remove unused connector_count field from drm_display_mode Jesse Barnes
2011-11-07 20:03 ` [PATCH 02/12] drm: remove unused save/restore functions from drm_crtc_funcs & fix comments Jesse Barnes
@ 2011-11-07 20:03 ` Jesse Barnes
2011-11-07 20:03 ` [PATCH 04/12] drm: remove unused save/restore fields from drm_connector & fix comments Jesse Barnes
` (9 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Jesse Barnes @ 2011-11-07 20:03 UTC (permalink / raw)
To: dri-devel
Remove stale entries and update with the latest stuff.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
include/drm/drm_crtc.h | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index a960020..ad2a605 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -330,10 +330,21 @@ struct drm_crtc_funcs {
/**
* drm_crtc - central CRTC control structure
+ * @dev: parent DRM device
+ * @head: list management
+ * @base: base KMS object for ID tracking etc.
* @enabled: is this CRTC enabled?
+ * @mode: current mode timings
+ * @hwmode: mode timings as programmed to hw regs
* @x: x position on screen
* @y: y position on screen
* @funcs: CRTC control functions
+ * @gamma_size: size of gamma ramp
+ * @gamma_store: gamma ramp values
+ * @framedur_ns: precise frame timing
+ * @framedur_ns: precise line timing
+ * @pixeldur_ns: precise pixel timing
+ * @helper_private: mid-layer private data
*
* Each CRTC may have one or more connectors associated with it. This structure
* allows the CRTC to be controlled.
--
1.7.4.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 04/12] drm: remove unused save/restore fields from drm_connector & fix comments
2011-11-07 20:03 Misc. cleanups Jesse Barnes
` (2 preceding siblings ...)
2011-11-07 20:03 ` [PATCH 03/12] drm: fix comments for drm_crtc struct Jesse Barnes
@ 2011-11-07 20:03 ` Jesse Barnes
2011-11-07 20:26 ` Chris Wilson
2011-11-07 20:03 ` [PATCH 05/12] drm: add comments for drm_encoder_funcs Jesse Barnes
` (8 subsequent siblings)
12 siblings, 1 reply; 16+ messages in thread
From: Jesse Barnes @ 2011-11-07 20:03 UTC (permalink / raw)
To: dri-devel
Also fix up the wrapping to 80 columns.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
include/drm/drm_crtc.h | 20 +++++++-------------
1 files changed, 7 insertions(+), 13 deletions(-)
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index ad2a605..6ab20f8 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -386,26 +386,19 @@ struct drm_crtc {
/**
* drm_connector_funcs - control connectors on a given device
* @dpms: set power state (see drm_crtc_funcs above)
- * @save: save connector state
- * @restore: restore connector state
* @reset: reset connector after state has been invalidate (e.g. resume)
- * @mode_valid: is this mode valid on the given connector?
- * @mode_fixup: try to fixup proposed mode for this connector
- * @mode_set: set this mode
* @detect: is this connector active?
- * @get_modes: get mode list for this connector
+ * @fill_modes: build a mode list for this connector
* @set_property: property for this connector may need update
* @destroy: make object go away
* @force: notify the driver the connector is forced on
*
* Each CRTC may have one or more connectors attached to it. The functions
- * below allow the core DRM code to control connectors, enumerate available modes,
- * etc.
+ * below allow the core DRM code to control connectors, enumerate available
+ * modes, etc.
*/
struct drm_connector_funcs {
void (*dpms)(struct drm_connector *connector, int mode);
- void (*save)(struct drm_connector *connector);
- void (*restore)(struct drm_connector *connector);
void (*reset)(struct drm_connector *connector);
/* Check to see if anything is attached to the connector.
@@ -416,9 +409,10 @@ struct drm_connector_funcs {
*/
enum drm_connector_status (*detect)(struct drm_connector *connector,
bool force);
- int (*fill_modes)(struct drm_connector *connector, uint32_t max_width, uint32_t max_height);
- int (*set_property)(struct drm_connector *connector, struct drm_property *property,
- uint64_t val);
+ int (*fill_modes)(struct drm_connector *connector, uint32_t max_width,
+ uint32_t max_height);
+ int (*set_property)(struct drm_connector *connector,
+ struct drm_property *property, uint64_t val);
void (*destroy)(struct drm_connector *connector);
void (*force)(struct drm_connector *connector);
};
--
1.7.4.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: [PATCH 04/12] drm: remove unused save/restore fields from drm_connector & fix comments
2011-11-07 20:03 ` [PATCH 04/12] drm: remove unused save/restore fields from drm_connector & fix comments Jesse Barnes
@ 2011-11-07 20:26 ` Chris Wilson
2011-11-07 20:35 ` Jesse Barnes
0 siblings, 1 reply; 16+ messages in thread
From: Chris Wilson @ 2011-11-07 20:26 UTC (permalink / raw)
To: Jesse Barnes, dri-devel
On Mon, 7 Nov 2011 12:03:15 -0800, Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> Also fix up the wrapping to 80 columns.
>
> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> ---
> include/drm/drm_crtc.h | 20 +++++++-------------
> 1 files changed, 7 insertions(+), 13 deletions(-)
>
> diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> index ad2a605..6ab20f8 100644
> --- a/include/drm/drm_crtc.h
> +++ b/include/drm/drm_crtc.h
> @@ -386,26 +386,19 @@ struct drm_crtc {
> /**
> * drm_connector_funcs - control connectors on a given device
> * @dpms: set power state (see drm_crtc_funcs above)
> - * @save: save connector state
> - * @restore: restore connector state
> * @reset: reset connector after state has been invalidate (e.g. resume)
> - * @mode_valid: is this mode valid on the given connector?
> - * @mode_fixup: try to fixup proposed mode for this connector
> - * @mode_set: set this mode
> * @detect: is this connector active?
> - * @get_modes: get mode list for this connector
> + * @fill_modes: build a mode list for this connector
> * @set_property: property for this connector may need update
> * @destroy: make object go away
> * @force: notify the driver the connector is forced on
> *
> * Each CRTC may have one or more connectors attached to it. The functions
> - * below allow the core DRM code to control connectors, enumerate available modes,
> - * etc.
> + * below allow the core DRM code to control connectors, enumerate available
> + * modes, etc.
> */
> struct drm_connector_funcs {
> void (*dpms)(struct drm_connector *connector, int mode);
> - void (*save)(struct drm_connector *connector);
> - void (*restore)(struct drm_connector *connector);
> void (*reset)(struct drm_connector *connector);
>
> /* Check to see if anything is attached to the connector.
> @@ -416,9 +409,10 @@ struct drm_connector_funcs {
> */
> enum drm_connector_status (*detect)(struct drm_connector *connector,
> bool force);
> - int (*fill_modes)(struct drm_connector *connector, uint32_t max_width, uint32_t max_height);
> - int (*set_property)(struct drm_connector *connector, struct drm_property *property,
> - uint64_t val);
> + int (*fill_modes)(struct drm_connector *connector, uint32_t max_width,
> + uint32_t max_height);
Attack of the random 80-column limit!
int (*fill_modes)(struct drm_connector *connector,
uint32_t max_width, uint32_t max_height);
keeps the logically more connected width&height together.
What colour do you want your bikeshed today?
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [PATCH 04/12] drm: remove unused save/restore fields from drm_connector & fix comments
2011-11-07 20:26 ` Chris Wilson
@ 2011-11-07 20:35 ` Jesse Barnes
0 siblings, 0 replies; 16+ messages in thread
From: Jesse Barnes @ 2011-11-07 20:35 UTC (permalink / raw)
To: Chris Wilson; +Cc: dri-devel
[-- Attachment #1.1: Type: text/plain, Size: 2919 bytes --]
On Mon, 07 Nov 2011 20:26:59 +0000
Chris Wilson <chris@chris-wilson.co.uk> wrote:
> On Mon, 7 Nov 2011 12:03:15 -0800, Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> > Also fix up the wrapping to 80 columns.
> >
> > Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> > ---
> > include/drm/drm_crtc.h | 20 +++++++-------------
> > 1 files changed, 7 insertions(+), 13 deletions(-)
> >
> > diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
> > index ad2a605..6ab20f8 100644
> > --- a/include/drm/drm_crtc.h
> > +++ b/include/drm/drm_crtc.h
> > @@ -386,26 +386,19 @@ struct drm_crtc {
> > /**
> > * drm_connector_funcs - control connectors on a given device
> > * @dpms: set power state (see drm_crtc_funcs above)
> > - * @save: save connector state
> > - * @restore: restore connector state
> > * @reset: reset connector after state has been invalidate (e.g. resume)
> > - * @mode_valid: is this mode valid on the given connector?
> > - * @mode_fixup: try to fixup proposed mode for this connector
> > - * @mode_set: set this mode
> > * @detect: is this connector active?
> > - * @get_modes: get mode list for this connector
> > + * @fill_modes: build a mode list for this connector
> > * @set_property: property for this connector may need update
> > * @destroy: make object go away
> > * @force: notify the driver the connector is forced on
> > *
> > * Each CRTC may have one or more connectors attached to it. The functions
> > - * below allow the core DRM code to control connectors, enumerate available modes,
> > - * etc.
> > + * below allow the core DRM code to control connectors, enumerate available
> > + * modes, etc.
> > */
> > struct drm_connector_funcs {
> > void (*dpms)(struct drm_connector *connector, int mode);
> > - void (*save)(struct drm_connector *connector);
> > - void (*restore)(struct drm_connector *connector);
> > void (*reset)(struct drm_connector *connector);
> >
> > /* Check to see if anything is attached to the connector.
> > @@ -416,9 +409,10 @@ struct drm_connector_funcs {
> > */
> > enum drm_connector_status (*detect)(struct drm_connector *connector,
> > bool force);
> > - int (*fill_modes)(struct drm_connector *connector, uint32_t max_width, uint32_t max_height);
> > - int (*set_property)(struct drm_connector *connector, struct drm_property *property,
> > - uint64_t val);
> > + int (*fill_modes)(struct drm_connector *connector, uint32_t max_width,
> > + uint32_t max_height);
>
> Attack of the random 80-column limit!
>
> int (*fill_modes)(struct drm_connector *connector,
> uint32_t max_width, uint32_t max_height);
>
> keeps the logically more connected width&height together.
>
> What colour do you want your bikeshed today?
/me burns down the bikeshed.
--
Jesse Barnes, Intel Open Source Technology Center
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
[-- Attachment #2: Type: text/plain, Size: 159 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 05/12] drm: add comments for drm_encoder_funcs
2011-11-07 20:03 Misc. cleanups Jesse Barnes
` (3 preceding siblings ...)
2011-11-07 20:03 ` [PATCH 04/12] drm: remove unused save/restore fields from drm_connector & fix comments Jesse Barnes
@ 2011-11-07 20:03 ` Jesse Barnes
2011-11-07 20:03 ` [PATCH 06/12] drm: add drm_encoder comments Jesse Barnes
` (7 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Jesse Barnes @ 2011-11-07 20:03 UTC (permalink / raw)
To: dri-devel
Just basic verbiage.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
include/drm/drm_crtc.h | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 6ab20f8..a1583d8 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -417,6 +417,13 @@ struct drm_connector_funcs {
void (*force)(struct drm_connector *connector);
};
+/**
+ * drm_encoder_funcs - encoder controls
+ * @reset: reset state (e.g. at init or resume time)
+ * @destroy: cleanup and free associated data
+ *
+ * Encoders sit between CRTCs and connectors.
+ */
struct drm_encoder_funcs {
void (*reset)(struct drm_encoder *encoder);
void (*destroy)(struct drm_encoder *encoder);
--
1.7.4.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 06/12] drm: add drm_encoder comments
2011-11-07 20:03 Misc. cleanups Jesse Barnes
` (4 preceding siblings ...)
2011-11-07 20:03 ` [PATCH 05/12] drm: add comments for drm_encoder_funcs Jesse Barnes
@ 2011-11-07 20:03 ` Jesse Barnes
2011-11-07 20:03 ` [PATCH 07/12] drm: remove unused fields in drm_connector and document the rest Jesse Barnes
` (6 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Jesse Barnes @ 2011-11-07 20:03 UTC (permalink / raw)
To: dri-devel
Just some basic comments about the place and function of the structure
and fields.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
include/drm/drm_crtc.h | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index a1583d8..a98433a 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -436,6 +436,18 @@ struct drm_encoder_funcs {
/**
* drm_encoder - central DRM encoder structure
+ * @dev: parent DRM device
+ * @head: list management
+ * @base: base KMS object
+ * @encoder_type: one of the %DRM_MODE_ENCODER_<foo> types in drm_mode.h
+ * @possible_crtcs: bitmask of potential CRTC bindings
+ * @possible_clones: bitmask of potential sibling encoders for cloning
+ * @crtc: currently bound CRTC
+ * @funcs: control functions
+ * @helper_private: mid-layer private data
+ *
+ * CRTCs drive pixels to encoders, which convert them into signals
+ * appropriate for a given connector or set of connectors.
*/
struct drm_encoder {
struct drm_device *dev;
--
1.7.4.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 07/12] drm: remove unused fields in drm_connector and document the rest
2011-11-07 20:03 Misc. cleanups Jesse Barnes
` (5 preceding siblings ...)
2011-11-07 20:03 ` [PATCH 06/12] drm: add drm_encoder comments Jesse Barnes
@ 2011-11-07 20:03 ` Jesse Barnes
2011-11-07 20:03 ` [PATCH 08/12] drm: document drm_mode_set structure Jesse Barnes
` (5 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Jesse Barnes @ 2011-11-07 20:03 UTC (permalink / raw)
To: dri-devel
We never used initial_x/y or the force_encoder_id, so drop those fields
and proide a basic description of the others.
Really, the ELD bits belong in drm_display_info rather than directly in
the connector, but that's a separate cleanup.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
include/drm/drm_crtc.h | 35 ++++++++++++++++++++++++++++-------
1 files changed, 28 insertions(+), 7 deletions(-)
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index a98433a..e9f486d 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -483,14 +483,37 @@ enum drm_connector_force {
/**
* drm_connector - central DRM connector control structure
- * @crtc: CRTC this connector is currently connected to, NULL if none
+ * @dev: parent DRM device
+ * @kdev: kernel device for sysfs attributes
+ * @attr: sysfs attributes
+ * @head: list management
+ * @base: base KMS object
+ * @connector_type: one of the %DRM_MODE_CONNECTOR_<foo> types from drm_mode.h
+ * @connector_type_id: index into connector type enum
* @interlace_allowed: can this connector handle interlaced modes?
* @doublescan_allowed: can this connector handle doublescan?
- * @available_modes: modes available on this connector (from get_modes() + user)
- * @initial_x: initial x position for this connector
- * @initial_y: initial y position for this connector
- * @status: connector connected?
+ * @modes: modes available on this connector (from fill_modes() + user)
+ * @status: one of the drm_connector_status enums (connected, not, or unknown)
+ * @probed_modes: list of modes derived directly from the display
+ * @display_info: information about attached display (e.g. from EDID)
* @funcs: connector control functions
+ * @user_modes: user added mode list
+ * @edid_blob_ptr: DRM property containing EDID if present
+ * @property_ids: property tracking for this connector
+ * @property_values: value pointers or data for properties
+ * @polled: a %DRM_CONNECTOR_POLL_<foo> value for core driven polling
+ * @dpms: current dpms state
+ * @helper_private: mid-layer private data
+ * @force: a %DRM_FORCE_<foo> state for forced mode sets
+ * @encoder_ids: valid encoders for this connector
+ * @encoder: encoder driving this connector, if any
+ * @eld: EDID-like data, if present
+ * @dvi_dual: dual link DVI, if found
+ * @max_tmds_clock: max clock rate, if found
+ * @latency_present: AV delay info from ELD, if found
+ * @video_latency: video latency info from ELD, if found
+ * @audio_latency: audio latency info from ELD, if found
+ * @null_edid_counter: track sinks that give us all zeros for the EDID
*
* Each connector may be connected to one or more CRTCs, or may be clonable by
* another connector if they can share a CRTC. Each connector also has a specific
@@ -511,7 +534,6 @@ struct drm_connector {
bool doublescan_allowed;
struct list_head modes; /* list of modes on this connector */
- int initial_x, initial_y;
enum drm_connector_status status;
/* these are modes added by probing with DDC or the BIOS */
@@ -535,7 +557,6 @@ struct drm_connector {
/* forced on connector */
enum drm_connector_force force;
uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER];
- uint32_t force_encoder_id;
struct drm_encoder *encoder; /* currently active encoder */
/* EDID bits */
--
1.7.4.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 08/12] drm: document drm_mode_set structure
2011-11-07 20:03 Misc. cleanups Jesse Barnes
` (6 preceding siblings ...)
2011-11-07 20:03 ` [PATCH 07/12] drm: remove unused fields in drm_connector and document the rest Jesse Barnes
@ 2011-11-07 20:03 ` Jesse Barnes
2011-11-07 20:03 ` [PATCH 09/12] drm: document and cleanup drm_mode_config_funcs Jesse Barnes
` (4 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Jesse Barnes @ 2011-11-07 20:03 UTC (permalink / raw)
To: dri-devel
This is a core mode setting structure that deserves a little verbiage.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
include/drm/drm_crtc.h | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index e9f486d..b33713b 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -570,7 +570,15 @@ struct drm_connector {
};
/**
- * struct drm_mode_set
+ * drm_mode_set - new values for a CRTC config change
+ * @head: list management
+ * @fb: framebuffer to use for new config
+ * @crtc: CRTC whose configuration we're about to change
+ * @mode: mode timings to use
+ * @x: position of this CRTC relative to @fb
+ * @y: position of this CRTC relative to @fb
+ * @connectors: array of connectors to drive with this CRTC if possible
+ * @num_connectors: size of @connectors array
*
* Represents a single crtc the connectors that it drives with what mode
* and from which framebuffer it scans out from.
--
1.7.4.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 09/12] drm: document and cleanup drm_mode_config_funcs
2011-11-07 20:03 Misc. cleanups Jesse Barnes
` (7 preceding siblings ...)
2011-11-07 20:03 ` [PATCH 08/12] drm: document drm_mode_set structure Jesse Barnes
@ 2011-11-07 20:03 ` Jesse Barnes
2011-11-07 20:03 ` [PATCH 10/12] drm: document the drm_mode_group structure Jesse Barnes
` (3 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Jesse Barnes @ 2011-11-07 20:03 UTC (permalink / raw)
To: dri-devel
Just fix the wrapping mostly.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
include/drm/drm_crtc.h | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index b33713b..a0c7dc6 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -600,10 +600,17 @@ struct drm_mode_set {
};
/**
- * struct drm_mode_config_funcs - configure CRTCs for a given screen layout
+ * struct drm_mode_config_funcs - basic driver provided mode setting functions
+ * @fb_create: create a new framebuffer object
+ * @output_poll_changed: function to handle output configuration changes
+ *
+ * Some global (i.e. not per-CRTC, connector, etc) mode setting functions that
+ * involve drivers.
*/
struct drm_mode_config_funcs {
- struct drm_framebuffer *(*fb_create)(struct drm_device *dev, struct drm_file *file_priv, struct drm_mode_fb_cmd *mode_cmd);
+ struct drm_framebuffer *(*fb_create)(struct drm_device *dev,
+ struct drm_file *file_priv,
+ struct drm_mode_fb_cmd *mode_cmd);
void (*output_poll_changed)(struct drm_device *dev);
};
--
1.7.4.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 10/12] drm: document the drm_mode_group structure
2011-11-07 20:03 Misc. cleanups Jesse Barnes
` (8 preceding siblings ...)
2011-11-07 20:03 ` [PATCH 09/12] drm: document and cleanup drm_mode_config_funcs Jesse Barnes
@ 2011-11-07 20:03 ` Jesse Barnes
2011-11-07 20:03 ` [PATCH 11/12] drm: document the drm_mode_config structure Jesse Barnes
` (2 subsequent siblings)
12 siblings, 0 replies; 16+ messages in thread
From: Jesse Barnes @ 2011-11-07 20:03 UTC (permalink / raw)
To: dri-devel
This is actually a core structure with a big future ahead of it. Make
it a little less mysterious.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
include/drm/drm_crtc.h | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index a0c7dc6..003cba2 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -614,6 +614,19 @@ struct drm_mode_config_funcs {
void (*output_poll_changed)(struct drm_device *dev);
};
+/**
+ * drm_mode_group - group of mode setting resources for potential sub-grouping
+ * @num_crtcs: CRTC count
+ * @num_encoders: encoder count
+ * @num_connectors: connector count
+ * @id_list: list of KMS object IDs in this group
+ *
+ * Currently this simply tracks the global mode setting state. But in the
+ * future it could allow groups of objects to be set aside into independent
+ * control groups for use by different user level processes (e.g. two X servers
+ * running simultaneously on different heads, each with their own mode
+ * configuration and freedom of mode setting).
+ */
struct drm_mode_group {
uint32_t num_crtcs;
uint32_t num_encoders;
--
1.7.4.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 11/12] drm: document the drm_mode_config structure
2011-11-07 20:03 Misc. cleanups Jesse Barnes
` (9 preceding siblings ...)
2011-11-07 20:03 ` [PATCH 10/12] drm: document the drm_mode_group structure Jesse Barnes
@ 2011-11-07 20:03 ` Jesse Barnes
2011-11-07 20:03 ` [PATCH 12/12] drm: remove some potentially dangerous DRM_ERRORs Jesse Barnes
2011-11-07 20:27 ` Misc. cleanups Alex Deucher
12 siblings, 0 replies; 16+ messages in thread
From: Jesse Barnes @ 2011-11-07 20:03 UTC (permalink / raw)
To: dri-devel
Including a comment about what the locks are for.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
include/drm/drm_crtc.h | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 003cba2..58e6a996 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -638,7 +638,30 @@ struct drm_mode_group {
/**
* drm_mode_config - Mode configuration control structure
+ * @mutex: mutex protecting KMS related lists and structures
+ * @idr_mutex: mutex for KMS ID allocation and management
+ * @crtc_idr: main KMS ID tracking object
+ * @num_fb: number of fbs available
+ * @fb_list: list of framebuffers available
+ * @num_connector: number of connectors on this device
+ * @connector_list: list of connector objects
+ * @num_encoder: number of encoders on this device
+ * @encoder_list: list of encoder objects
+ * @num_crtc: number of CRTCs on this device
+ * @crtc_list: list of CRTC objects
+ * @min_width: minimum pixel width on this device
+ * @min_height: minimum pixel height on this device
+ * @max_width: maximum pixel width on this device
+ * @max_height: maximum pixel height on this device
+ * @funcs: core driver provided mode setting functions
+ * @fb_base: base address of the framebuffer
+ * @poll_enabled: track polling status for this device
+ * @output_poll_work: delayed work for polling in process context
+ * @*_property: core property tracking
*
+ * Core mode resource tracking structure. All CRTC, encoders, and connectors
+ * enumerated by the driver are added here, as are global properties. Some
+ * global restrictions are also here, e.g. dimension restrictions.
*/
struct drm_mode_config {
struct mutex mutex; /* protects configuration (mode lists etc.) */
--
1.7.4.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH 12/12] drm: remove some potentially dangerous DRM_ERRORs
2011-11-07 20:03 Misc. cleanups Jesse Barnes
` (10 preceding siblings ...)
2011-11-07 20:03 ` [PATCH 11/12] drm: document the drm_mode_config structure Jesse Barnes
@ 2011-11-07 20:03 ` Jesse Barnes
2011-11-07 20:27 ` Misc. cleanups Alex Deucher
12 siblings, 0 replies; 16+ messages in thread
From: Jesse Barnes @ 2011-11-07 20:03 UTC (permalink / raw)
To: dri-devel
Each of these error messages can be caused by a broken or malicious
userspace wanting to spam the dmesg with useless info. They're really
not worthy of DRM_DEBUG statements either; those are generally only
useful during bringup of new hardware or versions, and ought to be
removed before going upstream anyway.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
drivers/gpu/drm/drm_crtc.c | 19 ++++---------------
1 files changed, 4 insertions(+), 15 deletions(-)
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index fe738f0..df6c01b 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -1620,10 +1620,8 @@ int drm_mode_cursor_ioctl(struct drm_device *dev,
if (!drm_core_check_feature(dev, DRIVER_MODESET))
return -EINVAL;
- if (!req->flags) {
- DRM_ERROR("no operation set\n");
+ if (!req->flags)
return -EINVAL;
- }
mutex_lock(&dev->mode_config.mutex);
obj = drm_mode_object_find(dev, req->crtc_id, DRM_MODE_OBJECT_CRTC);
@@ -1636,7 +1634,6 @@ int drm_mode_cursor_ioctl(struct drm_device *dev,
if (req->flags & DRM_MODE_CURSOR_BO) {
if (!crtc->funcs->cursor_set) {
- DRM_ERROR("crtc does not support cursor\n");
ret = -ENXIO;
goto out;
}
@@ -1649,7 +1646,6 @@ int drm_mode_cursor_ioctl(struct drm_device *dev,
if (crtc->funcs->cursor_move) {
ret = crtc->funcs->cursor_move(crtc, req->x, req->y);
} else {
- DRM_ERROR("crtc does not support cursor\n");
ret = -EFAULT;
goto out;
}
@@ -1687,14 +1683,11 @@ int drm_mode_addfb(struct drm_device *dev,
if (!drm_core_check_feature(dev, DRIVER_MODESET))
return -EINVAL;
- if ((config->min_width > r->width) || (r->width > config->max_width)) {
- DRM_ERROR("mode new framebuffer width not within limits\n");
+ if ((config->min_width > r->width) || (r->width > config->max_width))
return -EINVAL;
- }
- if ((config->min_height > r->height) || (r->height > config->max_height)) {
- DRM_ERROR("mode new framebuffer height not within limits\n");
+
+ if ((config->min_height > r->height) || (r->height > config->max_height))
return -EINVAL;
- }
mutex_lock(&dev->mode_config.mutex);
@@ -1751,7 +1744,6 @@ int drm_mode_rmfb(struct drm_device *dev,
obj = drm_mode_object_find(dev, *id, DRM_MODE_OBJECT_FB);
/* TODO check that we really get a framebuffer back. */
if (!obj) {
- DRM_ERROR("mode invalid framebuffer id\n");
ret = -EINVAL;
goto out;
}
@@ -1762,7 +1754,6 @@ int drm_mode_rmfb(struct drm_device *dev,
found = 1;
if (!found) {
- DRM_ERROR("tried to remove a fb that we didn't own\n");
ret = -EINVAL;
goto out;
}
@@ -1809,7 +1800,6 @@ int drm_mode_getfb(struct drm_device *dev,
mutex_lock(&dev->mode_config.mutex);
obj = drm_mode_object_find(dev, r->fb_id, DRM_MODE_OBJECT_FB);
if (!obj) {
- DRM_ERROR("invalid framebuffer id\n");
ret = -EINVAL;
goto out;
}
@@ -1845,7 +1835,6 @@ int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
mutex_lock(&dev->mode_config.mutex);
obj = drm_mode_object_find(dev, r->fb_id, DRM_MODE_OBJECT_FB);
if (!obj) {
- DRM_ERROR("invalid framebuffer id\n");
ret = -EINVAL;
goto out_err1;
}
--
1.7.4.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: Misc. cleanups
2011-11-07 20:03 Misc. cleanups Jesse Barnes
` (11 preceding siblings ...)
2011-11-07 20:03 ` [PATCH 12/12] drm: remove some potentially dangerous DRM_ERRORs Jesse Barnes
@ 2011-11-07 20:27 ` Alex Deucher
12 siblings, 0 replies; 16+ messages in thread
From: Alex Deucher @ 2011-11-07 20:27 UTC (permalink / raw)
To: Jesse Barnes; +Cc: dri-devel
On Mon, Nov 7, 2011 at 3:03 PM, Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> Just some cleanups for unused fields in drm_crtc.h and some comment
> corrections. I also removed a few DRM_ERRORs from drm_crtc.c (things
> actually weren't as bad as I feared).
>
> Next step is to remove a whole slew of DRM_DEBUG calls unless people are
> really attached to them. I find them to just get in the way when I'm
> debugging a display problem, so I convert the ones I care about to
> DRM_ERROR temporarily and add several of my own...
For the series:
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
>
> Thanks,
> Jesse
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
^ permalink raw reply [flat|nested] 16+ messages in thread