From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kalle Valo Subject: Re: [RESEND] [PATCH 3/3] iwlwifi: Load firmware exclusively for Intel WiFi Date: Wed, 03 Oct 2018 12:57:57 +0300 Message-ID: <871s97ic7u.fsf@kamboji.qca.qualcomm.com> References: <20181003073556.28154-1-kai.heng.feng@canonical.com> <20181003073556.28154-3-kai.heng.feng@canonical.com> <87y3bfiees.fsf@kamboji.qca.qualcomm.com> <265BAF93-4BFF-4850-92F7-80AC39496473@canonical.com> <0BA3FCBA62E2DC44AF3030971E174FB301336D868D@HASMSX111.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: Kai Heng Feng , LKML , "Berg\, Johannes" , "Coelho\, Luciano" , linuxwifi , "David S. Miller" , "linux-wireless\@vger.kernel.org" , "netdev\@vger.kernel.org" , linux-bluetooth@vger.kernel.org To: "Grumbach\, Emmanuel" Return-path: In-Reply-To: <0BA3FCBA62E2DC44AF3030971E174FB301336D868D@HASMSX111.ger.corp.intel.com> (Emmanuel Grumbach's message of "Wed, 3 Oct 2018 09:50:58 +0000") Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org + linux-bluetooth "Grumbach, Emmanuel" writes: >>=20 >> > On Oct 3, 2018, at 5:10 PM, Kalle Valo wrote: >> > >> > Kai-Heng Feng writes: >> > >> >> To avoid the firmware loading race between Bluetooth and WiFi on >> >> Intel 8260, load firmware exclusively when BT_INTEL is enabled. >> >> >> >> Signed-off-by: Kai-Heng Feng >> > >> > Still the commit log tells nothing about the actual problem which >> > makes review impossible. >>=20 >> Sorry for that. The first two patches [1] only sends to linux-bluetooth = and >> LMKL. >>=20 >> I don=E2=80=99t know what really happened at hardware/firmware level, bu= t making >> btusb and iwlwifi load firmware sequentially can workaround the issue. >>=20 >> Matt Chen may be able to explain this issue with more detail. >>=20 >> [1] https://lkml.org/lkml/2018/10/3/322 >> > > I just read the code of this patch and I don't quite understand. > You have a function that is declared as a non-inline function in two diff= erent header files? > btintel_firmware_lock is declared here: > > --- /dev/null > +++ b/include/linux/intel-wifi-bt.h > @@ -0,0 +1,8 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#ifndef __INTEL_WIFI_BT_H__ > +#define __INTEL_WIFI_BT_H__ > + > +void btintel_firmware_lock(void); > > And ... > > diff --git a/drivers/bluetooth/btintel.h b/drivers/bluetooth/btintel.h > index 41c642cc523f..1373ffc2b575 100644 > --- a/drivers/bluetooth/btintel.h > +++ b/drivers/bluetooth/btintel.h > @@ -102,6 +102,8 @@ int btintel_read_boot_params(struct hci_dev *hdev, > struct intel_boot_params *params); > int btintel_download_firmware(struct hci_dev *dev, const struct firmware= *fw, > u32 *boot_param); > +void btintel_firmware_lock(void); > > > This can't be right. --=20 Kalle Valo