Re: [PATCH 7/8] ACPI / PCI: Do not preserve _OSC control bits returned by a query (v2)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



(2010/08/03 6:59), Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki<rjw@xxxxxxx>
>
> All of the remaining callers of acpi_pci_osc_control_set() either
> use acpi_pci_root_osc_query() right before it, like
> pcie_port_acpi_setup(), or ask for control of one feature only,
> like acpi_get_hp_hw_control_from_firmware().  Thus there is no
> reason to preserve the _OSC control bits returned by an _OSC query
> and the osc_control_qry and osc_queried fields of struct
> acpi_pci_root are not necessary any more.  Remove them and modify the
> code that uses them accordingly.
>
> Signed-off-by: Rafael J. Wysocki<rjw@xxxxxxx>
> Reviewed-by: Hidetoshi Seto<seto.hidetoshi@xxxxxxxxxxxxxx>
> ---
>   drivers/acpi/pci_root.c |   15 ---------------
>   include/acpi/acpi_bus.h |    3 ---
>   2 files changed, 18 deletions(-)
>
> Index: linux-2.6/drivers/acpi/pci_root.c
> ===================================================================
> --- linux-2.6.orig/drivers/acpi/pci_root.c
> +++ linux-2.6/drivers/acpi/pci_root.c
> @@ -248,10 +248,8 @@ static acpi_status acpi_pci_query_osc(st
>   	status = acpi_pci_run_osc(root->device->handle, capbuf,&result);
>   	if (ACPI_SUCCESS(status)) {
>   		root->osc_support_set = support;
> -		root->osc_control_qry = result;
>   		if (control)
>   			*control = result;
> -		root->osc_queried = 1;
>   	}
>   	return status;
>   }
> @@ -434,19 +432,6 @@ acpi_status acpi_pci_osc_control_set(acp
>   	if ((root->osc_control_set&  control_req) == control_req)
>   		goto out;
>
> -	/* Need to query controls first before requesting them */
> -	if (!root->osc_queried) {
> -		status = acpi_pci_query_osc(root, root->osc_support_set, NULL);
> -		if (ACPI_FAILURE(status))
> -			goto out;
> -	}
> -	if ((root->osc_control_qry&  control_req) != control_req) {
> -		printk(KERN_DEBUG
> -		       "Firmware did not grant requested _OSC control\n");
> -		status = AE_SUPPORT;
> -		goto out;
> -	}

I think acpi_pci_osc_control_set() still need to query before commit
to ensure all the requested controls are granted to OS.

So the code needs to be

	status = acpi_pci_query_osc(root, root->osc_support_set, &control_req);
	if (ACPI_FAILURE(status))
		goto out;

Thanks,
Kenji Kaneshige

_______________________________________________
linux-pm mailing list
linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/linux-pm


[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux