On 5/17/2018 4:24 AM, Rafael J. Wysocki wrote: > On Thu, May 17, 2018 at 12:01 AM, Al Stone <a...@redhat.com> wrote: >> There have been multiple reports of the following error message: >> >> [ 0.068293] Error parsing PCC subspaces from PCCT >> >> This error message is not correct. In multiple cases examined, the PCCT >> (Platform Communications Channel Table) concerned is actually properly >> constructed; the problem is that acpi_pcc_probe() which reads the PCCT >> is making the assumption that the only valid PCCT is one that contains >> subtables of one of two types: ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE or >> ACPI_PCCT_TYPE_HW_REDUCED_TYPE2. The number of subtables of these >> types are counted and as long as there is at least one of the desired >> types, the acpi_pcc_probe() succeeds. When no subtables of these types >> are found, regardless of whether or not any other subtable types are >> present, the error mentioned above is reported. >> >> In the cases reported to me personally, the PCCT contains exactly one >> subtable of type ACPI_PCCT_TYPE_GENERIC_SUBSPACE. The function >> acpi_pcc_probe() does not count it as a valid subtable, so believes >> there to be no valid subtables, and hence outputs the error message. >> >> An example of the PCCT being reported as erroneous yet perfectly fine >> is the following: >> >> Signature : "PCCT" >> Table Length : 0000006E >> Revision : 05 >> Checksum : A9 >> Oem ID : "XXXXXX" >> Oem Table ID : "XXXXX " >> Oem Revision : 00002280 >> Asl Compiler ID : "XXXX" >> Asl Compiler Revision : 00000002 >> >> Flags (decoded below) : 00000001 >> Platform : 1 >> Reserved : 0000000000000000 >> >> Subtable Type : 00 [Generic Communications Subspace] >> Length : 3E >> >> Reserved : 000000000000 >> Base Address : 00000000DCE43018 >> Address Length : 0000000000001000 >> >> Doorbell Register : [Generic Address Structure] >> Space ID : 01 [SystemIO] >> Bit Width : 08 >> Bit Offset : 00 >> Encoded Access Width : 01 [Byte Access:8] >> Address : 0000000000001842 >> >> Preserve Mask : 00000000000000FD >> Write Mask : 0000000000000002 >> Command Latency : 00001388 >> Maximum Access Rate : 00000000 >> Minimum Turnaround Time : 0000 >> >> To fix this, we count up all of the possible subtable types for the >> PCCT, and only report an error when there are none (which could mean >> either no subtables, or no valid subtables), or there are too many. >> We also change the logic so that if there is a valid subtable, we >> do try to initialize it per the PCCT subtable contents. This is a >> change in functionality; previously, the probe would have returned >> right after the error message and would not have tried to use any >> other subtable definition. >> >> Tested on my personal laptop which showed the error previously; the >> error message no longer appears and the laptop appears to operate >> normally. > I'd like to know the Prashanth's opinion here.
Looks good. Reviewed-by: Prashanth Prakash <pprak...@codeaurora.org> -- Thanks, Prashanth