[PATCH] drm/connector: hdmi: Fix kerneldoc warnings
Maxime Ripard
mripard at kernel.org
Mon Jun 10 11:12:00 UTC 2024
It looks like the documentation for the HDMI-related fields recently
added to both the drm_connector and drm_connector_state structures
trigger some warnings because of their use of anonymous structures:
$ scripts/kernel-doc -none include/drm/drm_connector.h
include/drm/drm_connector.h:1138: warning: Excess struct member 'broadcast_rgb' description in 'drm_connector_state'
include/drm/drm_connector.h:1138: warning: Excess struct member 'infoframes' description in 'drm_connector_state'
include/drm/drm_connector.h:1138: warning: Excess struct member 'avi' description in 'drm_connector_state'
include/drm/drm_connector.h:1138: warning: Excess struct member 'hdr_drm' description in 'drm_connector_state'
include/drm/drm_connector.h:1138: warning: Excess struct member 'spd' description in 'drm_connector_state'
include/drm/drm_connector.h:1138: warning: Excess struct member 'vendor' description in 'drm_connector_state'
include/drm/drm_connector.h:1138: warning: Excess struct member 'is_limited_range' description in 'drm_connector_state'
include/drm/drm_connector.h:1138: warning: Excess struct member 'output_bpc' description in 'drm_connector_state'
include/drm/drm_connector.h:1138: warning: Excess struct member 'output_format' description in 'drm_connector_state'
include/drm/drm_connector.h:1138: warning: Excess struct member 'tmds_char_rate' description in 'drm_connector_state'
include/drm/drm_connector.h:2112: warning: Excess struct member 'vendor' description in 'drm_connector'
include/drm/drm_connector.h:2112: warning: Excess struct member 'product' description in 'drm_connector'
include/drm/drm_connector.h:2112: warning: Excess struct member 'supported_formats' description in 'drm_connector'
include/drm/drm_connector.h:2112: warning: Excess struct member 'infoframes' description in 'drm_connector'
include/drm/drm_connector.h:2112: warning: Excess struct member 'lock' description in 'drm_connector'
include/drm/drm_connector.h:2112: warning: Excess struct member 'audio' description in 'drm_connector'
Create some intermediate structures instead of anonymous ones to silence
the warnings.
Reported-by: Jani Nikula <jani.nikula at linux.intel.com>
Suggested-by: Jani Nikula <jani.nikula at linux.intel.com>
Fixes: 54cb39e2293b ("drm/connector: hdmi: Create an HDMI sub-state")
Fixes: 948f01d5e559 ("drm/connector: hdmi: Add support for output format")
Signed-off-by: Maxime Ripard <mripard at kernel.org>
---
include/drm/drm_connector.h | 207 +++++++++++++++++++-----------------
1 file changed, 109 insertions(+), 98 deletions(-)
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index e04a8a0d1bbd..1afee2939b71 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -927,10 +927,72 @@ struct drm_connector_hdmi_infoframe {
* @set: Is the content of @data valid?
*/
bool set;
};
+/*
+ * struct drm_connector_hdmi_state - HDMI state container
+ */
+struct drm_connector_hdmi_state {
+ /**
+ * @broadcast_rgb: Connector property to pass the
+ * Broadcast RGB selection value.
+ */
+ enum drm_hdmi_broadcast_rgb broadcast_rgb;
+
+ /**
+ * @infoframes: HDMI Infoframes matching that state
+ */
+ struct {
+ /**
+ * @avi: AVI Infoframes structure matching our
+ * state.
+ */
+ struct drm_connector_hdmi_infoframe avi;
+
+ /**
+ * @hdr_drm: DRM (Dynamic Range and Mastering)
+ * Infoframes structure matching our state.
+ */
+ struct drm_connector_hdmi_infoframe hdr_drm;
+
+ /**
+ * @spd: SPD Infoframes structure matching our
+ * state.
+ */
+ struct drm_connector_hdmi_infoframe spd;
+
+ /**
+ * @vendor: HDMI Vendor Infoframes structure
+ * matching our state.
+ */
+ struct drm_connector_hdmi_infoframe hdmi;
+ } infoframes;
+
+ /**
+ * @is_limited_range: Is the output supposed to use a limited
+ * RGB Quantization Range or not?
+ */
+ bool is_limited_range;
+
+ /**
+ * @output_bpc: Bits per color channel to output.
+ */
+ unsigned int output_bpc;
+
+ /**
+ * @output_format: Pixel format to output in.
+ */
+ enum hdmi_colorspace output_format;
+
+ /**
+ * @tmds_char_rate: TMDS Character Rate, in Hz.
+ */
+ unsigned long long tmds_char_rate;
+
+}
+
/**
* struct drm_connector_state - mutable connector state
*/
struct drm_connector_state {
/** @connector: backpointer to the connector */
@@ -1076,67 +1138,11 @@ struct drm_connector_state {
/**
* @hdmi: HDMI-related variable and properties. Filled by
* @drm_atomic_helper_connector_hdmi_check().
*/
- struct {
- /**
- * @broadcast_rgb: Connector property to pass the
- * Broadcast RGB selection value.
- */
- enum drm_hdmi_broadcast_rgb broadcast_rgb;
-
- /**
- * @infoframes: HDMI Infoframes matching that state
- */
- struct {
- /**
- * @avi: AVI Infoframes structure matching our
- * state.
- */
- struct drm_connector_hdmi_infoframe avi;
-
- /**
- * @hdr_drm: DRM (Dynamic Range and Mastering)
- * Infoframes structure matching our state.
- */
- struct drm_connector_hdmi_infoframe hdr_drm;
-
- /**
- * @spd: SPD Infoframes structure matching our
- * state.
- */
- struct drm_connector_hdmi_infoframe spd;
-
- /**
- * @vendor: HDMI Vendor Infoframes structure
- * matching our state.
- */
- struct drm_connector_hdmi_infoframe hdmi;
- } infoframes;
-
- /**
- * @is_limited_range: Is the output supposed to use a limited
- * RGB Quantization Range or not?
- */
- bool is_limited_range;
-
- /**
- * @output_bpc: Bits per color channel to output.
- */
- unsigned int output_bpc;
-
- /**
- * @output_format: Pixel format to output in.
- */
- enum hdmi_colorspace output_format;
-
- /**
- * @tmds_char_rate: TMDS Character Rate, in Hz.
- */
- unsigned long long tmds_char_rate;
- } hdmi;
+ struct drm_connector_hdmi_state hdmi;
};
/**
* struct drm_connector_hdmi_funcs - drm_hdmi_connector control functions
*/
@@ -1654,10 +1660,55 @@ struct drm_cmdline_mode {
* Did the mode have a preferred TV mode?
*/
bool tv_mode_specified;
};
+/*
+ * struct drm_connector_hdmi - DRM Connector HDMI-related structure
+ */
+struct drm_connector_hdmi {
+#define DRM_CONNECTOR_HDMI_VENDOR_LEN 8
+ /**
+ * @vendor: HDMI Controller Vendor Name
+ */
+ unsigned char vendor[DRM_CONNECTOR_HDMI_VENDOR_LEN] __nonstring;
+
+#define DRM_CONNECTOR_HDMI_PRODUCT_LEN 16
+ /**
+ * @product: HDMI Controller Product Name
+ */
+ unsigned char product[DRM_CONNECTOR_HDMI_PRODUCT_LEN] __nonstring;
+
+ /**
+ * @supported_formats: Bitmask of @hdmi_colorspace
+ * supported by the controller.
+ */
+ unsigned long supported_formats;
+
+ /**
+ * @funcs: HDMI connector Control Functions
+ */
+ const struct drm_connector_hdmi_funcs *funcs;
+
+ /**
+ * @infoframes: Current Infoframes output by the connector
+ */
+ struct {
+ /**
+ * @lock: Mutex protecting against concurrent access to
+ * the infoframes, most notably between KMS and ALSA.
+ */
+ struct mutex lock;
+
+ /**
+ * @audio: Current Audio Infoframes structure. Protected
+ * by @lock.
+ */
+ struct drm_connector_hdmi_infoframe audio;
+ } infoframes;
+};
+
/**
* struct drm_connector - central DRM connector control structure
*
* 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
@@ -2066,51 +2117,11 @@ struct drm_connector {
struct hdr_sink_metadata hdr_sink_metadata;
/**
* @hdmi: HDMI-related variable and properties.
*/
- struct {
-#define DRM_CONNECTOR_HDMI_VENDOR_LEN 8
- /**
- * @vendor: HDMI Controller Vendor Name
- */
- unsigned char vendor[DRM_CONNECTOR_HDMI_VENDOR_LEN] __nonstring;
-
-#define DRM_CONNECTOR_HDMI_PRODUCT_LEN 16
- /**
- * @product: HDMI Controller Product Name
- */
- unsigned char product[DRM_CONNECTOR_HDMI_PRODUCT_LEN] __nonstring;
-
- /**
- * @supported_formats: Bitmask of @hdmi_colorspace
- * supported by the controller.
- */
- unsigned long supported_formats;
-
- /**
- * @funcs: HDMI connector Control Functions
- */
- const struct drm_connector_hdmi_funcs *funcs;
-
- /**
- * @infoframes: Current Infoframes output by the connector
- */
- struct {
- /**
- * @lock: Mutex protecting against concurrent access to
- * the infoframes, most notably between KMS and ALSA.
- */
- struct mutex lock;
-
- /**
- * @audio: Current Audio Infoframes structure. Protected
- * by @lock.
- */
- struct drm_connector_hdmi_infoframe audio;
- } infoframes;
- } hdmi;
+ struct drm_connector_hdmi hdmi;
};
#define obj_to_connector(x) container_of(x, struct drm_connector, base)
int drm_connector_init(struct drm_device *dev,
--
2.45.2
More information about the dri-devel
mailing list