<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEEDINFO "
   title="NEEDINFO - [BYT LPSS backlight] Acer Aspire Switch 10 backlight control"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=90075#c9">Comment # 9</a>
              on <a class="bz_bug_link 
          bz_status_NEEDINFO "
   title="NEEDINFO - [BYT LPSS backlight] Acer Aspire Switch 10 backlight control"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=90075">bug 90075</a>
              from <span class="vcard"><a class="email" href="mailto:darlor@seznam.cz" title="darlor@seznam.cz">darlor@seznam.cz</a>
</span></b>
        <pre>This patch I have already applied.

dev_priv->vbt.dsi.config->pwm_blc == 1
PPS_BLC_PMIC==0 as defined in drivers/gpu/drm/i915/intel_bios.h, line 786

so the while retry loop does not execute at all.

if (dev_priv->vbt.dsi.config->pwm_blc == PPS_BLC_PMIC) {
        int retry = 4;
        do {
         intel_dsi->gpio_panel =
             gpiod_get(dev->dev, "panel", GPIOD_OUT_HIGH);
            msleep(50);
        } while (IS_ERR(intel_dsi->gpio_panel) && --retry);


        if (!retry) {
             DRM_ERROR("Failed to own gpio for panel control\n");
             intel_dsi->gpio_panel = NULL;
         }

New dmesg debug. Message from inside the loop is missing.

[    5.668493] ZR intel_soc_pmic_i2c_probe() starting pwm_add_table
[    5.668509] ZR pwm_add_table mutex lock and size_t num = 1
[    5.668518] ZR pwm_add_table inside while (num--){...} num=0 and
&table->provider = crystal_cove_pwm and &table->dev_id = 0000:00:02.0 and
&table->con_id = pwm_backlight
[    5.668536] ZR pwm_add_table mutex unlock
[    5.758320] ZR intel_dsi_init BEFORE if (dev_priv->vbt.dsi.config->pwm_blc
== PPS_BLC_PMIC) {...} AND dev_priv->vbt.dsi.config->pwm_blc is set to 1
[    5.758340] ZR intel_dsi_init AFTER if (dev_priv->vbt.dsi.config->pwm_blc ==
PPS_BLC_PMIC) {...}
[    5.758446] ZR pwm_setup_backlight after variable definition
[    5.758456] ZR pwm_setup_backlight pwm is set to &lpss_pwm_info
[    5.758464] ZR *pwm_get()
[    5.758472] ZR *pwm_get() const char *dev_id = 0000:00:02.0 *con_id=pwm_lpss
[    5.758480] ZR *pwm_get() IS_ENABLE(CONFIG_OF) && dev && dev->of_node =
FALSE and non return
[    5.758492] ZR *pwm_get() and mutex_lock(&pwm_lookup_lock);
[    5.758500] ZR *pwm_get() inside list_for_each_entry() 0000:00:02.0 match =
0
[    5.758509] ZR *pwm_get() after list_for_each_entry() best = 0
[    5.758516] ZR *pwm_get() (!chosen==true) goto out
[    5.758524] ZR *pwm_get() mutex_unlock(&pwm_lookup_lock);
[    5.758531] ZR Failed to own the pwm chip: pwm_lpss</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>