From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8C66636B076 for ; Tue, 23 Jun 2026 19:38:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782243540; cv=none; b=mzBdB8TJi+GVKJ12ug6yV+w+V4UEc+y+MFKtOszeFw6+dR6X5DrnJ50KRdTRZp3dY00+HvoBK43EHZql+AaUSu5T3Luz45EvicIoLf7LaD61wXRDjhsWoVErorRQCSAfendTvLrePbRAh0wopAHGbHsruEWHKwBlQbLQ5dxLOvs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782243540; c=relaxed/simple; bh=LHpU+4Tc9xV0tNZjsnNYX6Pd2Jz/TYfjite7ScYexWo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=Q3rAyQGIYjmEzdRnFtnSUPmJAfCP87mbjLs6kK2h+/hsGSdayEmpVkM/gkiK/JtyNGtlWKG2c918/Gb3DQ78eUJcnSAVLrNyr56KeLlKopOHzGchEgNGOSX+0MtpAFU+0MT6Wv0jqicGB4kNgSmcpE+Ng7xj9nQ1/senE9iFHds= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=cPT3gXEN; arc=none smtp.client-ip=209.85.221.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cPT3gXEN" Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-460662fcb4eso201501f8f.0 for ; Tue, 23 Jun 2026 12:38:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782243537; x=1782848337; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=Xi3F77gv3Dog6TTeJPtSgdEIuLjDDaKZJ2VGU5mi4ts=; b=cPT3gXENxpbzca0rhS0B6vUprf4TVljOIjNNFCwp2MnNcD+EtUjv1UiV786O8Mcunf VyBPrYmIyPbXq92epia9JPrzYLxVKRAn/WyM8jwLcNmNKxNl0kWU2puwIjjqcTT6/skF /vbaqBmGcV/AVyzs4wdETE3OX6TKqRTP3iX2OotVeUyLbQxtFV0+ZEkC8gcL3Ekw/1oS 0MlWnnUkWoXUxLGIWQygkZZ9rGdfu0Bw8D4O6udql2XS0eNWnrXxF6AKAJcJM+VI4jrO IzqZdr6ijibedOZtRY1cBAJB3Y9afrSbqPwianq+vWEoS6+6T5jlZKxMTDAnkD905Z2D bOag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782243537; x=1782848337; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Xi3F77gv3Dog6TTeJPtSgdEIuLjDDaKZJ2VGU5mi4ts=; b=PjCvU7Lq6VMbX77FDAAWROZXBimAsoyHEMPmGKP3QJSF95uTFbxAQtwn9xng8oNn8O HViYXH5Zn66N4Fq3he/ihopRCbWhZ7o0i/TDqdozzSBiOIJZG5mUaN74UGM7/aHYBOt7 Cr54pEH3ga+z3k1lEMLCX1j7U7WuA8yS5rarDx+IxOnQkI6AJRsyLU37t8Qyy9g43Fyd wYkapuwYI4jNcyhngyWDzxPHG0tV438dnVetLoAG6WO3NrOGhmTzBlHJbqPR/WsyIkU5 2DMIAqU7H4wsOQ0I2pc11zFVsyq5/pCjRpUeD7lrUQU7r9Pyw+9zZbzy/7x8x7BRV7L7 11bA== X-Forwarded-Encrypted: i=1; AHgh+RqldCDkTDDcDOz8vS6lqMOAVD7WHdcHUoTYAOQ3spvZwlZO0uNawE//AzN7jbO8wgFEcRj5v77FNwvXSRQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yx1lwE4rnW1vSm2eWSb1ta1VIftz4TDjRKn97r/rk6pFOPDhG6D sb2jBcEhZxWczbX3BIMW8Q7V2WRFPOt228xaoJbiKXtb/7eSY/rJQW0q X-Gm-Gg: AfdE7clM7zSqxcW6FjfUAZZCAEn2GGZHNDxsldOsUVPTAoRJUs5WW9Zdhjz7Ccq8J4J IhDJEvrIrz4BRSfIdHXe+kmi6+CpT1ciiPff5ye9ZWrTvnSPkpmrmBW5Eg/e50MbwTavJ3NWEK2 IAtlFnrAdgd8BXGHlh0pGcC8wVfGgjlG5HN+R09S6Sf5YqFBFR/10XVXmMD83dZ0KgYOA3kodNz vXJu1zDyDffrAcqN/IPNqnk8fRz4+iHE8dEoeMklL5QJgUmUmOuGboe7aE8gjAp0bdoCTMhG3pA XIUJ0VMypS4itjYd/FET/PNGbMFEkhtDSMVBynZp7qSq411ZRqD71VhAXKsgkexa+oxRt5zFOx/ rKhQoVDCHHatLeGGfFPUkRMw8cF7Gnj9Prfqy58VX+3HTobe5IPF91GEoZZeQ7cvmqCS2ydqDRF yjH7BSpCpNFuH5I0vcmAwt6YFNP5t5QDk= X-Received: by 2002:a05:6000:41c6:b0:45e:945b:276 with SMTP id ffacd0b85a97d-46c0bd7cb49mr317363f8f.20.1782243536803; Tue, 23 Jun 2026 12:38:56 -0700 (PDT) Received: from [127.0.0.2] ([194.35.121.133]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-46666c579d4sm39418017f8f.28.2026.06.23.12.38.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Jun 2026 12:38:56 -0700 (PDT) From: Diogo Silva Date: Tue, 23 Jun 2026 21:38:33 +0200 Subject: [PATCH] drm/gma500: Remove dependency on DRM simple helpers Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260623-gma-drm-simple-v1-1-c404a5e62aab@gmail.com> X-B4-Tracking: v=1; b=H4sIALjgOmoC/x3MQQqAIBBA0avErBswLYOuEi0sRxvICoUIxLsnL d/i/wyJIlOCqckQ6eHE11nRtQ1suzk9IdtqkEJqoaVCHwzaGDBxuA/CbSCt3NivnRZQozuS4/c fzkspHwm8NDxgAAAA X-Change-ID: 20260623-gma-drm-simple-c5e63f74b160 To: Patrik Jakobsson , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Diogo Silva X-Mailer: b4 0.14.3 Simple KMS helper are deprecated since they only add an intermediate layer between drivers and the atomic modesetting. This patch removes the dependency on drm simple helpers from gma500 DRM drivers. Signed-off-by: Diogo Silva --- drivers/gpu/drm/gma500/cdv_intel_crt.c | 9 +++++++-- drivers/gpu/drm/gma500/cdv_intel_dp.c | 9 +++++++-- drivers/gpu/drm/gma500/cdv_intel_hdmi.c | 10 +++++++--- drivers/gpu/drm/gma500/cdv_intel_lvds.c | 9 +++++++-- drivers/gpu/drm/gma500/oaktrail_hdmi.c | 9 +++++++-- drivers/gpu/drm/gma500/oaktrail_lvds.c | 9 +++++++-- drivers/gpu/drm/gma500/psb_intel_lvds.c | 9 +++++++-- 7 files changed, 49 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/gma500/cdv_intel_crt.c b/drivers/gpu/drm/gma500/cdv_intel_crt.c index 342a57c82846..e51a965ddeb8 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_crt.c +++ b/drivers/gpu/drm/gma500/cdv_intel_crt.c @@ -29,8 +29,8 @@ #include #include +#include #include -#include #include "cdv_device.h" #include "intel_bios.h" @@ -217,6 +217,10 @@ static int cdv_intel_crt_set_property(struct drm_connector *connector, * Routines for controlling stuff on the analog port */ +static const struct drm_encoder_funcs cdv_intel_crt_funcs = { + .destroy = drm_encoder_cleanup, +}; + static const struct drm_encoder_helper_funcs cdv_intel_crt_helper_funcs = { .dpms = cdv_intel_crt_dpms, .prepare = gma_encoder_prepare, @@ -275,7 +279,8 @@ void cdv_intel_crt_init(struct drm_device *dev, goto err_ddc_destroy; encoder = &gma_encoder->base; - ret = drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_DAC); + ret = drm_encoder_init(dev, encoder, &cdv_intel_crt_funcs, + DRM_MODE_ENCODER_DAC, NULL); if (ret) goto err_connector_cleanup; diff --git a/drivers/gpu/drm/gma500/cdv_intel_dp.c b/drivers/gpu/drm/gma500/cdv_intel_dp.c index fbed35cf7603..5bcbb2d2b837 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_dp.c +++ b/drivers/gpu/drm/gma500/cdv_intel_dp.c @@ -33,9 +33,9 @@ #include #include #include +#include #include #include -#include #include "gma_display.h" #include "psb_drv.h" @@ -1872,6 +1872,10 @@ cdv_intel_dp_destroy(struct drm_connector *connector) kfree(gma_connector); } +static const struct drm_encoder_funcs cdv_intel_dp_funcs = { + .destroy = drm_encoder_cleanup, +}; + static const struct drm_encoder_helper_funcs cdv_intel_dp_helper_funcs = { .dpms = cdv_intel_dp_dpms, .mode_fixup = cdv_intel_dp_mode_fixup, @@ -1970,7 +1974,8 @@ cdv_intel_dp_init(struct drm_device *dev, struct psb_intel_mode_device *mode_dev encoder = &gma_encoder->base; drm_connector_init(dev, connector, &cdv_intel_dp_connector_funcs, type); - drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_TMDS); + drm_encoder_init(dev, encoder, &cdv_intel_dp_funcs, + DRM_MODE_ENCODER_TMDS, NULL); gma_connector_attach_encoder(gma_connector, gma_encoder); diff --git a/drivers/gpu/drm/gma500/cdv_intel_hdmi.c b/drivers/gpu/drm/gma500/cdv_intel_hdmi.c index ce7850647778..757ff9408250 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_hdmi.c +++ b/drivers/gpu/drm/gma500/cdv_intel_hdmi.c @@ -30,9 +30,9 @@ #include #include #include +#include #include #include -#include #include "cdv_device.h" #include "psb_drv.h" @@ -251,6 +251,10 @@ static void cdv_hdmi_destroy(struct drm_connector *connector) kfree(gma_connector); } +static const struct drm_encoder_funcs cdv_hdmi_funcs = { + .destroy = drm_encoder_cleanup, +}; + static const struct drm_encoder_helper_funcs cdv_hdmi_helper_funcs = { .dpms = cdv_hdmi_dpms, .prepare = gma_encoder_prepare, @@ -329,8 +333,8 @@ void cdv_hdmi_init(struct drm_device *dev, if (ret) goto err_ddc_destroy; - ret = drm_simple_encoder_init(dev, &gma_encoder->base, - DRM_MODE_ENCODER_TMDS); + ret = drm_encoder_init(dev, &gma_encoder->base, &cdv_hdmi_funcs, + DRM_MODE_ENCODER_TMDS, NULL); if (ret) goto err_connector_cleanup; diff --git a/drivers/gpu/drm/gma500/cdv_intel_lvds.c b/drivers/gpu/drm/gma500/cdv_intel_lvds.c index d7fd9a783cde..336ab411d699 100644 --- a/drivers/gpu/drm/gma500/cdv_intel_lvds.c +++ b/drivers/gpu/drm/gma500/cdv_intel_lvds.c @@ -13,9 +13,9 @@ #include #include +#include #include #include -#include #include "cdv_device.h" #include "intel_bios.h" @@ -394,6 +394,10 @@ static int cdv_intel_lvds_set_property(struct drm_connector *connector, return 0; } +static const struct drm_encoder_funcs cdv_intel_lvds_funcs = { + .destroy = drm_encoder_cleanup, +}; + static const struct drm_encoder_helper_funcs cdv_intel_lvds_helper_funcs = { .dpms = cdv_intel_lvds_encoder_dpms, @@ -535,7 +539,8 @@ void cdv_intel_lvds_init(struct drm_device *dev, if (ret) goto err_destroy_ddc; - ret = drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_LVDS); + ret = drm_encoder_init(dev, encoder, &cdv_intel_lvds_funcs, + DRM_MODE_ENCODER_LVDS, NULL); if (ret) goto err_connector_cleanup; diff --git a/drivers/gpu/drm/gma500/oaktrail_hdmi.c b/drivers/gpu/drm/gma500/oaktrail_hdmi.c index 403d21cbb3a2..5a6132176086 100644 --- a/drivers/gpu/drm/gma500/oaktrail_hdmi.c +++ b/drivers/gpu/drm/gma500/oaktrail_hdmi.c @@ -29,9 +29,9 @@ #include #include #include +#include #include #include -#include #include "psb_drv.h" #include "psb_intel_drv.h" @@ -605,6 +605,10 @@ static void oaktrail_hdmi_destroy(struct drm_connector *connector) return; } +static const struct drm_encoder_funcs oaktrail_hdmi_funcs = { + .destroy = drm_encoder_cleanup, +}; + static const struct drm_encoder_helper_funcs oaktrail_hdmi_helper_funcs = { .dpms = oaktrail_hdmi_dpms, .prepare = gma_encoder_prepare, @@ -648,7 +652,8 @@ void oaktrail_hdmi_init(struct drm_device *dev, &oaktrail_hdmi_connector_funcs, DRM_MODE_CONNECTOR_DVID); - drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_TMDS); + drm_encoder_init(dev, encoder, &oaktrail_hdmi_funcs, + DRM_MODE_ENCODER_TMDS, NULL); gma_connector_attach_encoder(gma_connector, gma_encoder); diff --git a/drivers/gpu/drm/gma500/oaktrail_lvds.c b/drivers/gpu/drm/gma500/oaktrail_lvds.c index e194d0cce067..425796d8d6c3 100644 --- a/drivers/gpu/drm/gma500/oaktrail_lvds.c +++ b/drivers/gpu/drm/gma500/oaktrail_lvds.c @@ -12,9 +12,9 @@ #include #include +#include #include #include -#include #include "intel_bios.h" #include "power.h" @@ -202,6 +202,10 @@ static void oaktrail_lvds_commit(struct drm_encoder *encoder) oaktrail_lvds_set_power(dev, gma_encoder, true); } +static const struct drm_encoder_funcs oaktrail_lvds_funcs = { + .destroy = drm_encoder_cleanup, +}; + static const struct drm_encoder_helper_funcs oaktrail_lvds_helper_funcs = { .dpms = oaktrail_lvds_dpms, .mode_fixup = psb_intel_lvds_mode_fixup, @@ -319,7 +323,8 @@ void oaktrail_lvds_init(struct drm_device *dev, if (ret) goto err_free_connector; - ret = drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_LVDS); + ret = drm_encoder_init(dev, encoder, &oaktrail_lvds_funcs, + DRM_MODE_ENCODER_LVDS, NULL); if (ret) goto err_connector_cleanup; diff --git a/drivers/gpu/drm/gma500/psb_intel_lvds.c b/drivers/gpu/drm/gma500/psb_intel_lvds.c index 2ca164b21293..cd882786d946 100644 --- a/drivers/gpu/drm/gma500/psb_intel_lvds.c +++ b/drivers/gpu/drm/gma500/psb_intel_lvds.c @@ -12,9 +12,9 @@ #include #include +#include #include #include -#include #include "intel_bios.h" #include "power.h" @@ -593,6 +593,10 @@ int psb_intel_lvds_set_property(struct drm_connector *connector, return -1; } +static const struct drm_encoder_funcs psb_intel_lvds_funcs = { + .destroy = drm_encoder_cleanup, +}; + static const struct drm_encoder_helper_funcs psb_intel_lvds_helper_funcs = { .dpms = psb_intel_lvds_encoder_dpms, .mode_fixup = psb_intel_lvds_mode_fixup, @@ -679,7 +683,8 @@ void psb_intel_lvds_init(struct drm_device *dev, if (ret) goto err_ddc_destroy; - ret = drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_LVDS); + ret = drm_encoder_init(dev, encoder, &psb_intel_lvds_funcs, + DRM_MODE_ENCODER_LVDS, NULL); if (ret) goto err_connector_cleanup; --- base-commit: 60326b17f877e12846167bf8ef83680b9875218a change-id: 20260623-gma-drm-simple-c5e63f74b160 Best regards, -- Diogo Silva