linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] drm/i915 / LPSS / mfd: Select correct PWM controller to use based on VBT
@ 2019-11-19 15:18 Hans de Goede
  2019-11-19 15:18 ` [PATCH 1/3] ACPI / LPSS: Rename pwm_backlight pwm-lookup to pwm_soc_backlight Hans de Goede
                   ` (4 more replies)
  0 siblings, 5 replies; 24+ messages in thread
From: Hans de Goede @ 2019-11-19 15:18 UTC (permalink / raw)
  To: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Lee Jones
  Cc: Hans de Goede, Andy Shevchenko, linux-acpi, intel-gfx, dri-devel,
	linux-kernel

Hi All,

This series needs to be merged through a single tree, to keep things
bisectable. I have even considered just squashing all 3 patches into 1,
but having separate commits seems better, but that does lead to an
intermediate state where the backlight sysfs interface will be broken
(and fixed 2 commits later). See below for some background info.

The changes to drivers/acpi/acpi_lpss.c and drivers/mfd/intel_soc_pmic_core.c
are quite small and should not lead to any conflicts, so I believe that
it would be best to merge this entire series through the drm-intel tree.

Lee, may I have your Acked-by for merging the mfd change through the
drm-intel tree?

Rafael, may I have your Acked-by for merging the acpi_lpss change through the
drm-intel tree?

Regards,

Hans

p.s.

The promised background info:

We have this long standing issue where instead of looking in the i915
VBT (Video BIOS Table) to see if we should use the PWM block of the SoC
or of the PMIC to control the backlight of a DSI panel, we rely on
drivers/acpi/acpi_lpss.c and/or drivers/mfd/intel_soc_pmic_core.c
registering a pwm with the generic name of "pwm_backlight" and then the
i915 panel code does a pwm_get(dev, "pwm_backlight").

We have some heuristics in drivers/acpi/acpi_lpss.c to not register the
lookup if a Crystal Cove PMIC is presend and the mfd/intel_soc_pmic_core.c
code simply assumes that since there is a PMIC the PMIC PWM block will
be used. Basically we are winging it.

Recently I've learned about 2 different BYT devices:
Point of View MOBII TAB-P800W
Acer Switch 10 SW5-012

Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
PWM controller (and the VBT correctly indicates this), so here our old
heuristics fail.

This series renams the PWM lookups registered by the LPSS /
intel_soc_pmic_core.c code from "pwm_backlight" to "pwm_soc_backlight" resp.
"pwm_pmic_backlight" and in the LPSS case also dropping the heuristics when
to register the lookup. This combined with teaching the i915 panel to call
pwm_get for the right lookup-name depending on the VBT bits resolves this.


^ permalink raw reply	[flat|nested] 24+ messages in thread

* [PATCH 1/3] ACPI / LPSS: Rename pwm_backlight pwm-lookup to pwm_soc_backlight
  2019-11-19 15:18 [PATCH 0/3] drm/i915 / LPSS / mfd: Select correct PWM controller to use based on VBT Hans de Goede
@ 2019-11-19 15:18 ` Hans de Goede
  2019-11-29 11:59   ` Rafael J. Wysocki
  2019-11-19 15:18 ` [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight Hans de Goede
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 24+ messages in thread
From: Hans de Goede @ 2019-11-19 15:18 UTC (permalink / raw)
  To: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Lee Jones
  Cc: Hans de Goede, Andy Shevchenko, linux-acpi, intel-gfx, dri-devel,
	linux-kernel

At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
different PWM controllers for controlling the LCD's backlight brightness.
Either the one integrated into the PMIC or the one integrated into the
SoC (the 1st LPSS PWM controller).

So far in the LPSS code on BYT we have skipped registering the LPSS PWM
controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
present, assuming that in this case the PMIC PWM controller will be used.

On CHT we have been relying on only 1 of the 2 PWM controllers being
enabled in the DSDT at the same time; and always registered the lookup.

So far this has been working, but the correct way to determine which PWM
controller needs to be used is by checking a bit in the VBT table and
recently I've learned about 2 different BYT devices:
Point of View MOBII TAB-P800W
Acer Switch 10 SW5-012

Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
PWM controller (and the VBT correctly indicates this), so here our old
heuristics fail.

Since only the i915 driver has access to the VBT, this commit renames
the "pwm_backlight" lookup entries for the 1st BYT/CHT LPSS PWM controller
to "pwm_soc_backlight" so that the i915 driver can do a pwm_get() for
the right controller depending on the VBT bit, instead of the i915 driver
relying on a "pwm_backlight" lookup getting registered which magically
points to the right controller.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/acpi/acpi_lpss.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
index 751ed38f2a10..63e81d8e675b 100644
--- a/drivers/acpi/acpi_lpss.c
+++ b/drivers/acpi/acpi_lpss.c
@@ -69,10 +69,6 @@ ACPI_MODULE_NAME("acpi_lpss");
 #define LPSS_SAVE_CTX			BIT(4)
 #define LPSS_NO_D3_DELAY		BIT(5)
 
-/* Crystal Cove PMIC shares same ACPI ID between different platforms */
-#define BYT_CRC_HRV			2
-#define CHT_CRC_HRV			3
-
 struct lpss_private_data;
 
 struct lpss_device_desc {
@@ -158,7 +154,7 @@ static void lpss_deassert_reset(struct lpss_private_data *pdata)
  */
 static struct pwm_lookup byt_pwm_lookup[] = {
 	PWM_LOOKUP_WITH_MODULE("80860F09:00", 0, "0000:00:02.0",
-			       "pwm_backlight", 0, PWM_POLARITY_NORMAL,
+			       "pwm_soc_backlight", 0, PWM_POLARITY_NORMAL,
 			       "pwm-lpss-platform"),
 };
 
@@ -170,8 +166,7 @@ static void byt_pwm_setup(struct lpss_private_data *pdata)
 	if (!adev->pnp.unique_id || strcmp(adev->pnp.unique_id, "1"))
 		return;
 
-	if (!acpi_dev_present("INT33FD", NULL, BYT_CRC_HRV))
-		pwm_add_table(byt_pwm_lookup, ARRAY_SIZE(byt_pwm_lookup));
+	pwm_add_table(byt_pwm_lookup, ARRAY_SIZE(byt_pwm_lookup));
 }
 
 #define LPSS_I2C_ENABLE			0x6c
@@ -204,7 +199,7 @@ static void byt_i2c_setup(struct lpss_private_data *pdata)
 /* BSW PWM used for backlight control by the i915 driver */
 static struct pwm_lookup bsw_pwm_lookup[] = {
 	PWM_LOOKUP_WITH_MODULE("80862288:00", 0, "0000:00:02.0",
-			       "pwm_backlight", 0, PWM_POLARITY_NORMAL,
+			       "pwm_soc_backlight", 0, PWM_POLARITY_NORMAL,
 			       "pwm-lpss-platform"),
 };
 
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-11-19 15:18 [PATCH 0/3] drm/i915 / LPSS / mfd: Select correct PWM controller to use based on VBT Hans de Goede
  2019-11-19 15:18 ` [PATCH 1/3] ACPI / LPSS: Rename pwm_backlight pwm-lookup to pwm_soc_backlight Hans de Goede
@ 2019-11-19 15:18 ` Hans de Goede
  2019-12-10  8:51   ` Lee Jones
  2019-11-19 15:18 ` [PATCH 3/3] drm/i915: DSI: select correct PWM controller to use based on the VBT Hans de Goede
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 24+ messages in thread
From: Hans de Goede @ 2019-11-19 15:18 UTC (permalink / raw)
  To: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Lee Jones
  Cc: Hans de Goede, Andy Shevchenko, linux-acpi, intel-gfx, dri-devel,
	linux-kernel

At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
different PWM controllers for controlling the LCD's backlight brightness.

Either the one integrated into the PMIC or the one integrated into the
SoC (the 1st LPSS PWM controller).

So far in the LPSS code on BYT we have skipped registering the LPSS PWM
controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
present, assuming that in this case the PMIC PWM controller will be used.

On CHT we have been relying on only 1 of the 2 PWM controllers being
enabled in the DSDT at the same time; and always registered the lookup.

So far this has been working, but the correct way to determine which PWM
controller needs to be used is by checking a bit in the VBT table and
recently I've learned about 2 different BYT devices:
Point of View MOBII TAB-P800W
Acer Switch 10 SW5-012

Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
PWM controller (and the VBT correctly indicates this), so here our old
heuristics fail.

Since only the i915 driver has access to the VBT, this commit renames
the "pwm_backlight" lookup entries for the Crystal Cove PMIC's PWM
controller to "pwm_pmic_backlight" so that the i915 driver can do a
pwm_get() for the right controller depending on the VBT bit, instead of
the i915 driver relying on a "pwm_backlight" lookup getting registered
which magically points to the right controller.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/mfd/intel_soc_pmic_core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mfd/intel_soc_pmic_core.c b/drivers/mfd/intel_soc_pmic_core.c
index c9f35378d391..47188df3080d 100644
--- a/drivers/mfd/intel_soc_pmic_core.c
+++ b/drivers/mfd/intel_soc_pmic_core.c
@@ -38,7 +38,7 @@ static struct gpiod_lookup_table panel_gpio_table = {
 
 /* PWM consumed by the Intel GFX */
 static struct pwm_lookup crc_pwm_lookup[] = {
-	PWM_LOOKUP("crystal_cove_pwm", 0, "0000:00:02.0", "pwm_backlight", 0, PWM_POLARITY_NORMAL),
+	PWM_LOOKUP("crystal_cove_pwm", 0, "0000:00:02.0", "pwm_pmic_backlight", 0, PWM_POLARITY_NORMAL),
 };
 
 static int intel_soc_pmic_i2c_probe(struct i2c_client *i2c,
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [PATCH 3/3] drm/i915: DSI: select correct PWM controller to use based on the VBT
  2019-11-19 15:18 [PATCH 0/3] drm/i915 / LPSS / mfd: Select correct PWM controller to use based on VBT Hans de Goede
  2019-11-19 15:18 ` [PATCH 1/3] ACPI / LPSS: Rename pwm_backlight pwm-lookup to pwm_soc_backlight Hans de Goede
  2019-11-19 15:18 ` [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight Hans de Goede
@ 2019-11-19 15:18 ` Hans de Goede
  2019-11-19 15:47   ` Ville Syrjälä
  2019-11-19 15:43 ` [PATCH 0/3] drm/i915 / LPSS / mfd: Select correct PWM controller to use based on VBT Jani Nikula
  2019-11-19 16:32 ` Andy Shevchenko
  4 siblings, 1 reply; 24+ messages in thread
From: Hans de Goede @ 2019-11-19 15:18 UTC (permalink / raw)
  To: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Lee Jones
  Cc: Hans de Goede, Andy Shevchenko, linux-acpi, intel-gfx, dri-devel,
	linux-kernel

At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
different PWM controllers for controlling the LCD's backlight brightness.
Either the one integrated into the PMIC or the one integrated into the
SoC (the 1st LPSS PWM controller).

So far in the LPSS code on BYT we have skipped registering the LPSS PWM
controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
present, assuming that in this case the PMIC PWM controller will be used.

On CHT we have been relying on only 1 of the 2 PWM controllers being
enabled in the DSDT at the same time; and always registered the lookup.

So far this has been working, but the correct way to determine which PWM
controller needs to be used is by checking a bit in the VBT table and
recently I've learned about 2 different BYT devices:
Point of View MOBII TAB-P800W
Acer Switch 10 SW5-012

Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
PWM controller (and the VBT correctly indicates this), so here our old
heuristics fail.

This commit fixes using the wrong PWM controller on these devices by
calling pwm_get() for the right PWM controller based on the
VBT dsi.config.pwm_blc bit.

Note this is part of a series which contains 2 other patches which renames
the PWM lookup for the 1st SoC/LPSS PWM from "pwm_backlight" to
"pwm_pmic_backlight" and the PWM lookup for the Crystal Cove PMIC PWM
from "pwm_backlight" to "pwm_pmic_backlight".

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/gpu/drm/i915/display/intel_panel.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
index bc14e9c0285a..ddcf311d1114 100644
--- a/drivers/gpu/drm/i915/display/intel_panel.c
+++ b/drivers/gpu/drm/i915/display/intel_panel.c
@@ -1840,13 +1840,22 @@ static int pwm_setup_backlight(struct intel_connector *connector,
 			       enum pipe pipe)
 {
 	struct drm_device *dev = connector->base.dev;
+	struct drm_i915_private *dev_priv = to_i915(dev);
 	struct intel_panel *panel = &connector->panel;
+	const char *desc;
 	int retval;
 
-	/* Get the PWM chip for backlight control */
-	panel->backlight.pwm = pwm_get(dev->dev, "pwm_backlight");
+	/* Get the right PWM chip for DSI backlight according to VBT */
+	if (dev_priv->vbt.dsi.config->pwm_blc == PPS_BLC_PMIC) {
+		panel->backlight.pwm = pwm_get(dev->dev, "pwm_pmic_backlight");
+		desc = "PMIC";
+	} else {
+		panel->backlight.pwm = pwm_get(dev->dev, "pwm_soc_backlight");
+		desc = "SoC";
+	}
+
 	if (IS_ERR(panel->backlight.pwm)) {
-		DRM_ERROR("Failed to own the pwm chip\n");
+		DRM_ERROR("Failed to get the %s PWM chip\n", desc);
 		panel->backlight.pwm = NULL;
 		return -ENODEV;
 	}
@@ -1873,6 +1882,7 @@ static int pwm_setup_backlight(struct intel_connector *connector,
 				 CRC_PMIC_PWM_PERIOD_NS);
 	panel->backlight.enabled = panel->backlight.level != 0;
 
+	DRM_INFO("Using %s PWM for LCD backlight control\n", desc);
 	return 0;
 }
 
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [PATCH 0/3] drm/i915 / LPSS / mfd: Select correct PWM controller to use based on VBT
  2019-11-19 15:18 [PATCH 0/3] drm/i915 / LPSS / mfd: Select correct PWM controller to use based on VBT Hans de Goede
                   ` (2 preceding siblings ...)
  2019-11-19 15:18 ` [PATCH 3/3] drm/i915: DSI: select correct PWM controller to use based on the VBT Hans de Goede
@ 2019-11-19 15:43 ` Jani Nikula
  2019-11-19 16:32 ` Andy Shevchenko
  4 siblings, 0 replies; 24+ messages in thread
From: Jani Nikula @ 2019-11-19 15:43 UTC (permalink / raw)
  To: Hans de Goede, Maarten Lankhorst, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Lee Jones
  Cc: Hans de Goede, Andy Shevchenko, linux-acpi, intel-gfx, dri-devel,
	linux-kernel

On Tue, 19 Nov 2019, Hans de Goede <hdegoede@redhat.com> wrote:
> Hi All,
>
> This series needs to be merged through a single tree, to keep things
> bisectable. I have even considered just squashing all 3 patches into 1,
> but having separate commits seems better, but that does lead to an
> intermediate state where the backlight sysfs interface will be broken
> (and fixed 2 commits later). See below for some background info.
>
> The changes to drivers/acpi/acpi_lpss.c and drivers/mfd/intel_soc_pmic_core.c
> are quite small and should not lead to any conflicts, so I believe that
> it would be best to merge this entire series through the drm-intel tree.
>
> Lee, may I have your Acked-by for merging the mfd change through the
> drm-intel tree?
>
> Rafael, may I have your Acked-by for merging the acpi_lpss change through the
> drm-intel tree?
>
> Regards,
>
> Hans
>
> p.s.
>
> The promised background info:
>
> We have this long standing issue where instead of looking in the i915
> VBT (Video BIOS Table) to see if we should use the PWM block of the SoC
> or of the PMIC to control the backlight of a DSI panel, we rely on
> drivers/acpi/acpi_lpss.c and/or drivers/mfd/intel_soc_pmic_core.c
> registering a pwm with the generic name of "pwm_backlight" and then the
> i915 panel code does a pwm_get(dev, "pwm_backlight").
>
> We have some heuristics in drivers/acpi/acpi_lpss.c to not register the
> lookup if a Crystal Cove PMIC is presend and the mfd/intel_soc_pmic_core.c
> code simply assumes that since there is a PMIC the PMIC PWM block will
> be used. Basically we are winging it.
>
> Recently I've learned about 2 different BYT devices:
> Point of View MOBII TAB-P800W
> Acer Switch 10 SW5-012
>
> Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
> PWM controller (and the VBT correctly indicates this), so here our old
> heuristics fail.
>
> This series renams the PWM lookups registered by the LPSS /
> intel_soc_pmic_core.c code from "pwm_backlight" to "pwm_soc_backlight" resp.
> "pwm_pmic_backlight" and in the LPSS case also dropping the heuristics when
> to register the lookup. This combined with teaching the i915 panel to call
> pwm_get for the right lookup-name depending on the VBT bits resolves this.

Hans, thanks for your continued efforts in digging into the bottom of
this!

I'm sure there are a number of related bugs still open at fdo bugzilla.

It all makes sense,

Acked-by: Jani Nikula <jani.nikula@intel.com>

for merging through whichever tree.


Thanks,
Jani.


-- 
Jani Nikula, Intel Open Source Graphics Center

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 3/3] drm/i915: DSI: select correct PWM controller to use based on the VBT
  2019-11-19 15:18 ` [PATCH 3/3] drm/i915: DSI: select correct PWM controller to use based on the VBT Hans de Goede
@ 2019-11-19 15:47   ` Ville Syrjälä
  2019-11-19 16:48     ` Hans de Goede
  0 siblings, 1 reply; 24+ messages in thread
From: Ville Syrjälä @ 2019-11-19 15:47 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Rafael J . Wysocki, Len Brown, Lee Jones, Andy Shevchenko,
	linux-acpi, intel-gfx, dri-devel, linux-kernel

On Tue, Nov 19, 2019 at 04:18:18PM +0100, Hans de Goede wrote:
> At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
> different PWM controllers for controlling the LCD's backlight brightness.
> Either the one integrated into the PMIC or the one integrated into the
> SoC (the 1st LPSS PWM controller).
> 
> So far in the LPSS code on BYT we have skipped registering the LPSS PWM
> controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
> present, assuming that in this case the PMIC PWM controller will be used.
> 
> On CHT we have been relying on only 1 of the 2 PWM controllers being
> enabled in the DSDT at the same time; and always registered the lookup.
> 
> So far this has been working, but the correct way to determine which PWM
> controller needs to be used is by checking a bit in the VBT table and
> recently I've learned about 2 different BYT devices:
> Point of View MOBII TAB-P800W
> Acer Switch 10 SW5-012
> 
> Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
> PWM controller (and the VBT correctly indicates this), so here our old
> heuristics fail.
> 
> This commit fixes using the wrong PWM controller on these devices by
> calling pwm_get() for the right PWM controller based on the
> VBT dsi.config.pwm_blc bit.
> 
> Note this is part of a series which contains 2 other patches which renames
> the PWM lookup for the 1st SoC/LPSS PWM from "pwm_backlight" to
> "pwm_pmic_backlight" and the PWM lookup for the Crystal Cove PMIC PWM
> from "pwm_backlight" to "pwm_pmic_backlight".
> 
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/gpu/drm/i915/display/intel_panel.c | 16 +++++++++++++---
>  1 file changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
> index bc14e9c0285a..ddcf311d1114 100644
> --- a/drivers/gpu/drm/i915/display/intel_panel.c
> +++ b/drivers/gpu/drm/i915/display/intel_panel.c
> @@ -1840,13 +1840,22 @@ static int pwm_setup_backlight(struct intel_connector *connector,
>  			       enum pipe pipe)
>  {
>  	struct drm_device *dev = connector->base.dev;
> +	struct drm_i915_private *dev_priv = to_i915(dev);
>  	struct intel_panel *panel = &connector->panel;
> +	const char *desc;
>  	int retval;
>  
> -	/* Get the PWM chip for backlight control */
> -	panel->backlight.pwm = pwm_get(dev->dev, "pwm_backlight");
> +	/* Get the right PWM chip for DSI backlight according to VBT */
> +	if (dev_priv->vbt.dsi.config->pwm_blc == PPS_BLC_PMIC) {
> +		panel->backlight.pwm = pwm_get(dev->dev, "pwm_pmic_backlight");
> +		desc = "PMIC";
> +	} else {
> +		panel->backlight.pwm = pwm_get(dev->dev, "pwm_soc_backlight");
> +		desc = "SoC";
> +	}

Might we want the same thing for the panel enable gpio?

> +
>  	if (IS_ERR(panel->backlight.pwm)) {
> -		DRM_ERROR("Failed to own the pwm chip\n");
> +		DRM_ERROR("Failed to get the %s PWM chip\n", desc);
>  		panel->backlight.pwm = NULL;
>  		return -ENODEV;
>  	}
> @@ -1873,6 +1882,7 @@ static int pwm_setup_backlight(struct intel_connector *connector,
>  				 CRC_PMIC_PWM_PERIOD_NS);
>  	panel->backlight.enabled = panel->backlight.level != 0;
>  
> +	DRM_INFO("Using %s PWM for LCD backlight control\n", desc);
>  	return 0;
>  }
>  
> -- 
> 2.23.0

-- 
Ville Syrjälä
Intel

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 0/3] drm/i915 / LPSS / mfd: Select correct PWM controller to use based on VBT
  2019-11-19 15:18 [PATCH 0/3] drm/i915 / LPSS / mfd: Select correct PWM controller to use based on VBT Hans de Goede
                   ` (3 preceding siblings ...)
  2019-11-19 15:43 ` [PATCH 0/3] drm/i915 / LPSS / mfd: Select correct PWM controller to use based on VBT Jani Nikula
@ 2019-11-19 16:32 ` Andy Shevchenko
  4 siblings, 0 replies; 24+ messages in thread
From: Andy Shevchenko @ 2019-11-19 16:32 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Lee Jones, linux-acpi, intel-gfx,
	dri-devel, linux-kernel

On Tue, Nov 19, 2019 at 04:18:15PM +0100, Hans de Goede wrote:
> Hi All,
> 
> This series needs to be merged through a single tree, to keep things
> bisectable. I have even considered just squashing all 3 patches into 1,
> but having separate commits seems better, but that does lead to an
> intermediate state where the backlight sysfs interface will be broken
> (and fixed 2 commits later). See below for some background info.
> 
> The changes to drivers/acpi/acpi_lpss.c and drivers/mfd/intel_soc_pmic_core.c
> are quite small and should not lead to any conflicts, so I believe that
> it would be best to merge this entire series through the drm-intel tree.
> 
> Lee, may I have your Acked-by for merging the mfd change through the
> drm-intel tree?
> 
> Rafael, may I have your Acked-by for merging the acpi_lpss change through the
> drm-intel tree?
> 

Entire series (or a single patch) makes sense to me.
Thanks for fixing this old hardware!

FWIW,
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

> Regards,
> 
> Hans
> 
> p.s.
> 
> The promised background info:
> 
> We have this long standing issue where instead of looking in the i915
> VBT (Video BIOS Table) to see if we should use the PWM block of the SoC
> or of the PMIC to control the backlight of a DSI panel, we rely on
> drivers/acpi/acpi_lpss.c and/or drivers/mfd/intel_soc_pmic_core.c
> registering a pwm with the generic name of "pwm_backlight" and then the
> i915 panel code does a pwm_get(dev, "pwm_backlight").
> 
> We have some heuristics in drivers/acpi/acpi_lpss.c to not register the
> lookup if a Crystal Cove PMIC is presend and the mfd/intel_soc_pmic_core.c
> code simply assumes that since there is a PMIC the PMIC PWM block will
> be used. Basically we are winging it.
> 
> Recently I've learned about 2 different BYT devices:
> Point of View MOBII TAB-P800W
> Acer Switch 10 SW5-012
> 
> Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
> PWM controller (and the VBT correctly indicates this), so here our old
> heuristics fail.
> 
> This series renams the PWM lookups registered by the LPSS /
> intel_soc_pmic_core.c code from "pwm_backlight" to "pwm_soc_backlight" resp.
> "pwm_pmic_backlight" and in the LPSS case also dropping the heuristics when
> to register the lookup. This combined with teaching the i915 panel to call
> pwm_get for the right lookup-name depending on the VBT bits resolves this.
> 

-- 
With Best Regards,
Andy Shevchenko



^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 3/3] drm/i915: DSI: select correct PWM controller to use based on the VBT
  2019-11-19 15:47   ` Ville Syrjälä
@ 2019-11-19 16:48     ` Hans de Goede
  0 siblings, 0 replies; 24+ messages in thread
From: Hans de Goede @ 2019-11-19 16:48 UTC (permalink / raw)
  To: Ville Syrjälä
  Cc: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Rafael J . Wysocki, Len Brown, Lee Jones, Andy Shevchenko,
	linux-acpi, intel-gfx, dri-devel, linux-kernel

Hi,

On 19-11-2019 16:47, Ville Syrjälä wrote:
> On Tue, Nov 19, 2019 at 04:18:18PM +0100, Hans de Goede wrote:
>> At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
>> different PWM controllers for controlling the LCD's backlight brightness.
>> Either the one integrated into the PMIC or the one integrated into the
>> SoC (the 1st LPSS PWM controller).
>>
>> So far in the LPSS code on BYT we have skipped registering the LPSS PWM
>> controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
>> present, assuming that in this case the PMIC PWM controller will be used.
>>
>> On CHT we have been relying on only 1 of the 2 PWM controllers being
>> enabled in the DSDT at the same time; and always registered the lookup.
>>
>> So far this has been working, but the correct way to determine which PWM
>> controller needs to be used is by checking a bit in the VBT table and
>> recently I've learned about 2 different BYT devices:
>> Point of View MOBII TAB-P800W
>> Acer Switch 10 SW5-012
>>
>> Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
>> PWM controller (and the VBT correctly indicates this), so here our old
>> heuristics fail.
>>
>> This commit fixes using the wrong PWM controller on these devices by
>> calling pwm_get() for the right PWM controller based on the
>> VBT dsi.config.pwm_blc bit.
>>
>> Note this is part of a series which contains 2 other patches which renames
>> the PWM lookup for the 1st SoC/LPSS PWM from "pwm_backlight" to
>> "pwm_pmic_backlight" and the PWM lookup for the Crystal Cove PMIC PWM
>> from "pwm_backlight" to "pwm_pmic_backlight".
>>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>>   drivers/gpu/drm/i915/display/intel_panel.c | 16 +++++++++++++---
>>   1 file changed, 13 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
>> index bc14e9c0285a..ddcf311d1114 100644
>> --- a/drivers/gpu/drm/i915/display/intel_panel.c
>> +++ b/drivers/gpu/drm/i915/display/intel_panel.c
>> @@ -1840,13 +1840,22 @@ static int pwm_setup_backlight(struct intel_connector *connector,
>>   			       enum pipe pipe)
>>   {
>>   	struct drm_device *dev = connector->base.dev;
>> +	struct drm_i915_private *dev_priv = to_i915(dev);
>>   	struct intel_panel *panel = &connector->panel;
>> +	const char *desc;
>>   	int retval;
>>   
>> -	/* Get the PWM chip for backlight control */
>> -	panel->backlight.pwm = pwm_get(dev->dev, "pwm_backlight");
>> +	/* Get the right PWM chip for DSI backlight according to VBT */
>> +	if (dev_priv->vbt.dsi.config->pwm_blc == PPS_BLC_PMIC) {
>> +		panel->backlight.pwm = pwm_get(dev->dev, "pwm_pmic_backlight");
>> +		desc = "PMIC";
>> +	} else {
>> +		panel->backlight.pwm = pwm_get(dev->dev, "pwm_soc_backlight");
>> +		desc = "SoC";
>> +	}
> 
> Might we want the same thing for the panel enable gpio?


TL;DR: yes but that is for a separate series, which currently only exists in my head.

Longer story:

It looks like on BYT we need to control both VLV_GPIO_NC_10_PANEL1_BKLTEN and
VLV_GPIO_NC_11_PANEL1_BKLTCTL from vlv_dsi.c when the LPSS is used for PWM.
With BKLTCTL working as a panel_enable (needs to be driven high early on
when initializing the panel) and BKLTEN is just a backlight enable/disable
GPIO.

Without this DSI panels will not light-up on BYT when a HDMI monitor is
connected and the GOP chooses to initialize the HDMI rather then the panel,
since then these 2 pins stay low.

On CHT the MIPI power on/off sequences seem to take care of this themselves.

I still want to run some more tests. Currently if I export the 2 gpios in
question in sysfs (since their not claimed yet) and read them they always
read 0. I have the feeling this is caused by the input-buffer not being
enabled on these GPIOs, and that they really are high. So I want to do
a little hack to enable the input buffer and then see if indeed they
are high when the GOP has initialized the panel.

Testing has already shown that driving them high manualy before loading
i915 when the GOP did not init the panel fixes the panel not lighting up.
So I'm pretty sure that this is the case, but I want to verify this before
writing a series for that.

Regards,

Hans



> 
>> +
>>   	if (IS_ERR(panel->backlight.pwm)) {
>> -		DRM_ERROR("Failed to own the pwm chip\n");
>> +		DRM_ERROR("Failed to get the %s PWM chip\n", desc);
>>   		panel->backlight.pwm = NULL;
>>   		return -ENODEV;
>>   	}
>> @@ -1873,6 +1882,7 @@ static int pwm_setup_backlight(struct intel_connector *connector,
>>   				 CRC_PMIC_PWM_PERIOD_NS);
>>   	panel->backlight.enabled = panel->backlight.level != 0;
>>   
>> +	DRM_INFO("Using %s PWM for LCD backlight control\n", desc);
>>   	return 0;
>>   }
>>   
>> -- 
>> 2.23.0
> 


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 1/3] ACPI / LPSS: Rename pwm_backlight pwm-lookup to pwm_soc_backlight
  2019-11-19 15:18 ` [PATCH 1/3] ACPI / LPSS: Rename pwm_backlight pwm-lookup to pwm_soc_backlight Hans de Goede
@ 2019-11-29 11:59   ` Rafael J. Wysocki
  0 siblings, 0 replies; 24+ messages in thread
From: Rafael J. Wysocki @ 2019-11-29 11:59 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Len Brown, Lee Jones, Andy Shevchenko, linux-acpi, intel-gfx,
	dri-devel, linux-kernel

On Tuesday, November 19, 2019 4:18:16 PM CET Hans de Goede wrote:
> At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
> different PWM controllers for controlling the LCD's backlight brightness.
> Either the one integrated into the PMIC or the one integrated into the
> SoC (the 1st LPSS PWM controller).
> 
> So far in the LPSS code on BYT we have skipped registering the LPSS PWM
> controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
> present, assuming that in this case the PMIC PWM controller will be used.
> 
> On CHT we have been relying on only 1 of the 2 PWM controllers being
> enabled in the DSDT at the same time; and always registered the lookup.
> 
> So far this has been working, but the correct way to determine which PWM
> controller needs to be used is by checking a bit in the VBT table and
> recently I've learned about 2 different BYT devices:
> Point of View MOBII TAB-P800W
> Acer Switch 10 SW5-012
> 
> Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
> PWM controller (and the VBT correctly indicates this), so here our old
> heuristics fail.
> 
> Since only the i915 driver has access to the VBT, this commit renames
> the "pwm_backlight" lookup entries for the 1st BYT/CHT LPSS PWM controller
> to "pwm_soc_backlight" so that the i915 driver can do a pwm_get() for
> the right controller depending on the VBT bit, instead of the i915 driver
> relying on a "pwm_backlight" lookup getting registered which magically
> points to the right controller.
> 
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>

Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Or please let me know if you want me to take the whole series.

Thanks!

> ---
>  drivers/acpi/acpi_lpss.c | 11 +++--------
>  1 file changed, 3 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
> index 751ed38f2a10..63e81d8e675b 100644
> --- a/drivers/acpi/acpi_lpss.c
> +++ b/drivers/acpi/acpi_lpss.c
> @@ -69,10 +69,6 @@ ACPI_MODULE_NAME("acpi_lpss");
>  #define LPSS_SAVE_CTX			BIT(4)
>  #define LPSS_NO_D3_DELAY		BIT(5)
>  
> -/* Crystal Cove PMIC shares same ACPI ID between different platforms */
> -#define BYT_CRC_HRV			2
> -#define CHT_CRC_HRV			3
> -
>  struct lpss_private_data;
>  
>  struct lpss_device_desc {
> @@ -158,7 +154,7 @@ static void lpss_deassert_reset(struct lpss_private_data *pdata)
>   */
>  static struct pwm_lookup byt_pwm_lookup[] = {
>  	PWM_LOOKUP_WITH_MODULE("80860F09:00", 0, "0000:00:02.0",
> -			       "pwm_backlight", 0, PWM_POLARITY_NORMAL,
> +			       "pwm_soc_backlight", 0, PWM_POLARITY_NORMAL,
>  			       "pwm-lpss-platform"),
>  };
>  
> @@ -170,8 +166,7 @@ static void byt_pwm_setup(struct lpss_private_data *pdata)
>  	if (!adev->pnp.unique_id || strcmp(adev->pnp.unique_id, "1"))
>  		return;
>  
> -	if (!acpi_dev_present("INT33FD", NULL, BYT_CRC_HRV))
> -		pwm_add_table(byt_pwm_lookup, ARRAY_SIZE(byt_pwm_lookup));
> +	pwm_add_table(byt_pwm_lookup, ARRAY_SIZE(byt_pwm_lookup));
>  }
>  
>  #define LPSS_I2C_ENABLE			0x6c
> @@ -204,7 +199,7 @@ static void byt_i2c_setup(struct lpss_private_data *pdata)
>  /* BSW PWM used for backlight control by the i915 driver */
>  static struct pwm_lookup bsw_pwm_lookup[] = {
>  	PWM_LOOKUP_WITH_MODULE("80862288:00", 0, "0000:00:02.0",
> -			       "pwm_backlight", 0, PWM_POLARITY_NORMAL,
> +			       "pwm_soc_backlight", 0, PWM_POLARITY_NORMAL,
>  			       "pwm-lpss-platform"),
>  };
>  
> 





^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-11-19 15:18 ` [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight Hans de Goede
@ 2019-12-10  8:51   ` Lee Jones
  2019-12-11 17:29     ` Hans de Goede
  0 siblings, 1 reply; 24+ messages in thread
From: Lee Jones @ 2019-12-10  8:51 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Andy Shevchenko, linux-acpi,
	intel-gfx, dri-devel, linux-kernel

On Tue, 19 Nov 2019, Hans de Goede wrote:

> At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
> different PWM controllers for controlling the LCD's backlight brightness.
> 
> Either the one integrated into the PMIC or the one integrated into the
> SoC (the 1st LPSS PWM controller).
> 
> So far in the LPSS code on BYT we have skipped registering the LPSS PWM
> controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
> present, assuming that in this case the PMIC PWM controller will be used.
> 
> On CHT we have been relying on only 1 of the 2 PWM controllers being
> enabled in the DSDT at the same time; and always registered the lookup.
> 
> So far this has been working, but the correct way to determine which PWM
> controller needs to be used is by checking a bit in the VBT table and
> recently I've learned about 2 different BYT devices:
> Point of View MOBII TAB-P800W
> Acer Switch 10 SW5-012
> 
> Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
> PWM controller (and the VBT correctly indicates this), so here our old
> heuristics fail.
> 
> Since only the i915 driver has access to the VBT, this commit renames
> the "pwm_backlight" lookup entries for the Crystal Cove PMIC's PWM
> controller to "pwm_pmic_backlight" so that the i915 driver can do a
> pwm_get() for the right controller depending on the VBT bit, instead of
> the i915 driver relying on a "pwm_backlight" lookup getting registered
> which magically points to the right controller.
> 
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/mfd/intel_soc_pmic_core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

For my own reference:
  Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-12-10  8:51   ` Lee Jones
@ 2019-12-11 17:29     ` Hans de Goede
  2019-12-12  8:45       ` Lee Jones
  0 siblings, 1 reply; 24+ messages in thread
From: Hans de Goede @ 2019-12-11 17:29 UTC (permalink / raw)
  To: Lee Jones
  Cc: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Andy Shevchenko, linux-acpi,
	intel-gfx, dri-devel, linux-kernel

Hi Lee,

On 10-12-2019 09:51, Lee Jones wrote:
> On Tue, 19 Nov 2019, Hans de Goede wrote:
> 
>> At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
>> different PWM controllers for controlling the LCD's backlight brightness.
>>
>> Either the one integrated into the PMIC or the one integrated into the
>> SoC (the 1st LPSS PWM controller).
>>
>> So far in the LPSS code on BYT we have skipped registering the LPSS PWM
>> controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
>> present, assuming that in this case the PMIC PWM controller will be used.
>>
>> On CHT we have been relying on only 1 of the 2 PWM controllers being
>> enabled in the DSDT at the same time; and always registered the lookup.
>>
>> So far this has been working, but the correct way to determine which PWM
>> controller needs to be used is by checking a bit in the VBT table and
>> recently I've learned about 2 different BYT devices:
>> Point of View MOBII TAB-P800W
>> Acer Switch 10 SW5-012
>>
>> Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
>> PWM controller (and the VBT correctly indicates this), so here our old
>> heuristics fail.
>>
>> Since only the i915 driver has access to the VBT, this commit renames
>> the "pwm_backlight" lookup entries for the Crystal Cove PMIC's PWM
>> controller to "pwm_pmic_backlight" so that the i915 driver can do a
>> pwm_get() for the right controller depending on the VBT bit, instead of
>> the i915 driver relying on a "pwm_backlight" lookup getting registered
>> which magically points to the right controller.
>>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>>   drivers/mfd/intel_soc_pmic_core.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> For my own reference:
>    Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>

As mentioned in the cover-letter, to avoid breaking bi-sectability
as well as to avoid breaking the intel-gfx CI we need to merge this series
in one go through one tree. Specifically through the drm-intel tree.
Is that ok with you ?

If this is ok with you, then you do not have to do anything, I will just push
the entire series to drm-intel. drivers/mfd/intel_soc_pmic_core.c
does not see much changes so I do not expect this to lead to any conflicts.

Regards,

Hans


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-12-11 17:29     ` Hans de Goede
@ 2019-12-12  8:45       ` Lee Jones
  2019-12-12 14:34         ` Hans de Goede
  0 siblings, 1 reply; 24+ messages in thread
From: Lee Jones @ 2019-12-12  8:45 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Andy Shevchenko, linux-acpi,
	intel-gfx, dri-devel, linux-kernel

On Wed, 11 Dec 2019, Hans de Goede wrote:

> Hi Lee,
> 
> On 10-12-2019 09:51, Lee Jones wrote:
> > On Tue, 19 Nov 2019, Hans de Goede wrote:
> > 
> > > At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
> > > different PWM controllers for controlling the LCD's backlight brightness.
> > > 
> > > Either the one integrated into the PMIC or the one integrated into the
> > > SoC (the 1st LPSS PWM controller).
> > > 
> > > So far in the LPSS code on BYT we have skipped registering the LPSS PWM
> > > controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
> > > present, assuming that in this case the PMIC PWM controller will be used.
> > > 
> > > On CHT we have been relying on only 1 of the 2 PWM controllers being
> > > enabled in the DSDT at the same time; and always registered the lookup.
> > > 
> > > So far this has been working, but the correct way to determine which PWM
> > > controller needs to be used is by checking a bit in the VBT table and
> > > recently I've learned about 2 different BYT devices:
> > > Point of View MOBII TAB-P800W
> > > Acer Switch 10 SW5-012
> > > 
> > > Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
> > > PWM controller (and the VBT correctly indicates this), so here our old
> > > heuristics fail.
> > > 
> > > Since only the i915 driver has access to the VBT, this commit renames
> > > the "pwm_backlight" lookup entries for the Crystal Cove PMIC's PWM
> > > controller to "pwm_pmic_backlight" so that the i915 driver can do a
> > > pwm_get() for the right controller depending on the VBT bit, instead of
> > > the i915 driver relying on a "pwm_backlight" lookup getting registered
> > > which magically points to the right controller.
> > > 
> > > Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> > > ---
> > >   drivers/mfd/intel_soc_pmic_core.c | 2 +-
> > >   1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > For my own reference:
> >    Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> 
> As mentioned in the cover-letter, to avoid breaking bi-sectability
> as well as to avoid breaking the intel-gfx CI we need to merge this series
> in one go through one tree. Specifically through the drm-intel tree.
> Is that ok with you ?
> 
> If this is ok with you, then you do not have to do anything, I will just push
> the entire series to drm-intel. drivers/mfd/intel_soc_pmic_core.c
> does not see much changes so I do not expect this to lead to any conflicts.

It's fine, so long as a minimal immutable pull-request is provided.
Whether it's pulled or not will depend on a number of factors, but it
needs to be an option.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-12-12  8:45       ` Lee Jones
@ 2019-12-12 14:34         ` Hans de Goede
  2019-12-12 15:52           ` Lee Jones
  0 siblings, 1 reply; 24+ messages in thread
From: Hans de Goede @ 2019-12-12 14:34 UTC (permalink / raw)
  To: Lee Jones
  Cc: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Andy Shevchenko, linux-acpi,
	intel-gfx, dri-devel, linux-kernel

Hi,

On 12-12-2019 09:45, Lee Jones wrote:
> On Wed, 11 Dec 2019, Hans de Goede wrote:
> 
>> Hi Lee,
>>
>> On 10-12-2019 09:51, Lee Jones wrote:
>>> On Tue, 19 Nov 2019, Hans de Goede wrote:
>>>
>>>> At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
>>>> different PWM controllers for controlling the LCD's backlight brightness.
>>>>
>>>> Either the one integrated into the PMIC or the one integrated into the
>>>> SoC (the 1st LPSS PWM controller).
>>>>
>>>> So far in the LPSS code on BYT we have skipped registering the LPSS PWM
>>>> controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
>>>> present, assuming that in this case the PMIC PWM controller will be used.
>>>>
>>>> On CHT we have been relying on only 1 of the 2 PWM controllers being
>>>> enabled in the DSDT at the same time; and always registered the lookup.
>>>>
>>>> So far this has been working, but the correct way to determine which PWM
>>>> controller needs to be used is by checking a bit in the VBT table and
>>>> recently I've learned about 2 different BYT devices:
>>>> Point of View MOBII TAB-P800W
>>>> Acer Switch 10 SW5-012
>>>>
>>>> Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
>>>> PWM controller (and the VBT correctly indicates this), so here our old
>>>> heuristics fail.
>>>>
>>>> Since only the i915 driver has access to the VBT, this commit renames
>>>> the "pwm_backlight" lookup entries for the Crystal Cove PMIC's PWM
>>>> controller to "pwm_pmic_backlight" so that the i915 driver can do a
>>>> pwm_get() for the right controller depending on the VBT bit, instead of
>>>> the i915 driver relying on a "pwm_backlight" lookup getting registered
>>>> which magically points to the right controller.
>>>>
>>>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>>>> ---
>>>>    drivers/mfd/intel_soc_pmic_core.c | 2 +-
>>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> For my own reference:
>>>     Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
>>
>> As mentioned in the cover-letter, to avoid breaking bi-sectability
>> as well as to avoid breaking the intel-gfx CI we need to merge this series
>> in one go through one tree. Specifically through the drm-intel tree.
>> Is that ok with you ?
>>
>> If this is ok with you, then you do not have to do anything, I will just push
>> the entire series to drm-intel. drivers/mfd/intel_soc_pmic_core.c
>> does not see much changes so I do not expect this to lead to any conflicts.
> 
> It's fine, so long as a minimal immutable pull-request is provided.
> Whether it's pulled or not will depend on a number of factors, but it
> needs to be an option.

The way the drm subsys works that is not really a readily available
option. The struct definition which this patch changes a single line in
has not been touched since 2015-06-26 so I really doubt we will get a
conflict from this.

Regards,

Hans


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-12-12 14:34         ` Hans de Goede
@ 2019-12-12 15:52           ` Lee Jones
  2019-12-12 19:02             ` Hans de Goede
  0 siblings, 1 reply; 24+ messages in thread
From: Lee Jones @ 2019-12-12 15:52 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Andy Shevchenko, linux-acpi,
	intel-gfx, dri-devel, linux-kernel

On Thu, 12 Dec 2019, Hans de Goede wrote:

> Hi,
> 
> On 12-12-2019 09:45, Lee Jones wrote:
> > On Wed, 11 Dec 2019, Hans de Goede wrote:
> > 
> > > Hi Lee,
> > > 
> > > On 10-12-2019 09:51, Lee Jones wrote:
> > > > On Tue, 19 Nov 2019, Hans de Goede wrote:
> > > > 
> > > > > At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
> > > > > different PWM controllers for controlling the LCD's backlight brightness.
> > > > > 
> > > > > Either the one integrated into the PMIC or the one integrated into the
> > > > > SoC (the 1st LPSS PWM controller).
> > > > > 
> > > > > So far in the LPSS code on BYT we have skipped registering the LPSS PWM
> > > > > controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
> > > > > present, assuming that in this case the PMIC PWM controller will be used.
> > > > > 
> > > > > On CHT we have been relying on only 1 of the 2 PWM controllers being
> > > > > enabled in the DSDT at the same time; and always registered the lookup.
> > > > > 
> > > > > So far this has been working, but the correct way to determine which PWM
> > > > > controller needs to be used is by checking a bit in the VBT table and
> > > > > recently I've learned about 2 different BYT devices:
> > > > > Point of View MOBII TAB-P800W
> > > > > Acer Switch 10 SW5-012
> > > > > 
> > > > > Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
> > > > > PWM controller (and the VBT correctly indicates this), so here our old
> > > > > heuristics fail.
> > > > > 
> > > > > Since only the i915 driver has access to the VBT, this commit renames
> > > > > the "pwm_backlight" lookup entries for the Crystal Cove PMIC's PWM
> > > > > controller to "pwm_pmic_backlight" so that the i915 driver can do a
> > > > > pwm_get() for the right controller depending on the VBT bit, instead of
> > > > > the i915 driver relying on a "pwm_backlight" lookup getting registered
> > > > > which magically points to the right controller.
> > > > > 
> > > > > Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> > > > > ---
> > > > >    drivers/mfd/intel_soc_pmic_core.c | 2 +-
> > > > >    1 file changed, 1 insertion(+), 1 deletion(-)
> > > > 
> > > > For my own reference:
> > > >     Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> > > 
> > > As mentioned in the cover-letter, to avoid breaking bi-sectability
> > > as well as to avoid breaking the intel-gfx CI we need to merge this series
> > > in one go through one tree. Specifically through the drm-intel tree.
> > > Is that ok with you ?
> > > 
> > > If this is ok with you, then you do not have to do anything, I will just push
> > > the entire series to drm-intel. drivers/mfd/intel_soc_pmic_core.c
> > > does not see much changes so I do not expect this to lead to any conflicts.
> > 
> > It's fine, so long as a minimal immutable pull-request is provided.
> > Whether it's pulled or not will depend on a number of factors, but it
> > needs to be an option.
> 
> The way the drm subsys works that is not really a readily available
> option. The struct definition which this patch changes a single line in
> has not been touched since 2015-06-26 so I really doubt we will get a
> conflict from this.

Always with the exceptions ...

OOI, why does this *have* to go through the DRM tree?

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-12-12 15:52           ` Lee Jones
@ 2019-12-12 19:02             ` Hans de Goede
  2019-12-13  8:27               ` Lee Jones
  0 siblings, 1 reply; 24+ messages in thread
From: Hans de Goede @ 2019-12-12 19:02 UTC (permalink / raw)
  To: Lee Jones
  Cc: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Andy Shevchenko, linux-acpi,
	intel-gfx, dri-devel, linux-kernel

Hi,

On 12-12-2019 16:52, Lee Jones wrote:
> On Thu, 12 Dec 2019, Hans de Goede wrote:
> 
>> Hi,
>>
>> On 12-12-2019 09:45, Lee Jones wrote:
>>> On Wed, 11 Dec 2019, Hans de Goede wrote:
>>>
>>>> Hi Lee,
>>>>
>>>> On 10-12-2019 09:51, Lee Jones wrote:
>>>>> On Tue, 19 Nov 2019, Hans de Goede wrote:
>>>>>
>>>>>> At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
>>>>>> different PWM controllers for controlling the LCD's backlight brightness.
>>>>>>
>>>>>> Either the one integrated into the PMIC or the one integrated into the
>>>>>> SoC (the 1st LPSS PWM controller).
>>>>>>
>>>>>> So far in the LPSS code on BYT we have skipped registering the LPSS PWM
>>>>>> controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
>>>>>> present, assuming that in this case the PMIC PWM controller will be used.
>>>>>>
>>>>>> On CHT we have been relying on only 1 of the 2 PWM controllers being
>>>>>> enabled in the DSDT at the same time; and always registered the lookup.
>>>>>>
>>>>>> So far this has been working, but the correct way to determine which PWM
>>>>>> controller needs to be used is by checking a bit in the VBT table and
>>>>>> recently I've learned about 2 different BYT devices:
>>>>>> Point of View MOBII TAB-P800W
>>>>>> Acer Switch 10 SW5-012
>>>>>>
>>>>>> Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
>>>>>> PWM controller (and the VBT correctly indicates this), so here our old
>>>>>> heuristics fail.
>>>>>>
>>>>>> Since only the i915 driver has access to the VBT, this commit renames
>>>>>> the "pwm_backlight" lookup entries for the Crystal Cove PMIC's PWM
>>>>>> controller to "pwm_pmic_backlight" so that the i915 driver can do a
>>>>>> pwm_get() for the right controller depending on the VBT bit, instead of
>>>>>> the i915 driver relying on a "pwm_backlight" lookup getting registered
>>>>>> which magically points to the right controller.
>>>>>>
>>>>>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>>>>>> ---
>>>>>>     drivers/mfd/intel_soc_pmic_core.c | 2 +-
>>>>>>     1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> For my own reference:
>>>>>      Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
>>>>
>>>> As mentioned in the cover-letter, to avoid breaking bi-sectability
>>>> as well as to avoid breaking the intel-gfx CI we need to merge this series
>>>> in one go through one tree. Specifically through the drm-intel tree.
>>>> Is that ok with you ?
>>>>
>>>> If this is ok with you, then you do not have to do anything, I will just push
>>>> the entire series to drm-intel. drivers/mfd/intel_soc_pmic_core.c
>>>> does not see much changes so I do not expect this to lead to any conflicts.
>>>
>>> It's fine, so long as a minimal immutable pull-request is provided.
>>> Whether it's pulled or not will depend on a number of factors, but it
>>> needs to be an option.
>>
>> The way the drm subsys works that is not really a readily available
>> option. The struct definition which this patch changes a single line in
>> has not been touched since 2015-06-26 so I really doubt we will get a
>> conflict from this.
> 
> Always with the exceptions ...
> 
> OOI, why does this *have* to go through the DRM tree?

This patch renames the name used to lookup the pwm controller from
"pwm_backlight" to "pwm_pmic_backlight" because there are 2 possible
pwm controllers which may be used, one in the SoC itself and one
in the PMIC. Which controller should be used is described in a table
in the Video BIOS, so another part of this series adds this code to
the i915 driver:

-	panel->backlight.pwm = pwm_get(dev->dev, "pwm_backlight");
+	/* Get the right PWM chip for DSI backlight according to VBT */
+	if (dev_priv->vbt.dsi.config->pwm_blc == PPS_BLC_PMIC) {
+		panel->backlight.pwm = pwm_get(dev->dev, "pwm_pmic_backlight");
+		desc = "PMIC";
+	} else {
+		panel->backlight.pwm = pwm_get(dev->dev, "pwm_soc_backlight");
+		desc = "SoC";
+	}

So both not to break bisectability, but also so as to not break the extensive
CI system which is used to test the i915 driver we need the MFD change doing
the rename to go upstrream through the same tree as the i915 change.

I have even considered just squashing the 2 commits together as having only 1
present, but not the other breaks stuff left and right.

Regards,

Hans


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-12-12 19:02             ` Hans de Goede
@ 2019-12-13  8:27               ` Lee Jones
  2019-12-13 12:40                 ` Hans de Goede
  0 siblings, 1 reply; 24+ messages in thread
From: Lee Jones @ 2019-12-13  8:27 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Andy Shevchenko, linux-acpi,
	intel-gfx, dri-devel, linux-kernel

On Thu, 12 Dec 2019, Hans de Goede wrote:

> Hi,
> 
> On 12-12-2019 16:52, Lee Jones wrote:
> > On Thu, 12 Dec 2019, Hans de Goede wrote:
> > 
> > > Hi,
> > > 
> > > On 12-12-2019 09:45, Lee Jones wrote:
> > > > On Wed, 11 Dec 2019, Hans de Goede wrote:
> > > > 
> > > > > Hi Lee,
> > > > > 
> > > > > On 10-12-2019 09:51, Lee Jones wrote:
> > > > > > On Tue, 19 Nov 2019, Hans de Goede wrote:
> > > > > > 
> > > > > > > At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
> > > > > > > different PWM controllers for controlling the LCD's backlight brightness.
> > > > > > > 
> > > > > > > Either the one integrated into the PMIC or the one integrated into the
> > > > > > > SoC (the 1st LPSS PWM controller).
> > > > > > > 
> > > > > > > So far in the LPSS code on BYT we have skipped registering the LPSS PWM
> > > > > > > controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
> > > > > > > present, assuming that in this case the PMIC PWM controller will be used.
> > > > > > > 
> > > > > > > On CHT we have been relying on only 1 of the 2 PWM controllers being
> > > > > > > enabled in the DSDT at the same time; and always registered the lookup.
> > > > > > > 
> > > > > > > So far this has been working, but the correct way to determine which PWM
> > > > > > > controller needs to be used is by checking a bit in the VBT table and
> > > > > > > recently I've learned about 2 different BYT devices:
> > > > > > > Point of View MOBII TAB-P800W
> > > > > > > Acer Switch 10 SW5-012
> > > > > > > 
> > > > > > > Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
> > > > > > > PWM controller (and the VBT correctly indicates this), so here our old
> > > > > > > heuristics fail.
> > > > > > > 
> > > > > > > Since only the i915 driver has access to the VBT, this commit renames
> > > > > > > the "pwm_backlight" lookup entries for the Crystal Cove PMIC's PWM
> > > > > > > controller to "pwm_pmic_backlight" so that the i915 driver can do a
> > > > > > > pwm_get() for the right controller depending on the VBT bit, instead of
> > > > > > > the i915 driver relying on a "pwm_backlight" lookup getting registered
> > > > > > > which magically points to the right controller.
> > > > > > > 
> > > > > > > Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> > > > > > > ---
> > > > > > >     drivers/mfd/intel_soc_pmic_core.c | 2 +-
> > > > > > >     1 file changed, 1 insertion(+), 1 deletion(-)
> > > > > > 
> > > > > > For my own reference:
> > > > > >      Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> > > > > 
> > > > > As mentioned in the cover-letter, to avoid breaking bi-sectability
> > > > > as well as to avoid breaking the intel-gfx CI we need to merge this series
> > > > > in one go through one tree. Specifically through the drm-intel tree.
> > > > > Is that ok with you ?
> > > > > 
> > > > > If this is ok with you, then you do not have to do anything, I will just push
> > > > > the entire series to drm-intel. drivers/mfd/intel_soc_pmic_core.c
> > > > > does not see much changes so I do not expect this to lead to any conflicts.
> > > > 
> > > > It's fine, so long as a minimal immutable pull-request is provided.
> > > > Whether it's pulled or not will depend on a number of factors, but it
> > > > needs to be an option.
> > > 
> > > The way the drm subsys works that is not really a readily available
> > > option. The struct definition which this patch changes a single line in
> > > has not been touched since 2015-06-26 so I really doubt we will get a
> > > conflict from this.
> > 
> > Always with the exceptions ...
> > 
> > OOI, why does this *have* to go through the DRM tree?
> 
> This patch renames the name used to lookup the pwm controller from
> "pwm_backlight" to "pwm_pmic_backlight" because there are 2 possible
> pwm controllers which may be used, one in the SoC itself and one
> in the PMIC. Which controller should be used is described in a table
> in the Video BIOS, so another part of this series adds this code to
> the i915 driver:
> 
> -	panel->backlight.pwm = pwm_get(dev->dev, "pwm_backlight");
> +	/* Get the right PWM chip for DSI backlight according to VBT */
> +	if (dev_priv->vbt.dsi.config->pwm_blc == PPS_BLC_PMIC) {
> +		panel->backlight.pwm = pwm_get(dev->dev, "pwm_pmic_backlight");
> +		desc = "PMIC";
> +	} else {
> +		panel->backlight.pwm = pwm_get(dev->dev, "pwm_soc_backlight");
> +		desc = "SoC";
> +	}
> 
> So both not to break bisectability, but also so as to not break the extensive
> CI system which is used to test the i915 driver we need the MFD change doing
> the rename to go upstrream through the same tree as the i915 change.
> 
> I have even considered just squashing the 2 commits together as having only 1
> present, but not the other breaks stuff left and right.

That doesn't answer the question.

Why do they all *have* to go in via the DRM tree specifically?

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-12-13  8:27               ` Lee Jones
@ 2019-12-13 12:40                 ` Hans de Goede
  2019-12-16  9:30                   ` Lee Jones
  0 siblings, 1 reply; 24+ messages in thread
From: Hans de Goede @ 2019-12-13 12:40 UTC (permalink / raw)
  To: Lee Jones
  Cc: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Andy Shevchenko, linux-acpi,
	intel-gfx, dri-devel, linux-kernel

Hi,

On 13-12-2019 09:27, Lee Jones wrote:
> On Thu, 12 Dec 2019, Hans de Goede wrote:
> 
>> Hi,
>>
>> On 12-12-2019 16:52, Lee Jones wrote:
>>> On Thu, 12 Dec 2019, Hans de Goede wrote:
>>>
>>>> Hi,
>>>>
>>>> On 12-12-2019 09:45, Lee Jones wrote:
>>>>> On Wed, 11 Dec 2019, Hans de Goede wrote:
>>>>>
>>>>>> Hi Lee,
>>>>>>
>>>>>> On 10-12-2019 09:51, Lee Jones wrote:
>>>>>>> On Tue, 19 Nov 2019, Hans de Goede wrote:
>>>>>>>
>>>>>>>> At least Bay Trail (BYT) and Cherry Trail (CHT) devices can use 1 of 2
>>>>>>>> different PWM controllers for controlling the LCD's backlight brightness.
>>>>>>>>
>>>>>>>> Either the one integrated into the PMIC or the one integrated into the
>>>>>>>> SoC (the 1st LPSS PWM controller).
>>>>>>>>
>>>>>>>> So far in the LPSS code on BYT we have skipped registering the LPSS PWM
>>>>>>>> controller "pwm_backlight" lookup entry when a Crystal Cove PMIC is
>>>>>>>> present, assuming that in this case the PMIC PWM controller will be used.
>>>>>>>>
>>>>>>>> On CHT we have been relying on only 1 of the 2 PWM controllers being
>>>>>>>> enabled in the DSDT at the same time; and always registered the lookup.
>>>>>>>>
>>>>>>>> So far this has been working, but the correct way to determine which PWM
>>>>>>>> controller needs to be used is by checking a bit in the VBT table and
>>>>>>>> recently I've learned about 2 different BYT devices:
>>>>>>>> Point of View MOBII TAB-P800W
>>>>>>>> Acer Switch 10 SW5-012
>>>>>>>>
>>>>>>>> Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
>>>>>>>> PWM controller (and the VBT correctly indicates this), so here our old
>>>>>>>> heuristics fail.
>>>>>>>>
>>>>>>>> Since only the i915 driver has access to the VBT, this commit renames
>>>>>>>> the "pwm_backlight" lookup entries for the Crystal Cove PMIC's PWM
>>>>>>>> controller to "pwm_pmic_backlight" so that the i915 driver can do a
>>>>>>>> pwm_get() for the right controller depending on the VBT bit, instead of
>>>>>>>> the i915 driver relying on a "pwm_backlight" lookup getting registered
>>>>>>>> which magically points to the right controller.
>>>>>>>>
>>>>>>>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>>>>>>>> ---
>>>>>>>>      drivers/mfd/intel_soc_pmic_core.c | 2 +-
>>>>>>>>      1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>>>
>>>>>>> For my own reference:
>>>>>>>       Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
>>>>>>
>>>>>> As mentioned in the cover-letter, to avoid breaking bi-sectability
>>>>>> as well as to avoid breaking the intel-gfx CI we need to merge this series
>>>>>> in one go through one tree. Specifically through the drm-intel tree.
>>>>>> Is that ok with you ?
>>>>>>
>>>>>> If this is ok with you, then you do not have to do anything, I will just push
>>>>>> the entire series to drm-intel. drivers/mfd/intel_soc_pmic_core.c
>>>>>> does not see much changes so I do not expect this to lead to any conflicts.
>>>>>
>>>>> It's fine, so long as a minimal immutable pull-request is provided.
>>>>> Whether it's pulled or not will depend on a number of factors, but it
>>>>> needs to be an option.
>>>>
>>>> The way the drm subsys works that is not really a readily available
>>>> option. The struct definition which this patch changes a single line in
>>>> has not been touched since 2015-06-26 so I really doubt we will get a
>>>> conflict from this.
>>>
>>> Always with the exceptions ...
>>>
>>> OOI, why does this *have* to go through the DRM tree?
>>
>> This patch renames the name used to lookup the pwm controller from
>> "pwm_backlight" to "pwm_pmic_backlight" because there are 2 possible
>> pwm controllers which may be used, one in the SoC itself and one
>> in the PMIC. Which controller should be used is described in a table
>> in the Video BIOS, so another part of this series adds this code to
>> the i915 driver:
>>
>> -	panel->backlight.pwm = pwm_get(dev->dev, "pwm_backlight");
>> +	/* Get the right PWM chip for DSI backlight according to VBT */
>> +	if (dev_priv->vbt.dsi.config->pwm_blc == PPS_BLC_PMIC) {
>> +		panel->backlight.pwm = pwm_get(dev->dev, "pwm_pmic_backlight");
>> +		desc = "PMIC";
>> +	} else {
>> +		panel->backlight.pwm = pwm_get(dev->dev, "pwm_soc_backlight");
>> +		desc = "SoC";
>> +	}
>>
>> So both not to break bisectability, but also so as to not break the extensive
>> CI system which is used to test the i915 driver we need the MFD change doing
>> the rename to go upstrream through the same tree as the i915 change.
>>
>> I have even considered just squashing the 2 commits together as having only 1
>> present, but not the other breaks stuff left and right.
> 
> That doesn't answer the question.
> 
> Why do they all *have* to go in via the DRM tree specifically?

1. As explained these chanegs need to stay together
2. This change is primarily a drm/i915 change. Also the i915 code sees lots
of changes every cycle, where as the change to the mfd code touches a block
of code which has not been touched since 2015-06-26, so the chance of conflicts
is much bigger if this goes on through another tree.

I honestly do not see the problem here? Let me reverse the question why should this
NOT go in through the drm tree?

Regards,

Hans


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-12-13 12:40                 ` Hans de Goede
@ 2019-12-16  9:30                   ` Lee Jones
  2019-12-16 10:04                     ` Hans de Goede
  0 siblings, 1 reply; 24+ messages in thread
From: Lee Jones @ 2019-12-16  9:30 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Andy Shevchenko, linux-acpi,
	intel-gfx, dri-devel, linux-kernel

[...]

> > > > > > > > > Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
> > > > > > > > > PWM controller (and the VBT correctly indicates this), so here our old
> > > > > > > > > heuristics fail.
> > > > > > > > > 
> > > > > > > > > Since only the i915 driver has access to the VBT, this commit renames
> > > > > > > > > the "pwm_backlight" lookup entries for the Crystal Cove PMIC's PWM
> > > > > > > > > controller to "pwm_pmic_backlight" so that the i915 driver can do a
> > > > > > > > > pwm_get() for the right controller depending on the VBT bit, instead of
> > > > > > > > > the i915 driver relying on a "pwm_backlight" lookup getting registered
> > > > > > > > > which magically points to the right controller.
> > > > > > > > > 
> > > > > > > > > Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> > > > > > > > > ---
> > > > > > > > >      drivers/mfd/intel_soc_pmic_core.c | 2 +-
> > > > > > > > >      1 file changed, 1 insertion(+), 1 deletion(-)
> > > > > > > > 
> > > > > > > > For my own reference:
> > > > > > > >       Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> > > > > > > 
> > > > > > > As mentioned in the cover-letter, to avoid breaking bi-sectability
> > > > > > > as well as to avoid breaking the intel-gfx CI we need to merge this series
> > > > > > > in one go through one tree. Specifically through the drm-intel tree.
> > > > > > > Is that ok with you ?
> > > > > > > 
> > > > > > > If this is ok with you, then you do not have to do anything, I will just push
> > > > > > > the entire series to drm-intel. drivers/mfd/intel_soc_pmic_core.c
> > > > > > > does not see much changes so I do not expect this to lead to any conflicts.
> > > > > > 
> > > > > > It's fine, so long as a minimal immutable pull-request is provided.
> > > > > > Whether it's pulled or not will depend on a number of factors, but it
> > > > > > needs to be an option.
> > > > > 
> > > > > The way the drm subsys works that is not really a readily available
> > > > > option. The struct definition which this patch changes a single line in
> > > > > has not been touched since 2015-06-26 so I really doubt we will get a
> > > > > conflict from this.
> > > > 
> > > > Always with the exceptions ...
> > > > 
> > > > OOI, why does this *have* to go through the DRM tree?
> > > 
> > > This patch renames the name used to lookup the pwm controller from
> > > "pwm_backlight" to "pwm_pmic_backlight" because there are 2 possible
> > > pwm controllers which may be used, one in the SoC itself and one
> > > in the PMIC. Which controller should be used is described in a table
> > > in the Video BIOS, so another part of this series adds this code to
> > > the i915 driver:
> > > 
> > > -	panel->backlight.pwm = pwm_get(dev->dev, "pwm_backlight");
> > > +	/* Get the right PWM chip for DSI backlight according to VBT */
> > > +	if (dev_priv->vbt.dsi.config->pwm_blc == PPS_BLC_PMIC) {
> > > +		panel->backlight.pwm = pwm_get(dev->dev, "pwm_pmic_backlight");
> > > +		desc = "PMIC";
> > > +	} else {
> > > +		panel->backlight.pwm = pwm_get(dev->dev, "pwm_soc_backlight");
> > > +		desc = "SoC";
> > > +	}
> > > 
> > > So both not to break bisectability, but also so as to not break the extensive
> > > CI system which is used to test the i915 driver we need the MFD change doing
> > > the rename to go upstrream through the same tree as the i915 change.
> > > 
> > > I have even considered just squashing the 2 commits together as having only 1
> > > present, but not the other breaks stuff left and right.
> > 
> > That doesn't answer the question.
> > 
> > Why do they all *have* to go in via the DRM tree specifically?
> 
> 1. As explained these chanegs need to stay together
> 2. This change is primarily a drm/i915 change. Also the i915 code sees lots
> of changes every cycle, where as the change to the mfd code touches a block
> of code which has not been touched since 2015-06-26, so the chance of conflicts
> is much bigger if this goes on through another tree.
> 
> I honestly do not see the problem here? Let me reverse the question why should this
> NOT go in through the drm tree?

There isn't a problem with *this* patch.  I could say, "sure, take it"
and the chances are everything could be fine from a technical
perspective.

However, I'm taking exception to the fact you think this series is
*special* enough to warrant circumventing the usual way in which we
usually work when dealing with cross-subsystem patch-sets.  Something
I personally deal with a lot due to the inherent hierarchical nature
of Multi-Functional Devices.

I'm on the fence on this one.  Due to the circumstances surrounding
*this* patch alone, it would be so much easier (for both of us!) to
just Ack the patch and hope no further changes occur which could
potentially cause someone else (you, me, Linus) more work later on.
However, I'm very keen to prevent setting a precedent for this kind of
action, as it's clearly not the right path to take in a vast majority
of cases.

> 1. As explained these chanegs need to stay together

The patch-set would stay together regardless.  That's the point of an
immutable branch, it can be taken in by all relevant parties and Git
will just do-the-right-thing.

> 2. This change is primarily a drm/i915 change. Also the i915 code sees lots
> of changes every cycle, where as the change to the mfd code touches a block
> of code which has not been touched since 2015-06-26, so the chance of conflicts
> is much bigger if this goes on through another tree.

This too is irrelevant, since the patch-set could/would go though
both/all trees simultaneously.  The way in which we normally work with
other subsystems doesn't involve a gamble over which subsystem is most
likely going to be affected by a merge conflict as you suggest, it
eradicates conflicts for all.

I'm not saying "no" by the way.  I just want to find out your
reasons/motivation as to why you're insisting this needs go through
a) a specific tree and b) just one tree.  Questions which I am yet to
see a compelling answer.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-12-16  9:30                   ` Lee Jones
@ 2019-12-16 10:04                     ` Hans de Goede
  2019-12-17  8:11                       ` Lee Jones
  0 siblings, 1 reply; 24+ messages in thread
From: Hans de Goede @ 2019-12-16 10:04 UTC (permalink / raw)
  To: Lee Jones
  Cc: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Andy Shevchenko, linux-acpi,
	intel-gfx, dri-devel, linux-kernel

Hi,

On 16-12-2019 10:30, Lee Jones wrote:
> [...]
> 
>>>>>>>>>> Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
>>>>>>>>>> PWM controller (and the VBT correctly indicates this), so here our old
>>>>>>>>>> heuristics fail.
>>>>>>>>>>
>>>>>>>>>> Since only the i915 driver has access to the VBT, this commit renames
>>>>>>>>>> the "pwm_backlight" lookup entries for the Crystal Cove PMIC's PWM
>>>>>>>>>> controller to "pwm_pmic_backlight" so that the i915 driver can do a
>>>>>>>>>> pwm_get() for the right controller depending on the VBT bit, instead of
>>>>>>>>>> the i915 driver relying on a "pwm_backlight" lookup getting registered
>>>>>>>>>> which magically points to the right controller.
>>>>>>>>>>
>>>>>>>>>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>>>>>>>>>> ---
>>>>>>>>>>       drivers/mfd/intel_soc_pmic_core.c | 2 +-
>>>>>>>>>>       1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>>>>>
>>>>>>>>> For my own reference:
>>>>>>>>>        Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
>>>>>>>>
>>>>>>>> As mentioned in the cover-letter, to avoid breaking bi-sectability
>>>>>>>> as well as to avoid breaking the intel-gfx CI we need to merge this series
>>>>>>>> in one go through one tree. Specifically through the drm-intel tree.
>>>>>>>> Is that ok with you ?
>>>>>>>>
>>>>>>>> If this is ok with you, then you do not have to do anything, I will just push
>>>>>>>> the entire series to drm-intel. drivers/mfd/intel_soc_pmic_core.c
>>>>>>>> does not see much changes so I do not expect this to lead to any conflicts.
>>>>>>>
>>>>>>> It's fine, so long as a minimal immutable pull-request is provided.
>>>>>>> Whether it's pulled or not will depend on a number of factors, but it
>>>>>>> needs to be an option.
>>>>>>
>>>>>> The way the drm subsys works that is not really a readily available
>>>>>> option. The struct definition which this patch changes a single line in
>>>>>> has not been touched since 2015-06-26 so I really doubt we will get a
>>>>>> conflict from this.
>>>>>
>>>>> Always with the exceptions ...
>>>>>
>>>>> OOI, why does this *have* to go through the DRM tree?
>>>>
>>>> This patch renames the name used to lookup the pwm controller from
>>>> "pwm_backlight" to "pwm_pmic_backlight" because there are 2 possible
>>>> pwm controllers which may be used, one in the SoC itself and one
>>>> in the PMIC. Which controller should be used is described in a table
>>>> in the Video BIOS, so another part of this series adds this code to
>>>> the i915 driver:
>>>>
>>>> -	panel->backlight.pwm = pwm_get(dev->dev, "pwm_backlight");
>>>> +	/* Get the right PWM chip for DSI backlight according to VBT */
>>>> +	if (dev_priv->vbt.dsi.config->pwm_blc == PPS_BLC_PMIC) {
>>>> +		panel->backlight.pwm = pwm_get(dev->dev, "pwm_pmic_backlight");
>>>> +		desc = "PMIC";
>>>> +	} else {
>>>> +		panel->backlight.pwm = pwm_get(dev->dev, "pwm_soc_backlight");
>>>> +		desc = "SoC";
>>>> +	}
>>>>
>>>> So both not to break bisectability, but also so as to not break the extensive
>>>> CI system which is used to test the i915 driver we need the MFD change doing
>>>> the rename to go upstrream through the same tree as the i915 change.
>>>>
>>>> I have even considered just squashing the 2 commits together as having only 1
>>>> present, but not the other breaks stuff left and right.
>>>
>>> That doesn't answer the question.
>>>
>>> Why do they all *have* to go in via the DRM tree specifically?
>>
>> 1. As explained these chanegs need to stay together
>> 2. This change is primarily a drm/i915 change. Also the i915 code sees lots
>> of changes every cycle, where as the change to the mfd code touches a block
>> of code which has not been touched since 2015-06-26, so the chance of conflicts
>> is much bigger if this goes on through another tree.
>>
>> I honestly do not see the problem here? Let me reverse the question why should this
>> NOT go in through the drm tree?
> 
> There isn't a problem with *this* patch.  I could say, "sure, take it"
> and the chances are everything could be fine from a technical
> perspective.
> 
> However, I'm taking exception to the fact you think this series is
> *special* enough to warrant circumventing the usual way in which we
> usually work when dealing with cross-subsystem patch-sets.  Something
> I personally deal with a lot due to the inherent hierarchical nature
> of Multi-Functional Devices.
> 
> I'm on the fence on this one.  Due to the circumstances surrounding
> *this* patch alone, it would be so much easier (for both of us!) to
> just Ack the patch and hope no further changes occur which could
> potentially cause someone else (you, me, Linus) more work later on.
> However, I'm very keen to prevent setting a precedent for this kind of
> action, as it's clearly not the right path to take in a vast majority
> of cases.
> 
>> 1. As explained these chanegs need to stay together
> 
> The patch-set would stay together regardless.  That's the point of an
> immutable branch, it can be taken in by all relevant parties and Git
> will just do-the-right-thing.
> 
>> 2. This change is primarily a drm/i915 change. Also the i915 code sees lots
>> of changes every cycle, where as the change to the mfd code touches a block
>> of code which has not been touched since 2015-06-26, so the chance of conflicts
>> is much bigger if this goes on through another tree.
> 
> This too is irrelevant, since the patch-set could/would go though
> both/all trees simultaneously.  The way in which we normally work with
> other subsystems doesn't involve a gamble over which subsystem is most
> likely going to be affected by a merge conflict as you suggest, it
> eradicates conflicts for all.

I'm well aware of using immutable branches and that those are
often used for patch-set's which touch multiple subsystems. But
although immutable branches are used often they are about as often
not used for various reasons, with people choosing to just merge
through a single tree.
> I'm not saying "no" by the way.  I just want to find out your
> reasons/motivation as to why you're insisting this needs go through
> a) a specific tree and b) just one tree.  Questions which I am yet to
> see a compelling answer.

Doing immutable branches assumes that there is a base point,
e.g. 5.5-rc1 where the immutable branch can then be based on and
that the branch can then be merged without issues into both subsystems.

drm is constantly evolving to deal with and mostly catch up with new
hardware as both GPUs and display-pipelines are evolving quite rapidly
atm drm-intel-next has about 400 commits on top of 5.5-rc1 so for an
immutable branch I can either base it on drm-intel-next which
violates your request for a clean minimal branch to merge; or I can
base it on 5.5-rc1 which leads to a big chance of problems when
merging it given to large amount of churn in drm-intel-next.

So instead of the normal case of 2 subsystems seeing some changes
on both side the case we have here is a part of a file which has
not changed since 2015-06-26 in one subsys (and changing only
a single line there!) and OTOH we have bigger changes to a subsys
which see 400 patches land in the first week since rc1 .

I hope that you agree that in this case given the large amount of
churn in drm-intel-next it makes since to just straight forward
apply these patches on top of drm-intel-next.

Regards,

Hans


^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-12-16 10:04                     ` Hans de Goede
@ 2019-12-17  8:11                       ` Lee Jones
  2019-12-17 13:25                         ` Jani Nikula
  0 siblings, 1 reply; 24+ messages in thread
From: Lee Jones @ 2019-12-17  8:11 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Maarten Lankhorst, Jani Nikula, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Andy Shevchenko, linux-acpi,
	intel-gfx, dri-devel, linux-kernel

On Mon, 16 Dec 2019, Hans de Goede wrote:

> Hi,
> 
> On 16-12-2019 10:30, Lee Jones wrote:
> > [...]
> > 
> > > > > > > > > > > Which use a Crystal Cove PMIC, yet the LCD is connected to the SoC/LPSS
> > > > > > > > > > > PWM controller (and the VBT correctly indicates this), so here our old
> > > > > > > > > > > heuristics fail.
> > > > > > > > > > > 
> > > > > > > > > > > Since only the i915 driver has access to the VBT, this commit renames
> > > > > > > > > > > the "pwm_backlight" lookup entries for the Crystal Cove PMIC's PWM
> > > > > > > > > > > controller to "pwm_pmic_backlight" so that the i915 driver can do a
> > > > > > > > > > > pwm_get() for the right controller depending on the VBT bit, instead of
> > > > > > > > > > > the i915 driver relying on a "pwm_backlight" lookup getting registered
> > > > > > > > > > > which magically points to the right controller.
> > > > > > > > > > > 
> > > > > > > > > > > Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> > > > > > > > > > > ---
> > > > > > > > > > >       drivers/mfd/intel_soc_pmic_core.c | 2 +-
> > > > > > > > > > >       1 file changed, 1 insertion(+), 1 deletion(-)
> > > > > > > > > > 
> > > > > > > > > > For my own reference:
> > > > > > > > > >        Acked-for-MFD-by: Lee Jones <lee.jones@linaro.org>
> > > > > > > > > 
> > > > > > > > > As mentioned in the cover-letter, to avoid breaking bi-sectability
> > > > > > > > > as well as to avoid breaking the intel-gfx CI we need to merge this series
> > > > > > > > > in one go through one tree. Specifically through the drm-intel tree.
> > > > > > > > > Is that ok with you ?
> > > > > > > > > 
> > > > > > > > > If this is ok with you, then you do not have to do anything, I will just push
> > > > > > > > > the entire series to drm-intel. drivers/mfd/intel_soc_pmic_core.c
> > > > > > > > > does not see much changes so I do not expect this to lead to any conflicts.
> > > > > > > > 
> > > > > > > > It's fine, so long as a minimal immutable pull-request is provided.
> > > > > > > > Whether it's pulled or not will depend on a number of factors, but it
> > > > > > > > needs to be an option.
> > > > > > > 
> > > > > > > The way the drm subsys works that is not really a readily available
> > > > > > > option. The struct definition which this patch changes a single line in
> > > > > > > has not been touched since 2015-06-26 so I really doubt we will get a
> > > > > > > conflict from this.
> > > > > > 
> > > > > > Always with the exceptions ...
> > > > > > 
> > > > > > OOI, why does this *have* to go through the DRM tree?
> > > > > 
> > > > > This patch renames the name used to lookup the pwm controller from
> > > > > "pwm_backlight" to "pwm_pmic_backlight" because there are 2 possible
> > > > > pwm controllers which may be used, one in the SoC itself and one
> > > > > in the PMIC. Which controller should be used is described in a table
> > > > > in the Video BIOS, so another part of this series adds this code to
> > > > > the i915 driver:
> > > > > 
> > > > > -	panel->backlight.pwm = pwm_get(dev->dev, "pwm_backlight");
> > > > > +	/* Get the right PWM chip for DSI backlight according to VBT */
> > > > > +	if (dev_priv->vbt.dsi.config->pwm_blc == PPS_BLC_PMIC) {
> > > > > +		panel->backlight.pwm = pwm_get(dev->dev, "pwm_pmic_backlight");
> > > > > +		desc = "PMIC";
> > > > > +	} else {
> > > > > +		panel->backlight.pwm = pwm_get(dev->dev, "pwm_soc_backlight");
> > > > > +		desc = "SoC";
> > > > > +	}
> > > > > 
> > > > > So both not to break bisectability, but also so as to not break the extensive
> > > > > CI system which is used to test the i915 driver we need the MFD change doing
> > > > > the rename to go upstrream through the same tree as the i915 change.
> > > > > 
> > > > > I have even considered just squashing the 2 commits together as having only 1
> > > > > present, but not the other breaks stuff left and right.
> > > > 
> > > > That doesn't answer the question.
> > > > 
> > > > Why do they all *have* to go in via the DRM tree specifically?
> > > 
> > > 1. As explained these chanegs need to stay together
> > > 2. This change is primarily a drm/i915 change. Also the i915 code sees lots
> > > of changes every cycle, where as the change to the mfd code touches a block
> > > of code which has not been touched since 2015-06-26, so the chance of conflicts
> > > is much bigger if this goes on through another tree.
> > > 
> > > I honestly do not see the problem here? Let me reverse the question why should this
> > > NOT go in through the drm tree?
> > 
> > There isn't a problem with *this* patch.  I could say, "sure, take it"
> > and the chances are everything could be fine from a technical
> > perspective.
> > 
> > However, I'm taking exception to the fact you think this series is
> > *special* enough to warrant circumventing the usual way in which we
> > usually work when dealing with cross-subsystem patch-sets.  Something
> > I personally deal with a lot due to the inherent hierarchical nature
> > of Multi-Functional Devices.
> > 
> > I'm on the fence on this one.  Due to the circumstances surrounding
> > *this* patch alone, it would be so much easier (for both of us!) to
> > just Ack the patch and hope no further changes occur which could
> > potentially cause someone else (you, me, Linus) more work later on.
> > However, I'm very keen to prevent setting a precedent for this kind of
> > action, as it's clearly not the right path to take in a vast majority
> > of cases.
> > 
> > > 1. As explained these chanegs need to stay together
> > 
> > The patch-set would stay together regardless.  That's the point of an
> > immutable branch, it can be taken in by all relevant parties and Git
> > will just do-the-right-thing.
> > 
> > > 2. This change is primarily a drm/i915 change. Also the i915 code sees lots
> > > of changes every cycle, where as the change to the mfd code touches a block
> > > of code which has not been touched since 2015-06-26, so the chance of conflicts
> > > is much bigger if this goes on through another tree.
> > 
> > This too is irrelevant, since the patch-set could/would go though
> > both/all trees simultaneously.  The way in which we normally work with
> > other subsystems doesn't involve a gamble over which subsystem is most
> > likely going to be affected by a merge conflict as you suggest, it
> > eradicates conflicts for all.
> 
> I'm well aware of using immutable branches and that those are
> often used for patch-set's which touch multiple subsystems. But
> although immutable branches are used often they are about as often
> not used for various reasons, with people choosing to just merge
> through a single tree.
> > I'm not saying "no" by the way.  I just want to find out your
> > reasons/motivation as to why you're insisting this needs go through
> > a) a specific tree and b) just one tree.  Questions which I am yet to
> > see a compelling answer.
> 
> Doing immutable branches assumes that there is a base point,
> e.g. 5.5-rc1 where the immutable branch can then be based on and
> that the branch can then be merged without issues into both subsystems.
> 
> drm is constantly evolving to deal with and mostly catch up with new
> hardware as both GPUs and display-pipelines are evolving quite rapidly
> atm drm-intel-next has about 400 commits on top of 5.5-rc1 so for an
> immutable branch I can either base it on drm-intel-next which
> violates your request for a clean minimal branch to merge; or I can
> base it on 5.5-rc1 which leads to a big chance of problems when
> merging it given to large amount of churn in drm-intel-next.

This is a *slightly* more compelling reason than the ones you've
previously provided.

> So instead of the normal case of 2 subsystems seeing some changes
> on both side the case we have here is a part of a file which has
> not changed since 2015-06-26 in one subsys (and changing only
> a single line there!) and OTOH we have bigger changes to a subsys
> which see 400 patches land in the first week since rc1 .

This is not.

> I hope that you agree that in this case given the large amount of
> churn in drm-intel-next it makes since to just straight forward
> apply these patches on top of drm-intel-next.

I have Acked this patch, but remember *this* is the exception rather
than the rule.  If/when we have a case where a contributor works
cross-subsystem with DRM and the code/file adapted is live (more
likely to change), I will have to insist on an immutable branch
strategy.  DRM will have to deal with that appropriately.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-12-17  8:11                       ` Lee Jones
@ 2019-12-17 13:25                         ` Jani Nikula
  2019-12-17 13:51                           ` Lee Jones
  0 siblings, 1 reply; 24+ messages in thread
From: Jani Nikula @ 2019-12-17 13:25 UTC (permalink / raw)
  To: Lee Jones, Hans de Goede
  Cc: Maarten Lankhorst, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Andy Shevchenko, linux-acpi,
	intel-gfx, dri-devel, linux-kernel

On Tue, 17 Dec 2019, Lee Jones <lee.jones@linaro.org> wrote:
> On Mon, 16 Dec 2019, Hans de Goede wrote:
>
>> Hi,
>> 
>> Doing immutable branches assumes that there is a base point,
>> e.g. 5.5-rc1 where the immutable branch can then be based on and
>> that the branch can then be merged without issues into both subsystems.
>> 
>> drm is constantly evolving to deal with and mostly catch up with new
>> hardware as both GPUs and display-pipelines are evolving quite rapidly
>> atm drm-intel-next has about 400 commits on top of 5.5-rc1 so for an
>> immutable branch I can either base it on drm-intel-next which
>> violates your request for a clean minimal branch to merge; or I can
>> base it on 5.5-rc1 which leads to a big chance of problems when
>> merging it given to large amount of churn in drm-intel-next.
>
> This is a *slightly* more compelling reason than the ones you've
> previously provided.
>
>> So instead of the normal case of 2 subsystems seeing some changes
>> on both side the case we have here is a part of a file which has
>> not changed since 2015-06-26 in one subsys (and changing only
>> a single line there!) and OTOH we have bigger changes to a subsys
>> which see 400 patches land in the first week since rc1 .
>
> This is not.
>
>> I hope that you agree that in this case given the large amount of
>> churn in drm-intel-next it makes since to just straight forward
>> apply these patches on top of drm-intel-next.
>
> I have Acked this patch, but remember *this* is the exception rather
> than the rule.  If/when we have a case where a contributor works
> cross-subsystem with DRM and the code/file adapted is live (more
> likely to change), I will have to insist on an immutable branch
> strategy.  DRM will have to deal with that appropriately.

Hi, thanks for the ack and reaching an agreement with Hans, and sorry
for not responding earlier.

It's not unusual for us to have topic branches for cross-subsystem or
cross-driver changes, and I think usually we try to be accommodating in
merging stuff through whichever tree it makes most sense. In fact my ack
to do just that was my first response on this series [1].

So I don't really know why the fuss. We'll anyway deal with any
cross-subsystem series on a case by case basis, depending on what makes
most sense, and what suits all maintainers involved.


Thanks again,
Jani.


[1] http://mid.mail-archive.com/87pnhnyir8.fsf@intel.com



-- 
Jani Nikula, Intel Open Source Graphics Center

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-12-17 13:25                         ` Jani Nikula
@ 2019-12-17 13:51                           ` Lee Jones
  2019-12-18  7:14                             ` Jani Nikula
  0 siblings, 1 reply; 24+ messages in thread
From: Lee Jones @ 2019-12-17 13:51 UTC (permalink / raw)
  To: Jani Nikula
  Cc: Hans de Goede, Maarten Lankhorst, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Andy Shevchenko, linux-acpi,
	intel-gfx, dri-devel, linux-kernel

On Tue, 17 Dec 2019, Jani Nikula wrote:

> On Tue, 17 Dec 2019, Lee Jones <lee.jones@linaro.org> wrote:
> > On Mon, 16 Dec 2019, Hans de Goede wrote:
> >
> >> Hi,
> >> 
> >> Doing immutable branches assumes that there is a base point,
> >> e.g. 5.5-rc1 where the immutable branch can then be based on and
> >> that the branch can then be merged without issues into both subsystems.
> >> 
> >> drm is constantly evolving to deal with and mostly catch up with new
> >> hardware as both GPUs and display-pipelines are evolving quite rapidly
> >> atm drm-intel-next has about 400 commits on top of 5.5-rc1 so for an
> >> immutable branch I can either base it on drm-intel-next which
> >> violates your request for a clean minimal branch to merge; or I can
> >> base it on 5.5-rc1 which leads to a big chance of problems when
> >> merging it given to large amount of churn in drm-intel-next.
> >
> > This is a *slightly* more compelling reason than the ones you've
> > previously provided.
> >
> >> So instead of the normal case of 2 subsystems seeing some changes
> >> on both side the case we have here is a part of a file which has
> >> not changed since 2015-06-26 in one subsys (and changing only
> >> a single line there!) and OTOH we have bigger changes to a subsys
> >> which see 400 patches land in the first week since rc1 .
> >
> > This is not.
> >
> >> I hope that you agree that in this case given the large amount of
> >> churn in drm-intel-next it makes since to just straight forward
> >> apply these patches on top of drm-intel-next.
> >
> > I have Acked this patch, but remember *this* is the exception rather
> > than the rule.  If/when we have a case where a contributor works
> > cross-subsystem with DRM and the code/file adapted is live (more
> > likely to change), I will have to insist on an immutable branch
> > strategy.  DRM will have to deal with that appropriately.
> 
> Hi, thanks for the ack and reaching an agreement with Hans, and sorry
> for not responding earlier.
> 
> It's not unusual for us to have topic branches for cross-subsystem or
> cross-driver changes, and I think usually we try to be accommodating in
> merging stuff through whichever tree it makes most sense. In fact my ack
> to do just that was my first response on this series [1].
> 
> So I don't really know why the fuss. We'll anyway deal with any
> cross-subsystem series on a case by case basis, depending on what makes
> most sense, and what suits all maintainers involved.

Perfect.  Thanks for the clarification.  I look forward to working
with you guys in the future.

Hans was making the case that this was impractical for DRM, due to the
amount of churn you guys receive, hence the discussion.  I'm very
pleased that this is not the case.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-12-17 13:51                           ` Lee Jones
@ 2019-12-18  7:14                             ` Jani Nikula
  2019-12-18  9:38                               ` Lee Jones
  0 siblings, 1 reply; 24+ messages in thread
From: Jani Nikula @ 2019-12-18  7:14 UTC (permalink / raw)
  To: Lee Jones
  Cc: Hans de Goede, Maarten Lankhorst, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Andy Shevchenko, linux-acpi,
	intel-gfx, dri-devel, linux-kernel

On Tue, 17 Dec 2019, Lee Jones <lee.jones@linaro.org> wrote:
> Hans was making the case that this was impractical for DRM, due to the
> amount of churn you guys receive, hence the discussion.  I'm very
> pleased that this is not the case.

Heh, well, it is the case, but the point is that should be our problem,
not yours. ;)

BR,
Jani.


-- 
Jani Nikula, Intel Open Source Graphics Center

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight
  2019-12-18  7:14                             ` Jani Nikula
@ 2019-12-18  9:38                               ` Lee Jones
  0 siblings, 0 replies; 24+ messages in thread
From: Lee Jones @ 2019-12-18  9:38 UTC (permalink / raw)
  To: Jani Nikula
  Cc: Hans de Goede, Maarten Lankhorst, Joonas Lahtinen, Rodrigo Vivi,
	Ville Syrjälä,
	Rafael J . Wysocki, Len Brown, Andy Shevchenko, linux-acpi,
	intel-gfx, dri-devel, linux-kernel

On Wed, 18 Dec 2019, Jani Nikula wrote:

> On Tue, 17 Dec 2019, Lee Jones <lee.jones@linaro.org> wrote:
> > Hans was making the case that this was impractical for DRM, due to the
> > amount of churn you guys receive, hence the discussion.  I'm very
> > pleased that this is not the case.
> 
> Heh, well, it is the case, but the point is that should be our problem,
> not yours. ;)

:)

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2019-12-18  9:39 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-19 15:18 [PATCH 0/3] drm/i915 / LPSS / mfd: Select correct PWM controller to use based on VBT Hans de Goede
2019-11-19 15:18 ` [PATCH 1/3] ACPI / LPSS: Rename pwm_backlight pwm-lookup to pwm_soc_backlight Hans de Goede
2019-11-29 11:59   ` Rafael J. Wysocki
2019-11-19 15:18 ` [PATCH 2/3] mfd: intel_soc_pmic: Rename pwm_backlight pwm-lookup to pwm_pmic_backlight Hans de Goede
2019-12-10  8:51   ` Lee Jones
2019-12-11 17:29     ` Hans de Goede
2019-12-12  8:45       ` Lee Jones
2019-12-12 14:34         ` Hans de Goede
2019-12-12 15:52           ` Lee Jones
2019-12-12 19:02             ` Hans de Goede
2019-12-13  8:27               ` Lee Jones
2019-12-13 12:40                 ` Hans de Goede
2019-12-16  9:30                   ` Lee Jones
2019-12-16 10:04                     ` Hans de Goede
2019-12-17  8:11                       ` Lee Jones
2019-12-17 13:25                         ` Jani Nikula
2019-12-17 13:51                           ` Lee Jones
2019-12-18  7:14                             ` Jani Nikula
2019-12-18  9:38                               ` Lee Jones
2019-11-19 15:18 ` [PATCH 3/3] drm/i915: DSI: select correct PWM controller to use based on the VBT Hans de Goede
2019-11-19 15:47   ` Ville Syrjälä
2019-11-19 16:48     ` Hans de Goede
2019-11-19 15:43 ` [PATCH 0/3] drm/i915 / LPSS / mfd: Select correct PWM controller to use based on VBT Jani Nikula
2019-11-19 16:32 ` Andy Shevchenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).