Re: [Intel-gfx] [PATCH] drm/i915: Restore DP-E to VBT mapping table

2020-06-06 Thread Chris Wilson
Quoting Matt Roper (2020-06-06 04:18:03) > We accidentally dropped matching for DVO_PORT_DPE from the VBT mapping > table when we refactored the function. Restore it. > > Fixes: 4628142aeccc ("drm/i915/rkl: provide port/phy mapping for vbt") > Cc: Lucas De Marchi > Cc: Matt Roper > Cc: Ville Sy

Re: [Intel-gfx] ✓ Fi.CI.IGT: success for Remaining RKL patches

2020-06-06 Thread Chris Wilson
Quoting Matt Roper (2020-06-06 04:21:37) > On Fri, Jun 05, 2020 at 11:11:23PM +0100, Chris Wilson wrote: > > Quoting Matt Roper (2020-06-04 17:39:16) > > > On Thu, Jun 04, 2020 at 08:34:04AM +, Patchwork wrote: > > > > == Series Details == > > > > > > > > Series: Remaining RKL patches > > > >

[Intel-gfx] pwm/i915: Convert pwm-crc and i915 driver's PWM code to use the atomic PWM API

2020-06-06 Thread Hans de Goede
Hi All, This patch series converts the i915 driver's cpde for controlling the panel's backlight with an external PWM controller to use the atomic PWM API. Initially the plan was for this series to consist of 2 parts: 1. convert the pwm-crc driver to support the atomic PWM API and 2. convert the i

[Intel-gfx] [PATCH 08/16] pwm: crc: Fix off-by-one error in the clock-divider calculations

2020-06-06 Thread Hans de Goede
The CRC PWM controller has a clock-divider which divides the clock with a value between 1-128. But as can seen from the PWM_DIV_CLK_xxx defines, this range maps to a register value of 0-127. So after calculating the clock-divider we must subtract 1 to get the register value, unless the requested f

[Intel-gfx] [PATCH 15/16] drm/i915: panel: Honor the VBT PWM min setting for devs with an external PWM controller

2020-06-06 Thread Hans de Goede
So far for devices using an external PWM controller (devices using pwm_setup_backlight()), we have been hardcoding the minimum allowed PWM level to 0. But several of these devices specify a non 0 minimum setting in their VBT. Change pwm_setup_backlight() to use get_backlight_min_vbt() to get the m

[Intel-gfx] [PATCH 11/16] pwm: crc: Implement apply() method to support the new atomic PWM API

2020-06-06 Thread Hans de Goede
Replace the enable, disable and config pwm_ops with an apply op, to support the new atomic PWM API. Signed-off-by: Hans de Goede --- drivers/pwm/pwm-crc.c | 107 +++--- 1 file changed, 59 insertions(+), 48 deletions(-) diff --git a/drivers/pwm/pwm-crc.c b/dri

[Intel-gfx] [PATCH 09/16] pwm: crc: Fix period changes not having any effect

2020-06-06 Thread Hans de Goede
The pwm-crc code is using 2 different enable bits: 1. bit 7 of the PWM0_CLK_DIV (PWM_OUTPUT_ENABLE) 2. bit 0 of the BACKLIGHT_EN register I strongly suspect that the BACKLIGHT_EN register at address 0x51 really controls a separate output-only GPIO which is connected to the LCD panels backlight-ena

[Intel-gfx] [PATCH 13/16] drm/i915: panel: Add get_vbt_pwm_freq() helper

2020-06-06 Thread Hans de Goede
Factor the code which checks and drm_dbg_kms-s the VBT PWM frequency out of get_backlight_max_vbt(). This is a preparation patch for honering the VBT PWM frequency for devices which use an external PWM controller (devices using pwm_setup_backlight()). Signed-off-by: Hans de Goede --- drivers/gp

[Intel-gfx] [PATCH 01/16] ACPI / LPSS: Resume Cherry Trail PWM controller in no-irq phase

2020-06-06 Thread Hans de Goede
The DSDTs on most Cherry Trail devices have an ugly clutch where the PWM controller gets poked from the _PS0 method of the graphics-card device: Local0 = PSAT /* \_SB_.PCI0.GFX0.PSAT */ If (((Local0 & 0x03) == 0x03)) { PSAT &= 0xFFFC Local1 = PSA

[Intel-gfx] [PATCH 03/16] pwm: lpss: Add range limit check for the base_unit register value

2020-06-06 Thread Hans de Goede
When the user requests a high enough period ns value, then the calculations in pwm_lpss_prepare() might result in a base_unit value of 0. But according to the data-sheet the way the PWM controller works is that each input clock-cycle the base_unit gets added to a N bit counter and that counter ove

[Intel-gfx] [PATCH 04/16] pwm: lpss: Fix off by one error in base_unit math in pwm_lpss_prepare()

2020-06-06 Thread Hans de Goede
According to the data-sheet the way the PWM controller works is that each input clock-cycle the base_unit gets added to a N bit counter and that counter overflowing determines the PWM output frequency. So assuming e.g. a 16 bit counter this means that if base_unit is set to 1, after 65535 input cl

[Intel-gfx] [PATCH 05/16] pwm: lpss: Set SW_UPDATE bit when enabling the PWM

2020-06-06 Thread Hans de Goede
On the LPSS PWM controller found on Bay Trail (BYT) and Cherry Trail (CHT) platforms, the following sequence results in an output duty-cycle of 100% independent of what the duty-cycle requested in the ctrl-reg is: 1. Clear ENABLE bit in ctrl register 2. Let the machine reach a S0i3 low power state

[Intel-gfx] [PATCH 02/16] ACPI / LPSS: Save Cherry Trail PWM ctx registers only once (at activation)

2020-06-06 Thread Hans de Goede
The DSDTs on most Cherry Trail devices have an ugly clutch where the PWM controller gets turned off from the _PS3 method of the graphics-card dev: Method (_PS3, 0, Serialized) // _PS3: Power State 3 { ... PWMB = PWMC /* \_SB_.PCI

[Intel-gfx] [PATCH 12/16] pwm: crc: Implement get_state() method

2020-06-06 Thread Hans de Goede
Implement the pwm_ops.get_state() method to complete the support for the new atomic PWM API. Signed-off-by: Hans de Goede --- drivers/pwm/pwm-crc.c | 29 + 1 file changed, 29 insertions(+) diff --git a/drivers/pwm/pwm-crc.c b/drivers/pwm/pwm-crc.c index 58c7e9ef7278.

[Intel-gfx] [PATCH 07/16] pwm: crc: Fix period / duty_cycle times being off by a factor of 256

2020-06-06 Thread Hans de Goede
While looking into adding atomic-pwm support to the pwm-crc driver I noticed something odd, there is a PWM_BASE_CLK define of 6 MHz and there is a clock-divider which divides this with a value between 1-128, and there are 256 duty-cycle steps. The pwm-crc code before this commit assumed that a clo

[Intel-gfx] [PATCH 16/16] drm/i915: panel: Use atomic PWM API for devs with an external PWM controller

2020-06-06 Thread Hans de Goede
Now that the PWM drivers which we use have been converted to the atomic PWM API, we can move the i915 panel code over to using the atomic PWM API. The removes a long standing FIXME and this removes a flicker where the backlight brightness would jump to 100% when i915 loads even if using the fastse

[Intel-gfx] [PATCH 06/16] pwm: lpss: Add debug prints, test patch for moving i915 to atomic PWM

2020-06-06 Thread Hans de Goede
Add debug prints, test patch for moving i915 to atomic PWM. Signed-off-by: Hans de Goede --- drivers/pwm/pwm-lpss.c | 16 ++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/pwm/pwm-lpss.c b/drivers/pwm/pwm-lpss.c index 2cb0e2a9c08c..c1f8e6da0cd7 100644 --- a/

[Intel-gfx] [PATCH 14/16] drm/i915: panel: Honor the VBT PWM frequency for devs with an external PWM controller

2020-06-06 Thread Hans de Goede
So far for devices using an external PWM controller (devices using pwm_setup_backlight()), we have been hardcoding the period-time passed to pwm_config() to 21333 ns. I suspect this was done because many VBTs set the PWM frequency to 200 which corresponds to a period-time of 500 ns, which grea

[Intel-gfx] [PATCH 10/16] pwm: crc: Enable/disable PWM output on enable/disable

2020-06-06 Thread Hans de Goede
The pwm-crc code is using 2 different enable bits: 1. bit 7 of the PWM0_CLK_DIV (PWM_OUTPUT_ENABLE) 2. bit 0 of the BACKLIGHT_EN register So far we've kept the PWM_OUTPUT_ENABLE bit set when disabling the PWM, this commit makes crc_pwm_disable() clear it on disable and makes crc_pwm_enable() set i

[Intel-gfx] ✗ Fi.CI.BUILD: failure for series starting with [01/16] ACPI / LPSS: Resume Cherry Trail PWM controller in no-irq phase

2020-06-06 Thread Patchwork
== Series Details == Series: series starting with [01/16] ACPI / LPSS: Resume Cherry Trail PWM controller in no-irq phase URL : https://patchwork.freedesktop.org/series/78071/ State : failure == Summary == Applying: ACPI / LPSS: Resume Cherry Trail PWM controller in no-irq phase Applying: ACP

[Intel-gfx] A panic and a hang in the i915 drm driver

2020-06-06 Thread David Howells
Hi, I'm seeing the attached oops and panic from the i915 drm driver. I've tried bisecting it, but there's a problem in that one of the merged branches causes the machine to hang without output. The oops for commit c41219fda6e04255c44d37fd2c0d898c1c46abf1 looks like: BUG: kernel NULL pointer de

Re: [Intel-gfx] A panic and a hang in the i915 drm driver

2020-06-06 Thread David Howells
Here's the dmesg from a successful boot (commit f84e1ba336a4f47ae251e4d2d8a694902571b0df). David --- [0.007455] Normal [mem 0x0001-0x00041fdf] [0.007456] Movable zone start for each node [0.007456] Early memory node ranges [0.007457] node 0: [mem 0x0