<p>Arthur Heymans has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/21234">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">sb/amd/sb700/lpc.c: Optimize code flow for less indentation<br><br>This changes the code flow so less indentation has to be used.<br><br>This also changes some lines to limit their length.<br><br>Change-Id: I50ca99a759a276e9d49327c6ae6c69eeab2a8c90<br>Signed-off-by: Arthur Heymans <arthur@aheymans.xyz><br>---<br>M src/southbridge/amd/sb700/lpc.c<br>1 file changed, 74 insertions(+), 72 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/34/21234/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/src/southbridge/amd/sb700/lpc.c b/src/southbridge/amd/sb700/lpc.c<br>index 8ee0395..281e247 100644<br>--- a/src/southbridge/amd/sb700/lpc.c<br>+++ b/src/southbridge/amd/sb700/lpc.c<br>@@ -163,83 +163,85 @@<br> device_t child;<br> for (child = link->children; child;<br> child = child->sibling) {<br>- if (child->enabled<br>- && (child->path.type == DEVICE_PATH_PNP)) {<br>- struct resource *res;<br>- for (res = child->resource_list; res; res = res->next) {<br>- u32 base, end; /* don't need long long */<br>- if (!(res->flags & IORESOURCE_IO))<br>+ if (!(child->enabled<br>+ && (child->path.type == DEVICE_PATH_PNP)))<br>+ continue;<br>+<br>+ struct resource *res;<br>+ for (res = child->resource_list; res; res = res->next) {<br>+ u32 base, end; /* don't need long long */<br>+ if (!(res->flags & IORESOURCE_IO))<br>+ continue;<br>+ base = res->base;<br>+ end = resource_end(res);<br>+ printk(BIOS_DEBUG, "sb700 lpc decode:%s,"<br>+ " base=0x%08x, end=0x%08x\n",<br>+ dev_path(child), base, end);<br>+ switch (base) {<br>+ case 0x60: /* KB */<br>+ case 0x64: /* MS */<br>+ reg |= (1 << 29);<br>+ break;<br>+ case 0x3f8: /* COM1 */<br>+ reg |= (1 << 6);<br>+ break;<br>+ case 0x2f8: /* COM2 */<br>+ reg |= (1 << 7);<br>+ break;<br>+ case 0x378: /* Parallel 1 */<br>+ reg |= (1 << 0);<br>+ reg |= (1 << 1); /* + 0x778 for ECP */<br>+ break;<br>+ case 0x3f0: /* FD0 */<br>+ reg |= (1 << 26);<br>+ break;<br>+ case 0x220: /* Audio 0 */<br>+ reg |= (1 << 8);<br>+ break;<br>+ case 0x300: /* Midi 0 */<br>+ reg |= (1 << 18);<br>+ break;<br>+ case 0x400:<br>+ reg_x |= (1 << 16);<br>+ break;<br>+ case 0x480:<br>+ reg_x |= (1 << 17);<br>+ break;<br>+ case 0x500:<br>+ reg_x |= (1 << 18);<br>+ break;<br>+ case 0x580:<br>+ reg_x |= (1 << 19);<br>+ break;<br>+ case 0x4700:<br>+ reg_x |= (1 << 22);<br>+ break;<br>+ case 0xfd60:<br>+ reg_x |= (1 << 23);<br>+ break;<br>+ default:<br>+ if (var_num >= 3)<br>+ /* only 3 var ; compact them ? */<br> continue;<br>- base = res->base;<br>- end = resource_end(res);<br>- printk(BIOS_DEBUG, "sb700 lpc decode:%s, base=0x%08x, end=0x%08x\n",<br>- dev_path(child), base, end);<br>- switch (base) {<br>- case 0x60: /* KB */<br>- case 0x64: /* MS */<br>- reg |= (1 << 29);<br>+ switch (var_num) {<br>+ case 0:<br>+ reg_x |= (1 << 2);<br>+ if ((end - base) < 16)<br>+ wiosize |= (1 << 0);<br> break;<br>- case 0x3f8: /* COM1 */<br>- reg |= (1 << 6);<br>+ case 1:<br>+ reg_x |= (1 << 24);<br>+ if ((end - base) < 16)<br>+ wiosize |= (1 << 2);<br> break;<br>- case 0x2f8: /* COM2 */<br>- reg |= (1 << 7);<br>+ case 2:<br>+ reg_x |= (1 << 25);<br>+ reg_x |= (1 << 24);<br>+ if ((end - base) < 16)<br>+ wiosize |= (1 << 3);<br> break;<br>- case 0x378: /* Parallel 1 */<br>- reg |= (1 << 0);<br>- reg |= (1 << 1); /* + 0x778 for ECP */<br>- break;<br>- case 0x3f0: /* FD0 */<br>- reg |= (1 << 26);<br>- break;<br>- case 0x220: /* Audio 0 */<br>- reg |= (1 << 8);<br>- break;<br>- case 0x300: /* Midi 0 */<br>- reg |= (1 << 18);<br>- break;<br>- case 0x400:<br>- reg_x |= (1 << 16);<br>- break;<br>- case 0x480:<br>- reg_x |= (1 << 17);<br>- break;<br>- case 0x500:<br>- reg_x |= (1 << 18);<br>- break;<br>- case 0x580:<br>- reg_x |= (1 << 19);<br>- break;<br>- case 0x4700:<br>- reg_x |= (1 << 22);<br>- break;<br>- case 0xfd60:<br>- reg_x |= (1 << 23);<br>- break;<br>- default:<br>- if (var_num >= 3)<br>- continue; /* only 3 var ; compact them ? */<br>- switch (var_num) {<br>- case 0:<br>- reg_x |= (1 << 2);<br>- if ((end - base) < 16)<br>- wiosize |= (1 << 0);<br>- break;<br>- case 1:<br>- reg_x |= (1 << 24);<br>- if ((end - base) < 16)<br>- wiosize |= (1 << 2);<br>- break;<br>- case 2:<br>- reg_x |= (1 << 25);<br>- reg_x |= (1 << 24);<br>- if ((end - base) < 16)<br>- wiosize |= (1 << 3);<br>- break;<br>- }<br>- reg_var[var_num++] =<br>- base & 0xffff;<br> }<br>+ reg_var[var_num++] = base & 0xffff;<br> }<br> }<br> }<br></pre><p>To view, visit <a href="https://review.coreboot.org/21234">change 21234</a>. To unsubscribe, 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/21234"/><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-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I50ca99a759a276e9d49327c6ae6c69eeab2a8c90 </div>
<div style="display:none"> Gerrit-Change-Number: 21234 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Arthur Heymans <arthur@aheymans.xyz> </div>