All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthias Brugger <matthias.bgg@gmail.com>
To: CK Hu <ck.hu@mediatek.com>, matthias.bgg@kernel.org
Cc: mark.rutland@arm.com, rdunlap@infradead.org, airlied@linux.ie,
	mturquette@baylibre.com, dri-devel@lists.freedesktop.org,
	laurent.pinchart@ideasonboard.com,
	ulrich.hecht+renesas@gmail.com, linux-clk@vger.kernel.org,
	drinkcat@chromium.org, wens@csie.org,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	frank-w@public-files.de, sean.wang@mediatek.com,
	robh+dt@kernel.org, linux-mediatek@lists.infradead.org,
	hsinyi@chromium.org, linux-arm-kernel@lists.infradead.org,
	mbrugger@suse.com, sboyd@kernel.org, sean.wang@kernel.org,
	linux-kernel@vger.kernel.org, p.zabel@pengutronix.de,
	enric.balletbo@collabora.com
Subject: Re: [resend PATCH v6 12/12] drm/mediatek: Add support for mmsys through a pdev
Date: Thu, 13 Feb 2020 20:46:09 +0100	[thread overview]
Message-ID: <0ffe7022-7dcd-4789-92ea-32a3673228b6@gmail.com> (raw)
In-Reply-To: <1575869682.7013.14.camel@mtksdaap41>



On 09/12/2019 06:34, CK Hu wrote:
> Hi, Matthias:
> 
> On Sat, 2019-12-07 at 23:47 +0100, matthias.bgg@kernel.org wrote:
>> From: Matthias Brugger <mbrugger@suse.com>
>>
>> The MMSYS subsystem includes clocks and drm components.
>> This patch adds an initailization path through a platform device
>> for the clock part, so that both drivers get probed from the same
>> device tree compatible.
> 
> You've switched mt6779 and mt6797 clock driver to platform device
> probing, but you does not probe then in drm driver, so your design is to
> let mmsys clock not work if drm driver is not enabled? It's fine for me
> because it seems that drm driver is the only user of mmsys clock now.
> 

Exactly. The mmsys clocks are only needed for the drm driver. Therefor we only
probe them when probing the drm driver.

Regards,
Matthias


> Regards,
> CK
> 
>>
>> Signed-off-by: Matthias Brugger <mbrugger@suse.com>
>> ---
>>  drivers/gpu/drm/mediatek/mtk_drm_drv.c | 24 ++++++++++++++++++++++++
>>  drivers/gpu/drm/mediatek/mtk_drm_drv.h |  2 ++
>>  2 files changed, 26 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
>> index 210455e9f46c..5ada74d8d0c9 100644
>> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
>> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
>> @@ -186,6 +186,7 @@ static const struct mtk_mmsys_driver_data mt2701_mmsys_driver_data = {
>>  	.ext_path = mt2701_mtk_ddp_ext,
>>  	.ext_len = ARRAY_SIZE(mt2701_mtk_ddp_ext),
>>  	.shadow_register = true,
>> +	.clk_drv_name = "clk-mt2701-mm",
>>  };
>>  
>>  static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
>> @@ -195,6 +196,7 @@ static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
>>  	.ext_len = ARRAY_SIZE(mt2712_mtk_ddp_ext),
>>  	.third_path = mt2712_mtk_ddp_third,
>>  	.third_len = ARRAY_SIZE(mt2712_mtk_ddp_third),
>> +	.clk_drv_name = "clk-mt2712-mm",
>>  };
>>  
>>  static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
>> @@ -202,6 +204,7 @@ static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
>>  	.main_len = ARRAY_SIZE(mt8173_mtk_ddp_main),
>>  	.ext_path = mt8173_mtk_ddp_ext,
>>  	.ext_len = ARRAY_SIZE(mt8173_mtk_ddp_ext),
>> +	.clk_drv_name = "clk-mt8173-mm",
>>  };
>>  
>>  static int mtk_drm_kms_init(struct drm_device *drm)
>> @@ -499,6 +502,24 @@ static int mtk_drm_probe(struct platform_device *pdev)
>>  	INIT_WORK(&private->commit.work, mtk_atomic_work);
>>  	private->data = of_device_get_match_data(dev);
>>  
>> +	/*
>> +	 * MMSYS includes apart from components management a block providing
>> +	 * clocks for the subsystem. We probe this clock driver via a platform
>> +	 * device.
>> +	 */
>> +	if (private->data->clk_drv_name) {
>> +		private->clk_dev = platform_device_register_data(dev,
>> +						private->data->clk_drv_name, -1,
>> +						NULL, 0);
>> +
>> +		if (IS_ERR(private->clk_dev)) {
>> +			dev_err(dev, "failed to register %s platform device\n",
>> +				private->data->clk_drv_name);
>> +
>> +			return PTR_ERR(private->clk_dev);
>> +		}
>> +	}
>> +
>>  	private->config_regs = syscon_node_to_regmap(dev->of_node);
>>  	if (IS_ERR(private->config_regs))
>>  		return PTR_ERR(private->config_regs);
>> @@ -605,6 +626,9 @@ static int mtk_drm_remove(struct platform_device *pdev)
>>  	for (i = 0; i < DDP_COMPONENT_ID_MAX; i++)
>>  		of_node_put(private->comp_node[i]);
>>  
>> +	if (private->clk_dev)
>> +		platform_device_unregister(private->clk_dev);
>> +
>>  	return 0;
>>  }
>>  
>> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
>> index 63a121577dcb..8fe9136adc38 100644
>> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h
>> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
>> @@ -29,11 +29,13 @@ struct mtk_mmsys_driver_data {
>>  	unsigned int third_len;
>>  
>>  	bool shadow_register;
>> +	const char *clk_drv_name;
>>  };
>>  
>>  struct mtk_drm_private {
>>  	struct drm_device *drm;
>>  	struct device *dma_dev;
>> +	struct platform_device *clk_dev;
>>  
>>  	unsigned int num_pipes;
>>  
> 
> _______________________________________________
> Linux-mediatek mailing list
> Linux-mediatek@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-mediatek
> 

WARNING: multiple messages have this Message-ID (diff)
From: Matthias Brugger <matthias.bgg@gmail.com>
To: CK Hu <ck.hu@mediatek.com>, matthias.bgg@kernel.org
Cc: mark.rutland@arm.com, sean.wang@kernel.org, airlied@linux.ie,
	mturquette@baylibre.com, dri-devel@lists.freedesktop.org,
	laurent.pinchart@ideasonboard.com,
	ulrich.hecht+renesas@gmail.com, linux-clk@vger.kernel.org,
	drinkcat@chromium.org, wens@csie.org,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	frank-w@public-files.de, sean.wang@mediatek.com,
	robh+dt@kernel.org, linux-mediatek@lists.infradead.org,
	hsinyi@chromium.org, linux-arm-kernel@lists.infradead.org,
	mbrugger@suse.com, sboyd@kernel.org, rdunlap@infradead.org,
	linux-kernel@vger.kernel.org, p.zabel@pengutronix.de,
	enric.balletbo@collabora.com
Subject: Re: [resend PATCH v6 12/12] drm/mediatek: Add support for mmsys through a pdev
Date: Thu, 13 Feb 2020 20:46:09 +0100	[thread overview]
Message-ID: <0ffe7022-7dcd-4789-92ea-32a3673228b6@gmail.com> (raw)
In-Reply-To: <1575869682.7013.14.camel@mtksdaap41>



On 09/12/2019 06:34, CK Hu wrote:
> Hi, Matthias:
> 
> On Sat, 2019-12-07 at 23:47 +0100, matthias.bgg@kernel.org wrote:
>> From: Matthias Brugger <mbrugger@suse.com>
>>
>> The MMSYS subsystem includes clocks and drm components.
>> This patch adds an initailization path through a platform device
>> for the clock part, so that both drivers get probed from the same
>> device tree compatible.
> 
> You've switched mt6779 and mt6797 clock driver to platform device
> probing, but you does not probe then in drm driver, so your design is to
> let mmsys clock not work if drm driver is not enabled? It's fine for me
> because it seems that drm driver is the only user of mmsys clock now.
> 

Exactly. The mmsys clocks are only needed for the drm driver. Therefor we only
probe them when probing the drm driver.

Regards,
Matthias


> Regards,
> CK
> 
>>
>> Signed-off-by: Matthias Brugger <mbrugger@suse.com>
>> ---
>>  drivers/gpu/drm/mediatek/mtk_drm_drv.c | 24 ++++++++++++++++++++++++
>>  drivers/gpu/drm/mediatek/mtk_drm_drv.h |  2 ++
>>  2 files changed, 26 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
>> index 210455e9f46c..5ada74d8d0c9 100644
>> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
>> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
>> @@ -186,6 +186,7 @@ static const struct mtk_mmsys_driver_data mt2701_mmsys_driver_data = {
>>  	.ext_path = mt2701_mtk_ddp_ext,
>>  	.ext_len = ARRAY_SIZE(mt2701_mtk_ddp_ext),
>>  	.shadow_register = true,
>> +	.clk_drv_name = "clk-mt2701-mm",
>>  };
>>  
>>  static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
>> @@ -195,6 +196,7 @@ static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
>>  	.ext_len = ARRAY_SIZE(mt2712_mtk_ddp_ext),
>>  	.third_path = mt2712_mtk_ddp_third,
>>  	.third_len = ARRAY_SIZE(mt2712_mtk_ddp_third),
>> +	.clk_drv_name = "clk-mt2712-mm",
>>  };
>>  
>>  static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
>> @@ -202,6 +204,7 @@ static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
>>  	.main_len = ARRAY_SIZE(mt8173_mtk_ddp_main),
>>  	.ext_path = mt8173_mtk_ddp_ext,
>>  	.ext_len = ARRAY_SIZE(mt8173_mtk_ddp_ext),
>> +	.clk_drv_name = "clk-mt8173-mm",
>>  };
>>  
>>  static int mtk_drm_kms_init(struct drm_device *drm)
>> @@ -499,6 +502,24 @@ static int mtk_drm_probe(struct platform_device *pdev)
>>  	INIT_WORK(&private->commit.work, mtk_atomic_work);
>>  	private->data = of_device_get_match_data(dev);
>>  
>> +	/*
>> +	 * MMSYS includes apart from components management a block providing
>> +	 * clocks for the subsystem. We probe this clock driver via a platform
>> +	 * device.
>> +	 */
>> +	if (private->data->clk_drv_name) {
>> +		private->clk_dev = platform_device_register_data(dev,
>> +						private->data->clk_drv_name, -1,
>> +						NULL, 0);
>> +
>> +		if (IS_ERR(private->clk_dev)) {
>> +			dev_err(dev, "failed to register %s platform device\n",
>> +				private->data->clk_drv_name);
>> +
>> +			return PTR_ERR(private->clk_dev);
>> +		}
>> +	}
>> +
>>  	private->config_regs = syscon_node_to_regmap(dev->of_node);
>>  	if (IS_ERR(private->config_regs))
>>  		return PTR_ERR(private->config_regs);
>> @@ -605,6 +626,9 @@ static int mtk_drm_remove(struct platform_device *pdev)
>>  	for (i = 0; i < DDP_COMPONENT_ID_MAX; i++)
>>  		of_node_put(private->comp_node[i]);
>>  
>> +	if (private->clk_dev)
>> +		platform_device_unregister(private->clk_dev);
>> +
>>  	return 0;
>>  }
>>  
>> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
>> index 63a121577dcb..8fe9136adc38 100644
>> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h
>> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
>> @@ -29,11 +29,13 @@ struct mtk_mmsys_driver_data {
>>  	unsigned int third_len;
>>  
>>  	bool shadow_register;
>> +	const char *clk_drv_name;
>>  };
>>  
>>  struct mtk_drm_private {
>>  	struct drm_device *drm;
>>  	struct device *dma_dev;
>> +	struct platform_device *clk_dev;
>>  
>>  	unsigned int num_pipes;
>>  
> 
> _______________________________________________
> Linux-mediatek mailing list
> Linux-mediatek@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-mediatek
> 

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: Matthias Brugger <matthias.bgg@gmail.com>
To: CK Hu <ck.hu@mediatek.com>, matthias.bgg@kernel.org
Cc: mark.rutland@arm.com, sean.wang@kernel.org, airlied@linux.ie,
	mturquette@baylibre.com, dri-devel@lists.freedesktop.org,
	laurent.pinchart@ideasonboard.com,
	ulrich.hecht+renesas@gmail.com, linux-clk@vger.kernel.org,
	drinkcat@chromium.org, wens@csie.org,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	frank-w@public-files.de, sean.wang@mediatek.com,
	robh+dt@kernel.org, linux-mediatek@lists.infradead.org,
	hsinyi@chromium.org, linux-arm-kernel@lists.infradead.org,
	mbrugger@suse.com, sboyd@kernel.org, rdunlap@infradead.org,
	linux-kernel@vger.kernel.org, p.zabel@pengutronix.de,
	enric.balletbo@collabora.com
Subject: Re: [resend PATCH v6 12/12] drm/mediatek: Add support for mmsys through a pdev
Date: Thu, 13 Feb 2020 20:46:09 +0100	[thread overview]
Message-ID: <0ffe7022-7dcd-4789-92ea-32a3673228b6@gmail.com> (raw)
In-Reply-To: <1575869682.7013.14.camel@mtksdaap41>



On 09/12/2019 06:34, CK Hu wrote:
> Hi, Matthias:
> 
> On Sat, 2019-12-07 at 23:47 +0100, matthias.bgg@kernel.org wrote:
>> From: Matthias Brugger <mbrugger@suse.com>
>>
>> The MMSYS subsystem includes clocks and drm components.
>> This patch adds an initailization path through a platform device
>> for the clock part, so that both drivers get probed from the same
>> device tree compatible.
> 
> You've switched mt6779 and mt6797 clock driver to platform device
> probing, but you does not probe then in drm driver, so your design is to
> let mmsys clock not work if drm driver is not enabled? It's fine for me
> because it seems that drm driver is the only user of mmsys clock now.
> 

Exactly. The mmsys clocks are only needed for the drm driver. Therefor we only
probe them when probing the drm driver.

Regards,
Matthias


> Regards,
> CK
> 
>>
>> Signed-off-by: Matthias Brugger <mbrugger@suse.com>
>> ---
>>  drivers/gpu/drm/mediatek/mtk_drm_drv.c | 24 ++++++++++++++++++++++++
>>  drivers/gpu/drm/mediatek/mtk_drm_drv.h |  2 ++
>>  2 files changed, 26 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
>> index 210455e9f46c..5ada74d8d0c9 100644
>> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
>> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
>> @@ -186,6 +186,7 @@ static const struct mtk_mmsys_driver_data mt2701_mmsys_driver_data = {
>>  	.ext_path = mt2701_mtk_ddp_ext,
>>  	.ext_len = ARRAY_SIZE(mt2701_mtk_ddp_ext),
>>  	.shadow_register = true,
>> +	.clk_drv_name = "clk-mt2701-mm",
>>  };
>>  
>>  static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
>> @@ -195,6 +196,7 @@ static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
>>  	.ext_len = ARRAY_SIZE(mt2712_mtk_ddp_ext),
>>  	.third_path = mt2712_mtk_ddp_third,
>>  	.third_len = ARRAY_SIZE(mt2712_mtk_ddp_third),
>> +	.clk_drv_name = "clk-mt2712-mm",
>>  };
>>  
>>  static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
>> @@ -202,6 +204,7 @@ static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
>>  	.main_len = ARRAY_SIZE(mt8173_mtk_ddp_main),
>>  	.ext_path = mt8173_mtk_ddp_ext,
>>  	.ext_len = ARRAY_SIZE(mt8173_mtk_ddp_ext),
>> +	.clk_drv_name = "clk-mt8173-mm",
>>  };
>>  
>>  static int mtk_drm_kms_init(struct drm_device *drm)
>> @@ -499,6 +502,24 @@ static int mtk_drm_probe(struct platform_device *pdev)
>>  	INIT_WORK(&private->commit.work, mtk_atomic_work);
>>  	private->data = of_device_get_match_data(dev);
>>  
>> +	/*
>> +	 * MMSYS includes apart from components management a block providing
>> +	 * clocks for the subsystem. We probe this clock driver via a platform
>> +	 * device.
>> +	 */
>> +	if (private->data->clk_drv_name) {
>> +		private->clk_dev = platform_device_register_data(dev,
>> +						private->data->clk_drv_name, -1,
>> +						NULL, 0);
>> +
>> +		if (IS_ERR(private->clk_dev)) {
>> +			dev_err(dev, "failed to register %s platform device\n",
>> +				private->data->clk_drv_name);
>> +
>> +			return PTR_ERR(private->clk_dev);
>> +		}
>> +	}
>> +
>>  	private->config_regs = syscon_node_to_regmap(dev->of_node);
>>  	if (IS_ERR(private->config_regs))
>>  		return PTR_ERR(private->config_regs);
>> @@ -605,6 +626,9 @@ static int mtk_drm_remove(struct platform_device *pdev)
>>  	for (i = 0; i < DDP_COMPONENT_ID_MAX; i++)
>>  		of_node_put(private->comp_node[i]);
>>  
>> +	if (private->clk_dev)
>> +		platform_device_unregister(private->clk_dev);
>> +
>>  	return 0;
>>  }
>>  
>> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
>> index 63a121577dcb..8fe9136adc38 100644
>> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h
>> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
>> @@ -29,11 +29,13 @@ struct mtk_mmsys_driver_data {
>>  	unsigned int third_len;
>>  
>>  	bool shadow_register;
>> +	const char *clk_drv_name;
>>  };
>>  
>>  struct mtk_drm_private {
>>  	struct drm_device *drm;
>>  	struct device *dma_dev;
>> +	struct platform_device *clk_dev;
>>  
>>  	unsigned int num_pipes;
>>  
> 
> _______________________________________________
> Linux-mediatek mailing list
> Linux-mediatek@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-mediatek
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Matthias Brugger <matthias.bgg@gmail.com>
To: CK Hu <ck.hu@mediatek.com>, matthias.bgg@kernel.org
Cc: mark.rutland@arm.com, sean.wang@kernel.org, airlied@linux.ie,
	mturquette@baylibre.com, dri-devel@lists.freedesktop.org,
	laurent.pinchart@ideasonboard.com,
	ulrich.hecht+renesas@gmail.com, linux-clk@vger.kernel.org,
	drinkcat@chromium.org, wens@csie.org,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	frank-w@public-files.de, sean.wang@mediatek.com,
	robh+dt@kernel.org, linux-mediatek@lists.infradead.org,
	hsinyi@chromium.org, linux-arm-kernel@lists.infradead.org,
	mbrugger@suse.com, sboyd@kernel.org, rdunlap@infradead.org,
	linux-kernel@vger.kernel.org, enric.balletbo@collabora.com
Subject: Re: [resend PATCH v6 12/12] drm/mediatek: Add support for mmsys through a pdev
Date: Thu, 13 Feb 2020 20:46:09 +0100	[thread overview]
Message-ID: <0ffe7022-7dcd-4789-92ea-32a3673228b6@gmail.com> (raw)
In-Reply-To: <1575869682.7013.14.camel@mtksdaap41>



On 09/12/2019 06:34, CK Hu wrote:
> Hi, Matthias:
> 
> On Sat, 2019-12-07 at 23:47 +0100, matthias.bgg@kernel.org wrote:
>> From: Matthias Brugger <mbrugger@suse.com>
>>
>> The MMSYS subsystem includes clocks and drm components.
>> This patch adds an initailization path through a platform device
>> for the clock part, so that both drivers get probed from the same
>> device tree compatible.
> 
> You've switched mt6779 and mt6797 clock driver to platform device
> probing, but you does not probe then in drm driver, so your design is to
> let mmsys clock not work if drm driver is not enabled? It's fine for me
> because it seems that drm driver is the only user of mmsys clock now.
> 

Exactly. The mmsys clocks are only needed for the drm driver. Therefor we only
probe them when probing the drm driver.

Regards,
Matthias


> Regards,
> CK
> 
>>
>> Signed-off-by: Matthias Brugger <mbrugger@suse.com>
>> ---
>>  drivers/gpu/drm/mediatek/mtk_drm_drv.c | 24 ++++++++++++++++++++++++
>>  drivers/gpu/drm/mediatek/mtk_drm_drv.h |  2 ++
>>  2 files changed, 26 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
>> index 210455e9f46c..5ada74d8d0c9 100644
>> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c
>> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c
>> @@ -186,6 +186,7 @@ static const struct mtk_mmsys_driver_data mt2701_mmsys_driver_data = {
>>  	.ext_path = mt2701_mtk_ddp_ext,
>>  	.ext_len = ARRAY_SIZE(mt2701_mtk_ddp_ext),
>>  	.shadow_register = true,
>> +	.clk_drv_name = "clk-mt2701-mm",
>>  };
>>  
>>  static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
>> @@ -195,6 +196,7 @@ static const struct mtk_mmsys_driver_data mt2712_mmsys_driver_data = {
>>  	.ext_len = ARRAY_SIZE(mt2712_mtk_ddp_ext),
>>  	.third_path = mt2712_mtk_ddp_third,
>>  	.third_len = ARRAY_SIZE(mt2712_mtk_ddp_third),
>> +	.clk_drv_name = "clk-mt2712-mm",
>>  };
>>  
>>  static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
>> @@ -202,6 +204,7 @@ static const struct mtk_mmsys_driver_data mt8173_mmsys_driver_data = {
>>  	.main_len = ARRAY_SIZE(mt8173_mtk_ddp_main),
>>  	.ext_path = mt8173_mtk_ddp_ext,
>>  	.ext_len = ARRAY_SIZE(mt8173_mtk_ddp_ext),
>> +	.clk_drv_name = "clk-mt8173-mm",
>>  };
>>  
>>  static int mtk_drm_kms_init(struct drm_device *drm)
>> @@ -499,6 +502,24 @@ static int mtk_drm_probe(struct platform_device *pdev)
>>  	INIT_WORK(&private->commit.work, mtk_atomic_work);
>>  	private->data = of_device_get_match_data(dev);
>>  
>> +	/*
>> +	 * MMSYS includes apart from components management a block providing
>> +	 * clocks for the subsystem. We probe this clock driver via a platform
>> +	 * device.
>> +	 */
>> +	if (private->data->clk_drv_name) {
>> +		private->clk_dev = platform_device_register_data(dev,
>> +						private->data->clk_drv_name, -1,
>> +						NULL, 0);
>> +
>> +		if (IS_ERR(private->clk_dev)) {
>> +			dev_err(dev, "failed to register %s platform device\n",
>> +				private->data->clk_drv_name);
>> +
>> +			return PTR_ERR(private->clk_dev);
>> +		}
>> +	}
>> +
>>  	private->config_regs = syscon_node_to_regmap(dev->of_node);
>>  	if (IS_ERR(private->config_regs))
>>  		return PTR_ERR(private->config_regs);
>> @@ -605,6 +626,9 @@ static int mtk_drm_remove(struct platform_device *pdev)
>>  	for (i = 0; i < DDP_COMPONENT_ID_MAX; i++)
>>  		of_node_put(private->comp_node[i]);
>>  
>> +	if (private->clk_dev)
>> +		platform_device_unregister(private->clk_dev);
>> +
>>  	return 0;
>>  }
>>  
>> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.h b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
>> index 63a121577dcb..8fe9136adc38 100644
>> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.h
>> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.h
>> @@ -29,11 +29,13 @@ struct mtk_mmsys_driver_data {
>>  	unsigned int third_len;
>>  
>>  	bool shadow_register;
>> +	const char *clk_drv_name;
>>  };
>>  
>>  struct mtk_drm_private {
>>  	struct drm_device *drm;
>>  	struct device *dma_dev;
>> +	struct platform_device *clk_dev;
>>  
>>  	unsigned int num_pipes;
>>  
> 
> _______________________________________________
> Linux-mediatek mailing list
> Linux-mediatek@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-mediatek
> 
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2020-02-13 19:46 UTC|newest]

Thread overview: 136+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-07 22:47 [resend PATCH v6 00/12] arm/arm64: mediatek: Fix mmsys device probing matthias.bgg
2019-12-07 22:47 ` matthias.bgg
2019-12-07 22:47 ` matthias.bgg
2019-12-07 22:47 ` matthias.bgg
2019-12-07 22:47 ` [resend PATCH v6 01/12] dt-bindings: display: mediatek: Add mmsys binding description matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-09  5:12   ` CK Hu
2019-12-09  5:12     ` CK Hu
2019-12-09  5:12     ` CK Hu
2019-12-09  5:12     ` CK Hu
2019-12-09  8:48     ` Enric Balletbo i Serra
2019-12-09  8:48       ` Enric Balletbo i Serra
2019-12-09  8:48       ` Enric Balletbo i Serra
2019-12-09  8:48       ` Enric Balletbo i Serra
2020-02-13 18:17     ` Matthias Brugger
2020-02-13 18:17       ` Matthias Brugger
2020-02-13 18:17       ` Matthias Brugger
2020-02-13 18:17       ` Matthias Brugger
2019-12-18 16:39   ` Rob Herring
2019-12-18 16:39     ` Rob Herring
2019-12-18 16:39     ` Rob Herring
2019-12-18 16:39     ` Rob Herring
2019-12-07 22:47 ` [resend PATCH v6 02/12] dt-bindings: mediatek: Add compatible for mt7623 matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-09  8:51   ` Enric Balletbo i Serra
2019-12-09  8:51     ` Enric Balletbo i Serra
2019-12-09  8:51     ` Enric Balletbo i Serra
2019-12-09  8:51     ` Enric Balletbo i Serra
2019-12-18 17:02   ` Rob Herring
2019-12-18 17:02     ` Rob Herring
2019-12-18 17:02     ` Rob Herring
2019-12-18 17:02     ` Rob Herring
2019-12-07 22:47 ` [resend PATCH v6 03/12] drm/mediatek: Use regmap for register access matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-09  5:16   ` CK Hu
2019-12-09  5:16     ` CK Hu
2019-12-09  5:16     ` CK Hu
2019-12-09  5:16     ` CK Hu
2019-12-07 22:47 ` [resend PATCH v6 04/12] drm: mediatek: Omit warning on probe defers matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-09  5:19   ` CK Hu
2019-12-09  5:19     ` CK Hu
2019-12-09  5:19     ` CK Hu
2019-12-09  5:19     ` CK Hu
2019-12-09  9:39   ` Enric Balletbo i Serra
2019-12-09  9:39     ` Enric Balletbo i Serra
2019-12-09  9:39     ` Enric Balletbo i Serra
2019-12-09  9:39     ` Enric Balletbo i Serra
2020-02-13 18:58     ` Matthias Brugger
2020-02-13 18:58       ` Matthias Brugger
2020-02-13 18:58       ` Matthias Brugger
2020-02-13 18:58       ` Matthias Brugger
2019-12-07 22:47 ` [resend PATCH v6 05/12] media: mtk-mdp: Check return value of of_clk_get matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-09  9:50   ` Enric Balletbo i Serra
2019-12-09  9:50     ` Enric Balletbo i Serra
2019-12-09  9:50     ` Enric Balletbo i Serra
2019-12-09  9:50     ` Enric Balletbo i Serra
2019-12-07 22:47 ` [resend PATCH v6 06/12] clk: mediatek: mt2701: switch mmsys to platform device probing matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-09  9:58   ` Enric Balletbo i Serra
2019-12-09  9:58     ` Enric Balletbo i Serra
2019-12-09  9:58     ` Enric Balletbo i Serra
2019-12-09  9:58     ` Enric Balletbo i Serra
2020-02-13 19:11     ` Matthias Brugger
2020-02-13 19:11       ` Matthias Brugger
2020-02-13 19:11       ` Matthias Brugger
2020-02-13 19:11       ` Matthias Brugger
2019-12-07 22:47 ` [resend PATCH v6 07/12] clk: mediatek: mt2712e: switch " matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-09  9:59   ` Enric Balletbo i Serra
2019-12-09  9:59     ` Enric Balletbo i Serra
2019-12-09  9:59     ` Enric Balletbo i Serra
2019-12-09  9:59     ` Enric Balletbo i Serra
2019-12-07 22:47 ` [resend PATCH v6 08/12] clk: mediatek: mt6779: switch mmsys " matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-09 10:01   ` Enric Balletbo i Serra
2019-12-09 10:01     ` Enric Balletbo i Serra
2019-12-09 10:01     ` Enric Balletbo i Serra
2019-12-09 10:01     ` Enric Balletbo i Serra
2019-12-07 22:47 ` [resend PATCH v6 09/12] clk: mediatek: mt6797: switch " matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47 ` [resend PATCH v6 10/12] clk: mediatek: mt8183: switch mmsys " matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-09  8:51   ` CK Hu
2019-12-09  8:51     ` CK Hu
2019-12-09  8:51     ` CK Hu
2019-12-09  8:51     ` CK Hu
2020-02-13 19:35     ` Matthias Brugger
2020-02-13 19:35       ` Matthias Brugger
2020-02-13 19:35       ` Matthias Brugger
2020-02-13 19:35       ` Matthias Brugger
2019-12-07 22:47 ` [resend PATCH v6 11/12] clk: mediatek: mt8173: " matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47 ` [resend PATCH v6 12/12] drm/mediatek: Add support for mmsys through a pdev matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-07 22:47   ` matthias.bgg
2019-12-09  5:34   ` CK Hu
2019-12-09  5:34     ` CK Hu
2019-12-09  5:34     ` CK Hu
2019-12-09  5:34     ` CK Hu
2020-02-13 19:46     ` Matthias Brugger [this message]
2020-02-13 19:46       ` Matthias Brugger
2020-02-13 19:46       ` Matthias Brugger
2020-02-13 19:46       ` Matthias Brugger
2019-12-09 10:15   ` Enric Balletbo i Serra
2019-12-09 10:15     ` Enric Balletbo i Serra
2019-12-09 10:15     ` Enric Balletbo i Serra
2019-12-09 10:15     ` Enric Balletbo i Serra
2020-02-13  2:57 ` [resend PATCH v6 00/12] arm/arm64: mediatek: Fix mmsys device probing CK Hu
2020-02-13  2:57   ` CK Hu
2020-02-13  2:57   ` CK Hu
2020-02-13  2:57   ` CK Hu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0ffe7022-7dcd-4789-92ea-32a3673228b6@gmail.com \
    --to=matthias.bgg@gmail.com \
    --cc=airlied@linux.ie \
    --cc=ck.hu@mediatek.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=drinkcat@chromium.org \
    --cc=enric.balletbo@collabora.com \
    --cc=frank-w@public-files.de \
    --cc=hsinyi@chromium.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=mark.rutland@arm.com \
    --cc=matthias.bgg@kernel.org \
    --cc=mbrugger@suse.com \
    --cc=mturquette@baylibre.com \
    --cc=p.zabel@pengutronix.de \
    --cc=rdunlap@infradead.org \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=sean.wang@kernel.org \
    --cc=sean.wang@mediatek.com \
    --cc=ulrich.hecht+renesas@gmail.com \
    --cc=wens@csie.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.