<p>Patrick Georgi <strong>merged</strong> this change.</p><p><a href="https://review.coreboot.org/c/coreboot/+/29924">View Change</a></p><div style="white-space:pre-wrap">Approvals:
build bot (Jenkins): Verified
Nico Huber: Looks good to me, approved
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">nb/intel/gm45: Make fetching the blc_pwm freq its own function<br><br>Also check the EDID string using strcmp instead of strncmp.<br><br>Change-Id: I9ad364f84f3658be98ce7ad3a6f0f0fe3247fc41<br>Signed-off-by: Arthur Heymans <arthur@aheymans.xyz><br>Reviewed-on: https://review.coreboot.org/c/29924<br>Tested-by: build bot (Jenkins) <no-reply@coreboot.org><br>Reviewed-by: Nico Huber <nico.h@gmx.de><br>---<br>M src/northbridge/intel/gm45/gma.c<br>1 file changed, 36 insertions(+), 25 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/northbridge/intel/gm45/gma.c b/src/northbridge/intel/gm45/gma.c</span><br><span>index b86e2b3..64b6a57 100644</span><br><span>--- a/src/northbridge/intel/gm45/gma.c</span><br><span>+++ b/src/northbridge/intel/gm45/gma.c</span><br><span>@@ -668,6 +668,39 @@</span><br><span> return (blc_mod << 16) | blc_mod;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static u16 get_blc_pwm_freq_value(const char *edid_ascii_string)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ static u16 blc_pwm_freq;</span><br><span style="color: hsl(120, 100%, 40%);">+ const struct blc_pwm_t *blc_pwm;</span><br><span style="color: hsl(120, 100%, 40%);">+ int i;</span><br><span style="color: hsl(120, 100%, 40%);">+ int blc_array_len;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if (blc_pwm_freq > 0)</span><br><span style="color: hsl(120, 100%, 40%);">+ return blc_pwm_freq;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ blc_array_len = get_blc_values(&blc_pwm);</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Find EDID string and pwm freq in lookup table */</span><br><span style="color: hsl(120, 100%, 40%);">+ for (i = 0; i < blc_array_len; i++) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (!strcmp(blc_pwm[i].ascii_string, edid_ascii_string)) {</span><br><span style="color: hsl(120, 100%, 40%);">+ blc_pwm_freq = blc_pwm[i].pwm_freq;</span><br><span style="color: hsl(120, 100%, 40%);">+ printk(BIOS_DEBUG, "Found EDID string: %s in lookup table, pwm: %dHz\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ blc_pwm[i].ascii_string, blc_pwm_freq);</span><br><span style="color: hsl(120, 100%, 40%);">+ break;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ if (i == blc_array_len)</span><br><span style="color: hsl(120, 100%, 40%);">+ printk(BIOS_NOTICE, "Your panels EDID `%s` wasn't found in the"</span><br><span style="color: hsl(120, 100%, 40%);">+ "lookup table.\n You may have issues with your panels"</span><br><span style="color: hsl(120, 100%, 40%);">+ "backlight.\n If you want to help improving coreboot"</span><br><span style="color: hsl(120, 100%, 40%);">+ "please report: this EDID string\n and the result"</span><br><span style="color: hsl(120, 100%, 40%);">+ "of `intel_read read BLC_PWM_CTL`"</span><br><span style="color: hsl(120, 100%, 40%);">+ "(from intel-gpu-tools)\n while running vendor BIOS\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ edid_ascii_string);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ return blc_pwm_freq;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> static void gma_pm_init_post_vbios(struct device *const dev,</span><br><span> const char *edid_ascii_string)</span><br><span> {</span><br><span>@@ -675,9 +708,7 @@</span><br><span> </span><br><span> u32 reg32;</span><br><span> u8 reg8;</span><br><span style="color: hsl(0, 100%, 40%);">- const struct blc_pwm_t *blc_pwm;</span><br><span style="color: hsl(0, 100%, 40%);">- int blc_array_len, i;</span><br><span style="color: hsl(0, 100%, 40%);">- u16 pwm_freq = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+ u16 pwm_freq;</span><br><span> </span><br><span> /* Setup Panel Power On Delays */</span><br><span> reg32 = gtt_read(PP_ON_DELAYS);</span><br><span>@@ -708,30 +739,10 @@</span><br><span> reg8 = 100;</span><br><span> if (conf->duty_cycle != 0)</span><br><span> reg8 = conf->duty_cycle;</span><br><span style="color: hsl(0, 100%, 40%);">- blc_array_len = get_blc_values(&blc_pwm);</span><br><span style="color: hsl(0, 100%, 40%);">- if (conf->default_pwm_freq != 0)</span><br><span style="color: hsl(120, 100%, 40%);">+ pwm_freq = get_blc_pwm_freq_value(edid_ascii_string);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (pwm_freq == 0 && conf->default_pwm_freq != 0)</span><br><span> pwm_freq = conf->default_pwm_freq;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- /* Find EDID string and pwm freq in lookup table */</span><br><span style="color: hsl(0, 100%, 40%);">- for (i = 0; i < blc_array_len; i++) {</span><br><span style="color: hsl(0, 100%, 40%);">- if (!strncmp(blc_pwm[i].ascii_string, edid_ascii_string,</span><br><span style="color: hsl(0, 100%, 40%);">- strlen(blc_pwm[i].ascii_string))) {</span><br><span style="color: hsl(0, 100%, 40%);">- pwm_freq = blc_pwm[i].pwm_freq;</span><br><span style="color: hsl(0, 100%, 40%);">- printk(BIOS_DEBUG, "Found EDID string: %s in lookup table, pwm: %dHz\n",</span><br><span style="color: hsl(0, 100%, 40%);">- blc_pwm[i].ascii_string, pwm_freq);</span><br><span style="color: hsl(0, 100%, 40%);">- break;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- if (i == blc_array_len)</span><br><span style="color: hsl(0, 100%, 40%);">- printk(BIOS_NOTICE, "Your panels EDID `%s` wasn't found in the"</span><br><span style="color: hsl(0, 100%, 40%);">- "lookup table.\n You may have issues with your panels"</span><br><span style="color: hsl(0, 100%, 40%);">- "backlight.\n If you want to help improving coreboot"</span><br><span style="color: hsl(0, 100%, 40%);">- "please report: this EDID string\n and the result"</span><br><span style="color: hsl(0, 100%, 40%);">- "of `intel_read read BLC_PWM_CTL`"</span><br><span style="color: hsl(0, 100%, 40%);">- "(from intel-gpu-tools)\n while running vendor BIOS\n",</span><br><span style="color: hsl(0, 100%, 40%);">- edid_ascii_string);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> if (pwm_freq == 0)</span><br><span> gtt_write(BLC_PWM_CTL, 0x06100610);</span><br><span> else</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/c/coreboot/+/29924">change 29924</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/c/coreboot/+/29924"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I9ad364f84f3658be98ce7ad3a6f0f0fe3247fc41 </div>
<div style="display:none"> Gerrit-Change-Number: 29924 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: Arthur Heymans <arthur@aheymans.xyz> </div>
<div style="display:none"> Gerrit-Reviewer: Arthur Heymans <arthur@aheymans.xyz> </div>
<div style="display:none"> Gerrit-Reviewer: Nico Huber <nico.h@gmx.de> </div>
<div style="display:none"> Gerrit-Reviewer: Patrick Georgi <pgeorgi@google.com> </div>
<div style="display:none"> Gerrit-Reviewer: Patrick Rudolph <siro@das-labor.org> </div>
<div style="display:none"> Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org> </div>
<div style="display:none"> Gerrit-MessageType: merged </div>