class PchChicken1
Defined at line 140 of file ../../src/graphics/display/drivers/intel-display/registers-pch.h
SCHICKEN_1 (South / PCH Display Engine Chicken 1)
This register is not explicitly documented, but the Kaby Lake PRMs have clues
that reveal its name and address.
* IHD-OS-KBL-Vol 2c-1.17 Part 2 page 788 mentions the SCHICKEN_1 name, and
that bit 0 selects between a multiplier of 16 and 128 for SBLC_PWM_CTL2
backlight modulation and duty cycle.
* IHD-OS-KBL-Vol 12-1.17 "Backlight Enabling Sequence" page 197 states that
a granularity of 16 or 128 is set in bit 0 of the 0xC2000 register.
The name is a reference to "chicken bits", which are configuration bits that
create the option to reverse (chicken out of) risky design changes (fixes or
new features). The risk can be due to the complexity of the feature, or due
to having to make changes late in the design cycle. More details in
"Formal Verification - An Essential Toolkit for Modern VLSI Design".
Public Members
field_hpd_invert_bits_150
field_pch_display_clock_disable_162
field_genlock_instead_of_backlight_169
field_backlight_pwm_multiplier_182
Public Methods
template <, >
typename SelfType::ValueType hpd_invert_bits ()
All bits must be set to 1 on DG1.
Setting the bits to 1 compensates for the fact that DG1's HPD signals are
inverted (0 = connected, 1 = disconnected). This issue is not mentioned in
other PRMs.
DG1: IHD-OS-DG1-Vol 12-2.21 "Hotplug Board Inversion" page 352 and
IHD-OS-DG1-Vol 2c-2.21 Part 2 page 1259
Defined at line 150 of file ../../src/graphics/display/drivers/intel-display/registers-pch.h
template <, >
SelfType & set_hpd_invert_bits (typename SelfType::ValueType val)
All bits must be set to 1 on DG1.
Setting the bits to 1 compensates for the fact that DG1's HPD signals are
inverted (0 = connected, 1 = disconnected). This issue is not mentioned in
other PRMs.
DG1: IHD-OS-DG1-Vol 12-2.21 "Hotplug Board Inversion" page 352 and
IHD-OS-DG1-Vol 2c-2.21 Part 2 page 1259
Defined at line 150 of file ../../src/graphics/display/drivers/intel-display/registers-pch.h
template <, >
typename SelfType::ValueType pch_display_clock_disable ()
Set on S0ix entry and cleared on S0ix exit.
This bit works around an issue bug where the PCH display engine's clock
is not stopped when entering the S0ix state. This issue is mentioned in the
PRMs listed below.
Lakefield: IHD-OS-LKF-Vol 14-4.21 page 15
Tiger Lake: IHD-OS-TGL-Vol 14-12.21 page 18 and page 50
Ice Lake: IHD-OS-ICLLP-Vol 14-1.20 page 33
Not mentioned in DG1, Kaby Lake, or Skylake.
Defined at line 162 of file ../../src/graphics/display/drivers/intel-display/registers-pch.h
template <, >
SelfType & set_pch_display_clock_disable (typename SelfType::ValueType val)
Set on S0ix entry and cleared on S0ix exit.
This bit works around an issue bug where the PCH display engine's clock
is not stopped when entering the S0ix state. This issue is mentioned in the
PRMs listed below.
Lakefield: IHD-OS-LKF-Vol 14-4.21 page 15
Tiger Lake: IHD-OS-TGL-Vol 14-12.21 page 18 and page 50
Ice Lake: IHD-OS-ICLLP-Vol 14-1.20 page 33
Not mentioned in DG1, Kaby Lake, or Skylake.
Defined at line 162 of file ../../src/graphics/display/drivers/intel-display/registers-pch.h
template <, >
typename SelfType::ValueType genlock_instead_of_backlight ()
Toggles shared IO pins between multi-chip genlock and backlight 2.
Lake Field: IHD-OS-LKF-Vol 12-4.21 page 50
DG1: IHD-OS-DG1-Vol 12-2.21 page 349
Kaby Lake and Skylake don't support multi-chip genlock.
Defined at line 169 of file ../../src/graphics/display/drivers/intel-display/registers-pch.h
template <, >
SelfType & set_genlock_instead_of_backlight (typename SelfType::ValueType val)
Toggles shared IO pins between multi-chip genlock and backlight 2.
Lake Field: IHD-OS-LKF-Vol 12-4.21 page 50
DG1: IHD-OS-DG1-Vol 12-2.21 page 349
Kaby Lake and Skylake don't support multi-chip genlock.
Defined at line 169 of file ../../src/graphics/display/drivers/intel-display/registers-pch.h
template <, >
typename SelfType::ValueType backlight_pwm_multiplier ()
Multiplier for the backlight PWM frequency and duty cycle.
This multiplier applies to SBLC_PWM_CTL1 and SBLC_PWM_CTL2. It is not
present on DG1, where the PWM frequency and duty cycle are specified as
32-bit values in the SBLC_PWM_FREQ and SBLC_PWM_DUTY registers.
The multiplier can be 16 (0) or 128 (1).
Kaby Lake: IHD-OS-KBL-Vol 12-1.17 "Backlight Enabling Sequence" page 197
Skylake: IHD-OS-SKL-Vol 12-05.16 "Backlight Enabling Sequence" page 189
Does not exist on DG1.
Defined at line 182 of file ../../src/graphics/display/drivers/intel-display/registers-pch.h
template <, >
SelfType & set_backlight_pwm_multiplier (typename SelfType::ValueType val)
Multiplier for the backlight PWM frequency and duty cycle.
This multiplier applies to SBLC_PWM_CTL1 and SBLC_PWM_CTL2. It is not
present on DG1, where the PWM frequency and duty cycle are specified as
32-bit values in the SBLC_PWM_FREQ and SBLC_PWM_DUTY registers.
The multiplier can be 16 (0) or 128 (1).
Kaby Lake: IHD-OS-KBL-Vol 12-1.17 "Backlight Enabling Sequence" page 197
Skylake: IHD-OS-SKL-Vol 12-05.16 "Backlight Enabling Sequence" page 189
Does not exist on DG1.
Defined at line 182 of file ../../src/graphics/display/drivers/intel-display/registers-pch.h
hwreg::RegisterAddr<PchChicken1> Get ()
Defined at line 184 of file ../../src/graphics/display/drivers/intel-display/registers-pch.h