gpio_crystalcove init order issue causing missing PWM backlight control on Intel Baytrail
Description:
On Intel Baytrail based tablets, there is an issue with the init order of GPIO/PWM drivers for the Crystal Cove PMIC chip. Crystal Cove has to be initialized before i915 in order for the Crystal Cove PMIC chip to work, which controls the brightness and power of the LCD display.
The error is as follows:
i915 0000:00:02.0: cannot find GPIO chip gpio_crystalcove, deferring
i915 0000:00:02.0: [drm] *ERROR* Failed to own gpio for panel control
i915 0000:00:02.0: [drm] *ERROR* [CONNECTOR:86:DSI-1] Failed to get the PMIC PWM chip
Because of this issue, LCD brightness cannot be changed, and the display does not turn off when in sleep (backlight keeps running).
Check the following bug reports here, here and here.
Since the init order can't be easily changed at the moment, the fix is to make sure that the Crystal Cove GPIO/PWM drivers are built-in, and i915 is built as a module, so that the PMIC initializes before i915.
In Arch kernel's config, both Crystal Cove GPIO/PWM and i915 are built as modules.
Please consider changing CONFIG_GPIO_CRYSTAL_COVE
and CONFIG_PWM_CRC
from =m
to =y
in order to fix this issue.