[PATCH 3/3] drm/komeda: Add support for Arm China Linlon-D6

Cunyuan Liu posted 3 patches 3 weeks, 6 days ago
There is a newer version of this series
[PATCH 3/3] drm/komeda: Add support for Arm China Linlon-D6
Posted by Cunyuan Liu 3 weeks, 6 days ago
Arm China Linlon-D6 is register-compatible with the Mali-D71 display
pipeline for the purpose of basic modesetting.

On Linlon-D6, the PRODUCT_ID register is located at the same offset as on
Mali-D71 and reports 0x0060. The IP also exposes the same Komeda top-level
block layout expected by the existing d71_identify() probing flow, so we
can reuse the D71 function table to bring up the display engine.

Signed-off-by: Cunyuan Liu <cunyuan.liu@cixtech.com>
---
 drivers/gpu/drm/arm/display/include/malidp_product.h | 1 +
 drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c     | 1 +
 drivers/gpu/drm/arm/display/komeda/komeda_drv.c      | 1 +
 3 files changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/arm/display/include/malidp_product.h b/drivers/gpu/drm/arm/display/include/malidp_product.h
index 16a8a2c22c42..6f954bcdf40e 100644
--- a/drivers/gpu/drm/arm/display/include/malidp_product.h
+++ b/drivers/gpu/drm/arm/display/include/malidp_product.h
@@ -20,6 +20,7 @@
 /* Mali-display product IDs */
 #define MALIDP_D71_PRODUCT_ID	0x0071
 #define MALIDP_D32_PRODUCT_ID	0x0032
+#define LINLONDP_D6_PRODUCT_ID	0x0060
 
 union komeda_config_id {
 	struct {
diff --git a/drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c b/drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c
index 80973975bfdb..f105e3a2dce2 100644
--- a/drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c
+++ b/drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c
@@ -628,6 +628,7 @@ d71_identify(u32 __iomem *reg_base, struct komeda_chip_info *chip)
 	switch (product_id) {
 	case MALIDP_D71_PRODUCT_ID:
 	case MALIDP_D32_PRODUCT_ID:
+	case LINLONDP_D6_PRODUCT_ID:
 		funcs = &d71_chip_funcs;
 		break;
 	default:
diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_drv.c b/drivers/gpu/drm/arm/display/komeda/komeda_drv.c
index 358c1512b087..4bb5f250e95e 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_drv.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_drv.c
@@ -104,6 +104,7 @@ static int komeda_platform_probe(struct platform_device *pdev)
 static const struct of_device_id komeda_of_match[] = {
 	{ .compatible = "arm,mali-d71", .data = d71_identify, },
 	{ .compatible = "arm,mali-d32", .data = d71_identify, },
+	{ .compatible = "armchina,linlon-d6", .data = d71_identify, },
 	{},
 };
 
-- 
2.53.0
Re: [PATCH 3/3] drm/komeda: Add support for Arm China Linlon-D6
Posted by Liviu Dudau 3 weeks, 6 days ago
On Wed, Mar 11, 2026 at 01:55:06PM +0800, Cunyuan Liu wrote:
> Arm China Linlon-D6 is register-compatible with the Mali-D71 display
> pipeline for the purpose of basic modesetting.
> 
> On Linlon-D6, the PRODUCT_ID register is located at the same offset as on
> Mali-D71 and reports 0x0060. The IP also exposes the same Komeda top-level
> block layout expected by the existing d71_identify() probing flow, so we
> can reuse the D71 function table to bring up the display engine.
> 
> Signed-off-by: Cunyuan Liu <cunyuan.liu@cixtech.com>

Reviewed-by: Liviu Dudau <liviu.dudau@arm.com>

Best regards,
Liviu

> ---
>  drivers/gpu/drm/arm/display/include/malidp_product.h | 1 +
>  drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c     | 1 +
>  drivers/gpu/drm/arm/display/komeda/komeda_drv.c      | 1 +
>  3 files changed, 3 insertions(+)
> 
> diff --git a/drivers/gpu/drm/arm/display/include/malidp_product.h b/drivers/gpu/drm/arm/display/include/malidp_product.h
> index 16a8a2c22c42..6f954bcdf40e 100644
> --- a/drivers/gpu/drm/arm/display/include/malidp_product.h
> +++ b/drivers/gpu/drm/arm/display/include/malidp_product.h
> @@ -20,6 +20,7 @@
>  /* Mali-display product IDs */
>  #define MALIDP_D71_PRODUCT_ID	0x0071
>  #define MALIDP_D32_PRODUCT_ID	0x0032
> +#define LINLONDP_D6_PRODUCT_ID	0x0060
>  
>  union komeda_config_id {
>  	struct {
> diff --git a/drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c b/drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c
> index 80973975bfdb..f105e3a2dce2 100644
> --- a/drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c
> +++ b/drivers/gpu/drm/arm/display/komeda/d71/d71_dev.c
> @@ -628,6 +628,7 @@ d71_identify(u32 __iomem *reg_base, struct komeda_chip_info *chip)
>  	switch (product_id) {
>  	case MALIDP_D71_PRODUCT_ID:
>  	case MALIDP_D32_PRODUCT_ID:
> +	case LINLONDP_D6_PRODUCT_ID:
>  		funcs = &d71_chip_funcs;
>  		break;
>  	default:
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_drv.c b/drivers/gpu/drm/arm/display/komeda/komeda_drv.c
> index 358c1512b087..4bb5f250e95e 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_drv.c
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_drv.c
> @@ -104,6 +104,7 @@ static int komeda_platform_probe(struct platform_device *pdev)
>  static const struct of_device_id komeda_of_match[] = {
>  	{ .compatible = "arm,mali-d71", .data = d71_identify, },
>  	{ .compatible = "arm,mali-d32", .data = d71_identify, },
> +	{ .compatible = "armchina,linlon-d6", .data = d71_identify, },
>  	{},
>  };
>  
> -- 
> 2.53.0
> 

-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ¯\_(ツ)_/¯