RE: [PATCH] ACPICA / hwreg: Use acpi_gbl_reduced_hardware to prevent accessing PM registers

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

 



> From: Hanjun Guo [mailto:hanjun.guo@xxxxxxxxxx]
> Sent: Sunday, September 22, 2013 11:27 AM
> 
> On 2013-9-19 10:37, Moore, Robert wrote:
> > While we are at it, here is the *complete* list of ACPICA interfaces that are
> > meaningless on a hardware-reduced platform. If we are going to dynamically
> > disable some of these interfaces, we will need to disable all of them -- for
> > completeness. So, this is actually not a trivial change.
> 
> Yes, you are right.
> Actually, before I send this patch out, I searched all the ACPICA API on
> a hardware-reduced platform as you did, I found some of them will finally call
> acpi_hw_register_read/write(), so some of the ACPICA API do not need to change.
> 

I agreed.

My idea is to keep the call path implemented using non-HWREDUCED ACPI silicon not-changed, but changing the code inside of a function implemented with the non-HWREDUCED logic to contain a HWREDUCED logic.
This might be more reasonable.
So IMO, it is not a good idea to reduce the APIs, but need to re-implement the APIs using HWREDUCED logic.
And the non-HWREDUCED code inside of an API should be marked with ACPI_HARDWARE_REDUCED macro rather than the API itself be marked out.
If the APIs (aka., ACPI functionalities) are kept un-modified, the device drivers can be kept un-modified on HWREDUCED platforms.

Thanks
-Lv

> Some of these APIs are already disabled in linux kernel tree now, such as
> acpi_enable():
> acpi_status acpi_enable(void)
> {
> 	acpi_status status;
> 	int retry;
> 
> 	ACPI_FUNCTION_TRACE(acpi_enable);
> 
> 	/* ACPI tables must be present */
> 
> 	if (!acpi_tb_tables_loaded()) {
> 		return_ACPI_STATUS(AE_NO_ACPI_TABLES);
> 	}
> 
> 	/* If the Hardware Reduced flag is set, machine is always in acpi mode */
> 
> 	if (acpi_gbl_reduced_hardware) {
> 		return_ACPI_STATUS(AE_OK);
> 	}
> ...
> }
> 
> and some of them need to be disabled as you said.
> 
> >
> > I'll let the linux experts chime in on this one.
> > Bob
> >
> >
> > AcpiInstallSciHandler
> > AcpiRemoveSciHandler
> > AcpiInstallGlobalEventHandler
> > AcpiInstallFixedEventHandler
> > AcpiRemoveFixedEventHandler
> > AcpiInstallGpeHandler
> > AcpiRemoveGpeHandler
> > AcpiAcquireGlobalLock
> > AcpiReleaseGlobalLock
> > AcpiEnable
> > AcpiDisable
> > AcpiEnableEvent
> > AcpiDisableEvent
> > AcpiClearEvent
> > AcpiGetEventStatus
> > AcpiUpdateAllGpes
> > AcpiEnableGpe
> > AcpiDisableGpe
> > AcpiSetGpe
> > AcpiSetupGpeForWake
> > AcpiSetGpeWakeMask
> > AcpiClearGpe
> > AcpiGetGpeStatus
> > AcpiFinishGpe
> > AcpiDisableAllGpes
> > AcpiEnableAllRuntimeGpes
> > AcpiInstallGpeBlock
> > AcpiRemoveGpeBlock
> > AcpiGetGpeDevice
> > AcpiGetTimerResolution
> > AcpiGetTimer
> > AcpiGetTimerDuration
> > AcpiReadBitRegister
> > AcpiWriteBitRegister
> > AcpiSetFirmwareWakingVector
> > AcpiSetFirmwareWakingVector64
> > AcpiEnterSleepStateS4bios
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux