On Thursday, May 17, 2018 9:48:39 PM CEST Prakash, Prashanth wrote: > > On 5/17/2018 4:24 AM, Rafael J. Wysocki wrote: > > On Thu, May 17, 2018 at 12:01 AM, Al Stone <ahs3@xxxxxxxxxx> 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 <pprakash@xxxxxxxxxxxxxx> Applied, thanks! -- 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