DMI check is required to distinguish Jadeite platform from
Stoney base variant.
Add DMI check logic for Jadeite platform.

Signed-off-by: Vijendar Mukunda <vijendar.muku...@amd.com>
Acked-by: Alex Deucher <alexander.deuc...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | 36 +++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c
index ba1605ff521f..af7b42056a89 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c
@@ -29,6 +29,8 @@
 #include <linux/platform_device.h>
 #include <sound/designware_i2s.h>
 #include <sound/pcm.h>
+#include <linux/acpi.h>
+#include <linux/dmi.h>
 
 #include "amdgpu.h"
 #include "atom.h"
@@ -36,6 +38,7 @@
 
 #include "acp_gfx_if.h"
 
+#define ST_JADEITE 1
 #define ACP_TILE_ON_MASK                       0x03
 #define ACP_TILE_OFF_MASK                      0x02
 #define ACP_TILE_ON_RETAIN_REG_MASK            0x1f
@@ -85,6 +88,8 @@
 #define ACP_DEVS                               4
 #define ACP_SRC_ID                             162
 
+static unsigned long acp_machine_id;
+
 enum {
        ACP_TILE_P1 = 0,
        ACP_TILE_P2,
@@ -184,6 +189,37 @@ static int acp_genpd_remove_device(struct device *dev, 
void *data)
        return 0;
 }
 
+static int acp_quirk_cb(const struct dmi_system_id *id)
+{
+       acp_machine_id = ST_JADEITE;
+       return 1;
+}
+
+static const struct dmi_system_id acp_quirk_table[] = {
+       {
+               .callback = acp_quirk_cb,
+               .matches = {
+                       DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AMD"),
+                       DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Jadeite"),
+               }
+       },
+       {
+               .callback = acp_quirk_cb,
+               .matches = {
+                       DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "IP3 Technology 
CO.,Ltd."),
+                       DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ASN1D"),
+               },
+       },
+       {
+               .callback = acp_quirk_cb,
+               .matches = {
+                       DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Standard"),
+                       DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ASN10"),
+               },
+       },
+       {}
+};
+
 /**
  * acp_hw_init - start and test ACP block
  *
-- 
2.25.1

Reply via email to