I'd like to try and summarize this, correct me on any mistakes. 1) If the XSDT exists, we use this, as per the ACPI specification. However, we will also get all tables within the RSDT and mark them as the "inactive" table set. Acpidump will now get both the "active" and "inactive" tables? 2) In the FACS firmware waking vector case, we set the vector in both the "active" FACS and the "inactive" FACS. Again, please note that we have changed the ACPICA interface to set the firmware wake vector - splitting into two. >-----Original Message----- >From: Zhang, Rui >Sent: Monday, October 13, 2008 1:10 AM >To: Len Brown >Cc: linux-acpi; Zhang, Rui; Moore, Robert >Subject: [PATCH 0/6] ACPI: acpi table management enhancement > >hi all, > >this is the patch set I made recently for ACPI table management >enhancement. > >Patch 01 introduces a new mechanism for ACPI inactive table management. >with this patch applied, Linux gets the address of the unused root >table, and parses this root table to get the inactive tables when >needed. >e.g. if Linux is using XSDT on a laptop, tables from RSDT will be >maintain by this mechanism. > >Patch 02 introduces a new interface to get certain inactive table, >which is needed by Patch 03. > >Patch 03 gets the inactive tables and creates sysfs I/F for these >tables. > >Patch 04 creates the sysfs I/F for dynamic loaded tables. >so that users can get all the ACPI tables >under /sys/firmware/acpi/tables, >which was done by the acpidump tool manually before. > >Patch 05 fixes a suspend/hibernation bug. >I have a platform which suspends well, but always reboots instead of >resuming when pressing the power button. >I found that there are two FACS tables on this platform, >XSDT-->FADT1-->Xfacs-->FACS1 > |----->facs-| > |->FACS2 >RSDT-->FADT2-->facs-| >Linux uses XSDT on this platform and sets the waking vector in FACS1 >when suspending. >But it seems that the BIOS only cares for the waking vector in FACS2, >thus it reboots when resuming because the waking vector is not set at >all. >I set the waking vector in inactive FACS table to fix it in this patch. > >Patch 06 is a refreshed version of Peter Gruber's patch which stops >using empty file names for acpi tables in sysfs I/F. > >Note: >In this patch set, all the tables in the inactive root table are >recognized as inactive tables even if it's also in the active root >table. >i.e. some tables are shown twice in /sys/firmware/acpi/tables, >both as active and inactive tables. >Take my laptop for example, >#ls /sys/firmware/acpi/tables/ >APIC APIC_inactive ASF! ASF!_inactive DSDT DSDT_inactive FACP >FACP_inactive >FACS FACS_inactive MCFG MCFG_inactive SSDT_dynamic > >In my case, FACP and FACP_inactive are different tables exported by XSDT >and RSDT. >but MCFG and MCFG_inactive are the same table because they point to the >same physical address. > >I don't think the duplicate tables should be ignored because: >If only the unduplicated inactive tables is shown, we are not able to >get a full list of the tables exported by the inactive root table, >which is important for debugging in some cases. > >any comments are welcome. :) > > >thanks, >rui ��.n��������+%������w��{.n�����{�����ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f