drm/bridge: panel: forbid initializing a panel with unknown connector type
[ Upstream commit b296955b3a740ecc8b3b08e34fd64f1ceabb8fb4 ] Having an DRM_MODE_CONNECTOR_Unknown connector type is considered bad, and drm_panel_bridge_add_typed() and derivatives are deprecated for this. drm_panel_init() won't prevent initializing a panel with a DRM_MODE_CONNECTOR_Unknown connector type. Luckily there are no in-tree users doing it, so take this as an opportinuty to document a valid connector type must be passed. Returning an error if this rule is violated is not possible because drm_panel_init() is a void function. Add at least a warning to make any violations noticeable, especially to non-upstream drivers. Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Robert Foss <rfoss@kernel.org> Link: https://patchwork.freedesktop.org/patch/msgid/20250214-drm-assorted-cleanups-v7-5-88ca5827d7af@bootlin.com Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
f04612890c
commit
b22cb42a5e
@@ -49,7 +49,7 @@ static LIST_HEAD(panel_list);
|
|||||||
* @dev: parent device of the panel
|
* @dev: parent device of the panel
|
||||||
* @funcs: panel operations
|
* @funcs: panel operations
|
||||||
* @connector_type: the connector type (DRM_MODE_CONNECTOR_*) corresponding to
|
* @connector_type: the connector type (DRM_MODE_CONNECTOR_*) corresponding to
|
||||||
* the panel interface
|
* the panel interface (must NOT be DRM_MODE_CONNECTOR_Unknown)
|
||||||
*
|
*
|
||||||
* Initialize the panel structure for subsequent registration with
|
* Initialize the panel structure for subsequent registration with
|
||||||
* drm_panel_add().
|
* drm_panel_add().
|
||||||
@@ -57,6 +57,9 @@ static LIST_HEAD(panel_list);
|
|||||||
void drm_panel_init(struct drm_panel *panel, struct device *dev,
|
void drm_panel_init(struct drm_panel *panel, struct device *dev,
|
||||||
const struct drm_panel_funcs *funcs, int connector_type)
|
const struct drm_panel_funcs *funcs, int connector_type)
|
||||||
{
|
{
|
||||||
|
if (connector_type == DRM_MODE_CONNECTOR_Unknown)
|
||||||
|
DRM_WARN("%s: %s: a valid connector type is required!\n", __func__, dev_name(dev));
|
||||||
|
|
||||||
INIT_LIST_HEAD(&panel->list);
|
INIT_LIST_HEAD(&panel->list);
|
||||||
INIT_LIST_HEAD(&panel->followers);
|
INIT_LIST_HEAD(&panel->followers);
|
||||||
mutex_init(&panel->follower_lock);
|
mutex_init(&panel->follower_lock);
|
||||||
|
|||||||
Reference in New Issue
Block a user