mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-24 05:01:03 +02:00
Merge branch 'acpi-uid'
Merge ACPI _UID handling unification changes for 6.1-rc1: - Introduce acpi_dev_uid_to_integer() to convert a _UID string into an integer value (Andy Shevchenko). - Use acpi_dev_uid_to_integer() in several places to unify _UID handling (Andy Shevchenko). * acpi-uid: efi/dev-path-parser: Refactor _UID handling to use acpi_dev_uid_to_integer() spi: pxa2xx: Refactor _UID handling to use acpi_dev_uid_to_integer() perf: qcom_l2_pmu: Refactor _UID handling to use acpi_dev_uid_to_integer() i2c: mlxbf: Refactor _UID handling to use acpi_dev_uid_to_integer() i2c: amd-mp2-plat: Refactor _UID handling to use acpi_dev_uid_to_integer() ACPI: x86: Refactor _UID handling to use acpi_dev_uid_to_integer() ACPI: LPSS: Refactor _UID handling to use acpi_dev_uid_to_integer() ACPI: utils: Add acpi_dev_uid_to_integer() helper to get _UID as integer
This commit is contained in:
@@ -167,10 +167,10 @@ static struct pwm_lookup byt_pwm_lookup[] = {
|
|||||||
|
|
||||||
static void byt_pwm_setup(struct lpss_private_data *pdata)
|
static void byt_pwm_setup(struct lpss_private_data *pdata)
|
||||||
{
|
{
|
||||||
struct acpi_device *adev = pdata->adev;
|
u64 uid;
|
||||||
|
|
||||||
/* Only call pwm_add_table for the first PWM controller */
|
/* Only call pwm_add_table for the first PWM controller */
|
||||||
if (!adev->pnp.unique_id || strcmp(adev->pnp.unique_id, "1"))
|
if (acpi_dev_uid_to_integer(pdata->adev, &uid) || uid != 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pwm_add_table(byt_pwm_lookup, ARRAY_SIZE(byt_pwm_lookup));
|
pwm_add_table(byt_pwm_lookup, ARRAY_SIZE(byt_pwm_lookup));
|
||||||
@@ -180,14 +180,13 @@ static void byt_pwm_setup(struct lpss_private_data *pdata)
|
|||||||
|
|
||||||
static void byt_i2c_setup(struct lpss_private_data *pdata)
|
static void byt_i2c_setup(struct lpss_private_data *pdata)
|
||||||
{
|
{
|
||||||
const char *uid_str = acpi_device_uid(pdata->adev);
|
|
||||||
acpi_handle handle = pdata->adev->handle;
|
acpi_handle handle = pdata->adev->handle;
|
||||||
unsigned long long shared_host = 0;
|
unsigned long long shared_host = 0;
|
||||||
acpi_status status;
|
acpi_status status;
|
||||||
long uid = 0;
|
u64 uid;
|
||||||
|
|
||||||
/* Expected to always be true, but better safe then sorry */
|
/* Expected to always be successfull, but better safe then sorry */
|
||||||
if (uid_str && !kstrtol(uid_str, 10, &uid) && uid) {
|
if (!acpi_dev_uid_to_integer(pdata->adev, &uid) && uid) {
|
||||||
/* Detect I2C bus shared with PUNIT and ignore its d3 status */
|
/* Detect I2C bus shared with PUNIT and ignore its d3 status */
|
||||||
status = acpi_evaluate_integer(handle, "_SEM", NULL, &shared_host);
|
status = acpi_evaluate_integer(handle, "_SEM", NULL, &shared_host);
|
||||||
if (ACPI_SUCCESS(status) && shared_host)
|
if (ACPI_SUCCESS(status) && shared_host)
|
||||||
@@ -211,10 +210,10 @@ static struct pwm_lookup bsw_pwm_lookup[] = {
|
|||||||
|
|
||||||
static void bsw_pwm_setup(struct lpss_private_data *pdata)
|
static void bsw_pwm_setup(struct lpss_private_data *pdata)
|
||||||
{
|
{
|
||||||
struct acpi_device *adev = pdata->adev;
|
u64 uid;
|
||||||
|
|
||||||
/* Only call pwm_add_table for the first PWM controller */
|
/* Only call pwm_add_table for the first PWM controller */
|
||||||
if (!adev->pnp.unique_id || strcmp(adev->pnp.unique_id, "1"))
|
if (acpi_dev_uid_to_integer(pdata->adev, &uid) || uid != 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
pwm_add_table(bsw_pwm_lookup, ARRAY_SIZE(bsw_pwm_lookup));
|
pwm_add_table(bsw_pwm_lookup, ARRAY_SIZE(bsw_pwm_lookup));
|
||||||
|
@@ -793,6 +793,30 @@ bool acpi_dev_hid_uid_match(struct acpi_device *adev,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(acpi_dev_hid_uid_match);
|
EXPORT_SYMBOL(acpi_dev_hid_uid_match);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* acpi_dev_uid_to_integer - treat ACPI device _UID as integer
|
||||||
|
* @adev: ACPI device to get _UID from
|
||||||
|
* @integer: output buffer for integer
|
||||||
|
*
|
||||||
|
* Considers _UID as integer and converts it to @integer.
|
||||||
|
*
|
||||||
|
* Returns 0 on success, or negative error code otherwise.
|
||||||
|
*/
|
||||||
|
int acpi_dev_uid_to_integer(struct acpi_device *adev, u64 *integer)
|
||||||
|
{
|
||||||
|
const char *uid;
|
||||||
|
|
||||||
|
if (!adev)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
|
uid = acpi_device_uid(adev);
|
||||||
|
if (!uid)
|
||||||
|
return -ENODATA;
|
||||||
|
|
||||||
|
return kstrtou64(uid, 0, integer);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(acpi_dev_uid_to_integer);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* acpi_dev_found - Detect presence of a given ACPI device in the namespace.
|
* acpi_dev_found - Detect presence of a given ACPI device in the namespace.
|
||||||
* @hid: Hardware ID of the device.
|
* @hid: Hardware ID of the device.
|
||||||
|
@@ -368,11 +368,17 @@ int acpi_quirk_skip_serdev_enumeration(struct device *controller_parent, bool *s
|
|||||||
struct acpi_device *adev = ACPI_COMPANION(controller_parent);
|
struct acpi_device *adev = ACPI_COMPANION(controller_parent);
|
||||||
const struct dmi_system_id *dmi_id;
|
const struct dmi_system_id *dmi_id;
|
||||||
long quirks = 0;
|
long quirks = 0;
|
||||||
|
u64 uid;
|
||||||
|
int ret;
|
||||||
|
|
||||||
*skip = false;
|
*skip = false;
|
||||||
|
|
||||||
/* !dev_is_platform() to not match on PNP enumerated debug UARTs */
|
ret = acpi_dev_uid_to_integer(adev, &uid);
|
||||||
if (!adev || !adev->pnp.unique_id || !dev_is_platform(controller_parent))
|
if (ret)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/* to not match on PNP enumerated debug UARTs */
|
||||||
|
if (!dev_is_platform(controller_parent))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
dmi_id = dmi_first_match(acpi_quirk_skip_dmi_ids);
|
dmi_id = dmi_first_match(acpi_quirk_skip_dmi_ids);
|
||||||
@@ -380,10 +386,10 @@ int acpi_quirk_skip_serdev_enumeration(struct device *controller_parent, bool *s
|
|||||||
quirks = (unsigned long)dmi_id->driver_data;
|
quirks = (unsigned long)dmi_id->driver_data;
|
||||||
|
|
||||||
if (quirks & ACPI_QUIRK_UART1_TTY_UART2_SKIP) {
|
if (quirks & ACPI_QUIRK_UART1_TTY_UART2_SKIP) {
|
||||||
if (!strcmp(adev->pnp.unique_id, "1"))
|
if (uid == 1)
|
||||||
return -ENODEV; /* Create tty cdev instead of serdev */
|
return -ENODEV; /* Create tty cdev instead of serdev */
|
||||||
|
|
||||||
if (!strcmp(adev->pnp.unique_id, "2"))
|
if (uid == 2)
|
||||||
*skip = true;
|
*skip = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -15,9 +15,11 @@
|
|||||||
static long __init parse_acpi_path(const struct efi_dev_path *node,
|
static long __init parse_acpi_path(const struct efi_dev_path *node,
|
||||||
struct device *parent, struct device **child)
|
struct device *parent, struct device **child)
|
||||||
{
|
{
|
||||||
char hid[ACPI_ID_LEN], uid[11]; /* UINT_MAX + null byte */
|
|
||||||
struct acpi_device *adev;
|
struct acpi_device *adev;
|
||||||
struct device *phys_dev;
|
struct device *phys_dev;
|
||||||
|
char hid[ACPI_ID_LEN];
|
||||||
|
u64 uid;
|
||||||
|
int ret;
|
||||||
|
|
||||||
if (node->header.length != 12)
|
if (node->header.length != 12)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
@@ -27,12 +29,12 @@ static long __init parse_acpi_path(const struct efi_dev_path *node,
|
|||||||
'A' + ((node->acpi.hid >> 5) & 0x1f) - 1,
|
'A' + ((node->acpi.hid >> 5) & 0x1f) - 1,
|
||||||
'A' + ((node->acpi.hid >> 0) & 0x1f) - 1,
|
'A' + ((node->acpi.hid >> 0) & 0x1f) - 1,
|
||||||
node->acpi.hid >> 16);
|
node->acpi.hid >> 16);
|
||||||
sprintf(uid, "%u", node->acpi.uid);
|
|
||||||
|
|
||||||
for_each_acpi_dev_match(adev, hid, NULL, -1) {
|
for_each_acpi_dev_match(adev, hid, NULL, -1) {
|
||||||
if (adev->pnp.unique_id && !strcmp(adev->pnp.unique_id, uid))
|
ret = acpi_dev_uid_to_integer(adev, &uid);
|
||||||
|
if (ret == 0 && node->acpi.uid == uid)
|
||||||
break;
|
break;
|
||||||
if (!adev->pnp.unique_id && node->acpi.uid == 0)
|
if (ret == -ENODATA && node->acpi.uid == 0)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!adev)
|
if (!adev)
|
||||||
|
@@ -244,14 +244,18 @@ static const struct i2c_adapter_quirks amd_i2c_dev_quirks = {
|
|||||||
|
|
||||||
static int i2c_amd_probe(struct platform_device *pdev)
|
static int i2c_amd_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
|
struct device *dev = &pdev->dev;
|
||||||
int ret;
|
int ret;
|
||||||
struct amd_i2c_dev *i2c_dev;
|
struct amd_i2c_dev *i2c_dev;
|
||||||
struct acpi_device *adev = ACPI_COMPANION(&pdev->dev);
|
|
||||||
struct amd_mp2_dev *mp2_dev;
|
struct amd_mp2_dev *mp2_dev;
|
||||||
const char *uid;
|
u64 uid;
|
||||||
|
|
||||||
if (!adev)
|
ret = acpi_dev_uid_to_integer(ACPI_COMPANION(dev), &uid);
|
||||||
return -ENODEV;
|
if (ret)
|
||||||
|
return dev_err_probe(dev, ret, "missing UID/bus id!\n");
|
||||||
|
if (uid >= 2)
|
||||||
|
return dev_err_probe(dev, -EINVAL, "incorrect UID/bus id \"%llu\"!\n", uid);
|
||||||
|
dev_dbg(dev, "bus id is %llu\n", uid);
|
||||||
|
|
||||||
/* The ACPI namespace doesn't contain information about which MP2 PCI
|
/* The ACPI namespace doesn't contain information about which MP2 PCI
|
||||||
* device an AMDI0011 ACPI device is related to, so assume that there's
|
* device an AMDI0011 ACPI device is related to, so assume that there's
|
||||||
@@ -266,6 +270,7 @@ static int i2c_amd_probe(struct platform_device *pdev)
|
|||||||
if (!i2c_dev)
|
if (!i2c_dev)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
i2c_dev->common.bus_id = uid;
|
||||||
i2c_dev->common.mp2_dev = mp2_dev;
|
i2c_dev->common.mp2_dev = mp2_dev;
|
||||||
i2c_dev->pdev = pdev;
|
i2c_dev->pdev = pdev;
|
||||||
platform_set_drvdata(pdev, i2c_dev);
|
platform_set_drvdata(pdev, i2c_dev);
|
||||||
@@ -276,20 +281,6 @@ static int i2c_amd_probe(struct platform_device *pdev)
|
|||||||
i2c_dev->common.resume = &i2c_amd_resume;
|
i2c_dev->common.resume = &i2c_amd_resume;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
uid = adev->pnp.unique_id;
|
|
||||||
if (!uid) {
|
|
||||||
dev_err(&pdev->dev, "missing UID/bus id!\n");
|
|
||||||
return -EINVAL;
|
|
||||||
} else if (strcmp(uid, "0") == 0) {
|
|
||||||
i2c_dev->common.bus_id = 0;
|
|
||||||
} else if (strcmp(uid, "1") == 0) {
|
|
||||||
i2c_dev->common.bus_id = 1;
|
|
||||||
} else {
|
|
||||||
dev_err(&pdev->dev, "incorrect UID/bus id \"%s\"!\n", uid);
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
dev_dbg(&pdev->dev, "bus id is %u\n", i2c_dev->common.bus_id);
|
|
||||||
|
|
||||||
/* Register the adapter */
|
/* Register the adapter */
|
||||||
amd_mp2_pm_runtime_get(mp2_dev);
|
amd_mp2_pm_runtime_get(mp2_dev);
|
||||||
|
|
||||||
|
@@ -2229,35 +2229,27 @@ MODULE_DEVICE_TABLE(acpi, mlxbf_i2c_acpi_ids);
|
|||||||
static int mlxbf_i2c_acpi_probe(struct device *dev, struct mlxbf_i2c_priv *priv)
|
static int mlxbf_i2c_acpi_probe(struct device *dev, struct mlxbf_i2c_priv *priv)
|
||||||
{
|
{
|
||||||
const struct acpi_device_id *aid;
|
const struct acpi_device_id *aid;
|
||||||
struct acpi_device *adev;
|
u64 bus_id;
|
||||||
unsigned long bus_id = 0;
|
|
||||||
const char *uid;
|
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
if (acpi_disabled)
|
if (acpi_disabled)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
|
|
||||||
adev = ACPI_COMPANION(dev);
|
|
||||||
if (!adev)
|
|
||||||
return -ENXIO;
|
|
||||||
|
|
||||||
aid = acpi_match_device(mlxbf_i2c_acpi_ids, dev);
|
aid = acpi_match_device(mlxbf_i2c_acpi_ids, dev);
|
||||||
if (!aid)
|
if (!aid)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
priv->chip = (struct mlxbf_i2c_chip_info *)aid->driver_data;
|
priv->chip = (struct mlxbf_i2c_chip_info *)aid->driver_data;
|
||||||
|
|
||||||
uid = acpi_device_uid(adev);
|
ret = acpi_dev_uid_to_integer(ACPI_COMPANION(dev), &bus_id);
|
||||||
if (!uid || !(*uid)) {
|
if (ret) {
|
||||||
dev_err(dev, "Cannot retrieve UID\n");
|
dev_err(dev, "Cannot retrieve UID\n");
|
||||||
return -ENODEV;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = kstrtoul(uid, 0, &bus_id);
|
priv->bus = bus_id;
|
||||||
if (!ret)
|
|
||||||
priv->bus = bus_id;
|
|
||||||
|
|
||||||
return ret;
|
return 0;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
static int mlxbf_i2c_acpi_probe(struct device *dev, struct mlxbf_i2c_priv *priv)
|
static int mlxbf_i2c_acpi_probe(struct device *dev, struct mlxbf_i2c_priv *priv)
|
||||||
|
@@ -840,16 +840,16 @@ static int l2_cache_pmu_probe_cluster(struct device *dev, void *data)
|
|||||||
{
|
{
|
||||||
struct platform_device *pdev = to_platform_device(dev->parent);
|
struct platform_device *pdev = to_platform_device(dev->parent);
|
||||||
struct platform_device *sdev = to_platform_device(dev);
|
struct platform_device *sdev = to_platform_device(dev);
|
||||||
struct acpi_device *adev = ACPI_COMPANION(dev);
|
|
||||||
struct l2cache_pmu *l2cache_pmu = data;
|
struct l2cache_pmu *l2cache_pmu = data;
|
||||||
struct cluster_pmu *cluster;
|
struct cluster_pmu *cluster;
|
||||||
unsigned long fw_cluster_id;
|
u64 fw_cluster_id;
|
||||||
int err;
|
int err;
|
||||||
int irq;
|
int irq;
|
||||||
|
|
||||||
if (!adev || kstrtoul(adev->pnp.unique_id, 10, &fw_cluster_id) < 0) {
|
err = acpi_dev_uid_to_integer(ACPI_COMPANION(dev), &fw_cluster_id);
|
||||||
|
if (err) {
|
||||||
dev_err(&pdev->dev, "unable to read ACPI uid\n");
|
dev_err(&pdev->dev, "unable to read ACPI uid\n");
|
||||||
return -ENODEV;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
cluster = devm_kzalloc(&pdev->dev, sizeof(*cluster), GFP_KERNEL);
|
cluster = devm_kzalloc(&pdev->dev, sizeof(*cluster), GFP_KERNEL);
|
||||||
@@ -879,7 +879,7 @@ static int l2_cache_pmu_probe_cluster(struct device *dev, void *data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
dev_info(&pdev->dev,
|
dev_info(&pdev->dev,
|
||||||
"Registered L2 cache PMU cluster %ld\n", fw_cluster_id);
|
"Registered L2 cache PMU cluster %lld\n", fw_cluster_id);
|
||||||
|
|
||||||
spin_lock_init(&cluster->pmu_lock);
|
spin_lock_init(&cluster->pmu_lock);
|
||||||
|
|
||||||
|
@@ -1441,31 +1441,6 @@ static const struct of_device_id pxa2xx_spi_of_match[] = {
|
|||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(of, pxa2xx_spi_of_match);
|
MODULE_DEVICE_TABLE(of, pxa2xx_spi_of_match);
|
||||||
|
|
||||||
#ifdef CONFIG_ACPI
|
|
||||||
|
|
||||||
static int pxa2xx_spi_get_port_id(struct device *dev)
|
|
||||||
{
|
|
||||||
struct acpi_device *adev;
|
|
||||||
unsigned int devid;
|
|
||||||
int port_id = -1;
|
|
||||||
|
|
||||||
adev = ACPI_COMPANION(dev);
|
|
||||||
if (adev && adev->pnp.unique_id &&
|
|
||||||
!kstrtouint(adev->pnp.unique_id, 0, &devid))
|
|
||||||
port_id = devid;
|
|
||||||
return port_id;
|
|
||||||
}
|
|
||||||
|
|
||||||
#else /* !CONFIG_ACPI */
|
|
||||||
|
|
||||||
static int pxa2xx_spi_get_port_id(struct device *dev)
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* CONFIG_ACPI */
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef CONFIG_PCI
|
#ifdef CONFIG_PCI
|
||||||
|
|
||||||
static bool pxa2xx_spi_idma_filter(struct dma_chan *chan, void *param)
|
static bool pxa2xx_spi_idma_filter(struct dma_chan *chan, void *param)
|
||||||
@@ -1479,13 +1454,16 @@ static struct pxa2xx_spi_controller *
|
|||||||
pxa2xx_spi_init_pdata(struct platform_device *pdev)
|
pxa2xx_spi_init_pdata(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct pxa2xx_spi_controller *pdata;
|
struct pxa2xx_spi_controller *pdata;
|
||||||
|
struct device *dev = &pdev->dev;
|
||||||
|
struct device *parent = dev->parent;
|
||||||
struct ssp_device *ssp;
|
struct ssp_device *ssp;
|
||||||
struct resource *res;
|
struct resource *res;
|
||||||
struct device *parent = pdev->dev.parent;
|
|
||||||
struct pci_dev *pcidev = dev_is_pci(parent) ? to_pci_dev(parent) : NULL;
|
struct pci_dev *pcidev = dev_is_pci(parent) ? to_pci_dev(parent) : NULL;
|
||||||
const struct pci_device_id *pcidev_id = NULL;
|
const struct pci_device_id *pcidev_id = NULL;
|
||||||
enum pxa_ssp_type type;
|
enum pxa_ssp_type type;
|
||||||
const void *match;
|
const void *match;
|
||||||
|
int status;
|
||||||
|
u64 uid;
|
||||||
|
|
||||||
if (pcidev)
|
if (pcidev)
|
||||||
pcidev_id = pci_match_id(pxa2xx_spi_pci_compound_match, pcidev);
|
pcidev_id = pci_match_id(pxa2xx_spi_pci_compound_match, pcidev);
|
||||||
@@ -1529,7 +1507,12 @@ pxa2xx_spi_init_pdata(struct platform_device *pdev)
|
|||||||
|
|
||||||
ssp->type = type;
|
ssp->type = type;
|
||||||
ssp->dev = &pdev->dev;
|
ssp->dev = &pdev->dev;
|
||||||
ssp->port_id = pxa2xx_spi_get_port_id(&pdev->dev);
|
|
||||||
|
status = acpi_dev_uid_to_integer(ACPI_COMPANION(dev), &uid);
|
||||||
|
if (status)
|
||||||
|
ssp->port_id = -1;
|
||||||
|
else
|
||||||
|
ssp->port_id = uid;
|
||||||
|
|
||||||
pdata->is_slave = device_property_read_bool(&pdev->dev, "spi-slave");
|
pdata->is_slave = device_property_read_bool(&pdev->dev, "spi-slave");
|
||||||
pdata->num_chipselect = 1;
|
pdata->num_chipselect = 1;
|
||||||
|
@@ -738,6 +738,7 @@ static inline bool acpi_device_can_poweroff(struct acpi_device *adev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool acpi_dev_hid_uid_match(struct acpi_device *adev, const char *hid2, const char *uid2);
|
bool acpi_dev_hid_uid_match(struct acpi_device *adev, const char *hid2, const char *uid2);
|
||||||
|
int acpi_dev_uid_to_integer(struct acpi_device *adev, u64 *integer);
|
||||||
|
|
||||||
void acpi_dev_clear_dependencies(struct acpi_device *supplier);
|
void acpi_dev_clear_dependencies(struct acpi_device *supplier);
|
||||||
bool acpi_dev_ready_for_enumeration(const struct acpi_device *device);
|
bool acpi_dev_ready_for_enumeration(const struct acpi_device *device);
|
||||||
|
@@ -802,6 +802,11 @@ acpi_dev_hid_uid_match(struct acpi_device *adev, const char *hid2, const char *u
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int acpi_dev_uid_to_integer(struct acpi_device *adev, u64 *integer)
|
||||||
|
{
|
||||||
|
return -ENODEV;
|
||||||
|
}
|
||||||
|
|
||||||
static inline struct acpi_device *
|
static inline struct acpi_device *
|
||||||
acpi_dev_get_first_match_dev(const char *hid, const char *uid, s64 hrv)
|
acpi_dev_get_first_match_dev(const char *hid, const char *uid, s64 hrv)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user