Commit 995e2ef0 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge branches 'acpi-utils', 'acpi-platform', 'acpi-video' and 'acpi-doc'

* acpi-utils:
  iommu/amd: Switch to use acpi_dev_hid_uid_match()
  mmc: sdhci-acpi: Switch to use acpi_dev_hid_uid_match()
  ACPI / LPSS: Switch to use acpi_dev_hid_uid_match()
  ACPI / utils: Introduce acpi_dev_hid_uid_match() helper
  ACPI / utils: Move acpi_dev_get_first_match_dev() under CONFIG_ACPI
  ACPI / utils: Describe function parameters in kernel-doc

* acpi-platform:
  ACPI: platform: Unregister stale platform devices
  ACPI: Always build evged in

* acpi-video:
  ACPI: video: update doc for acpi_video_bus_DOS()

* acpi-doc:
  ACPI: Documentation: Minor spelling fix in namespace.rst
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -261,7 +261,7 @@ Description Tables contain information used for the creation of the
struct acpi_device objects represented by the given row (xSDT means DSDT
or SSDT).

The forth column of the above table indicates the 'bus_id' generation
The fourth column of the above table indicates the 'bus_id' generation
rule of the struct acpi_device object:

   _HID:
+1 −1
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ acpi-y += acpi_pnp.o
acpi-$(CONFIG_ARM_AMBA)	+= acpi_amba.o
acpi-y				+= power.o
acpi-y				+= event.o
acpi-$(CONFIG_ACPI_REDUCED_HARDWARE_ONLY) += evged.o
acpi-y				+= evged.o
acpi-y				+= sysfs.o
acpi-y				+= property.o
acpi-$(CONFIG_X86)		+= acpi_cmos_rtc.o
+3 −18
Original line number Diff line number Diff line
@@ -499,31 +499,16 @@ static const struct lpss_device_links lpss_device_links[] = {
	{"80860F41", "7", "LNXVIDEO", NULL, DL_FLAG_PM_RUNTIME},
};

static bool hid_uid_match(struct acpi_device *adev,
			  const char *hid2, const char *uid2)
{
	const char *hid1 = acpi_device_hid(adev);
	const char *uid1 = acpi_device_uid(adev);

	if (strcmp(hid1, hid2))
		return false;

	if (!uid2)
		return true;

	return uid1 && !strcmp(uid1, uid2);
}

static bool acpi_lpss_is_supplier(struct acpi_device *adev,
				  const struct lpss_device_links *link)
{
	return hid_uid_match(adev, link->supplier_hid, link->supplier_uid);
	return acpi_dev_hid_uid_match(adev, link->supplier_hid, link->supplier_uid);
}

static bool acpi_lpss_is_consumer(struct acpi_device *adev,
				  const struct lpss_device_links *link)
{
	return hid_uid_match(adev, link->consumer_hid, link->consumer_uid);
	return acpi_dev_hid_uid_match(adev, link->consumer_hid, link->consumer_uid);
}

struct hid_uid {
@@ -539,7 +524,7 @@ static int match_hid_uid(struct device *dev, const void *data)
	if (!adev)
		return 0;

	return hid_uid_match(adev, id->hid, id->uid);
	return acpi_dev_hid_uid_match(adev, id->hid, id->uid);
}

static struct device *acpi_lpss_find_device(const char *hid, const char *uid)
+43 −0
Original line number Diff line number Diff line
@@ -31,6 +31,44 @@ static const struct acpi_device_id forbidden_id_list[] = {
	{"", 0},
};

static struct platform_device *acpi_platform_device_find_by_companion(struct acpi_device *adev)
{
	struct device *dev;

	dev = bus_find_device_by_acpi_dev(&platform_bus_type, adev);
	return dev ? to_platform_device(dev) : NULL;
}

static int acpi_platform_device_remove_notify(struct notifier_block *nb,
					      unsigned long value, void *arg)
{
	struct acpi_device *adev = arg;
	struct platform_device *pdev;

	switch (value) {
	case ACPI_RECONFIG_DEVICE_ADD:
		/* Nothing to do here */
		break;
	case ACPI_RECONFIG_DEVICE_REMOVE:
		if (!acpi_device_enumerated(adev))
			break;

		pdev = acpi_platform_device_find_by_companion(adev);
		if (!pdev)
			break;

		platform_device_unregister(pdev);
		put_device(&pdev->dev);
		break;
	}

	return NOTIFY_OK;
}

static struct notifier_block acpi_platform_notifier = {
	.notifier_call = acpi_platform_device_remove_notify,
};

static void acpi_platform_fill_resource(struct acpi_device *adev,
	const struct resource *src, struct resource *dest)
{
@@ -130,3 +168,8 @@ struct platform_device *acpi_create_platform_device(struct acpi_device *adev,
	return pdev;
}
EXPORT_SYMBOL_GPL(acpi_create_platform_device);

void __init acpi_platform_init(void)
{
	acpi_reconfig_notifier_register(&acpi_platform_notifier);
}
+6 −2
Original line number Diff line number Diff line
@@ -699,9 +699,13 @@ acpi_video_device_EDID(struct acpi_video_device *device,
 *			event notify code.
 *	lcd_flag	:
 *		0.	The system BIOS should automatically control the brightness level
 *			of the LCD when the power changes from AC to DC
 *			of the LCD when:
 *			- the power changes from AC to DC (ACPI appendix B)
 *			- a brightness hotkey gets pressed (implied by Win7/8 backlight docs)
 *		1.	The system BIOS should NOT automatically control the brightness
 *			level of the LCD when the power changes from AC to DC.
 *			level of the LCD when:
 *			- the power changes from AC to DC (ACPI appendix B)
 *			- a brightness hotkey gets pressed (implied by Win7/8 backlight docs)
 *  Return Value:
 *		-EINVAL	wrong arg.
 */
Loading