From owner-freebsd-current@FreeBSD.ORG Wed Sep 7 13:52:02 2011 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF5281065672; Wed, 7 Sep 2011 13:52:01 +0000 (UTC) (envelope-from tzhuan@gmail.com) Received: from mail-qy0-f175.google.com (mail-qy0-f175.google.com [209.85.216.175]) by mx1.freebsd.org (Postfix) with ESMTP id 7DD328FC15; Wed, 7 Sep 2011 13:52:01 +0000 (UTC) Received: by qyk4 with SMTP id 4so1350869qyk.13 for ; Wed, 07 Sep 2011 06:52:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; bh=7sBZTH4Bw6KqtGePsWaLJHU0SGinIY9LEfoM+TMwnZw=; b=hvn3gXtuLq2/1iPBE4nEDOCmgyFX8vouUZJWF75tLHTveQH5t+H0mN1pLCyxuCd3yx ImUecrYVvOzAm6BQ/2KUrtGC8xuMH09SxjXBGajWT7iUfdNKOpca8xUSOtUm9winwETR nAuCLV9AJPjNtmihHyCIOObxQ9GrKn2+hIexU= Received: by 10.52.117.45 with SMTP id kb13mr2550614vdb.139.1315403520110; Wed, 07 Sep 2011 06:52:00 -0700 (PDT) MIME-Version: 1.0 Received: by 10.52.161.234 with HTTP; Wed, 7 Sep 2011 06:51:40 -0700 (PDT) In-Reply-To: References: <1315390225.3285.5.camel@esl.kevlo.org.kevlo.org> From: Tz-Huan Huang Date: Wed, 7 Sep 2011 21:51:40 +0800 Message-ID: To: Bernhard Schmidt Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: Kevin Lo , freebsd-current@freebsd.org Subject: Re: "Intel Centrino Advanced-N + WiMAX 6250" doesn't work X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Sep 2011 13:52:02 -0000 On Wed, Sep 7, 2011 at 21:30, Bernhard Schmidt wrote= : > On Wed, Sep 7, 2011 at 15:11, Tz-Huan Huang wrote: >> On Wed, Sep 7, 2011 at 20:34, Bernhard Schmidt wr= ote: >>> On Wed, Sep 7, 2011 at 12:10, Kevin Lo 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=3D19839 >> >> I have scanned the source but it seems that the iwn sources changed a lo= t... > > 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=3D8 len=3D3964, 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 >=3D 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 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- if_iwn.c =C2=A0 =C2=A0(revision 225188) > +++ if_iwn.c =C2=A0 =C2=A0(working copy) > @@ -2502,9 +2502,7 @@ iwn5000_rx_calib_results(struct iwn_softc *sc, str > > =C2=A0 =C2=A0 =C2=A0 =C2=A0switch (calib->code) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0case IWN5000_PHY_CALIB_DC: > - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if ((sc->sc_flags & IW= N_FLAG_INTERNAL_PA) =3D=3D 0 && > - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (sc->hw_= type =3D=3D IWN_HW_REV_TYPE_5150 || > - =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0sc= ->hw_type >=3D IWN_HW_REV_TYPE_6000)) > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (sc->hw_type =3D=3D= IWN_HW_REV_TYPE_5150) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0idx =3D 0; > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0break; > =C2=A0 =C2=A0 =C2=A0 =C2=A0case IWN5000_PHY_CALIB_LO: > > Thanks > > -- > Bernhard >