Search Linux Wireless

Re: [ipw3945-devel] [BUG] iwlwifi 3945 works only with disable_hw_scan=1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jun 16, 2008 at 5:35 PM, Dan Williams <dcbw@xxxxxxxxxx> wrote:
> On Mon, 2008-06-16 at 09:08 +0300, Maxim Levitsky wrote:
>> Tomas Winkler wrote:
>> > On Mon, Jun 16, 2008 at 8:50 AM, Maxim Levitsky <maximlevitsky@xxxxxxxxx> wrote:
>> >> Tomas Winkler wrote:
>> >>> On Sun, Jun 15, 2008 at 6:09 PM, Tomas Winkler <tomasw@xxxxxxxxx> wrote:
>> >>>> On Sun, Jun 15, 2008 at 5:12 PM, Maxim Levitsky <maximlevitsky@xxxxxxxxx>
>> >>>> wrote:
>> >>>>> Tomas Winkler wrote:
>> >>>>>> On Sun, Jun 15, 2008 at 4:42 PM, Maxim Levitsky
>> >>>>>> <maximlevitsky@xxxxxxxxx>
>> >>>>>> wrote:
>> >>>>>>> Tomas Winkler wrote:
>> >>>>>>>> On Fri, Jun 13, 2008 at 6:06 PM, Maxim Levitsky
>> >>>>>>>> <maximlevitsky@xxxxxxxxx>
>> >>>>>>>> wrote:
>> >>>>>>>>> Tor Håkon Haugen wrote:
>> >>>>>>>>>> John W. Linville wrote:
>> >>>>>>>>>>> On Fri, Jun 13, 2008 at 03:35:23PM +0800, Zhu Yi wrote:
>> >>>>>>>>>>>> On Thu, 2008-06-12 at 09:59 -0400, John W. Linville wrote:
>> >>>>>>>>>>>>> Honestly I'm tempted to change it to "enable_hw_scan" instead...
>> >>>>>>>>>>>> Give the advantages, I'd like to use it if we can fix the bug (I
>> >>>>>>>>>>>> haven't
>> >>>>>>>>>>>> seen what the bug is myself). But you are free to change the
>> >>>>>>>>>>>> default
>> >>>>>>>>>>>> value until it is fixed. There is no such problem for 4965,
>> >>>>>>>>>>>> right?
>> >>>>>>>>>>> AFAICT only the 3945 seems to need it.
>> >>>>>>>>>>>
>> >>>>>>>>>> I can confirm that this also applies to 4965 as a friend of mine
>> >>>>>>>>>> has
>> >>>>>>>>>> this card. According to him the card works a lot better with the
>> >>>>>>>>>> parameters "swcrypto=1" and "disable_hw_scan=1".
>> >>>>>>>>> Just to make it clear,
>> >>>>>>>>> iwl3945 doesn't work at all without disable_hw_scan=1 here.
>> >>>>>>>>> The driver just shuts down thee card since it detects microcode
>> >>>>>>>>> error.
>> >>>>>>>>>
>> >>>>>>>> It looks like this is all caused by the big rate, band patch. Looks
>> >>>>>>>> like A band scan channels are not configured correctly for the
>> >>>>>>>> scanning. This crashes the firmware.
>> >>>>>>>>
>> >>>>>>>> Tomas
>> >>>>>>> Probably, I see that eeprom according to dmesg contains no info about
>> >>>>>>> A
>> >>>>>>> channels, so maybe this crashes the firmware.
>> >>>>>>>
>> >>>>>> Can you please send your dmesg.
>> >>>>> I did that
>> >>>>> (You mean dmesg without disable_hw_scan=1?)
>> >>>>>
>> >>>>> If not what debug options I should include
>> >>>>> (I tried same firmware debug options, but the log wrapped around.)
>> >>>>>
>> >>>>> dmesg without disable_hw_scan=1 attached.
>> >>>>>
>> >>>>>
>> >>>>>>> I have few questions:
>> >>>>>>>
>> >>>>>>> * Is there a software workaround without the need to update the
>> >>>>>>> firmware?
>> >>>>>> Yes
>> >>>>>>
>> >>>>>>> * Is the firmware error so harmful, so driver can't continue?
>> >>>>>> This is firmware misconfiguration.  Driver should be friendly to
>> >>>>>> firmware and use correctly API.
>> >>>>>>
>> >>>>>>> * Can I expect updated version of the firmware with  fix?
>> >>>>>> No need so far.
>> >>>>>>
>> >>>>>>> Sadly this confirms that firmware is worse that I thought, it is
>> >>>>>>> closer
>> >>>>>>> to
>> >>>>>>> closed drivers.
>> >>>>>> The firmware API is open, it just wasn't used correctly.
>> >>>>> I mean if there is a bug in firmware, nobody expect intel can fix it.
>> >>>> Intel is fixing bugs in the firmware. Still this doesn't look like a
>> >>>> firmware error.
>> >>>>
>> >>>>> BTW you say that firmware api is open,
>> >>>>> is there a programming manual for this wireless chip?
>> >>>> it's well documented in -commands.h file
>> >>>
>> >>>
>> >>> Please try this one
>> >>>
>> >>> --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
>> >>> +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
>> >>> @@ -3348,7 +3348,10 @@ static void
>> >>> iwl3945_rx_scan_complete_notif(struct iwl3945_priv *priv,
>> >>>
>> >>>        /* Remove this scanned band from the list
>> >>>         * of pending bands to scan */
>> >>> -       priv->scan_bands--;
>> >>> +       if (priv->cfg->sku & IWL_SKU_A)
>> >>> +               priv->scan_bands--;
>> >>> +       else
>> >>> +               priv->scan_bands = 0;
>> >>>
>> >>>
>> >>
>> >> I tested this patch, and it fixes this issue, Thanks a lot.
>> >>
>> > Thanks a lot for helping resolve this. I will post an official patch.
>> > Tomas
>>
>> Thanks to you too.
>>
>> I just want to note that hardware scanning doesn't work well here
>> (something unrelated)
>>
>> First of all I noticed large delays in communications occurring
>> sometimes, I for example tried pinging Google, and every 20 replies
>> I get about 10 lost packets. (this is exactly what hardware scanning
>> should prevent, but it seems that the opposite happens)
>>
>> I tried that again now, and see no delays, but I reproduced this twice.
>>
>> Then power levels go crazy, the nm-applet shows that my access point
>> have 23% quality, then 100%, then something low again, and looking list
>> of networks withing same applet, it shows for example now that all 3
>> networks (mine, and two neighbors) have 100% quality, which is just wrong.
>
> Note that NM will periodically request scans (~ every 2 minutes or so)
> which can cause latency in pings.  But AFAIK it shouldn't really cause
> _lost_ pings, since the driver and the AP need to work together to avoid
> dropping packets when the card isn't on the same channel as the AP is.
> I'm pretty sure mac80211 handles this in software (by doing the
> powersave poll trick to get the AP to buffer frames for the STA while
> not on the associated channel).  Not sure how the hardware handles it,
> but frames for the AP should _NOT_ be leaking out when the card isn't on
> the same channel as the AP.
>
The same mechanism is used in HW scanning but with luxury of real time system.
Tomas
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux