All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Christian König" <deathsimple@vodafone.de>
To: j.glisse@gmail.com
Cc: Jerome Glisse <jglisse@redhat.com>, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm/radeon: use radeon device for request firmware
Date: Fri, 12 Jul 2013 08:55:31 +0200	[thread overview]
Message-ID: <51DFA863.6020103@vodafone.de> (raw)
In-Reply-To: <1373572381-22515-1-git-send-email-j.glisse@gmail.com>

Am 11.07.2013 21:53, schrieb j.glisse@gmail.com:
> From: Jerome Glisse <jglisse@redhat.com>
>
> Avoid creating temporary platform device that will lead to issue
> when several radeon gpu are in same computer. Instead directly use
> the radeon device for requesting firmware.
>
> Signed-off-by: Jerome Glisse <jglisse@redhat.com>

Thanks, also had that on my todo list since I wrote the UVD code.

Patchset is: Reviewed-by: Christian König <christian.koenig@amd.com>

> ---
>   drivers/gpu/drm/radeon/cik.c        | 25 +++++++------------------
>   drivers/gpu/drm/radeon/ni.c         | 21 +++++----------------
>   drivers/gpu/drm/radeon/r100.c       | 11 +----------
>   drivers/gpu/drm/radeon/r600.c       | 19 ++++---------------
>   drivers/gpu/drm/radeon/radeon_uvd.c | 13 +------------
>   drivers/gpu/drm/radeon/si.c         | 23 ++++++-----------------
>   6 files changed, 24 insertions(+), 88 deletions(-)
>
> diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c
> index db507a4..b893165 100644
> --- a/drivers/gpu/drm/radeon/cik.c
> +++ b/drivers/gpu/drm/radeon/cik.c
> @@ -22,7 +22,6 @@
>    * Authors: Alex Deucher
>    */
>   #include <linux/firmware.h>
> -#include <linux/platform_device.h>
>   #include <linux/slab.h>
>   #include <linux/module.h>
>   #include "drmP.h"
> @@ -742,7 +741,6 @@ static int ci_mc_load_microcode(struct radeon_device *rdev)
>    */
>   static int cik_init_microcode(struct radeon_device *rdev)
>   {
> -	struct platform_device *pdev;
>   	const char *chip_name;
>   	size_t pfp_req_size, me_req_size, ce_req_size,
>   		mec_req_size, rlc_req_size, mc_req_size,
> @@ -752,13 +750,6 @@ static int cik_init_microcode(struct radeon_device *rdev)
>   
>   	DRM_DEBUG("\n");
>   
> -	pdev = platform_device_register_simple("radeon_cp", 0, NULL, 0);
> -	err = IS_ERR(pdev);
> -	if (err) {
> -		printk(KERN_ERR "radeon_cp: Failed to register firmware\n");
> -		return -EINVAL;
> -	}
> -
>   	switch (rdev->family) {
>   	case CHIP_BONAIRE:
>   		chip_name = "BONAIRE";
> @@ -794,7 +785,7 @@ static int cik_init_microcode(struct radeon_device *rdev)
>   	DRM_INFO("Loading %s Microcode\n", chip_name);
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_pfp.bin", chip_name);
> -	err = request_firmware(&rdev->pfp_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->pfp_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->pfp_fw->size != pfp_req_size) {
> @@ -806,7 +797,7 @@ static int cik_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_me.bin", chip_name);
> -	err = request_firmware(&rdev->me_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->me_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->me_fw->size != me_req_size) {
> @@ -817,7 +808,7 @@ static int cik_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_ce.bin", chip_name);
> -	err = request_firmware(&rdev->ce_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->ce_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->ce_fw->size != ce_req_size) {
> @@ -828,7 +819,7 @@ static int cik_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_mec.bin", chip_name);
> -	err = request_firmware(&rdev->mec_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->mec_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->mec_fw->size != mec_req_size) {
> @@ -839,7 +830,7 @@ static int cik_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_rlc.bin", chip_name);
> -	err = request_firmware(&rdev->rlc_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->rlc_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->rlc_fw->size != rlc_req_size) {
> @@ -850,7 +841,7 @@ static int cik_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_sdma.bin", chip_name);
> -	err = request_firmware(&rdev->sdma_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->sdma_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->sdma_fw->size != sdma_req_size) {
> @@ -863,7 +854,7 @@ static int cik_init_microcode(struct radeon_device *rdev)
>   	/* No MC ucode on APUs */
>   	if (!(rdev->flags & RADEON_IS_IGP)) {
>   		snprintf(fw_name, sizeof(fw_name), "radeon/%s_mc.bin", chip_name);
> -		err = request_firmware(&rdev->mc_fw, fw_name, &pdev->dev);
> +		err = request_firmware(&rdev->mc_fw, fw_name, rdev->dev);
>   		if (err)
>   			goto out;
>   		if (rdev->mc_fw->size != mc_req_size) {
> @@ -875,8 +866,6 @@ static int cik_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   out:
> -	platform_device_unregister(pdev);
> -
>   	if (err) {
>   		if (err != -EINVAL)
>   			printk(KERN_ERR
> diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
> index f30127c..465b17e 100644
> --- a/drivers/gpu/drm/radeon/ni.c
> +++ b/drivers/gpu/drm/radeon/ni.c
> @@ -22,7 +22,6 @@
>    * Authors: Alex Deucher
>    */
>   #include <linux/firmware.h>
> -#include <linux/platform_device.h>
>   #include <linux/slab.h>
>   #include <linux/module.h>
>   #include <drm/drmP.h>
> @@ -684,7 +683,6 @@ int ni_mc_load_microcode(struct radeon_device *rdev)
>   
>   int ni_init_microcode(struct radeon_device *rdev)
>   {
> -	struct platform_device *pdev;
>   	const char *chip_name;
>   	const char *rlc_chip_name;
>   	size_t pfp_req_size, me_req_size, rlc_req_size, mc_req_size;
> @@ -694,13 +692,6 @@ int ni_init_microcode(struct radeon_device *rdev)
>   
>   	DRM_DEBUG("\n");
>   
> -	pdev = platform_device_register_simple("radeon_cp", 0, NULL, 0);
> -	err = IS_ERR(pdev);
> -	if (err) {
> -		printk(KERN_ERR "radeon_cp: Failed to register firmware\n");
> -		return -EINVAL;
> -	}
> -
>   	switch (rdev->family) {
>   	case CHIP_BARTS:
>   		chip_name = "BARTS";
> @@ -753,7 +744,7 @@ int ni_init_microcode(struct radeon_device *rdev)
>   	DRM_INFO("Loading %s Microcode\n", chip_name);
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_pfp.bin", chip_name);
> -	err = request_firmware(&rdev->pfp_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->pfp_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->pfp_fw->size != pfp_req_size) {
> @@ -765,7 +756,7 @@ int ni_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_me.bin", chip_name);
> -	err = request_firmware(&rdev->me_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->me_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->me_fw->size != me_req_size) {
> @@ -776,7 +767,7 @@ int ni_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_rlc.bin", rlc_chip_name);
> -	err = request_firmware(&rdev->rlc_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->rlc_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->rlc_fw->size != rlc_req_size) {
> @@ -789,7 +780,7 @@ int ni_init_microcode(struct radeon_device *rdev)
>   	/* no MC ucode on TN */
>   	if (!(rdev->flags & RADEON_IS_IGP)) {
>   		snprintf(fw_name, sizeof(fw_name), "radeon/%s_mc.bin", chip_name);
> -		err = request_firmware(&rdev->mc_fw, fw_name, &pdev->dev);
> +		err = request_firmware(&rdev->mc_fw, fw_name, rdev->dev);
>   		if (err)
>   			goto out;
>   		if (rdev->mc_fw->size != mc_req_size) {
> @@ -802,7 +793,7 @@ int ni_init_microcode(struct radeon_device *rdev)
>   
>   	if ((rdev->family >= CHIP_BARTS) && (rdev->family <= CHIP_CAYMAN)) {
>   		snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", chip_name);
> -		err = request_firmware(&rdev->smc_fw, fw_name, &pdev->dev);
> +		err = request_firmware(&rdev->smc_fw, fw_name, rdev->dev);
>   		if (err)
>   			goto out;
>   		if (rdev->smc_fw->size != smc_req_size) {
> @@ -814,8 +805,6 @@ int ni_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   out:
> -	platform_device_unregister(pdev);
> -
>   	if (err) {
>   		if (err != -EINVAL)
>   			printk(KERN_ERR
> diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
> index d0314ec..d5a4541 100644
> --- a/drivers/gpu/drm/radeon/r100.c
> +++ b/drivers/gpu/drm/radeon/r100.c
> @@ -39,7 +39,6 @@
>   #include "atom.h"
>   
>   #include <linux/firmware.h>
> -#include <linux/platform_device.h>
>   #include <linux/module.h>
>   
>   #include "r100_reg_safe.h"
> @@ -989,18 +988,11 @@ void r100_ring_start(struct radeon_device *rdev, struct radeon_ring *ring)
>   /* Load the microcode for the CP */
>   static int r100_cp_init_microcode(struct radeon_device *rdev)
>   {
> -	struct platform_device *pdev;
>   	const char *fw_name = NULL;
>   	int err;
>   
>   	DRM_DEBUG_KMS("\n");
>   
> -	pdev = platform_device_register_simple("radeon_cp", 0, NULL, 0);
> -	err = IS_ERR(pdev);
> -	if (err) {
> -		printk(KERN_ERR "radeon_cp: Failed to register firmware\n");
> -		return -EINVAL;
> -	}
>   	if ((rdev->family == CHIP_R100) || (rdev->family == CHIP_RV100) ||
>   	    (rdev->family == CHIP_RV200) || (rdev->family == CHIP_RS100) ||
>   	    (rdev->family == CHIP_RS200)) {
> @@ -1042,8 +1034,7 @@ static int r100_cp_init_microcode(struct radeon_device *rdev)
>   		fw_name = FIRMWARE_R520;
>   	}
>   
> -	err = request_firmware(&rdev->me_fw, fw_name, &pdev->dev);
> -	platform_device_unregister(pdev);
> +	err = request_firmware(&rdev->me_fw, fw_name, rdev->dev);
>   	if (err) {
>   		printk(KERN_ERR "radeon_cp: Failed to load firmware \"%s\"\n",
>   		       fw_name);
> diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
> index dcac7fd..05a30ba 100644
> --- a/drivers/gpu/drm/radeon/r600.c
> +++ b/drivers/gpu/drm/radeon/r600.c
> @@ -28,7 +28,6 @@
>   #include <linux/slab.h>
>   #include <linux/seq_file.h>
>   #include <linux/firmware.h>
> -#include <linux/platform_device.h>
>   #include <linux/module.h>
>   #include <drm/drmP.h>
>   #include <drm/radeon_drm.h>
> @@ -2144,7 +2143,6 @@ void r600_cp_stop(struct radeon_device *rdev)
>   
>   int r600_init_microcode(struct radeon_device *rdev)
>   {
> -	struct platform_device *pdev;
>   	const char *chip_name;
>   	const char *rlc_chip_name;
>   	const char *smc_chip_name = "RV770";
> @@ -2154,13 +2152,6 @@ int r600_init_microcode(struct radeon_device *rdev)
>   
>   	DRM_DEBUG("\n");
>   
> -	pdev = platform_device_register_simple("radeon_cp", 0, NULL, 0);
> -	err = IS_ERR(pdev);
> -	if (err) {
> -		printk(KERN_ERR "radeon_cp: Failed to register firmware\n");
> -		return -EINVAL;
> -	}
> -
>   	switch (rdev->family) {
>   	case CHIP_R600:
>   		chip_name = "R600";
> @@ -2272,7 +2263,7 @@ int r600_init_microcode(struct radeon_device *rdev)
>   	DRM_INFO("Loading %s Microcode\n", chip_name);
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_pfp.bin", chip_name);
> -	err = request_firmware(&rdev->pfp_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->pfp_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->pfp_fw->size != pfp_req_size) {
> @@ -2284,7 +2275,7 @@ int r600_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_me.bin", chip_name);
> -	err = request_firmware(&rdev->me_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->me_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->me_fw->size != me_req_size) {
> @@ -2295,7 +2286,7 @@ int r600_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_rlc.bin", rlc_chip_name);
> -	err = request_firmware(&rdev->rlc_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->rlc_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->rlc_fw->size != rlc_req_size) {
> @@ -2307,7 +2298,7 @@ int r600_init_microcode(struct radeon_device *rdev)
>   
>   	if ((rdev->family >= CHIP_RV770) && (rdev->family <= CHIP_HEMLOCK)) {
>   		snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", smc_chip_name);
> -		err = request_firmware(&rdev->smc_fw, fw_name, &pdev->dev);
> +		err = request_firmware(&rdev->smc_fw, fw_name, rdev->dev);
>   		if (err)
>   			goto out;
>   		if (rdev->smc_fw->size != smc_req_size) {
> @@ -2319,8 +2310,6 @@ int r600_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   out:
> -	platform_device_unregister(pdev);
> -
>   	if (err) {
>   		if (err != -EINVAL)
>   			printk(KERN_ERR
> diff --git a/drivers/gpu/drm/radeon/radeon_uvd.c b/drivers/gpu/drm/radeon/radeon_uvd.c
> index ce5a10c..a7690d2 100644
> --- a/drivers/gpu/drm/radeon/radeon_uvd.c
> +++ b/drivers/gpu/drm/radeon/radeon_uvd.c
> @@ -56,20 +56,12 @@ static void radeon_uvd_idle_work_handler(struct work_struct *work);
>   
>   int radeon_uvd_init(struct radeon_device *rdev)
>   {
> -	struct platform_device *pdev;
>   	unsigned long bo_size;
>   	const char *fw_name;
>   	int i, r;
>   
>   	INIT_DELAYED_WORK(&rdev->uvd.idle_work, radeon_uvd_idle_work_handler);
>   
> -	pdev = platform_device_register_simple("radeon_uvd", 0, NULL, 0);
> -	r = IS_ERR(pdev);
> -	if (r) {
> -		dev_err(rdev->dev, "radeon_uvd: Failed to register firmware\n");
> -		return -EINVAL;
> -	}
> -
>   	switch (rdev->family) {
>   	case CHIP_RV710:
>   	case CHIP_RV730:
> @@ -112,16 +104,13 @@ int radeon_uvd_init(struct radeon_device *rdev)
>   		return -EINVAL;
>   	}
>   
> -	r = request_firmware(&rdev->uvd_fw, fw_name, &pdev->dev);
> +	r = request_firmware(&rdev->uvd_fw, fw_name, rdev->dev);
>   	if (r) {
>   		dev_err(rdev->dev, "radeon_uvd: Can't load firmware \"%s\"\n",
>   			fw_name);
> -		platform_device_unregister(pdev);
>   		return r;
>   	}
>   
> -	platform_device_unregister(pdev);
> -
>   	bo_size = RADEON_GPU_PAGE_ALIGN(rdev->uvd_fw->size + 8) +
>   		  RADEON_UVD_STACK_SIZE + RADEON_UVD_HEAP_SIZE;
>   	r = radeon_bo_create(rdev, bo_size, PAGE_SIZE, true,
> diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
> index 99160d8..5988eeb 100644
> --- a/drivers/gpu/drm/radeon/si.c
> +++ b/drivers/gpu/drm/radeon/si.c
> @@ -22,7 +22,6 @@
>    * Authors: Alex Deucher
>    */
>   #include <linux/firmware.h>
> -#include <linux/platform_device.h>
>   #include <linux/slab.h>
>   #include <linux/module.h>
>   #include <drm/drmP.h>
> @@ -1541,7 +1540,6 @@ static int si_mc_load_microcode(struct radeon_device *rdev)
>   
>   static int si_init_microcode(struct radeon_device *rdev)
>   {
> -	struct platform_device *pdev;
>   	const char *chip_name;
>   	const char *rlc_chip_name;
>   	size_t pfp_req_size, me_req_size, ce_req_size, rlc_req_size, mc_req_size;
> @@ -1551,13 +1549,6 @@ static int si_init_microcode(struct radeon_device *rdev)
>   
>   	DRM_DEBUG("\n");
>   
> -	pdev = platform_device_register_simple("radeon_cp", 0, NULL, 0);
> -	err = IS_ERR(pdev);
> -	if (err) {
> -		printk(KERN_ERR "radeon_cp: Failed to register firmware\n");
> -		return -EINVAL;
> -	}
> -
>   	switch (rdev->family) {
>   	case CHIP_TAHITI:
>   		chip_name = "TAHITI";
> @@ -1615,7 +1606,7 @@ static int si_init_microcode(struct radeon_device *rdev)
>   	DRM_INFO("Loading %s Microcode\n", chip_name);
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_pfp.bin", chip_name);
> -	err = request_firmware(&rdev->pfp_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->pfp_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->pfp_fw->size != pfp_req_size) {
> @@ -1627,7 +1618,7 @@ static int si_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_me.bin", chip_name);
> -	err = request_firmware(&rdev->me_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->me_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->me_fw->size != me_req_size) {
> @@ -1638,7 +1629,7 @@ static int si_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_ce.bin", chip_name);
> -	err = request_firmware(&rdev->ce_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->ce_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->ce_fw->size != ce_req_size) {
> @@ -1649,7 +1640,7 @@ static int si_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_rlc.bin", rlc_chip_name);
> -	err = request_firmware(&rdev->rlc_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->rlc_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->rlc_fw->size != rlc_req_size) {
> @@ -1660,7 +1651,7 @@ static int si_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_mc.bin", chip_name);
> -	err = request_firmware(&rdev->mc_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->mc_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->mc_fw->size != mc_req_size) {
> @@ -1671,7 +1662,7 @@ static int si_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   	snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", chip_name);
> -	err = request_firmware(&rdev->smc_fw, fw_name, &pdev->dev);
> +	err = request_firmware(&rdev->smc_fw, fw_name, rdev->dev);
>   	if (err)
>   		goto out;
>   	if (rdev->smc_fw->size != smc_req_size) {
> @@ -1682,8 +1673,6 @@ static int si_init_microcode(struct radeon_device *rdev)
>   	}
>   
>   out:
> -	platform_device_unregister(pdev);
> -
>   	if (err) {
>   		if (err != -EINVAL)
>   			printk(KERN_ERR

      reply	other threads:[~2013-07-12  6:55 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-11 19:53 [PATCH] drm/radeon: use radeon device for request firmware j.glisse
2013-07-12  6:55 ` Christian König [this message]

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=51DFA863.6020103@vodafone.de \
    --to=deathsimple@vodafone.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=j.glisse@gmail.com \
    --cc=jglisse@redhat.com \
    /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.