Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp2646706imj; Mon, 11 Feb 2019 06:25:24 -0800 (PST) X-Google-Smtp-Source: AHgI3IahBbBL7EcVg0VZrFNEqfkPxugHHVPVYw3zIIvW8DRUI25AkvidwGkADZ+o1Dtk9XwbXvho X-Received: by 2002:a63:61d8:: with SMTP id v207mr9070859pgb.308.1549895124278; Mon, 11 Feb 2019 06:25:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549895124; cv=none; d=google.com; s=arc-20160816; b=dfxU9J8FU8qZwmJJXNZ7usWhUojLV7v54OOSRMblGKu03VDMB2+f6U6SkLTkJqqQ55 58t95Sf1qIdaTgTInB3mPHWjPjlb0WSJptIJQxPqnMXQsHRXkc+Vx6p9AMkG1MCbgnO0 du4xZs1Ko08IccIdgDK4GRvPjYw/dE27wsXq9NSoxHazkm6GcXRXV+eXxNanL6yJM5Os wfhX63hn//D1pkjEw6NVVCqA90ZO23J7oMvAtf04sOHPEDyL+vSr//BsXHjdABKRFfQl 78tBkT4FH3P3i3NGIAzg4rNoF8Lr9QLp4B7ywbBCFRoDzMEtR3ZQ+SV5vEVQDnH8oh5D npkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=yxZvn/pOD6Wixmg3HHtdl8nPkaQNZIock1gY9YkyAm4=; b=nD6hRPcBKX3UDj+i1M58IHPvFQVmM+BBg7ho8DreqQjCA31NJa6ZKPCP35MDYuLmMo GjHhOp/kdsjGuZmX8tiQzmJhGyAWusuFoEWnCVxQadBEOOSffqpvIMTQ0ZUV+RyK9RYS yNTaNNA4scvS2eYN6TdvdsdOwZsveEHvG7SRwDCfhx8fndZWTxEE+wbxaP97SMGzNlOQ oouJxI3P/YEZi1nGQZE5FUwjidERLZGiGl9LFM1JU9+6GOr/JTAxL4sYq8RCBfR/9qnH kBR1QWHjL80YMJWpwTTKVt6XAiDM8q55Jir/Ri7Q+7hPiNEUSYTGbjue5DhjG2Zz7aOp dcQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=EO0AJQCr; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v11si691433pgo.11.2019.02.11.06.25.07; Mon, 11 Feb 2019 06:25:24 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=EO0AJQCr; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727843AbfBKOL1 (ORCPT + 99 others); Mon, 11 Feb 2019 09:11:27 -0500 Received: from mail-it1-f193.google.com ([209.85.166.193]:55295 "EHLO mail-it1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726228AbfBKOL1 (ORCPT ); Mon, 11 Feb 2019 09:11:27 -0500 Received: by mail-it1-f193.google.com with SMTP id i145so26525798ita.4; Mon, 11 Feb 2019 06:11:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=yxZvn/pOD6Wixmg3HHtdl8nPkaQNZIock1gY9YkyAm4=; b=EO0AJQCrJxYUwarJ5K+zlqjx0YtYaC4yHni2nXLgkcA7hWtsu4au5vUt8VToo8YtJb 8dPzuOAvM6mR1sPqWDgVDUbN7DHfwcPRjT/gCXbusBMeMXiMNQ/St+iRNP8i+pDstV4J TbhK07JrCA5bl4DEdjnAKhQbXCTfyHaSgRBUL0+fOmVUyWhAKyW1QhSW9AkxlUVGNERp LQmsiUzr46KDCC2A1+arjL6p0GOrqqaUxBhhiC5g+4aH9VW99pv0jTTp8qtmzyFARulD +JVih39pGmuBrEWRiFj2ROxr4Zrj1+EtGkXKqlz9v69uI16CK+wGFo7b1q3rW6sPb8Ml Wmsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=yxZvn/pOD6Wixmg3HHtdl8nPkaQNZIock1gY9YkyAm4=; b=LW/Cn7ze9+3v4askmD4GoytSoQkIMjdIwxicxx9yQVcmQQR37Pxp6fObEqhdeXwsP8 CltCDko5v/jyG1BlF5o+QGWX+i4g9zqlwYYN2iVUAHsXoU17IZH6SvfLo+36oS/R5Y7o HWUtAlnWze2hg8mpchPU1gFVfSf3RsvRPxWpLaLQVf/1j836P2Gnk3jM4Ax6TsufzU4F LnPd5HhA7FOsss66zoBR9Fn4pvwtGdL2hmmYbdSwB1g3vgcGg7btjdqva1zY3zs6+jYo S+rWdGDnkYjiBo26eyLnfWiXN5ik9QZuu4sAst6QyjzbQ4liWPKcJOXChY5O7Ni5tMyb +5ag== X-Gm-Message-State: AHQUAuYXuG2ztHT3ljmkuUdRYWyL+5qgvK731vecbKnI0IuK1KF8KDsl YbK6GRBmMG+FufW018pPXS2HpgVFNYtSZR17F9o= X-Received: by 2002:a5e:a608:: with SMTP id q8mr8781816ioi.82.1549894286268; Mon, 11 Feb 2019 06:11:26 -0800 (PST) MIME-Version: 1.0 References: <20190210195217.18817-1-lkundrak@v3.sk> <20190210195217.18817-3-lkundrak@v3.sk> In-Reply-To: <20190210195217.18817-3-lkundrak@v3.sk> From: Steve deRosier Date: Mon, 11 Feb 2019 06:10:49 -0800 Message-ID: Subject: Re: [PATCH 2/3] libertas_tf: don't defer firmware loading until start() To: Lubomir Rintel Cc: Kalle Valo , "David S. Miller" , linux-wireless , LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Feb 10, 2019 at 11:52 AM Lubomir Rintel wrote: > > In order to be able to get a MAC address before we register the device > with ieee80211 we'll need to load the firmware way earlier. > > There seems to be one problem with this: the device seems to start > with radio enabled and starts sending in frames right after the firmware > load finishes. This might be a firmware bug. Disable the radio as soon > as possible. > I've got a quibble with calling the behavior a bug. As far as I remember, it's behaving as designed/specified and was quite appropriate back when this driver originally went upstream. This is a 10 year old fw and driver and needs have changed - which doesn't mean it was wrong to do originally. Now, I'm not saying there's no bugs in the fw. Nor that it wouldn't be nice to change the behavior to accommodate this change. If I still had access to the firmware source I even might do so. ... > @@ -648,6 +642,19 @@ struct lbtf_private *lbtf_add_card(void *card, struct device *dmdev, > > INIT_WORK(&priv->cmd_work, lbtf_cmd_work); > INIT_WORK(&priv->tx_work, lbtf_tx_work); > + > + if (priv->ops->hw_prog_firmware(priv)) { > + lbtf_deb_usbd(&udev->dev, "Error programming the firmware\n"); > + priv->ops->hw_reset_device(priv); > + goto err_init_adapter; > + } > + > + /* The firmware seems to start with the radio enabled. Turn it > + * off before an actual mac80211 start callback is invoked. > + */ > + priv->radioon = RADIO_OFF; Maybe move this up a few lines to before you program the fw? Seems appropriate to initialize it first. While I expect there's no chance of a race as the mac80211 start callback hasn't been invoked yet, superficially it looks like there could be. > + lbtf_set_radio_control(priv); > + > if (ieee80211_register_hw(hw)) > goto err_init_adapter; > > -- > 2.20.1 > Reviewed-by: Steve deRosier