acpi: Call acpi_fill_ssdt() only for enabled devices
Individual drivers check whether the concerned device is enabled before filling in the SSDT. Move the check before calling acpi_fill_ssdt() and remove the check in the individual drivers. BUG=None TEST=util/abuild/abuild Change-Id: Ib042bec7e8c68b38fafa60a8e965d781bddcd1f0 Signed-off-by: Karthikeyan Ramasubramanian <kramasub@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/47148 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com> Reviewed-by: Sumeet R Pawnikar <sumeet.r.pawnikar@intel.com> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Christian Walter <christian.walter@9elements.com>
This commit is contained in:
parent
04582e9001
commit
d1c0f958d1
|
@ -468,7 +468,7 @@ void acpi_create_ssdt_generator(acpi_header_t *ssdt, const char *oem_table_id)
|
|||
{
|
||||
struct device *dev;
|
||||
for (dev = all_devices; dev; dev = dev->next)
|
||||
if (dev->ops && dev->ops->acpi_fill_ssdt)
|
||||
if (dev->enabled && dev->ops && dev->ops->acpi_fill_ssdt)
|
||||
dev->ops->acpi_fill_ssdt(dev);
|
||||
current = (unsigned long) acpigen_get_current();
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ static void adau7002_fill_ssdt(const struct device *dev)
|
|||
struct drivers_generic_adau7002_config *config;
|
||||
struct acpi_dp *dp;
|
||||
|
||||
if (!dev || !dev->enabled)
|
||||
if (!dev)
|
||||
return;
|
||||
|
||||
const char *scope = acpi_device_scope(dev);
|
||||
|
|
|
@ -57,7 +57,7 @@ static void gpio_keys_fill_ssdt_generator(const struct device *dev)
|
|||
const char *drv_string = config->is_polled ? "gpio-keys-polled"
|
||||
: "gpio-keys";
|
||||
|
||||
if (!dev->enabled || !scope || !path || !config->gpio.pin_count)
|
||||
if (!scope || !path || !config->gpio.pin_count)
|
||||
return;
|
||||
|
||||
/* Device */
|
||||
|
|
|
@ -18,7 +18,7 @@ static void max98357a_fill_ssdt(const struct device *dev)
|
|||
const char *path;
|
||||
struct acpi_dp *dp;
|
||||
|
||||
if (!dev->enabled || !config)
|
||||
if (!config)
|
||||
return;
|
||||
|
||||
const char *scope = acpi_device_scope(dev);
|
||||
|
|
|
@ -106,7 +106,7 @@ static void gfx_fill_ssdt_generator(const struct device *dev)
|
|||
|
||||
const char *scope = acpi_device_scope(dev);
|
||||
|
||||
if (!scope || !dev->enabled)
|
||||
if (!scope)
|
||||
return;
|
||||
|
||||
acpigen_write_scope(scope);
|
||||
|
|
|
@ -27,7 +27,7 @@ static void da7219_fill_ssdt(const struct device *dev)
|
|||
};
|
||||
struct acpi_dp *dsd, *aad;
|
||||
|
||||
if (!dev->enabled || !scope)
|
||||
if (!scope)
|
||||
return;
|
||||
|
||||
/* Device */
|
||||
|
|
|
@ -824,9 +824,6 @@ void dw_i2c_acpi_fill_ssdt(const struct device *dev)
|
|||
const char *path;
|
||||
unsigned int speed;
|
||||
|
||||
if (!dev->enabled)
|
||||
return;
|
||||
|
||||
bus = dw_i2c_soc_dev_to_bus(dev);
|
||||
|
||||
if (bus < 0)
|
||||
|
|
|
@ -57,7 +57,7 @@ void i2c_generic_fill_ssdt(const struct device *dev,
|
|||
int reset_gpio_index = -1, enable_gpio_index = -1, irq_gpio_index = -1;
|
||||
const char *path = acpi_device_path(dev);
|
||||
|
||||
if (!dev->enabled || !scope)
|
||||
if (!scope)
|
||||
return;
|
||||
|
||||
if (!config->hid) {
|
||||
|
|
|
@ -22,7 +22,7 @@ static void i2c_gpiomux_bus_fill_ssdt(const struct device *dev)
|
|||
const char *scope = acpi_device_scope(dev);
|
||||
const char *path = acpi_device_path(dev);
|
||||
|
||||
if (!dev || !dev->enabled || !scope || !path)
|
||||
if (!dev || !scope || !path)
|
||||
return;
|
||||
|
||||
/* Device */
|
||||
|
|
|
@ -27,7 +27,7 @@ static void i2c_gpiomux_mux_fill_ssdt(const struct device *dev)
|
|||
struct acpi_gpio_res_params param[MAX_NUM_MUX_GPIOS];
|
||||
int i;
|
||||
|
||||
if (!dev->enabled || !scope || !path)
|
||||
if (!scope || !path)
|
||||
return;
|
||||
|
||||
/* Device */
|
||||
|
|
|
@ -24,7 +24,7 @@ static void max98373_fill_ssdt(const struct device *dev)
|
|||
};
|
||||
struct acpi_dp *dp;
|
||||
|
||||
if (!dev->enabled || !scope) {
|
||||
if (!scope) {
|
||||
printk(BIOS_ERR, "%s: dev not enabled\n", __func__);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ static void max98390_fill_ssdt(const struct device *dev)
|
|||
struct acpi_dp *dp;
|
||||
uint64_t r0_value, temp_value;
|
||||
|
||||
if (!dev->enabled || !scope)
|
||||
if (!scope)
|
||||
return;
|
||||
|
||||
/* Device */
|
||||
|
|
|
@ -24,7 +24,7 @@ static void max98927_fill_ssdt(const struct device *dev)
|
|||
};
|
||||
struct acpi_dp *dp;
|
||||
|
||||
if (!dev->enabled || !scope)
|
||||
if (!scope)
|
||||
return;
|
||||
|
||||
/* Device */
|
||||
|
|
|
@ -30,7 +30,7 @@ static void nau8825_fill_ssdt(const struct device *dev)
|
|||
};
|
||||
struct acpi_dp *dp = NULL;
|
||||
|
||||
if (!dev->enabled || !scope)
|
||||
if (!scope)
|
||||
return;
|
||||
if (config->sar_threshold_num > NAU8825_MAX_BUTTONS)
|
||||
return;
|
||||
|
|
|
@ -28,7 +28,7 @@ static void rt1011_fill_ssdt(const struct device *dev)
|
|||
struct acpi_dp *dp;
|
||||
uint64_t r0_value, temp_value;
|
||||
|
||||
if (!dev->enabled || !scope)
|
||||
if (!scope)
|
||||
return;
|
||||
|
||||
/* Device */
|
||||
|
|
|
@ -27,7 +27,7 @@ static void rt5663_fill_ssdt(const struct device *dev)
|
|||
};
|
||||
struct acpi_dp *dp;
|
||||
|
||||
if (!dev->enabled || !scope)
|
||||
if (!scope)
|
||||
return;
|
||||
|
||||
/* Device */
|
||||
|
|
|
@ -28,7 +28,7 @@ static void i2c_sx9310_fill_ssdt(const struct device *dev)
|
|||
};
|
||||
struct acpi_dp *dsd;
|
||||
|
||||
if (!dev->enabled || !scope || !config)
|
||||
if (!scope || !config)
|
||||
return;
|
||||
|
||||
if (config->speed)
|
||||
|
|
|
@ -20,7 +20,7 @@ static void i2c_tpm_fill_ssdt(const struct device *dev)
|
|||
.resource = scope,
|
||||
};
|
||||
|
||||
if (!dev->enabled || !scope)
|
||||
if (!scope)
|
||||
return;
|
||||
|
||||
if (!config->hid) {
|
||||
|
|
|
@ -13,7 +13,7 @@ static void ish_fill_ssdt_generator(const struct device *dev)
|
|||
struct device *root = dev->bus->dev;
|
||||
struct acpi_dp *dsd;
|
||||
|
||||
if (!dev->enabled || !config || !config->firmware_name)
|
||||
if (!config || !config->firmware_name)
|
||||
return;
|
||||
|
||||
acpigen_write_scope(acpi_device_path(root));
|
||||
|
|
|
@ -909,9 +909,6 @@ static void camera_fill_ssdt(const struct device *dev)
|
|||
const char *scope = NULL;
|
||||
const struct device *pdev;
|
||||
|
||||
if (!dev->enabled)
|
||||
return;
|
||||
|
||||
if (config->has_power_resource) {
|
||||
pdev = dev->bus->dev;
|
||||
if (!pdev || !pdev->enabled)
|
||||
|
|
|
@ -32,9 +32,6 @@ static void conn_fill_ssdt(const struct device *dev)
|
|||
const char *scope;
|
||||
const char *name;
|
||||
|
||||
if (!dev->enabled)
|
||||
return;
|
||||
|
||||
/* Reference the existing scope and write CONx device */
|
||||
scope = acpi_device_scope(dev);
|
||||
name = acpi_device_name(dev);
|
||||
|
|
|
@ -50,7 +50,7 @@ static void intel_soundwire_fill_ssdt(const struct device *dev)
|
|||
struct intel_soundwire_controller *controller;
|
||||
const char *scope = acpi_device_scope(dev);
|
||||
|
||||
if (!dev->enabled || !scope)
|
||||
if (!scope)
|
||||
return;
|
||||
|
||||
if (soc_fill_soundwire_controller(&controller) < 0 || !controller)
|
||||
|
|
|
@ -101,7 +101,7 @@ static void usb4_retimer_fill_ssdt(const struct device *dev)
|
|||
const struct drivers_intel_usb4_retimer_config *config = dev->chip_info;
|
||||
const char *scope = acpi_device_scope(dev);
|
||||
|
||||
if (!dev->enabled || !scope || !config)
|
||||
if (!scope || !config)
|
||||
return;
|
||||
|
||||
if (!config->power_gpio.pin_count) {
|
||||
|
|
|
@ -128,7 +128,7 @@ static void soundwire_alc5682_fill_ssdt(const struct device *dev)
|
|||
const char *scope = acpi_device_scope(dev);
|
||||
struct acpi_dp *dsd;
|
||||
|
||||
if (!dev->enabled || !scope)
|
||||
if (!scope)
|
||||
return;
|
||||
|
||||
acpigen_write_scope(scope);
|
||||
|
|
|
@ -105,7 +105,7 @@ static void soundwire_alc711_fill_ssdt(const struct device *dev)
|
|||
const char *scope = acpi_device_scope(dev);
|
||||
struct acpi_dp *dsd;
|
||||
|
||||
if (!dev->enabled || !scope)
|
||||
if (!scope)
|
||||
return;
|
||||
|
||||
acpigen_write_scope(scope);
|
||||
|
|
|
@ -114,7 +114,7 @@ static void soundwire_max98373_fill_ssdt(const struct device *dev)
|
|||
const char *scope = acpi_device_scope(dev);
|
||||
struct acpi_dp *dsd;
|
||||
|
||||
if (!dev->enabled || !scope)
|
||||
if (!scope)
|
||||
return;
|
||||
|
||||
acpigen_write_scope(scope);
|
||||
|
|
|
@ -77,7 +77,7 @@ static void spi_acpi_fill_ssdt_generator(const struct device *dev)
|
|||
int reset_gpio_index = -1;
|
||||
int enable_gpio_index = -1;
|
||||
|
||||
if (!dev->enabled || !scope)
|
||||
if (!scope)
|
||||
return;
|
||||
|
||||
if (spi_acpi_get_bus(dev) == -1) {
|
||||
|
|
|
@ -46,7 +46,7 @@ static void uart_acpi_fill_ssdt(const struct device *dev)
|
|||
int reset_gpio_index = -1;
|
||||
int enable_gpio_index = -1;
|
||||
|
||||
if (!dev->enabled || !scope)
|
||||
if (!scope)
|
||||
return;
|
||||
|
||||
if (!config->hid) {
|
||||
|
|
|
@ -24,7 +24,7 @@ static void usb_acpi_fill_ssdt_generator(const struct device *dev)
|
|||
struct drivers_usb_acpi_config *config = dev->chip_info;
|
||||
const char *path = acpi_device_path(dev);
|
||||
|
||||
if (!dev->enabled || !path || !config)
|
||||
if (!path || !config)
|
||||
return;
|
||||
|
||||
/* Don't generate output for hubs, only ports */
|
||||
|
|
|
@ -222,9 +222,6 @@ void wifi_pcie_fill_ssdt(const struct device *dev)
|
|||
{
|
||||
const char *path;
|
||||
|
||||
if (!is_dev_enabled(dev))
|
||||
return;
|
||||
|
||||
path = acpi_device_path(dev);
|
||||
if (!path)
|
||||
return;
|
||||
|
@ -247,9 +244,6 @@ void wifi_cnvi_fill_ssdt(const struct device *dev)
|
|||
{
|
||||
const char *path;
|
||||
|
||||
if (!is_dev_enabled(dev))
|
||||
return;
|
||||
|
||||
path = acpi_device_path(dev->bus->dev);
|
||||
if (!path)
|
||||
return;
|
||||
|
|
|
@ -15,7 +15,7 @@ static void crosec_audio_codec_fill_ssdt(const struct device *dev)
|
|||
const char *scope = acpi_device_scope(dev);
|
||||
struct ec_google_chromeec_audio_codec_config *cfg = dev->chip_info;
|
||||
|
||||
if (!dev->enabled || !scope || !cfg)
|
||||
if (!scope || !cfg)
|
||||
return;
|
||||
|
||||
acpigen_write_scope(scope);
|
||||
|
|
|
@ -223,9 +223,6 @@ void google_chromeec_fill_ssdt_generator(const struct device *dev)
|
|||
struct device_path path;
|
||||
struct device *ec;
|
||||
|
||||
if (!dev->enabled)
|
||||
return;
|
||||
|
||||
/* Set up a minimal EC0 device to pass to the DPTF helpers */
|
||||
path.type = DEVICE_PATH_GENERIC;
|
||||
path.generic.id = 0;
|
||||
|
|
|
@ -17,7 +17,7 @@ static void crosec_i2c_tunnel_fill_ssdt(const struct device *dev)
|
|||
struct ec_google_chromeec_i2c_tunnel_config *cfg = dev->chip_info;
|
||||
struct acpi_dp *dsd;
|
||||
|
||||
if (!dev->enabled || !scope || !cfg)
|
||||
if (!scope || !cfg)
|
||||
return;
|
||||
|
||||
acpigen_write_scope(scope);
|
||||
|
|
|
@ -184,9 +184,6 @@ static void wilco_ec_fill_ssdt_generator(const struct device *dev)
|
|||
void *region_ptr;
|
||||
size_t ucsi_alloc_region_len;
|
||||
|
||||
if (!dev->enabled)
|
||||
return;
|
||||
|
||||
ucsi_alloc_region_len = ucsi_region_len < UCSI_MIN_ALLOC_REGION_LEN ?
|
||||
UCSI_MIN_ALLOC_REGION_LEN : ucsi_region_len;
|
||||
region_ptr = cbmem_add(CBMEM_ID_ACPI_UCSI, ucsi_alloc_region_len);
|
||||
|
|
|
@ -12,9 +12,6 @@ static void sd_fill_ssdt(const struct device *dev)
|
|||
struct acpi_gpio default_gpio = { 0 };
|
||||
struct acpi_dp *dp;
|
||||
|
||||
if (!dev->enabled)
|
||||
return;
|
||||
|
||||
if (sd_fill_soc_gpio_info(&default_gpio, dev) != 0)
|
||||
return;
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ static void usb4_pcie_acpi_fill_ssdt(const struct device *dev)
|
|||
return;
|
||||
}
|
||||
|
||||
if (!dev->enabled || !parent->enabled)
|
||||
if (!parent->enabled)
|
||||
return;
|
||||
|
||||
config = config_of(dev);
|
||||
|
|
|
@ -28,9 +28,6 @@ static void tbt_dma_fill_ssdt(const struct device *dev)
|
|||
{
|
||||
struct acpi_dp *dsd, *pkg;
|
||||
|
||||
if (!dev->enabled)
|
||||
return;
|
||||
|
||||
acpigen_write_scope(acpi_device_path(dev));
|
||||
|
||||
dsd = acpi_dp_new_table("_DSD");
|
||||
|
|
Loading…
Reference in New Issue