diff mbox series

[v4] Bluetooth: btintel: Correctly declare all module firmware files

Message ID 20221121145125.1303097-1-dimitri.ledkov@canonical.com (mailing list archive)
State Superseded
Headers show
Series [v4] Bluetooth: btintel: Correctly declare all module firmware files | expand

Checks

Context Check Description
tedd_an/pre-ci_am success Success
tedd_an/CheckPatch success CheckPatch PASS
tedd_an/GitLint success Gitlint PASS
tedd_an/SubjectPrefix success Gitlint PASS
tedd_an/BuildKernel success BuildKernel PASS
tedd_an/BuildKernel32 success BuildKernel32 PASS
tedd_an/TestRunnerSetup success TestRunnerSetup PASS
tedd_an/TestRunner_l2cap-tester success TestRunner PASS
tedd_an/TestRunner_iso-tester success TestRunner PASS
tedd_an/TestRunner_bnep-tester success TestRunner PASS
tedd_an/TestRunner_mgmt-tester success TestRunner PASS
tedd_an/TestRunner_rfcomm-tester success TestRunner PASS
tedd_an/TestRunner_sco-tester success TestRunner PASS
tedd_an/TestRunner_ioctl-tester success TestRunner PASS
tedd_an/TestRunner_mesh-tester success TestRunner PASS
tedd_an/TestRunner_smp-tester success TestRunner PASS
tedd_an/TestRunner_userchan-tester success TestRunner PASS
tedd_an/IncrementalBuild success Incremental Build PASS

Commit Message

Dimitri John Ledkov Nov. 21, 2022, 2:51 p.m. UTC
Strictly encode patterns of supported hw_variants of firmware files
the kernel driver supports requesting. This now includes many missing
and previously undeclared module firmware files for 0x07, 0x08,
0x11-0x14, 0x17-0x1b hw_variants.

This especially affects environments that only install firmware files
declared and referenced by the kernel modules. In such environments,
only the declared firmware files are copied resulting in most Intel
Bluetooth devices not working. I.e. host-only dracut-install initrds,
or Ubuntu Core kernel snaps.

BugLink: https://bugs.launchpad.net/bugs/1970819
Signed-off-by: Dimitri John Ledkov <dimitri.ledkov@canonical.com>
---
 Changes since v3:
 - Hopefully pacify trailing whitespace from GitLint in this optional
   portion of the commit.

 Changes since v2:
 - encode patterns for 0x17 0x18 0x19 0x1b hw_variants
 - rebase on top of latest rc tag

 Changes since v1:
 - encode strict patterns of supported firmware files for each of the
   supported hw_variant generations.

 drivers/bluetooth/btintel.c | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

Comments

bluez.test.bot@gmail.com Nov. 21, 2022, 3:32 p.m. UTC | #1
This is automated email and please do not reply to this email!

Dear submitter,

Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=697683

---Test result---

Test Summary:
CheckPatch                    PASS      0.62 seconds
GitLint                       PASS      0.29 seconds
SubjectPrefix                 PASS      0.09 seconds
BuildKernel                   PASS      35.41 seconds
BuildKernel32                 PASS      31.63 seconds
TestRunnerSetup               PASS      435.73 seconds
TestRunner_l2cap-tester       PASS      16.12 seconds
TestRunner_iso-tester         PASS      15.91 seconds
TestRunner_bnep-tester        PASS      5.62 seconds
TestRunner_mgmt-tester        PASS      107.99 seconds
TestRunner_rfcomm-tester      PASS      9.60 seconds
TestRunner_sco-tester         PASS      8.93 seconds
TestRunner_ioctl-tester       PASS      10.25 seconds
TestRunner_mesh-tester        PASS      7.02 seconds
TestRunner_smp-tester         PASS      8.81 seconds
TestRunner_userchan-tester    PASS      5.93 seconds
IncrementalBuild              PASS      33.30 seconds



---
Regards,
Linux Bluetooth
Tedd Ho-Jeong An Nov. 21, 2022, 11:44 p.m. UTC | #2
Hi Dimitri,

On Mon, 2022-11-21 at 14:51 +0000, Dimitri John Ledkov wrote:
> Strictly encode patterns of supported hw_variants of firmware files
> the kernel driver supports requesting. This now includes many missing
> and previously undeclared module firmware files for 0x07, 0x08,
> 0x11-0x14, 0x17-0x1b hw_variants.
> 
> This especially affects environments that only install firmware files
> declared and referenced by the kernel modules. In such environments,
> only the declared firmware files are copied resulting in most Intel
> Bluetooth devices not working. I.e. host-only dracut-install initrds,
> or Ubuntu Core kernel snaps.
> 
> BugLink: https://bugs.launchpad.net/bugs/1970819
> Signed-off-by: Dimitri John Ledkov <dimitri.ledkov@canonical.com>
> ---
>  Changes since v3:
>  - Hopefully pacify trailing whitespace from GitLint in this optional
>    portion of the commit.
> 
>  Changes since v2:
>  - encode patterns for 0x17 0x18 0x19 0x1b hw_variants
>  - rebase on top of latest rc tag
> 
>  Changes since v1:
>  - encode strict patterns of supported firmware files for each of the
>    supported hw_variant generations.
> 
>  drivers/bluetooth/btintel.c | 26 ++++++++++++++++++++++----
>  1 file changed, 22 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c
> index a657e9a3e96a..55efc4a067db 100644
> --- a/drivers/bluetooth/btintel.c
> +++ b/drivers/bluetooth/btintel.c
> @@ -2656,7 +2656,25 @@ MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
>  MODULE_DESCRIPTION("Bluetooth support for Intel devices ver " VERSION);
>  MODULE_VERSION(VERSION);
>  MODULE_LICENSE("GPL");
> -MODULE_FIRMWARE("intel/ibt-11-5.sfi");
> -MODULE_FIRMWARE("intel/ibt-11-5.ddc");
> -MODULE_FIRMWARE("intel/ibt-12-16.sfi");
> -MODULE_FIRMWARE("intel/ibt-12-16.ddc");
> +/* hw_variant 0x07 0x08 */
> +MODULE_FIRMWARE("intel/ibt-hw-37.7.*-fw-*.*.*.*.*.bseq");
> +MODULE_FIRMWARE("intel/ibt-hw-37.7.bseq");
> +MODULE_FIRMWARE("intel/ibt-hw-37.8.*-fw-*.*.*.*.*.bseq");
> +MODULE_FIRMWARE("intel/ibt-hw-37.8.bseq");
> +/* hw_variant 0x0b 0x0c */
> +MODULE_FIRMWARE("intel/ibt-11-*.sfi");
> +MODULE_FIRMWARE("intel/ibt-12-*.sfi");
> +MODULE_FIRMWARE("intel/ibt-11-*.ddc");
> +MODULE_FIRMWARE("intel/ibt-12-*.ddc");
> +/* hw_variant 0x11 0x12 0x13 0x14 */
> +MODULE_FIRMWARE("intel/ibt-17-*-*.sfi");
> +MODULE_FIRMWARE("intel/ibt-18-*-*.sfi");
> +MODULE_FIRMWARE("intel/ibt-19-*-*.sfi");
> +MODULE_FIRMWARE("intel/ibt-20-*-*.sfi");
> +MODULE_FIRMWARE("intel/ibt-17-*-*.ddc");
> +MODULE_FIRMWARE("intel/ibt-18-*-*.ddc");
> +MODULE_FIRMWARE("intel/ibt-19-*-*.ddc");
> +MODULE_FIRMWARE("intel/ibt-20-*-*.ddc");

There are firmware files for hw_variant 0x11 and 0x12 in an old format like
ibt-17-*.sfi, ibt-17-*.ddc, ibt-18-*.sfi, and ibt-18-*.ddc.

> +/* hw_variant 0x17 0x18 0x19 0x1b, read and use cnvi/cnvr */
> +MODULE_FIRMWARE("ibt-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9].sfi");
> +MODULE_FIRMWARE("ibt-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9].ddc");

I believe these are under intel/ folder.


Regards,
Tedd Ho-Jeong An
Dimitri John Ledkov Nov. 22, 2022, 12:31 p.m. UTC | #3
On Mon, 21 Nov 2022 at 23:44, Tedd Ho-Jeong An <tedd.an@linux.intel.com> wrote:
>
> Hi Dimitri,
>
> On Mon, 2022-11-21 at 14:51 +0000, Dimitri John Ledkov wrote:
> > Strictly encode patterns of supported hw_variants of firmware files
> > the kernel driver supports requesting. This now includes many missing
> > and previously undeclared module firmware files for 0x07, 0x08,
> > 0x11-0x14, 0x17-0x1b hw_variants.
> >
> > This especially affects environments that only install firmware files
> > declared and referenced by the kernel modules. In such environments,
> > only the declared firmware files are copied resulting in most Intel
> > Bluetooth devices not working. I.e. host-only dracut-install initrds,
> > or Ubuntu Core kernel snaps.
> >
> > BugLink: https://bugs.launchpad.net/bugs/1970819
> > Signed-off-by: Dimitri John Ledkov <dimitri.ledkov@canonical.com>
> > ---
> >  Changes since v3:
> >  - Hopefully pacify trailing whitespace from GitLint in this optional
> >    portion of the commit.
> >
> >  Changes since v2:
> >  - encode patterns for 0x17 0x18 0x19 0x1b hw_variants
> >  - rebase on top of latest rc tag
> >
> >  Changes since v1:
> >  - encode strict patterns of supported firmware files for each of the
> >    supported hw_variant generations.
> >
> >  drivers/bluetooth/btintel.c | 26 ++++++++++++++++++++++----
> >  1 file changed, 22 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c
> > index a657e9a3e96a..55efc4a067db 100644
> > --- a/drivers/bluetooth/btintel.c
> > +++ b/drivers/bluetooth/btintel.c
> > @@ -2656,7 +2656,25 @@ MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
> >  MODULE_DESCRIPTION("Bluetooth support for Intel devices ver " VERSION);
> >  MODULE_VERSION(VERSION);
> >  MODULE_LICENSE("GPL");
> > -MODULE_FIRMWARE("intel/ibt-11-5.sfi");
> > -MODULE_FIRMWARE("intel/ibt-11-5.ddc");
> > -MODULE_FIRMWARE("intel/ibt-12-16.sfi");
> > -MODULE_FIRMWARE("intel/ibt-12-16.ddc");
> > +/* hw_variant 0x07 0x08 */
> > +MODULE_FIRMWARE("intel/ibt-hw-37.7.*-fw-*.*.*.*.*.bseq");
> > +MODULE_FIRMWARE("intel/ibt-hw-37.7.bseq");
> > +MODULE_FIRMWARE("intel/ibt-hw-37.8.*-fw-*.*.*.*.*.bseq");
> > +MODULE_FIRMWARE("intel/ibt-hw-37.8.bseq");
> > +/* hw_variant 0x0b 0x0c */
> > +MODULE_FIRMWARE("intel/ibt-11-*.sfi");
> > +MODULE_FIRMWARE("intel/ibt-12-*.sfi");
> > +MODULE_FIRMWARE("intel/ibt-11-*.ddc");
> > +MODULE_FIRMWARE("intel/ibt-12-*.ddc");
> > +/* hw_variant 0x11 0x12 0x13 0x14 */
> > +MODULE_FIRMWARE("intel/ibt-17-*-*.sfi");
> > +MODULE_FIRMWARE("intel/ibt-18-*-*.sfi");
> > +MODULE_FIRMWARE("intel/ibt-19-*-*.sfi");
> > +MODULE_FIRMWARE("intel/ibt-20-*-*.sfi");
> > +MODULE_FIRMWARE("intel/ibt-17-*-*.ddc");
> > +MODULE_FIRMWARE("intel/ibt-18-*-*.ddc");
> > +MODULE_FIRMWARE("intel/ibt-19-*-*.ddc");
> > +MODULE_FIRMWARE("intel/ibt-20-*-*.ddc");
>
> There are firmware files for hw_variant 0x11 and 0x12 in an old format like
> ibt-17-*.sfi, ibt-17-*.ddc, ibt-18-*.sfi, and ibt-18-*.ddc.
>

I believe 0x11 and 0x12 variants have stopped using the ibt-17-*.sfi,
ibt-17-*.ddc, ibt-18-*.sfi, and ibt-18-*.ddc patterns in
af3715e5cef8 ("Bluetooth: btusb: Update firmware filename for Intel
9x60 and later")
Which was shipped in v4.15. As long as I mark this patch for stable
v4.15+ this is documenting the firmware file the current driver can
request.
Distributions/deployments that use this current version of the driver
should not ship  unused ibt-17-*.sfi, ibt-17-*.ddc, ibt-18-*.sfi, and
ibt-18-*.ddc files anymore.

> > +/* hw_variant 0x17 0x18 0x19 0x1b, read and use cnvi/cnvr */
> > +MODULE_FIRMWARE("ibt-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9].sfi");
> > +MODULE_FIRMWARE("ibt-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9].ddc");
>
> I believe these are under intel/ folder.
>

Yes!

Will fix this up.
diff mbox series

Patch

diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c
index a657e9a3e96a..55efc4a067db 100644
--- a/drivers/bluetooth/btintel.c
+++ b/drivers/bluetooth/btintel.c
@@ -2656,7 +2656,25 @@  MODULE_AUTHOR("Marcel Holtmann <marcel@holtmann.org>");
 MODULE_DESCRIPTION("Bluetooth support for Intel devices ver " VERSION);
 MODULE_VERSION(VERSION);
 MODULE_LICENSE("GPL");
-MODULE_FIRMWARE("intel/ibt-11-5.sfi");
-MODULE_FIRMWARE("intel/ibt-11-5.ddc");
-MODULE_FIRMWARE("intel/ibt-12-16.sfi");
-MODULE_FIRMWARE("intel/ibt-12-16.ddc");
+/* hw_variant 0x07 0x08 */
+MODULE_FIRMWARE("intel/ibt-hw-37.7.*-fw-*.*.*.*.*.bseq");
+MODULE_FIRMWARE("intel/ibt-hw-37.7.bseq");
+MODULE_FIRMWARE("intel/ibt-hw-37.8.*-fw-*.*.*.*.*.bseq");
+MODULE_FIRMWARE("intel/ibt-hw-37.8.bseq");
+/* hw_variant 0x0b 0x0c */
+MODULE_FIRMWARE("intel/ibt-11-*.sfi");
+MODULE_FIRMWARE("intel/ibt-12-*.sfi");
+MODULE_FIRMWARE("intel/ibt-11-*.ddc");
+MODULE_FIRMWARE("intel/ibt-12-*.ddc");
+/* hw_variant 0x11 0x12 0x13 0x14 */
+MODULE_FIRMWARE("intel/ibt-17-*-*.sfi");
+MODULE_FIRMWARE("intel/ibt-18-*-*.sfi");
+MODULE_FIRMWARE("intel/ibt-19-*-*.sfi");
+MODULE_FIRMWARE("intel/ibt-20-*-*.sfi");
+MODULE_FIRMWARE("intel/ibt-17-*-*.ddc");
+MODULE_FIRMWARE("intel/ibt-18-*-*.ddc");
+MODULE_FIRMWARE("intel/ibt-19-*-*.ddc");
+MODULE_FIRMWARE("intel/ibt-20-*-*.ddc");
+/* hw_variant 0x17 0x18 0x19 0x1b, read and use cnvi/cnvr */
+MODULE_FIRMWARE("ibt-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9].sfi");
+MODULE_FIRMWARE("ibt-[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9].ddc");