On Wed, Sep 7, 2011 at 21:30, Bernhard Schmidt <bschmidt_at_freebsd.org> wrote: > On Wed, Sep 7, 2011 at 15:11, Tz-Huan Huang <tzhuan_at_gmail.com> wrote: >> On Wed, Sep 7, 2011 at 20:34, Bernhard Schmidt <bschmidt_at_freebsd.org> wrote: >>> On Wed, Sep 7, 2011 at 12:10, Kevin Lo <kevlo_at_freebsd.org> wrote: >>>> >>>> Please try attached patch. It seems like OpenBSD added support >>>> for 6205, but I'm not sure if it works for 6250. >> >> Okay, I am re-building the kernel now, >> will report here if any news. >> >>> Worth a try, but I don't think it will make a difference. I had that >>> code once (it should even be visible on the svn history) but removed >>> it because it isn't required, the 6005 series devices work very well >>> without it (I'm using a 6230 (6000g2b) daily) without issues. What is >>> import though is which calibration results are sent to the runtime >>> firmware, I suspect there might be an issue in >>> iwn5000_rx_calib_results() around IWN5000_PHY_CALIB_DC. >>> >>> I remember that someone reported the 6250 devices working once, it >>> might be worth going over the last revisions (there where some >>> calibration related changes) and figure out which one broke it. >> >> Yes, this device works fine according to this post: >> http://forums.freebsd.org/showthread.php?t=19839 >> >> I have scanned the source but it seems that the iwn sources changed a lot... > > Yeah, thanks, I start to remember.. > > Seems like I broke 6250 support by adding support for 6005. Point is, > the DC calibration result generated by the init firmware is too large > (saving calibration result code=8 len=3964, compare with other > results..) to pass over to the runtime firmware, this is where it > chokes. The solution is to not bother about it at all and let the > runtime firmware do the calibration again, so no need to send > anything. Basically, Kevin's patch is correct, it should also just > remove handling of PHY_CALIB_DC in iwn5000_rx_calib_results(), ideally > for all >= 6000 devices. > > Can you try this in addition to Kevin's patch? It works! Thank you all so much! :-) Tz-Huan > Index: if_iwn.c > =================================================================== > --- if_iwn.c (revision 225188) > +++ if_iwn.c (working copy) > _at__at_ -2502,9 +2502,7 _at__at_ iwn5000_rx_calib_results(struct iwn_softc *sc, str > > switch (calib->code) { > case IWN5000_PHY_CALIB_DC: > - if ((sc->sc_flags & IWN_FLAG_INTERNAL_PA) == 0 && > - (sc->hw_type == IWN_HW_REV_TYPE_5150 || > - sc->hw_type >= IWN_HW_REV_TYPE_6000)) > + if (sc->hw_type == IWN_HW_REV_TYPE_5150) > idx = 0; > break; > case IWN5000_PHY_CALIB_LO: > > Thanks > > -- > Bernhard >Received on Wed Sep 07 2011 - 11:52:02 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:17 UTC