<div dir="ltr"><div>Dear Sir.<br><br></div><div>the fe_reset only used to reset ethernet and switch driver.<br></div>i think your problem is the old code is wrong.<br>at ethernet driver(soc_rt305x.c) it just clean all reset bit (enable all functions. usb?). <br>but the new code only reset and enable ethernet and switch block.<br>you can see the diff as below.<br><br> static void rt5350_fe_reset(void)<br> {<br>-       rt_sysc_w32(RT305X_RESET_FE | RT305X_RESET_ESW, SYSC_REG_RESET_CTRL);<br>-       rt_sysc_w32(0, SYSC_REG_RESET_CTRL);<br>+       fe_reset(RT305X_RESET_FE | RT305X_RESET_ESW);<br> }<br><br>+void fe_reset(u32 reset_bits)<br>+{<br>+       u32 t;<br>+<br>+       t = rt_sysc_r32(SYSC_REG_RSTCTRL);<br>+       t |= reset_bits;<br>+       rt_sysc_w32(t , SYSC_REG_RSTCTRL);<br>+       udelay(10);<br>+<br>+       t &= ~reset_bits;<br>+       rt_sysc_w32(t, SYSC_REG_RSTCTRL);<br>+       udelay(10);<br>+}<br><br><div><div>Best Regards.<br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-02-03 13:44 GMT+08:00 Russell Senior <span dir="ltr"><<a href="mailto:russell@personaltelco.net" target="_blank">russell@personaltelco.net</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">>>>>> "Russell" == Russell Senior <<a href="mailto:russell@personaltelco.net">russell@personaltelco.net</a>> writes:<br>
<br>
Russell> I just wanted to give a heads up that I built trunk r44245 last<br>
Russell> night and discovered two problems: reboot no longer works, and<br>
Russell> USB fails to enumerate a usb-serial device that worked<br>
Russell> previously (specifically a pl2303).  To successfully reset, a<br>
Russell> power cycle is required.  These problems were not evident the<br>
Russell> last time I built, about 3 weeks ago, r43960.  The lsmod output<br>
Russell> is nearly identical between working/not-working (with some<br>
Russell> minor fuzz in a few module sizes).<br>
<br>
Russell> I'm planning to try bisecting this, but if someone knows the<br>
Russell> problem and beats me to it, I'd be grateful.  Bisecting is<br>
Russell> powerful but somewhat tedious. ;-)<br>
<br>
I bisected the problem.  It appears the bad commit is r44044 (r44043 is<br>
good).  The reset and usb problems appear at the same commit.<br>
<br>
commit fb038c46afa40edbd37eb9a93468312b287c5aa7<br>
Author: nbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73><br>
Date:   Sun Jan 18 20:17:07 2015 +0000<br>
<br>
    ralink: use fe_reset to control all reset<br>
<br>
    Signed-off-by: michael lee <<a href="mailto:igvtee@gmail.com">igvtee@gmail.com</a>><br>
<br>
    git-svn-id: svn://<a href="http://svn.openwrt.org/openwrt/trunk@44044" target="_blank">svn.openwrt.org/openwrt/trunk@44044</a><br>
    3c298f89-4303-0410-b956-a3cf2f4a3e73<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
--<br>
Russell Senior, President<br>
<a href="mailto:russell@personaltelco.net">russell@personaltelco.net</a><br>
</font></span></blockquote></div><br></div>