Unverified Commit 2755d1f4 authored by Maxime Ripard's avatar Maxime Ripard
Browse files

drm/connector: hdmi: Fix kerneldoc warnings



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: default avatarJani Nikula <jani.nikula@linux.intel.com>
Suggested-by: default avatarJani Nikula <jani.nikula@linux.intel.com>
Fixes: 54cb39e2 ("drm/connector: hdmi: Create an HDMI sub-state")
Fixes: 948f01d5 ("drm/connector: hdmi: Add support for output format")
Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: default avatarMaxime Ripard <mripard@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240610111200.428224-1-mripard@kernel.org
parent 2bae076f
Loading
Loading
Loading
Loading
+108 −98
Original line number Diff line number Diff line
@@ -929,6 +929,67 @@ struct drm_connector_hdmi_infoframe {
	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
 */
@@ -1078,63 +1139,7 @@ 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;
};

/**
@@ -1656,6 +1661,51 @@ struct drm_cmdline_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
 *
@@ -2068,47 +2118,7 @@ struct drm_connector {
	/**
	 * @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)