* [PATCH resend 1/2] drm/i915: panel: Use intel_panel_compute_brightness() from pwm_setup_backlight()
@ 2020-02-21 17:29 Hans de Goede
2020-02-21 17:29 ` [PATCH resend 2/2] drm/i915: Add invert-brightness quirk for Thundersoft TST178 tablet Hans de Goede
2020-03-03 10:29 ` [PATCH resend 1/2] drm/i915: panel: Use intel_panel_compute_brightness() from pwm_setup_backlight() Hans de Goede
0 siblings, 2 replies; 4+ messages in thread
From: Hans de Goede @ 2020-02-21 17:29 UTC (permalink / raw)
To: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Ville Syrjälä
Cc: Hans de Goede, intel-gfx, dri-devel
Use intel_panel_compute_brightness() from pwm_setup_backlight() so that
we correctly take i915_modparams.invert_brightness and/or
QUIRK_INVERT_BRIGHTNESS into account when setting + getting the initial
brightness value.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/gpu/drm/i915/display/intel_panel.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
index 7b3ec6eb3382..9ebee7d93414 100644
--- a/drivers/gpu/drm/i915/display/intel_panel.c
+++ b/drivers/gpu/drm/i915/display/intel_panel.c
@@ -1843,6 +1843,7 @@ static int pwm_setup_backlight(struct intel_connector *connector,
struct drm_i915_private *dev_priv = to_i915(dev);
struct intel_panel *panel = &connector->panel;
const char *desc;
+ u32 level, ns;
int retval;
/* Get the right PWM chip for DSI backlight according to VBT */
@@ -1866,8 +1867,12 @@ static int pwm_setup_backlight(struct intel_connector *connector,
*/
pwm_apply_args(panel->backlight.pwm);
- retval = pwm_config(panel->backlight.pwm, CRC_PMIC_PWM_PERIOD_NS,
- CRC_PMIC_PWM_PERIOD_NS);
+ panel->backlight.min = 0; /* 0% */
+ panel->backlight.max = 100; /* 100% */
+ level = intel_panel_compute_brightness(connector, 100);
+ ns = DIV_ROUND_UP(level * CRC_PMIC_PWM_PERIOD_NS, 100);
+
+ retval = pwm_config(panel->backlight.pwm, ns, CRC_PMIC_PWM_PERIOD_NS);
if (retval < 0) {
DRM_ERROR("Failed to configure the pwm chip\n");
pwm_put(panel->backlight.pwm);
@@ -1875,11 +1880,10 @@ static int pwm_setup_backlight(struct intel_connector *connector,
return retval;
}
- panel->backlight.min = 0; /* 0% */
- panel->backlight.max = 100; /* 100% */
- panel->backlight.level = DIV_ROUND_UP(
- pwm_get_duty_cycle(panel->backlight.pwm) * 100,
- CRC_PMIC_PWM_PERIOD_NS);
+ level = DIV_ROUND_UP(pwm_get_duty_cycle(panel->backlight.pwm) * 100,
+ CRC_PMIC_PWM_PERIOD_NS);
+ panel->backlight.level =
+ intel_panel_compute_brightness(connector, level);
panel->backlight.enabled = panel->backlight.level != 0;
DRM_INFO("Using %s PWM for LCD backlight control\n", desc);
--
2.25.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH resend 2/2] drm/i915: Add invert-brightness quirk for Thundersoft TST178 tablet
2020-02-21 17:29 [PATCH resend 1/2] drm/i915: panel: Use intel_panel_compute_brightness() from pwm_setup_backlight() Hans de Goede
@ 2020-02-21 17:29 ` Hans de Goede
2020-03-03 10:29 ` [PATCH resend 1/2] drm/i915: panel: Use intel_panel_compute_brightness() from pwm_setup_backlight() Hans de Goede
1 sibling, 0 replies; 4+ messages in thread
From: Hans de Goede @ 2020-02-21 17:29 UTC (permalink / raw)
To: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Ville Syrjälä
Cc: Hans de Goede, intel-gfx, dri-devel
The Thundersoft TST178 tablet uses a DSI panel with an external PWM
controller (as all DSI panels do). But unlike other DSI panels a duty-cycle
of 100% turns the backlight off and 0% sets it to maximum brightness.
I've checked the VBT and there is a BDB_LVDS_BACKLIGHT section, but
it does not set the active_low_pwm flag. This tablet re-uses the main
PCI vendor and product ids for the subsystem ids, so I see no other option
then to add a DMI based quirk to fix this.
Note that the PWM backlight code in intel_panel.c currently does not honor
the vbt.active_low_pwm flag, but that does not matter in this case.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/gpu/drm/i915/display/intel_quirks.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_quirks.c b/drivers/gpu/drm/i915/display/intel_quirks.c
index 399b1542509f..54dba152ead8 100644
--- a/drivers/gpu/drm/i915/display/intel_quirks.c
+++ b/drivers/gpu/drm/i915/display/intel_quirks.c
@@ -82,6 +82,16 @@ static const struct intel_dmi_quirk intel_dmi_quirks[] = {
DMI_MATCH(DMI_PRODUCT_NAME, ""),
},
},
+ {
+ .callback = intel_dmi_reverse_brightness,
+ .ident = "Thundersoft TST178 tablet",
+ /* DMI strings are too generic, also match on BIOS date */
+ .matches = {DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
+ DMI_EXACT_MATCH(DMI_BOARD_NAME, "Aptio CRB"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "To be filled by O.E.M."),
+ DMI_EXACT_MATCH(DMI_BIOS_DATE, "04/15/2014"),
+ },
+ },
{ } /* terminating entry */
},
.hook = quirk_invert_brightness,
--
2.25.0
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH resend 1/2] drm/i915: panel: Use intel_panel_compute_brightness() from pwm_setup_backlight()
2020-02-21 17:29 [PATCH resend 1/2] drm/i915: panel: Use intel_panel_compute_brightness() from pwm_setup_backlight() Hans de Goede
2020-02-21 17:29 ` [PATCH resend 2/2] drm/i915: Add invert-brightness quirk for Thundersoft TST178 tablet Hans de Goede
@ 2020-03-03 10:29 ` Hans de Goede
2020-03-04 15:15 ` Jani Nikula
1 sibling, 1 reply; 4+ messages in thread
From: Hans de Goede @ 2020-03-03 10:29 UTC (permalink / raw)
To: Jani Nikula, Joonas Lahtinen, Rodrigo Vivi, Ville Syrjälä
Cc: intel-gfx, dri-devel
Hi All,
On 2/21/20 6:29 PM, Hans de Goede wrote:
> Use intel_panel_compute_brightness() from pwm_setup_backlight() so that
> we correctly take i915_modparams.invert_brightness and/or
> QUIRK_INVERT_BRIGHTNESS into account when setting + getting the initial
> brightness value.
>
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ping? Any chance I can get a review from someone on this series?
Both patches are pretty trivial really...
Regards,
Hans
> ---
> drivers/gpu/drm/i915/display/intel_panel.c | 18 +++++++++++-------
> 1 file changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
> index 7b3ec6eb3382..9ebee7d93414 100644
> --- a/drivers/gpu/drm/i915/display/intel_panel.c
> +++ b/drivers/gpu/drm/i915/display/intel_panel.c
> @@ -1843,6 +1843,7 @@ static int pwm_setup_backlight(struct intel_connector *connector,
> struct drm_i915_private *dev_priv = to_i915(dev);
> struct intel_panel *panel = &connector->panel;
> const char *desc;
> + u32 level, ns;
> int retval;
>
> /* Get the right PWM chip for DSI backlight according to VBT */
> @@ -1866,8 +1867,12 @@ static int pwm_setup_backlight(struct intel_connector *connector,
> */
> pwm_apply_args(panel->backlight.pwm);
>
> - retval = pwm_config(panel->backlight.pwm, CRC_PMIC_PWM_PERIOD_NS,
> - CRC_PMIC_PWM_PERIOD_NS);
> + panel->backlight.min = 0; /* 0% */
> + panel->backlight.max = 100; /* 100% */
> + level = intel_panel_compute_brightness(connector, 100);
> + ns = DIV_ROUND_UP(level * CRC_PMIC_PWM_PERIOD_NS, 100);
> +
> + retval = pwm_config(panel->backlight.pwm, ns, CRC_PMIC_PWM_PERIOD_NS);
> if (retval < 0) {
> DRM_ERROR("Failed to configure the pwm chip\n");
> pwm_put(panel->backlight.pwm);
> @@ -1875,11 +1880,10 @@ static int pwm_setup_backlight(struct intel_connector *connector,
> return retval;
> }
>
> - panel->backlight.min = 0; /* 0% */
> - panel->backlight.max = 100; /* 100% */
> - panel->backlight.level = DIV_ROUND_UP(
> - pwm_get_duty_cycle(panel->backlight.pwm) * 100,
> - CRC_PMIC_PWM_PERIOD_NS);
> + level = DIV_ROUND_UP(pwm_get_duty_cycle(panel->backlight.pwm) * 100,
> + CRC_PMIC_PWM_PERIOD_NS);
> + panel->backlight.level =
> + intel_panel_compute_brightness(connector, level);
> panel->backlight.enabled = panel->backlight.level != 0;
>
> DRM_INFO("Using %s PWM for LCD backlight control\n", desc);
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH resend 1/2] drm/i915: panel: Use intel_panel_compute_brightness() from pwm_setup_backlight()
2020-03-03 10:29 ` [PATCH resend 1/2] drm/i915: panel: Use intel_panel_compute_brightness() from pwm_setup_backlight() Hans de Goede
@ 2020-03-04 15:15 ` Jani Nikula
0 siblings, 0 replies; 4+ messages in thread
From: Jani Nikula @ 2020-03-04 15:15 UTC (permalink / raw)
To: Hans de Goede, Joonas Lahtinen, Rodrigo Vivi, Ville Syrjälä
Cc: intel-gfx, dri-devel
On Tue, 03 Mar 2020, Hans de Goede <hdegoede@redhat.com> wrote:
> Hi All,
>
> On 2/21/20 6:29 PM, Hans de Goede wrote:
>> Use intel_panel_compute_brightness() from pwm_setup_backlight() so that
>> we correctly take i915_modparams.invert_brightness and/or
>> QUIRK_INVERT_BRIGHTNESS into account when setting + getting the initial
>> brightness value.
>>
>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>
> ping? Any chance I can get a review from someone on this series?
>
> Both patches are pretty trivial really...
For both,
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
And sad trombone, I was hoping I could nuke the whole module parameter
one of these days. It used to be something associated with gen4 only.
BR,
Jani.
>
> Regards,
>
> Hans
>
>
>
>> ---
>> drivers/gpu/drm/i915/display/intel_panel.c | 18 +++++++++++-------
>> 1 file changed, 11 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/display/intel_panel.c b/drivers/gpu/drm/i915/display/intel_panel.c
>> index 7b3ec6eb3382..9ebee7d93414 100644
>> --- a/drivers/gpu/drm/i915/display/intel_panel.c
>> +++ b/drivers/gpu/drm/i915/display/intel_panel.c
>> @@ -1843,6 +1843,7 @@ static int pwm_setup_backlight(struct intel_connector *connector,
>> struct drm_i915_private *dev_priv = to_i915(dev);
>> struct intel_panel *panel = &connector->panel;
>> const char *desc;
>> + u32 level, ns;
>> int retval;
>>
>> /* Get the right PWM chip for DSI backlight according to VBT */
>> @@ -1866,8 +1867,12 @@ static int pwm_setup_backlight(struct intel_connector *connector,
>> */
>> pwm_apply_args(panel->backlight.pwm);
>>
>> - retval = pwm_config(panel->backlight.pwm, CRC_PMIC_PWM_PERIOD_NS,
>> - CRC_PMIC_PWM_PERIOD_NS);
>> + panel->backlight.min = 0; /* 0% */
>> + panel->backlight.max = 100; /* 100% */
>> + level = intel_panel_compute_brightness(connector, 100);
>> + ns = DIV_ROUND_UP(level * CRC_PMIC_PWM_PERIOD_NS, 100);
>> +
>> + retval = pwm_config(panel->backlight.pwm, ns, CRC_PMIC_PWM_PERIOD_NS);
>> if (retval < 0) {
>> DRM_ERROR("Failed to configure the pwm chip\n");
>> pwm_put(panel->backlight.pwm);
>> @@ -1875,11 +1880,10 @@ static int pwm_setup_backlight(struct intel_connector *connector,
>> return retval;
>> }
>>
>> - panel->backlight.min = 0; /* 0% */
>> - panel->backlight.max = 100; /* 100% */
>> - panel->backlight.level = DIV_ROUND_UP(
>> - pwm_get_duty_cycle(panel->backlight.pwm) * 100,
>> - CRC_PMIC_PWM_PERIOD_NS);
>> + level = DIV_ROUND_UP(pwm_get_duty_cycle(panel->backlight.pwm) * 100,
>> + CRC_PMIC_PWM_PERIOD_NS);
>> + panel->backlight.level =
>> + intel_panel_compute_brightness(connector, level);
>> panel->backlight.enabled = panel->backlight.level != 0;
>>
>> DRM_INFO("Using %s PWM for LCD backlight control\n", desc);
>>
>
--
Jani Nikula, Intel Open Source Graphics Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-03-04 15:15 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-21 17:29 [PATCH resend 1/2] drm/i915: panel: Use intel_panel_compute_brightness() from pwm_setup_backlight() Hans de Goede
2020-02-21 17:29 ` [PATCH resend 2/2] drm/i915: Add invert-brightness quirk for Thundersoft TST178 tablet Hans de Goede
2020-03-03 10:29 ` [PATCH resend 1/2] drm/i915: panel: Use intel_panel_compute_brightness() from pwm_setup_backlight() Hans de Goede
2020-03-04 15:15 ` Jani Nikula
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).