Firmware Bug: ACPI: No _BQC method, cannot determine initial brightness
33 | 12 Nov 2016ACPI: No _BQC method
This following error is printed out on boot when no _BQC method is declaired. Th is will mean that no initial brightness will be set and the display will default to maximum brightness.
[ 0.607708] [Firmware Bug]: ACPI: No _BQC method, cannot determine initial brightness
This can be resolved by decompiling the DSDT, adding the _BQC method and overriding the DSDT with the new one.
Creating a _BQC method
The _BQC method takes no arguments and returns a decimal value for the current desired brightness. The method can be added to the DSDT directly next to the _BCM methods.
Method (_BQC, 0, NotSerialized) // _BQC: Brightness Query Current
{
//Return (0x1E) // =30%
Return (0x26) // =38%
}
Sample locations of _BCM methods:
Scope (_SB)
{
Device (PCI0)
{
Device (VGA)
{
Device (LCD)
{
Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method
Scope (_SB)
{
Device (PCI0)
{
Device (GFX0)
{
Device (VGA)
{
Device (LCD)
{
Method (_BCM, 1, NotSerialized) // _BCM: Brightness Control Method
Finding a default value to use
The values that can be defined in _BQC can be found in _BCL.
Method (_BCL, 0, NotSerialized) // _BCL: Brightness Control Levels
{
Return (BCLB) /* _SB_.PCI0.VGA_.LCD_.BCLB */
}
We can see _BCL returns BCLB:
Name (BCLB, Package (0x34)
{
0x5A, // 90
0x3C, // 60
0x02, // 2
0x04, // 4
0x06, // 6
0x08, // 8
0x0A, // 10
0x0C, // 12
0x0E, // 14
0x10, // 16
0x12, // 18
0x14, // 20
0x16, // 22
0x18, // 24
0x1A, // 26
0x1C, // 28
0x1E, // 30
0x20, // 32
0x22, // 34
0x24, // 36
0x26, // 38
0x28, // 40
0x2A, // 42
0x2C, // 44
0x2E, // 46
0x30, // 48
0x32, // 50
0x34, // 52
0x36, // 54
0x38, // 56
0x3A, // 58
0x3C, // 60
0x3E, // 62
0x40, // 64
0x42, // 66
0x44, // 68
0x46, // 70
0x48, // 72
0x4A, // 74
0x4C, // 76
0x4E, // 78
0x50, // 80
0x52, // 82
0x54, // 84
0x56, // 86
0x58, // 88
0x5A, // 90
0x5C, // 92
0x5E, // 94
0x60, // 96
0x62, // 98
0x64 // 100
})
Any of the values declaired here can be used, most websites seem to have copied in "0x1E" a decimal value of 30, these are percentage values.
ACPI Documentation
B.5.4 _BQC (Brightness Query Current level)
This optional method returns the current brightness level of a built-in display output device. If present, it must be set by the platform for initial brightness.
Arguments:
None
Return Value:
An Integer containing the current brightness level (must be one of the values returned from the _BCL method)