summaryrefslogtreecommitdiff
path: root/src/drivers/intel/ish
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/intel/ish')
-rw-r--r--src/drivers/intel/ish/chip.h3
-rw-r--r--src/drivers/intel/ish/ish.c16
2 files changed, 14 insertions, 5 deletions
diff --git a/src/drivers/intel/ish/chip.h b/src/drivers/intel/ish/chip.h
index 6f8c0c6df5..e7bb8f87e5 100644
--- a/src/drivers/intel/ish/chip.h
+++ b/src/drivers/intel/ish/chip.h
@@ -6,4 +6,7 @@
struct drivers_intel_ish_config {
/* Firmware name used by kernel for loading ISH firmware */
const char *firmware_name;
+
+ /* Add `DmaProperty` in _DSD */
+ bool add_acpi_dma_property;
};
diff --git a/src/drivers/intel/ish/ish.c b/src/drivers/intel/ish/ish.c
index 2403333be1..5dbb26e87e 100644
--- a/src/drivers/intel/ish/ish.c
+++ b/src/drivers/intel/ish/ish.c
@@ -13,19 +13,25 @@ static void ish_fill_ssdt_generator(const struct device *dev)
struct device *root = dev->bus->dev;
struct acpi_dp *dsd;
- if (!config || !config->firmware_name)
+ if (!config)
return;
acpigen_write_scope(acpi_device_path(root));
dsd = acpi_dp_new_table("_DSD");
- acpi_dp_add_string(dsd, "firmware-name", config->firmware_name);
+
+ if (config->firmware_name) {
+ acpi_dp_add_string(dsd, "firmware-name", config->firmware_name);
+ printk(BIOS_INFO, "%s: Set firmware-name: %s\n",
+ acpi_device_path(root), config->firmware_name);
+ }
+
+ if (config->add_acpi_dma_property)
+ acpi_device_add_dma_property(dsd);
+
acpi_dp_write(dsd);
acpigen_pop_len(); /* Scope */
-
- printk(BIOS_INFO, "%s: Set firmware-name: %s\n",
- acpi_device_path(root), config->firmware_name);
}
static struct device_operations intel_ish_ops = {