[PATCH] drm: Fix docbook warnings in hdr metadata helper structures

Subsystems: drm drivers, drm drivers and misc gpu patches, the rest

STALE2703d

4 messages, 3 authors, 2019-05-29 · open the first message on its own page

[PATCH] drm: Fix docbook warnings in hdr metadata helper structures

From: Uma Shankar <hidden>
Date: 2019-05-29 14:43:50

Fixes the following warnings:
./include/drm/drm_mode_config.h:841: warning: Incorrect use of
kernel-doc format:          * hdr_output_metadata_property: Connector
property containing hdr
./include/drm/drm_mode_config.h:918: warning: Function parameter or member 'hdr_output_metadata_property' not described in 'drm_mode_config'
./include/drm/drm_connector.h:1251: warning: Function parameter or member 'hdr_output_metadata' not described in 'drm_connector'
./include/drm/drm_connector.h:1251: warning: Function parameter or member 'hdr_sink_metadata' not described in 'drm_connector'

Also adds some property documentation for HDR Metadata Connector
Property in connector property create function.

Cc: Shashank Sharma <redacted>
Cc: Ville Syrj채l채 <redacted>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <redacted>
Cc: Sean Paul <sean@poorly.run>
Cc: David Airlie <redacted>
Cc: Daniel Vetter <redacted>
Cc: Bartlomiej Zolnierkiewicz <redacted>
Cc: "Ville Syrj채l채" <redacted>
Cc: Hans Verkuil <redacted>
Cc: dri-devel@lists.freedesktop.org
Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Uma Shankar <redacted>
---
 drivers/gpu/drm/drm_connector.c | 8 ++++++++
 include/drm/drm_connector.h     | 3 ++-
 include/drm/drm_mode_config.h   | 2 +-
 include/linux/hdmi.h            | 1 +
 4 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index c9ac8b9..702307c 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -1003,6 +1003,14 @@ int drm_display_info_set_bus_formats(struct drm_display_info *info,
  *	can also expose this property to external outputs, in which case they
  *	must support "None", which should be the default (since external screens
  *	have a built-in scaler).
+ *
+ * HDR_OUTPUT_METADATA:
+ *	Connector property to enable userspace to send HDR Metadata to driver.
+ *	This metadata is based on the composition and blending policies decided
+ *	by user, taking into account the hardware and sink capabilties.
+ *	The driver gets this metadata and creates a Dynamic Range and Mastering
+ *	Infoframe (DRM) which is then sent to sink. This notifies the sink of
+ *	the upcoming frame's Color Encoding and Luminance parameters.
  */
 
 int drm_connector_create_standard_properties(struct drm_device *dev)
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index f8f4003..f226ef0 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -1244,8 +1244,9 @@ struct drm_connector {
 	 */
 	struct llist_node free_node;
 
-	/* HDR metdata */
+	/** @hdr_output_metadata: HDR Metadata to be sent to sink */
 	struct hdr_output_metadata hdr_output_metadata;
+	/** @hdr_sink_metadata: HDR Metadata Information read from sink */
 	struct hdr_sink_metadata hdr_sink_metadata;
 };
 
diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
index 4f88cc9..0b180e0 100644
--- a/include/drm/drm_mode_config.h
+++ b/include/drm/drm_mode_config.h
@@ -837,7 +837,7 @@ struct drm_mode_config {
 	struct drm_property *writeback_out_fence_ptr_property;
 
 	/**
-	 * hdr_output_metadata_property: Connector property containing hdr
+	 * @hdr_output_metadata_property: Connector property containing hdr
 	 * metatda. This will be provided by userspace compositors based
 	 * on HDR content
 	 */
diff --git a/include/linux/hdmi.h b/include/linux/hdmi.h
index ee55ba5..ea5858e 100644
--- a/include/linux/hdmi.h
+++ b/include/linux/hdmi.h
@@ -398,6 +398,7 @@ ssize_t hdmi_vendor_infoframe_pack_only(const struct hdmi_vendor_infoframe *fram
  * @spd: spd infoframe
  * @vendor: union of all vendor infoframes
  * @audio: audio infoframe
+ * @drm: DRM infoframe
  *
  * This is used by the generic pack function. This works since all infoframes
  * have the same header which also indicates which type of infoframe should be
-- 
1.9.1

Re: [PATCH] drm: Fix docbook warnings in hdr metadata helper structures

From: Sean Paul <sean@poorly.run>
Date: 2019-05-29 14:35:37

On Wed, May 29, 2019 at 08:13:50PM +0530, Uma Shankar wrote:
quoted hunk
Fixes the following warnings:
./include/drm/drm_mode_config.h:841: warning: Incorrect use of
kernel-doc format:          * hdr_output_metadata_property: Connector
property containing hdr
./include/drm/drm_mode_config.h:918: warning: Function parameter or member 'hdr_output_metadata_property' not described in 'drm_mode_config'
./include/drm/drm_connector.h:1251: warning: Function parameter or member 'hdr_output_metadata' not described in 'drm_connector'
./include/drm/drm_connector.h:1251: warning: Function parameter or member 'hdr_sink_metadata' not described in 'drm_connector'

Also adds some property documentation for HDR Metadata Connector
Property in connector property create function.

Cc: Shashank Sharma <redacted>
Cc: Ville Syrjälä <redacted>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <redacted>
Cc: Sean Paul <sean@poorly.run>
Cc: David Airlie <redacted>
Cc: Daniel Vetter <redacted>
Cc: Bartlomiej Zolnierkiewicz <redacted>
Cc: "Ville Syrjälä" <redacted>
Cc: Hans Verkuil <redacted>
Cc: dri-devel@lists.freedesktop.org
Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Uma Shankar <redacted>
---
 drivers/gpu/drm/drm_connector.c | 8 ++++++++
 include/drm/drm_connector.h     | 3 ++-
 include/drm/drm_mode_config.h   | 2 +-
 include/linux/hdmi.h            | 1 +
 4 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index c9ac8b9..702307c 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -1003,6 +1003,14 @@ int drm_display_info_set_bus_formats(struct drm_display_info *info,
  *	can also expose this property to external outputs, in which case they
  *	must support "None", which should be the default (since external screens
  *	have a built-in scaler).
+ *
+ * HDR_OUTPUT_METADATA:
+ *	Connector property to enable userspace to send HDR Metadata to driver.
+ *	This metadata is based on the composition and blending policies decided
+ *	by user, taking into account the hardware and sink capabilties.
capabilities
quoted hunk
+ *	The driver gets this metadata and creates a Dynamic Range and Mastering
+ *	Infoframe (DRM) which is then sent to sink. This notifies the sink of
+ *	the upcoming frame's Color Encoding and Luminance parameters.
  */
 
 int drm_connector_create_standard_properties(struct drm_device *dev)
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index f8f4003..f226ef0 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -1244,8 +1244,9 @@ struct drm_connector {
 	 */
 	struct llist_node free_node;
 
-	/* HDR metdata */
+	/** @hdr_output_metadata: HDR Metadata to be sent to sink */
 	struct hdr_output_metadata hdr_output_metadata;
+	/** @hdr_sink_metadata: HDR Metadata Information read from sink */
 	struct hdr_sink_metadata hdr_sink_metadata;
 };
 
diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
index 4f88cc9..0b180e0 100644
--- a/include/drm/drm_mode_config.h
+++ b/include/drm/drm_mode_config.h
@@ -837,7 +837,7 @@ struct drm_mode_config {
 	struct drm_property *writeback_out_fence_ptr_property;
 
 	/**
-	 * hdr_output_metadata_property: Connector property containing hdr
+	 * @hdr_output_metadata_property: Connector property containing hdr
 	 * metatda. This will be provided by userspace compositors based
May as well fix the spelling of "metadata" while you're here.
quoted hunk
 	 * on HDR content
 	 */
diff --git a/include/linux/hdmi.h b/include/linux/hdmi.h
index ee55ba5..ea5858e 100644
--- a/include/linux/hdmi.h
+++ b/include/linux/hdmi.h
@@ -398,6 +398,7 @@ ssize_t hdmi_vendor_infoframe_pack_only(const struct hdmi_vendor_infoframe *fram
  * @spd: spd infoframe
  * @vendor: union of all vendor infoframes
  * @audio: audio infoframe
+ * @drm: DRM infoframe
Can you spell this out here so it's unambiguous which DRM you're talking about?

With the nits fixed,

Reviewed-by: Sean Paul <sean@poorly.run>

  *
  * This is used by the generic pack function. This works since all infoframes
  * have the same header which also indicates which type of infoframe should be
-- 
1.9.1
-- 
Sean Paul, Software Engineer, Google / Chromium OS

Re: [PATCH] drm: Fix docbook warnings in hdr metadata helper structures

From: Daniel Vetter <hidden>
Date: 2019-05-29 15:01:07

On Wed, May 29, 2019 at 4:16 PM Uma Shankar [off-list ref] wrote:
quoted hunk
Fixes the following warnings:
./include/drm/drm_mode_config.h:841: warning: Incorrect use of
kernel-doc format:          * hdr_output_metadata_property: Connector
property containing hdr
./include/drm/drm_mode_config.h:918: warning: Function parameter or member 'hdr_output_metadata_property' not described in 'drm_mode_config'
./include/drm/drm_connector.h:1251: warning: Function parameter or member 'hdr_output_metadata' not described in 'drm_connector'
./include/drm/drm_connector.h:1251: warning: Function parameter or member 'hdr_sink_metadata' not described in 'drm_connector'

Also adds some property documentation for HDR Metadata Connector
Property in connector property create function.

Cc: Shashank Sharma <redacted>
Cc: Ville Syrj채l채 <redacted>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Maxime Ripard <redacted>
Cc: Sean Paul <sean@poorly.run>
Cc: David Airlie <redacted>
Cc: Daniel Vetter <redacted>
Cc: Bartlomiej Zolnierkiewicz <redacted>
Cc: "Ville Syrj채l채" <redacted>
Cc: Hans Verkuil <redacted>
Cc: dri-devel@lists.freedesktop.org
Cc: linux-fbdev@vger.kernel.org
Signed-off-by: Uma Shankar <redacted>
---
 drivers/gpu/drm/drm_connector.c | 8 ++++++++
 include/drm/drm_connector.h     | 3 ++-
 include/drm/drm_mode_config.h   | 2 +-
 include/linux/hdmi.h            | 1 +
 4 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index c9ac8b9..702307c 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -1003,6 +1003,14 @@ int drm_display_info_set_bus_formats(struct drm_display_info *info,
  *     can also expose this property to external outputs, in which case they
  *     must support "None", which should be the default (since external screens
  *     have a built-in scaler).
+ *
+ * HDR_OUTPUT_METADATA:
+ *     Connector property to enable userspace to send HDR Metadata to driver.
+ *     This metadata is based on the composition and blending policies decided
+ *     by user, taking into account the hardware and sink capabilties.
+ *     The driver gets this metadata and creates a Dynamic Range and Mastering
+ *     Infoframe (DRM) which is then sent to sink. This notifies the sink of
+ *     the upcoming frame's Color Encoding and Luminance parameters.
  */
Assuming I'm applying this correctly your adding this to the "lcd
panel properties" section. That doesn't make sense to me. I think we
already have a section for hdmi properties somewhere, would fit better
there.

This should also contain a bit more about how this is supposed to
work, how it's set up from a driver pov (sprinkle links all over it)
and how userspace it supposed to use it.

I think since this is a using a rather complicated struct I think we
need to fully document that structure too. Atm uapi/drm_mode.h isn't
pulled into anywhere, so we need to fix that (a new chapter titled
"Userspace API Structures" in drm-uapi.rst would be good, cross-links
will work).
quoted hunk
 int drm_connector_create_standard_properties(struct drm_device *dev)
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index f8f4003..f226ef0 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -1244,8 +1244,9 @@ struct drm_connector {
         */
        struct llist_node free_node;

-       /* HDR metdata */
+       /** @hdr_output_metadata: HDR Metadata to be sent to sink */
        struct hdr_output_metadata hdr_output_metadata;
Uh, is this even used? It would be a bug if so, since the state
userspace can set must be stored in drm_connector_state, not in
drm_connector. Only read-only stuff can be in there.

Please don't just blindly type docs, try to make sure that what you're
documenting actually makes sense. Also, should have been a clear sign
that you've forgotten to document one of the properties in the
enumeration above.
-Daniel
quoted hunk
+       /** @hdr_sink_metadata: HDR Metadata Information read from sink */
        struct hdr_sink_metadata hdr_sink_metadata;
 };
diff --git a/include/drm/drm_mode_config.h b/include/drm/drm_mode_config.h
index 4f88cc9..0b180e0 100644
--- a/include/drm/drm_mode_config.h
+++ b/include/drm/drm_mode_config.h
@@ -837,7 +837,7 @@ struct drm_mode_config {
        struct drm_property *writeback_out_fence_ptr_property;

        /**
-        * hdr_output_metadata_property: Connector property containing hdr
+        * @hdr_output_metadata_property: Connector property containing hdr
         * metatda. This will be provided by userspace compositors based
         * on HDR content
         */
diff --git a/include/linux/hdmi.h b/include/linux/hdmi.h
index ee55ba5..ea5858e 100644
--- a/include/linux/hdmi.h
+++ b/include/linux/hdmi.h
@@ -398,6 +398,7 @@ ssize_t hdmi_vendor_infoframe_pack_only(const struct hdmi_vendor_infoframe *fram
  * @spd: spd infoframe
  * @vendor: union of all vendor infoframes
  * @audio: audio infoframe
+ * @drm: DRM infoframe
  *
  * This is used by the generic pack function. This works since all infoframes
  * have the same header which also indicates which type of infoframe should be
--
1.9.1

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

Re: [PATCH] drm: Fix docbook warnings in hdr metadata helper structures

From: Shankar, Uma <hidden>
Date: 2019-05-29 17:23:01

DQoNCj4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPkZyb206IERhbmllbCBWZXR0ZXIgW21h
aWx0bzpkYW5pZWxAZmZ3bGwuY2hdDQo+U2VudDogV2VkbmVzZGF5LCBNYXkgMjksIDIwMTkgODoz
MSBQTQ0KPlRvOiBTaGFua2FyLCBVbWEgPHVtYS5zaGFua2FyQGludGVsLmNvbT4NCj5DYzogaW50
ZWwtZ2Z4IDxpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPjsgZHJpLWRldmVsIDxkcmkt
DQo+ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPjsgU2hhcm1hLCBTaGFzaGFuayA8c2hhc2hh
bmsuc2hhcm1hQGludGVsLmNvbT47DQo+VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp
bnV4LmludGVsLmNvbT47IE1hYXJ0ZW4gTGFua2hvcnN0DQo+PG1hYXJ0ZW4ubGFua2hvcnN0QGxp
bnV4LmludGVsLmNvbT47IE1heGltZSBSaXBhcmQNCj48bWF4aW1lLnJpcGFyZEBib290bGluLmNv
bT47IFNlYW4gUGF1bCA8c2VhbkBwb29ybHkucnVuPjsgRGF2aWQgQWlybGllDQo+PGFpcmxpZWRA
bGludXguaWU+OyBCYXJ0bG9taWVqIFpvbG5pZXJraWV3aWN6IDxiLnpvbG5pZXJraWVAc2Ftc3Vu
Zy5jb20+OyBIYW5zDQo+VmVya3VpbCA8aGFuc3ZlcmtAY2lzY28uY29tPjsgTGludXggRmJkZXYg
ZGV2ZWxvcG1lbnQgbGlzdCA8bGludXgtDQo+ZmJkZXZAdmdlci5rZXJuZWwub3JnPg0KPlN1Ympl
Y3Q6IFJlOiBbUEFUQ0hdIGRybTogRml4IGRvY2Jvb2sgd2FybmluZ3MgaW4gaGRyIG1ldGFkYXRh
IGhlbHBlciBzdHJ1Y3R1cmVzDQo+DQo+T24gV2VkLCBNYXkgMjksIDIwMTkgYXQgNDoxNiBQTSBV
bWEgU2hhbmthciA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPiB3cm90ZToNCj4+DQo+PiBGaXhlcyB0
aGUgZm9sbG93aW5nIHdhcm5pbmdzOg0KPj4gLi9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcu
aDo4NDE6IHdhcm5pbmc6IEluY29ycmVjdCB1c2Ugb2YNCj4+IGtlcm5lbC1kb2MgZm9ybWF0OiAg
ICAgICAgICAqIGhkcl9vdXRwdXRfbWV0YWRhdGFfcHJvcGVydHk6IENvbm5lY3Rvcg0KPj4gcHJv
cGVydHkgY29udGFpbmluZyBoZHINCj4+IC4vaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmg6
OTE4OiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0ZXIgb3IgbWVtYmVyDQo+J2hkcl9vdXRwdXRf
bWV0YWRhdGFfcHJvcGVydHknIG5vdCBkZXNjcmliZWQgaW4gJ2RybV9tb2RlX2NvbmZpZycNCj4+
IC4vaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oOjEyNTE6IHdhcm5pbmc6IEZ1bmN0aW9uIHBh
cmFtZXRlciBvciBtZW1iZXINCj4naGRyX291dHB1dF9tZXRhZGF0YScgbm90IGRlc2NyaWJlZCBp
biAnZHJtX2Nvbm5lY3RvcicNCj4+IC4vaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oOjEyNTE6
IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXINCj4naGRyX3NpbmtfbWV0YWRh
dGEnIG5vdCBkZXNjcmliZWQgaW4gJ2RybV9jb25uZWN0b3InDQo+Pg0KPj4gQWxzbyBhZGRzIHNv
bWUgcHJvcGVydHkgZG9jdW1lbnRhdGlvbiBmb3IgSERSIE1ldGFkYXRhIENvbm5lY3Rvcg0KPj4g
UHJvcGVydHkgaW4gY29ubmVjdG9yIHByb3BlcnR5IGNyZWF0ZSBmdW5jdGlvbi4NCj4+DQo+PiBD
YzogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPg0KPj4gQ2M6IFZp
bGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+DQo+PiBDYzogTWFh
cnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4NCj4+IENj
OiBNYXhpbWUgUmlwYXJkIDxtYXhpbWUucmlwYXJkQGJvb3RsaW4uY29tPg0KPj4gQ2M6IFNlYW4g
UGF1bCA8c2VhbkBwb29ybHkucnVuPg0KPj4gQ2M6IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51
eC5pZT4NCj4+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+DQo+PiBDYzogQmFy
dGxvbWllaiBab2xuaWVya2lld2ljeiA8Yi56b2xuaWVya2llQHNhbXN1bmcuY29tPg0KPj4gQ2M6
ICJWaWxsZSBTeXJqw6Rsw6QiIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4NCj4+IENj
OiBIYW5zIFZlcmt1aWwgPGhhbnN2ZXJrQGNpc2NvLmNvbT4NCj4+IENjOiBkcmktZGV2ZWxAbGlz
dHMuZnJlZWRlc2t0b3Aub3JnDQo+PiBDYzogbGludXgtZmJkZXZAdmdlci5rZXJuZWwub3JnDQo+
PiBTaWduZWQtb2ZmLWJ5OiBVbWEgU2hhbmthciA8dW1hLnNoYW5rYXJAaW50ZWwuY29tPg0KPj4g
LS0tDQo+PiAgZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyB8IDggKysrKysrKysNCj4+
ICBpbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggICAgIHwgMyArKy0NCj4+ICBpbmNsdWRlL2Ry
bS9kcm1fbW9kZV9jb25maWcuaCAgIHwgMiArLQ0KPj4gIGluY2x1ZGUvbGludXgvaGRtaS5oICAg
ICAgICAgICAgfCAxICsNCj4+ICA0IGZpbGVzIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDIg
ZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29u
bmVjdG9yLmMNCj4+IGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyBpbmRleCBjOWFj
OGI5Li43MDIzMDdjIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0
b3IuYw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYw0KPj4gQEAgLTEw
MDMsNiArMTAwMywxNCBAQCBpbnQgZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoc3Ry
dWN0DQo+ZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbywNCj4+ICAgKiAgICAgY2FuIGFsc28gZXhwb3Nl
IHRoaXMgcHJvcGVydHkgdG8gZXh0ZXJuYWwgb3V0cHV0cywgaW4gd2hpY2ggY2FzZSB0aGV5DQo+
PiAgICogICAgIG11c3Qgc3VwcG9ydCAiTm9uZSIsIHdoaWNoIHNob3VsZCBiZSB0aGUgZGVmYXVs
dCAoc2luY2UgZXh0ZXJuYWwgc2NyZWVucw0KPj4gICAqICAgICBoYXZlIGEgYnVpbHQtaW4gc2Nh
bGVyKS4NCj4+ICsgKg0KPj4gKyAqIEhEUl9PVVRQVVRfTUVUQURBVEE6DQo+PiArICogICAgIENv
bm5lY3RvciBwcm9wZXJ0eSB0byBlbmFibGUgdXNlcnNwYWNlIHRvIHNlbmQgSERSIE1ldGFkYXRh
IHRvIGRyaXZlci4NCj4+ICsgKiAgICAgVGhpcyBtZXRhZGF0YSBpcyBiYXNlZCBvbiB0aGUgY29t
cG9zaXRpb24gYW5kIGJsZW5kaW5nIHBvbGljaWVzIGRlY2lkZWQNCj4+ICsgKiAgICAgYnkgdXNl
ciwgdGFraW5nIGludG8gYWNjb3VudCB0aGUgaGFyZHdhcmUgYW5kIHNpbmsgY2FwYWJpbHRpZXMu
DQo+PiArICogICAgIFRoZSBkcml2ZXIgZ2V0cyB0aGlzIG1ldGFkYXRhIGFuZCBjcmVhdGVzIGEg
RHluYW1pYyBSYW5nZSBhbmQgTWFzdGVyaW5nDQo+PiArICogICAgIEluZm9mcmFtZSAoRFJNKSB3
aGljaCBpcyB0aGVuIHNlbnQgdG8gc2luay4gVGhpcyBub3RpZmllcyB0aGUgc2luayBvZg0KPj4g
KyAqICAgICB0aGUgdXBjb21pbmcgZnJhbWUncyBDb2xvciBFbmNvZGluZyBhbmQgTHVtaW5hbmNl
IHBhcmFtZXRlcnMuDQo+PiAgICovDQo+DQo+QXNzdW1pbmcgSSdtIGFwcGx5aW5nIHRoaXMgY29y
cmVjdGx5IHlvdXIgYWRkaW5nIHRoaXMgdG8gdGhlICJsY2QgcGFuZWwgcHJvcGVydGllcyINCj5z
ZWN0aW9uLiBUaGF0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBtZS4gSSB0aGluayB3ZSBhbHJlYWR5
IGhhdmUgYSBzZWN0aW9uIGZvciBoZG1pDQo+cHJvcGVydGllcyBzb21ld2hlcmUsIHdvdWxkIGZp
dCBiZXR0ZXIgdGhlcmUuDQoNClRoaXMgaXMgZ2VuZXJpYyAoYXBwbGllcyBmb3IgSERNSSBhcyB3
ZWxsIGFzIERQKS4gSSB3aWxsIG1vdmUgdGhpcyBhYm92ZSBhbmQgbmVhciB0byBHZW5lcmFsDQpw
cm9wZXJ0aWVzIGxpa2UgRURJRC4NCg0KPlRoaXMgc2hvdWxkIGFsc28gY29udGFpbiBhIGJpdCBt
b3JlIGFib3V0IGhvdyB0aGlzIGlzIHN1cHBvc2VkIHRvIHdvcmssIGhvdyBpdCdzIHNldA0KPnVw
IGZyb20gYSBkcml2ZXIgcG92IChzcHJpbmtsZSBsaW5rcyBhbGwgb3ZlciBpdCkgYW5kIGhvdyB1
c2Vyc3BhY2UgaXQgc3VwcG9zZWQgdG8gdXNlIGl0Lg0KDQpPSywgd2lsbCBhZGQgZWxhYm9yYXRl
IHRoaXMgYWRkaW5nIHRoZXNlIGRldGFpbHMgYXMgd2VsbC4NCg0KPkkgdGhpbmsgc2luY2UgdGhp
cyBpcyBhIHVzaW5nIGEgcmF0aGVyIGNvbXBsaWNhdGVkIHN0cnVjdCBJIHRoaW5rIHdlIG5lZWQg
dG8gZnVsbHkNCj5kb2N1bWVudCB0aGF0IHN0cnVjdHVyZSB0b28uIEF0bSB1YXBpL2RybV9tb2Rl
LmggaXNuJ3QgcHVsbGVkIGludG8gYW55d2hlcmUsIHNvIHdlDQo+bmVlZCB0byBmaXggdGhhdCAo
YSBuZXcgY2hhcHRlciB0aXRsZWQgIlVzZXJzcGFjZSBBUEkgU3RydWN0dXJlcyIgaW4gZHJtLXVh
cGkucnN0IHdvdWxkDQo+YmUgZ29vZCwgY3Jvc3MtbGlua3Mgd2lsbCB3b3JrKS4NCg0KT2ssIHdp
bGwgYWRkIHRoaXMgbmV3IHNlY3Rpb24gYW5kIGxpbmsgdGhlIEhEUiBzdHJ1Y3R1cmUgZGVmaW5p
dGlvbnMgdG8gdGhpcy4NCg0KPj4NCj4+ICBpbnQgZHJtX2Nvbm5lY3Rvcl9jcmVhdGVfc3RhbmRh
cmRfcHJvcGVydGllcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQ0KPj4gZGlmZiAtLWdpdCBhL2lu
Y2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaA0K
Pj4gaW5kZXggZjhmNDAwMy4uZjIyNmVmMCAxMDA2NDQNCj4+IC0tLSBhL2luY2x1ZGUvZHJtL2Ry
bV9jb25uZWN0b3IuaA0KPj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oDQo+PiBA
QCAtMTI0NCw4ICsxMjQ0LDkgQEAgc3RydWN0IGRybV9jb25uZWN0b3Igew0KPj4gICAgICAgICAg
Ki8NCj4+ICAgICAgICAgc3RydWN0IGxsaXN0X25vZGUgZnJlZV9ub2RlOw0KPj4NCj4+IC0gICAg
ICAgLyogSERSIG1ldGRhdGEgKi8NCj4+ICsgICAgICAgLyoqIEBoZHJfb3V0cHV0X21ldGFkYXRh
OiBIRFIgTWV0YWRhdGEgdG8gYmUgc2VudCB0byBzaW5rICovDQo+PiAgICAgICAgIHN0cnVjdCBo
ZHJfb3V0cHV0X21ldGFkYXRhIGhkcl9vdXRwdXRfbWV0YWRhdGE7DQo+DQo+VWgsIGlzIHRoaXMg
ZXZlbiB1c2VkPyBJdCB3b3VsZCBiZSBhIGJ1ZyBpZiBzbywgc2luY2UgdGhlIHN0YXRlIHVzZXJz
cGFjZSBjYW4gc2V0IG11c3QNCj5iZSBzdG9yZWQgaW4gZHJtX2Nvbm5lY3Rvcl9zdGF0ZSwgbm90
IGluIGRybV9jb25uZWN0b3IuIE9ubHkgcmVhZC1vbmx5IHN0dWZmIGNhbiBiZQ0KPmluIHRoZXJl
Lg0KDQpZZWFoLCB0aGlzIGlzIG5vdCByZXF1aXJlZC4gV2UgaGF2ZSB0aGUgbWV0YWRhdGEgaGFu
ZGxlZCBhcyBwYXJ0IG9mIGRybV9jb25uZWN0b3Jfc3RhdGUuDQpXaWxsIGRyb3AgdGhpcyBmcm9t
IGhlcmUuIFRoYW5rcyBmb3Igc3BvdHRpbmcgdGhpcy4NCg0KPlBsZWFzZSBkb24ndCBqdXN0IGJs
aW5kbHkgdHlwZSBkb2NzLCB0cnkgdG8gbWFrZSBzdXJlIHRoYXQgd2hhdCB5b3UncmUgZG9jdW1l
bnRpbmcNCj5hY3R1YWxseSBtYWtlcyBzZW5zZS4gQWxzbywgc2hvdWxkIGhhdmUgYmVlbiBhIGNs
ZWFyIHNpZ24gdGhhdCB5b3UndmUgZm9yZ290dGVuIHRvDQo+ZG9jdW1lbnQgb25lIG9mIHRoZSBw
cm9wZXJ0aWVzIGluIHRoZSBlbnVtZXJhdGlvbiBhYm92ZS4NCg0KT2sgU3VyZSwgd2lsbCB0cnkg
dG8gYmUgY2FyZWZ1bCB3aXRoIHJlc3BlY3QgdG8gdGhlIHNlY3Rpb25zIHdoZXJlIHRoaW5ncyBn
ZXQgcGxhY2VkLg0KVGhhbmtzIGZvciBhbGwgeW91ciBpbnB1dHMgYW5kIGZlZWRiYWNrLiBXaWxs
IHNlbmQgb3V0IHRoZSBjaGFuZ2VzIHNvb24uDQoNClJlZ2FyZHMsDQpVbWEgU2hhbmthcg0KDQo+
LURhbmllbA0KPg0KPj4gKyAgICAgICAvKiogQGhkcl9zaW5rX21ldGFkYXRhOiBIRFIgTWV0YWRh
dGEgSW5mb3JtYXRpb24gcmVhZCBmcm9tDQo+PiArIHNpbmsgKi8NCj4+ICAgICAgICAgc3RydWN0
IGhkcl9zaW5rX21ldGFkYXRhIGhkcl9zaW5rX21ldGFkYXRhOyAgfTsNCj4+DQo+PiBkaWZmIC0t
Z2l0IGEvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgNCj4+IGIvaW5jbHVkZS9kcm0vZHJt
X21vZGVfY29uZmlnLmggaW5kZXggNGY4OGNjOS4uMGIxODBlMCAxMDA2NDQNCj4+IC0tLSBhL2lu
Y2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oDQo+PiArKysgYi9pbmNsdWRlL2RybS9kcm1fbW9k
ZV9jb25maWcuaA0KPj4gQEAgLTgzNyw3ICs4MzcsNyBAQCBzdHJ1Y3QgZHJtX21vZGVfY29uZmln
IHsNCj4+ICAgICAgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqd3JpdGViYWNrX291dF9mZW5jZV9w
dHJfcHJvcGVydHk7DQo+Pg0KPj4gICAgICAgICAvKioNCj4+IC0gICAgICAgICogaGRyX291dHB1
dF9tZXRhZGF0YV9wcm9wZXJ0eTogQ29ubmVjdG9yIHByb3BlcnR5IGNvbnRhaW5pbmcgaGRyDQo+
PiArICAgICAgICAqIEBoZHJfb3V0cHV0X21ldGFkYXRhX3Byb3BlcnR5OiBDb25uZWN0b3IgcHJv
cGVydHkNCj4+ICsgY29udGFpbmluZyBoZHINCj4+ICAgICAgICAgICogbWV0YXRkYS4gVGhpcyB3
aWxsIGJlIHByb3ZpZGVkIGJ5IHVzZXJzcGFjZSBjb21wb3NpdG9ycyBiYXNlZA0KPj4gICAgICAg
ICAgKiBvbiBIRFIgY29udGVudA0KPj4gICAgICAgICAgKi8NCj4+IGRpZmYgLS1naXQgYS9pbmNs
dWRlL2xpbnV4L2hkbWkuaCBiL2luY2x1ZGUvbGludXgvaGRtaS5oIGluZGV4DQo+PiBlZTU1YmE1
Li5lYTU4NThlIDEwMDY0NA0KPj4gLS0tIGEvaW5jbHVkZS9saW51eC9oZG1pLmgNCj4+ICsrKyBi
L2luY2x1ZGUvbGludXgvaGRtaS5oDQo+PiBAQCAtMzk4LDYgKzM5OCw3IEBAIHNzaXplX3QgaGRt
aV92ZW5kb3JfaW5mb2ZyYW1lX3BhY2tfb25seShjb25zdCBzdHJ1Y3QNCj5oZG1pX3ZlbmRvcl9p
bmZvZnJhbWUgKmZyYW0NCj4+ICAgKiBAc3BkOiBzcGQgaW5mb2ZyYW1lDQo+PiAgICogQHZlbmRv
cjogdW5pb24gb2YgYWxsIHZlbmRvciBpbmZvZnJhbWVzDQo+PiAgICogQGF1ZGlvOiBhdWRpbyBp
bmZvZnJhbWUNCj4+ICsgKiBAZHJtOiBEUk0gaW5mb2ZyYW1lDQo+PiAgICoNCj4+ICAgKiBUaGlz
IGlzIHVzZWQgYnkgdGhlIGdlbmVyaWMgcGFjayBmdW5jdGlvbi4gVGhpcyB3b3JrcyBzaW5jZSBh
bGwgaW5mb2ZyYW1lcw0KPj4gICAqIGhhdmUgdGhlIHNhbWUgaGVhZGVyIHdoaWNoIGFsc28gaW5k
aWNhdGVzIHdoaWNoIHR5cGUgb2YgaW5mb2ZyYW1lDQo+PiBzaG91bGQgYmUNCj4+IC0tDQo+PiAx
LjkuMQ0KPj4NCj4NCj4NCj4tLQ0KPkRhbmllbCBWZXR0ZXINCj5Tb2Z0d2FyZSBFbmdpbmVlciwg
SW50ZWwgQ29ycG9yYXRpb24NCj4rNDEgKDApIDc5IDM2NSA1NyA0OCAtIGh0dHA6Ly9ibG9nLmZm
d2xsLmNoDQo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help