* [PATCH 1/2] drm/admgpu: add data struct for vram check
@ 2022-01-13 7:45 Xiaojian Du
2022-01-13 7:45 ` [PATCH 2/2] drm/amdgpu: add vram check function for GMC Xiaojian Du
2022-01-13 7:55 ` [PATCH 1/2] drm/admgpu: add data struct for vram check Huang Rui
0 siblings, 2 replies; 5+ messages in thread
From: Xiaojian Du @ 2022-01-13 7:45 UTC (permalink / raw)
To: amd-gfx; +Cc: Alexander.Deucher, ray.huang, Xiaojian Du
This patch is to add data struct for vram check.
Signed-off-by: Xiaojian Du <Xiaojian.Du@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 64cd80d050eb..13196e50a98a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -928,6 +928,11 @@ struct amdgpu_device {
uint32_t bios_scratch_reg_offset;
uint32_t bios_scratch[AMDGPU_BIOS_NUM_SCRATCH];
+ /* vram check */
+ struct amdgpu_bo *vram_bo;
+ uint64_t vram_gpu;
+ void *vram_ptr;
+
/* Direct GMA */
struct amdgpu_direct_gma direct_gma;
/* SSG */
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] drm/amdgpu: add vram check function for GMC
2022-01-13 7:45 [PATCH 1/2] drm/admgpu: add data struct for vram check Xiaojian Du
@ 2022-01-13 7:45 ` Xiaojian Du
2022-01-13 8:02 ` Huang Rui
2022-01-13 16:03 ` Felix Kuehling
2022-01-13 7:55 ` [PATCH 1/2] drm/admgpu: add data struct for vram check Huang Rui
1 sibling, 2 replies; 5+ messages in thread
From: Xiaojian Du @ 2022-01-13 7:45 UTC (permalink / raw)
To: amd-gfx; +Cc: Alexander.Deucher, ray.huang, Xiaojian Du
This will add vram check function for GMC, it will cover gmc v8/9/10
Signed-off-by: Xiaojian Du <Xiaojian.Du@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 42 +++++++++++++++++++++++++
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h | 1 +
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 4 +++
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 6 +++-
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 8 ++++-
5 files changed, 59 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
index 83f26bca7dac..dbc0de89d7e4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
@@ -833,3 +833,45 @@ void amdgpu_gmc_get_reserved_allocation(struct amdgpu_device *adev)
break;
}
}
+
+int amdgpu_gmc_vram_checking(struct amdgpu_device *adev)
+{
+ int ret, size = 0x100000;
+ uint8_t cptr[10];
+
+ ret = amdgpu_bo_create_kernel(adev, size, PAGE_SIZE,
+ AMDGPU_GEM_DOMAIN_VRAM,
+ &adev->vram_bo,
+ &adev->vram_gpu,
+ &adev->vram_ptr);
+ if (ret)
+ return ret;
+
+ memset(adev->vram_ptr, 0x86, size);
+ memset(cptr, 0x86, 10);
+
+ /**
+ * Check the start, the mid, and the end of the memory if the content of
+ * each byte is the pattern "0x86". If yes, we suppose the vram bo is
+ * workable.
+ *
+ * Note: If check the each byte of whole 1M bo, it will cost too many
+ * seconds, so here, we just pick up three parts for emulation.
+ */
+ ret = memcmp(adev->vram_ptr, cptr, 10);
+ if (ret)
+ return ret;
+
+ ret = memcmp(adev->vram_ptr + (size / 2), cptr, 10);
+ if (ret)
+ return ret;
+
+ ret = memcmp(adev->vram_ptr + size - 10, cptr, 10);
+ if (ret)
+ return ret;
+
+ amdgpu_bo_free_kernel(&adev->vram_bo, &adev->vram_gpu,
+ &adev->vram_ptr);
+
+ return 0;
+}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
index 82ec665b366c..f06af61378ef 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
@@ -343,4 +343,5 @@ void amdgpu_gmc_init_pdb0(struct amdgpu_device *adev);
uint64_t amdgpu_gmc_vram_mc2pa(struct amdgpu_device *adev, uint64_t mc_addr);
uint64_t amdgpu_gmc_vram_pa(struct amdgpu_device *adev, struct amdgpu_bo *bo);
uint64_t amdgpu_gmc_vram_cpu_pa(struct amdgpu_device *adev, struct amdgpu_bo *bo);
+int amdgpu_gmc_vram_checking(struct amdgpu_device *adev);
#endif
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
index 3915ba837596..5e407c88c8d0 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
@@ -1048,6 +1048,10 @@ static int gmc_v10_0_hw_init(void *handle)
if (r)
return r;
+ r = amdgpu_gmc_vram_checking(adev);
+ if (r)
+ return r;
+
if (adev->umc.funcs && adev->umc.funcs->init_registers)
adev->umc.funcs->init_registers(adev);
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
index 9a3fc0926903..6c94a9712a3a 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
@@ -1241,7 +1241,11 @@ static int gmc_v8_0_hw_init(void *handle)
if (r)
return r;
- return r;
+ r = amdgpu_gmc_vram_checking(adev);
+ if (r)
+ return r;
+
+ return 0;
}
static int gmc_v8_0_hw_fini(void *handle)
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
index ce7d438eeabe..1ea18b4ff63f 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
@@ -1771,8 +1771,14 @@ static int gmc_v9_0_hw_init(void *handle)
adev->umc.funcs->init_registers(adev);
r = gmc_v9_0_gart_enable(adev);
+ if (r)
+ return r;
- return r;
+ r = amdgpu_gmc_vram_checking(adev);
+ if (r)
+ return r;
+
+ return 0;
}
/**
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] drm/admgpu: add data struct for vram check
2022-01-13 7:45 [PATCH 1/2] drm/admgpu: add data struct for vram check Xiaojian Du
2022-01-13 7:45 ` [PATCH 2/2] drm/amdgpu: add vram check function for GMC Xiaojian Du
@ 2022-01-13 7:55 ` Huang Rui
1 sibling, 0 replies; 5+ messages in thread
From: Huang Rui @ 2022-01-13 7:55 UTC (permalink / raw)
To: Du, Xiaojian; +Cc: Deucher, Alexander, amd-gfx@lists.freedesktop.org
On Thu, Jan 13, 2022 at 03:45:25PM +0800, Du, Xiaojian wrote:
> This patch is to add data struct for vram check.
>
The subject has a typo: admgpu -> amdgpu
> Signed-off-by: Xiaojian Du <Xiaojian.Du@amd.com>
> Reviewed-by: Huang Rui <ray.huang@amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu.h | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> index 64cd80d050eb..13196e50a98a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
> @@ -928,6 +928,11 @@ struct amdgpu_device {
> uint32_t bios_scratch_reg_offset;
> uint32_t bios_scratch[AMDGPU_BIOS_NUM_SCRATCH];
>
> + /* vram check */
> + struct amdgpu_bo *vram_bo;
> + uint64_t vram_gpu;
> + void *vram_ptr;
> +
> /* Direct GMA */
> struct amdgpu_direct_gma direct_gma;
> /* SSG */
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] drm/amdgpu: add vram check function for GMC
2022-01-13 7:45 ` [PATCH 2/2] drm/amdgpu: add vram check function for GMC Xiaojian Du
@ 2022-01-13 8:02 ` Huang Rui
2022-01-13 16:03 ` Felix Kuehling
1 sibling, 0 replies; 5+ messages in thread
From: Huang Rui @ 2022-01-13 8:02 UTC (permalink / raw)
To: Du, Xiaojian
Cc: Deucher, Alexander, Christian König,
amd-gfx@lists.freedesktop.org
On Thu, Jan 13, 2022 at 03:45:26PM +0800, Du, Xiaojian wrote:
> This will add vram check function for GMC, it will cover gmc v8/9/10
>
> Signed-off-by: Xiaojian Du <Xiaojian.Du@amd.com>
> Reviewed-by: Huang Rui <ray.huang@amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 42 +++++++++++++++++++++++++
> drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h | 1 +
> drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 4 +++
> drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 6 +++-
> drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 8 ++++-
> 5 files changed, 59 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> index 83f26bca7dac..dbc0de89d7e4 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> @@ -833,3 +833,45 @@ void amdgpu_gmc_get_reserved_allocation(struct amdgpu_device *adev)
> break;
> }
> }
> +
> +int amdgpu_gmc_vram_checking(struct amdgpu_device *adev)
> +{
> + int ret, size = 0x100000;
> + uint8_t cptr[10];
> +
> + ret = amdgpu_bo_create_kernel(adev, size, PAGE_SIZE,
> + AMDGPU_GEM_DOMAIN_VRAM,
> + &adev->vram_bo,
> + &adev->vram_gpu,
> + &adev->vram_ptr);
Since we only use vram_bo/vram_gpu/vram_ptr only one time in this function,
we won't need add them into global adev structure.
We can define them as local variables in this function, after finish the
vram verification, the buffer and local variables will be freed as well.
Thanks,
Ray
> + if (ret)
> + return ret;
> +
> + memset(adev->vram_ptr, 0x86, size);
> + memset(cptr, 0x86, 10);
> +
> + /**
> + * Check the start, the mid, and the end of the memory if the content of
> + * each byte is the pattern "0x86". If yes, we suppose the vram bo is
> + * workable.
> + *
> + * Note: If check the each byte of whole 1M bo, it will cost too many
> + * seconds, so here, we just pick up three parts for emulation.
> + */
> + ret = memcmp(adev->vram_ptr, cptr, 10);
> + if (ret)
> + return ret;
> +
> + ret = memcmp(adev->vram_ptr + (size / 2), cptr, 10);
> + if (ret)
> + return ret;
> +
> + ret = memcmp(adev->vram_ptr + size - 10, cptr, 10);
> + if (ret)
> + return ret;
> +
> + amdgpu_bo_free_kernel(&adev->vram_bo, &adev->vram_gpu,
> + &adev->vram_ptr);
> +
> + return 0;
> +}
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
> index 82ec665b366c..f06af61378ef 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
> @@ -343,4 +343,5 @@ void amdgpu_gmc_init_pdb0(struct amdgpu_device *adev);
> uint64_t amdgpu_gmc_vram_mc2pa(struct amdgpu_device *adev, uint64_t mc_addr);
> uint64_t amdgpu_gmc_vram_pa(struct amdgpu_device *adev, struct amdgpu_bo *bo);
> uint64_t amdgpu_gmc_vram_cpu_pa(struct amdgpu_device *adev, struct amdgpu_bo *bo);
> +int amdgpu_gmc_vram_checking(struct amdgpu_device *adev);
> #endif
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> index 3915ba837596..5e407c88c8d0 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> @@ -1048,6 +1048,10 @@ static int gmc_v10_0_hw_init(void *handle)
> if (r)
> return r;
>
> + r = amdgpu_gmc_vram_checking(adev);
> + if (r)
> + return r;
> +
> if (adev->umc.funcs && adev->umc.funcs->init_registers)
> adev->umc.funcs->init_registers(adev);
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> index 9a3fc0926903..6c94a9712a3a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> @@ -1241,7 +1241,11 @@ static int gmc_v8_0_hw_init(void *handle)
> if (r)
> return r;
>
> - return r;
> + r = amdgpu_gmc_vram_checking(adev);
> + if (r)
> + return r;
> +
> + return 0;
> }
>
> static int gmc_v8_0_hw_fini(void *handle)
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> index ce7d438eeabe..1ea18b4ff63f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> @@ -1771,8 +1771,14 @@ static int gmc_v9_0_hw_init(void *handle)
> adev->umc.funcs->init_registers(adev);
>
> r = gmc_v9_0_gart_enable(adev);
> + if (r)
> + return r;
>
> - return r;
> + r = amdgpu_gmc_vram_checking(adev);
> + if (r)
> + return r;
> +
> + return 0;
> }
>
> /**
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] drm/amdgpu: add vram check function for GMC
2022-01-13 7:45 ` [PATCH 2/2] drm/amdgpu: add vram check function for GMC Xiaojian Du
2022-01-13 8:02 ` Huang Rui
@ 2022-01-13 16:03 ` Felix Kuehling
1 sibling, 0 replies; 5+ messages in thread
From: Felix Kuehling @ 2022-01-13 16:03 UTC (permalink / raw)
To: Xiaojian Du, amd-gfx; +Cc: Alexander.Deucher, ray.huang
Am 2022-01-13 um 2:45 a.m. schrieb Xiaojian Du:
> This will add vram check function for GMC, it will cover gmc v8/9/10
>
> Signed-off-by: Xiaojian Du <Xiaojian.Du@amd.com>
> Reviewed-by: Huang Rui <ray.huang@amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 42 +++++++++++++++++++++++++
> drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h | 1 +
> drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c | 4 +++
> drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c | 6 +++-
> drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c | 8 ++++-
> 5 files changed, 59 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> index 83f26bca7dac..dbc0de89d7e4 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c
> @@ -833,3 +833,45 @@ void amdgpu_gmc_get_reserved_allocation(struct amdgpu_device *adev)
> break;
> }
> }
> +
> +int amdgpu_gmc_vram_checking(struct amdgpu_device *adev)
> +{
> + int ret, size = 0x100000;
> + uint8_t cptr[10];
> +
> + ret = amdgpu_bo_create_kernel(adev, size, PAGE_SIZE,
> + AMDGPU_GEM_DOMAIN_VRAM,
> + &adev->vram_bo,
> + &adev->vram_gpu,
> + &adev->vram_ptr);
> + if (ret)
> + return ret;
> +
> + memset(adev->vram_ptr, 0x86, size);
> + memset(cptr, 0x86, 10);
> +
> + /**
> + * Check the start, the mid, and the end of the memory if the content of
> + * each byte is the pattern "0x86". If yes, we suppose the vram bo is
> + * workable.
> + *
> + * Note: If check the each byte of whole 1M bo, it will cost too many
> + * seconds, so here, we just pick up three parts for emulation.
> + */
> + ret = memcmp(adev->vram_ptr, cptr, 10);
> + if (ret)
> + return ret;
> +
> + ret = memcmp(adev->vram_ptr + (size / 2), cptr, 10);
> + if (ret)
> + return ret;
> +
> + ret = memcmp(adev->vram_ptr + size - 10, cptr, 10);
> + if (ret)
> + return ret;
> +
> + amdgpu_bo_free_kernel(&adev->vram_bo, &adev->vram_gpu,
> + &adev->vram_ptr);
> +
> + return 0;
> +}
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
> index 82ec665b366c..f06af61378ef 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.h
> @@ -343,4 +343,5 @@ void amdgpu_gmc_init_pdb0(struct amdgpu_device *adev);
> uint64_t amdgpu_gmc_vram_mc2pa(struct amdgpu_device *adev, uint64_t mc_addr);
> uint64_t amdgpu_gmc_vram_pa(struct amdgpu_device *adev, struct amdgpu_bo *bo);
> uint64_t amdgpu_gmc_vram_cpu_pa(struct amdgpu_device *adev, struct amdgpu_bo *bo);
> +int amdgpu_gmc_vram_checking(struct amdgpu_device *adev);
> #endif
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> index 3915ba837596..5e407c88c8d0 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
> @@ -1048,6 +1048,10 @@ static int gmc_v10_0_hw_init(void *handle)
> if (r)
> return r;
>
> + r = amdgpu_gmc_vram_checking(adev);
> + if (r)
> + return r;
> +
> if (adev->umc.funcs && adev->umc.funcs->init_registers)
> adev->umc.funcs->init_registers(adev);
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> index 9a3fc0926903..6c94a9712a3a 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
> @@ -1241,7 +1241,11 @@ static int gmc_v8_0_hw_init(void *handle)
> if (r)
> return r;
>
> - return r;
> + r = amdgpu_gmc_vram_checking(adev);
> + if (r)
> + return r;
> +
> + return 0;
This could simply be
return amdgpu_gmc_vram_checking(adev);
> }
>
> static int gmc_v8_0_hw_fini(void *handle)
> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> index ce7d438eeabe..1ea18b4ff63f 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
> @@ -1771,8 +1771,14 @@ static int gmc_v9_0_hw_init(void *handle)
> adev->umc.funcs->init_registers(adev);
>
> r = gmc_v9_0_gart_enable(adev);
> + if (r)
> + return r;
>
> - return r;
> + r = amdgpu_gmc_vram_checking(adev);
> + if (r)
> + return r;
> +
> + return 0;
Same as above.
Regards,
Felix
> }
>
> /**
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-01-13 16:03 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-13 7:45 [PATCH 1/2] drm/admgpu: add data struct for vram check Xiaojian Du
2022-01-13 7:45 ` [PATCH 2/2] drm/amdgpu: add vram check function for GMC Xiaojian Du
2022-01-13 8:02 ` Huang Rui
2022-01-13 16:03 ` Felix Kuehling
2022-01-13 7:55 ` [PATCH 1/2] drm/admgpu: add data struct for vram check Huang Rui
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).