<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>