diff --git a/src/drivers/intel/gma/acpi/configure_brightness_levels.asl b/src/drivers/intel/gma/acpi/configure_brightness_levels.asl index 0ab93d803a..8adfe472fb 100644 --- a/src/drivers/intel/gma/acpi/configure_brightness_levels.asl +++ b/src/drivers/intel/gma/acpi/configure_brightness_levels.asl @@ -148,7 +148,7 @@ { If (LEqual(^BOX3.XBCM (Arg0), Ones)) { - ^LEGA.XBCM (Arg0) + //TODO: fix Windows initial setup ^LEGA.XBCM (Arg0) } } diff --git a/src/mainboard/system76/cml-u/acpi/backlight.asl b/src/mainboard/system76/cml-u/acpi/backlight.asl new file mode 100644 index 0000000000..952c9c7772 --- /dev/null +++ b/src/mainboard/system76/cml-u/acpi/backlight.asl @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include + +Scope (GFX0) +{ + Name (BRIG, Package (22) + { + 40, /* default AC */ + 40, /* default Battery */ + 5, + 10, + 15, + 20, + 25, + 30, + 35, + 40, + 45, + 50, + 55, + 60, + 65, + 70, + 75, + 80, + 85, + 90, + 95, + 100 + }) +} diff --git a/src/mainboard/system76/cml-u/acpi/ec.asl b/src/mainboard/system76/cml-u/acpi/ec.asl index e0792d3c9e..f8002b089a 100644 --- a/src/mainboard/system76/cml-u/acpi/ec.asl +++ b/src/mainboard/system76/cml-u/acpi/ec.asl @@ -39,6 +39,10 @@ Device (EC0) ^^^^BAT0.UPBI() ^^^^BAT0.UPBS() + // Notify of changes + Notify(^^^^AC, Zero) + Notify(^^^^BAT0, Zero) + PNOT () // EC is now available diff --git a/src/mainboard/system76/cml-u/devicetree.cb b/src/mainboard/system76/cml-u/devicetree.cb index bbd802beb0..495d817991 100644 --- a/src/mainboard/system76/cml-u/devicetree.cb +++ b/src/mainboard/system76/cml-u/devicetree.cb @@ -169,6 +169,9 @@ chip soc/intel/cannonlake # Serial IRQ Continuous register "serirq_mode" = "SERIRQ_CONTINUOUS" +# Graphics (soc/intel/cannonlake/graphics.c) + register "gfx" = "GMA_STATIC_DISPLAYS(0)" + # LPC (soc/intel/cannonlake/lpc.c) # LPC configuration from lspci -s 1f.0 -xxx # Address 0x84: Decode 0x80 - 0x8F (Port 80) diff --git a/src/mainboard/system76/cml-u/dsdt.asl b/src/mainboard/system76/cml-u/dsdt.asl index 7ae8ac4394..31cba2df39 100644 --- a/src/mainboard/system76/cml-u/dsdt.asl +++ b/src/mainboard/system76/cml-u/dsdt.asl @@ -18,6 +18,7 @@ DefinitionBlock( { #include #include + #include "acpi/backlight.asl" } #include diff --git a/src/mainboard/system76/gaze15/acpi/backlight.asl b/src/mainboard/system76/gaze15/acpi/backlight.asl new file mode 100644 index 0000000000..952c9c7772 --- /dev/null +++ b/src/mainboard/system76/gaze15/acpi/backlight.asl @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include + +Scope (GFX0) +{ + Name (BRIG, Package (22) + { + 40, /* default AC */ + 40, /* default Battery */ + 5, + 10, + 15, + 20, + 25, + 30, + 35, + 40, + 45, + 50, + 55, + 60, + 65, + 70, + 75, + 80, + 85, + 90, + 95, + 100 + }) +} diff --git a/src/mainboard/system76/gaze15/devicetree.cb b/src/mainboard/system76/gaze15/devicetree.cb index 6e140006a3..568c58b988 100644 --- a/src/mainboard/system76/gaze15/devicetree.cb +++ b/src/mainboard/system76/gaze15/devicetree.cb @@ -189,6 +189,9 @@ chip soc/intel/cannonlake # Serial IRQ Continuous register "serirq_mode" = "SERIRQ_CONTINUOUS" +# Graphics (soc/intel/cannonlake/graphics.c) + register "gfx" = "GMA_STATIC_DISPLAYS(0)" + # LPC (soc/intel/cannonlake/lpc.c) # LPC configuration from lspci -s 1f.0 -xxx # Address 0x84: Decode 0x80 - 0x8F (Port 80) diff --git a/src/mainboard/system76/gaze15/dsdt.asl b/src/mainboard/system76/gaze15/dsdt.asl index 99765fd872..ba25ee2f6a 100644 --- a/src/mainboard/system76/gaze15/dsdt.asl +++ b/src/mainboard/system76/gaze15/dsdt.asl @@ -18,6 +18,7 @@ DefinitionBlock( { #include #include + #include "acpi/backlight.asl" #include "acpi/pegp.asl" #include "acpi/dgpu.asl" } diff --git a/src/mainboard/system76/lemp9/acpi/backlight.asl b/src/mainboard/system76/lemp9/acpi/backlight.asl new file mode 100644 index 0000000000..952c9c7772 --- /dev/null +++ b/src/mainboard/system76/lemp9/acpi/backlight.asl @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include + +Scope (GFX0) +{ + Name (BRIG, Package (22) + { + 40, /* default AC */ + 40, /* default Battery */ + 5, + 10, + 15, + 20, + 25, + 30, + 35, + 40, + 45, + 50, + 55, + 60, + 65, + 70, + 75, + 80, + 85, + 90, + 95, + 100 + }) +} diff --git a/src/mainboard/system76/lemp9/acpi/ec.asl b/src/mainboard/system76/lemp9/acpi/ec.asl index 5fdc37d06b..e6d7c35c6c 100644 --- a/src/mainboard/system76/lemp9/acpi/ec.asl +++ b/src/mainboard/system76/lemp9/acpi/ec.asl @@ -39,6 +39,10 @@ Device (EC0) ^^^^BAT0.UPBI() ^^^^BAT0.UPBS() + // Notify of changes + Notify(^^^^AC, Zero) + Notify(^^^^BAT0, Zero) + PNOT () // EC is now available diff --git a/src/mainboard/system76/lemp9/devicetree.cb b/src/mainboard/system76/lemp9/devicetree.cb index dc72b32164..89e8dcc3a8 100644 --- a/src/mainboard/system76/lemp9/devicetree.cb +++ b/src/mainboard/system76/lemp9/devicetree.cb @@ -169,6 +169,9 @@ chip soc/intel/cannonlake # Serial IRQ Continuous register "serirq_mode" = "SERIRQ_CONTINUOUS" +# Graphics (soc/intel/cannonlake/graphics.c) + register "gfx" = "GMA_STATIC_DISPLAYS(0)" + # LPC (soc/intel/cannonlake/lpc.c) # LPC configuration from lspci -s 1f.0 -xxx # Address 0x84: Decode 0x80 - 0x8F (Port 80) diff --git a/src/mainboard/system76/lemp9/dsdt.asl b/src/mainboard/system76/lemp9/dsdt.asl index 7ae8ac4394..31cba2df39 100644 --- a/src/mainboard/system76/lemp9/dsdt.asl +++ b/src/mainboard/system76/lemp9/dsdt.asl @@ -18,6 +18,7 @@ DefinitionBlock( { #include #include + #include "acpi/backlight.asl" } #include diff --git a/src/mainboard/system76/oryp6/acpi/backlight.asl b/src/mainboard/system76/oryp6/acpi/backlight.asl new file mode 100644 index 0000000000..952c9c7772 --- /dev/null +++ b/src/mainboard/system76/oryp6/acpi/backlight.asl @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include + +Scope (GFX0) +{ + Name (BRIG, Package (22) + { + 40, /* default AC */ + 40, /* default Battery */ + 5, + 10, + 15, + 20, + 25, + 30, + 35, + 40, + 45, + 50, + 55, + 60, + 65, + 70, + 75, + 80, + 85, + 90, + 95, + 100 + }) +} diff --git a/src/mainboard/system76/oryp6/devicetree.cb b/src/mainboard/system76/oryp6/devicetree.cb index 81373ff4d5..584343af3e 100644 --- a/src/mainboard/system76/oryp6/devicetree.cb +++ b/src/mainboard/system76/oryp6/devicetree.cb @@ -208,6 +208,9 @@ chip soc/intel/cannonlake # Serial IRQ Continuous register "serirq_mode" = "SERIRQ_CONTINUOUS" +# Graphics (soc/intel/cannonlake/graphics.c) + register "gfx" = "GMA_STATIC_DISPLAYS(0)" + # LPC (soc/intel/cannonlake/lpc.c) # LPC configuration from lspci -s 1f.0 -xxx # Address 0x84: Decode 0x80 - 0x8F (Port 80) diff --git a/src/mainboard/system76/oryp6/dsdt.asl b/src/mainboard/system76/oryp6/dsdt.asl index 99765fd872..ba25ee2f6a 100644 --- a/src/mainboard/system76/oryp6/dsdt.asl +++ b/src/mainboard/system76/oryp6/dsdt.asl @@ -18,6 +18,7 @@ DefinitionBlock( { #include #include + #include "acpi/backlight.asl" #include "acpi/pegp.asl" #include "acpi/dgpu.asl" } diff --git a/src/mainboard/system76/whl-u/acpi/backlight.asl b/src/mainboard/system76/whl-u/acpi/backlight.asl new file mode 100644 index 0000000000..952c9c7772 --- /dev/null +++ b/src/mainboard/system76/whl-u/acpi/backlight.asl @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include + +Scope (GFX0) +{ + Name (BRIG, Package (22) + { + 40, /* default AC */ + 40, /* default Battery */ + 5, + 10, + 15, + 20, + 25, + 30, + 35, + 40, + 45, + 50, + 55, + 60, + 65, + 70, + 75, + 80, + 85, + 90, + 95, + 100 + }) +} diff --git a/src/mainboard/system76/whl-u/acpi/ec.asl b/src/mainboard/system76/whl-u/acpi/ec.asl index e0792d3c9e..f8002b089a 100644 --- a/src/mainboard/system76/whl-u/acpi/ec.asl +++ b/src/mainboard/system76/whl-u/acpi/ec.asl @@ -39,6 +39,10 @@ Device (EC0) ^^^^BAT0.UPBI() ^^^^BAT0.UPBS() + // Notify of changes + Notify(^^^^AC, Zero) + Notify(^^^^BAT0, Zero) + PNOT () // EC is now available diff --git a/src/mainboard/system76/whl-u/devicetree.cb b/src/mainboard/system76/whl-u/devicetree.cb index bbd802beb0..495d817991 100644 --- a/src/mainboard/system76/whl-u/devicetree.cb +++ b/src/mainboard/system76/whl-u/devicetree.cb @@ -169,6 +169,9 @@ chip soc/intel/cannonlake # Serial IRQ Continuous register "serirq_mode" = "SERIRQ_CONTINUOUS" +# Graphics (soc/intel/cannonlake/graphics.c) + register "gfx" = "GMA_STATIC_DISPLAYS(0)" + # LPC (soc/intel/cannonlake/lpc.c) # LPC configuration from lspci -s 1f.0 -xxx # Address 0x84: Decode 0x80 - 0x8F (Port 80) diff --git a/src/mainboard/system76/whl-u/dsdt.asl b/src/mainboard/system76/whl-u/dsdt.asl index 7ae8ac4394..31cba2df39 100644 --- a/src/mainboard/system76/whl-u/dsdt.asl +++ b/src/mainboard/system76/whl-u/dsdt.asl @@ -18,6 +18,7 @@ DefinitionBlock( { #include #include + #include "acpi/backlight.asl" } #include diff --git a/src/soc/intel/cannonlake/Makefile.inc b/src/soc/intel/cannonlake/Makefile.inc index 96f1f97d0e..e6d330a128 100644 --- a/src/soc/intel/cannonlake/Makefile.inc +++ b/src/soc/intel/cannonlake/Makefile.inc @@ -38,6 +38,7 @@ ramstage-y += finalize.c ramstage-y += fsp_params.c ramstage-y += gspi.c ramstage-y += i2c.c +ramstage-y += graphics.c ramstage-y += lockdown.c ramstage-y += lpc.c ramstage-y += me.c diff --git a/src/soc/intel/cannonlake/acpi/southbridge.asl b/src/soc/intel/cannonlake/acpi/southbridge.asl index 12269d390b..9cdd3b50ba 100644 --- a/src/soc/intel/cannonlake/acpi/southbridge.asl +++ b/src/soc/intel/cannonlake/acpi/southbridge.asl @@ -17,7 +17,7 @@ #endif /* GFX 00:02.0 */ -#include "gfx.asl" +//TODO: fix inclusion when using gma ACPI #include "gfx.asl" /* LPC 0:1f.0 */ #include diff --git a/src/soc/intel/cannonlake/chip.h b/src/soc/intel/cannonlake/chip.h index a30f732ce3..f3af95e1a9 100644 --- a/src/soc/intel/cannonlake/chip.h +++ b/src/soc/intel/cannonlake/chip.h @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -434,6 +435,9 @@ struct soc_intel_cannonlake_config { * Only override CPU flex ratio if don't want to boot with non-turbo max. */ uint8_t cpu_ratio_override; + + /* i915 struct for GMA backlight control */ + struct i915_gpu_controller_info gfx; }; typedef struct soc_intel_cannonlake_config config_t; diff --git a/src/soc/intel/cannonlake/graphics.c b/src/soc/intel/cannonlake/graphics.c new file mode 100644 index 0000000000..fda499842f --- /dev/null +++ b/src/soc/intel/cannonlake/graphics.c @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include + +const struct i915_gpu_controller_info * +intel_igd_get_controller_info(const struct device *device) +{ + struct soc_intel_cannonlake_config *chip = device->chip_info; + return &chip->gfx; +}