2010-01-07 18:56:13

by Tim Gardner

[permalink] [raw]
Subject: [PATCH] b43: Declare all possible firmware files.

The following changes since commit 2c1f1895ef2aa8f0e5497893eff71304aef332e1:
Linus Torvalds (1):
Merge branch 'drm-linus' of git://git.kernel.org/.../airlied/drm-2.6

are available in the git repository at:

git://kernel.ubuntu.com/rtg/linux-2.6 b43

Tim Gardner (1):
b43: Declare all possible firmware files.

drivers/net/wireless/b43/main.c | 34 ++++++++++++++++++++++++++++++++--
1 files changed, 32 insertions(+), 2 deletions(-)

>From def1157eaeb397f0afab25b91db8bab3fcb8816c Mon Sep 17 00:00:00 2001
From: Tim Gardner <[email protected]>
Date: Thu, 7 Jan 2010 11:10:38 -0700
Subject: [PATCH] b43: Declare all possible firmware files.

BugLink: http://bugs.launchpad.net/bugs/488636

Enhances module information with the names of the firmware files
that could be used by this driver. This helps tools like Jockey to
correctly detect and/or install the firmware files relevant to
this driver.

Signed-off-by: Tim Gardner <[email protected]>
---
drivers/net/wireless/b43/main.c | 34 ++++++++++++++++++++++++++++++++--
1 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
index 4c41cfe..03e48c4 100644
--- a/drivers/net/wireless/b43/main.c
+++ b/drivers/net/wireless/b43/main.c
@@ -66,8 +66,38 @@ MODULE_AUTHOR("Michael Buesch");
MODULE_AUTHOR("Gábor Stefanik");
MODULE_LICENSE("GPL");

-MODULE_FIRMWARE(B43_SUPPORTED_FIRMWARE_ID);
-
+MODULE_FIRMWARE("b43/a0g0bsinitvals5.fw");
+MODULE_FIRMWARE("b43/a0g0bsinitvals9.fw");
+MODULE_FIRMWARE("b43/a0g0initvals5.fw");
+MODULE_FIRMWARE("b43/a0g0initvals9.fw");
+MODULE_FIRMWARE("b43/a0g1bsinitvals13.fw");
+MODULE_FIRMWARE("b43/a0g1bsinitvals5.fw");
+MODULE_FIRMWARE("b43/a0g1bsinitvals9.fw");
+MODULE_FIRMWARE("b43/a0g1initvals13.fw");
+MODULE_FIRMWARE("b43/a0g1initvals5.fw");
+MODULE_FIRMWARE("b43/a0g1initvals9.fw");
+MODULE_FIRMWARE("b43/b0g0bsinitvals13.fw");
+MODULE_FIRMWARE("b43/b0g0bsinitvals5.fw");
+MODULE_FIRMWARE("b43/b0g0bsinitvals9.fw");
+MODULE_FIRMWARE("b43/b0g0initvals13.fw");
+MODULE_FIRMWARE("b43/b0g0initvals5.fw");
+MODULE_FIRMWARE("b43/b0g0initvals9.fw");
+MODULE_FIRMWARE("b43/lp0bsinitvals13.fw");
+MODULE_FIRMWARE("b43/lp0bsinitvals14.fw");
+MODULE_FIRMWARE("b43/lp0bsinitvals15.fw");
+MODULE_FIRMWARE("b43/lp0initvals13.fw");
+MODULE_FIRMWARE("b43/lp0initvals14.fw");
+MODULE_FIRMWARE("b43/lp0initvals15.fw");
+MODULE_FIRMWARE("b43/n0absinitvals11.fw");
+MODULE_FIRMWARE("b43/n0bsinitvals11.fw");
+MODULE_FIRMWARE("b43/n0initvals11.fw");
+MODULE_FIRMWARE("b43/pcm5.fw");
+MODULE_FIRMWARE("b43/ucode11.fw");
+MODULE_FIRMWARE("b43/ucode13.fw");
+MODULE_FIRMWARE("b43/ucode14.fw");
+MODULE_FIRMWARE("b43/ucode15.fw");
+MODULE_FIRMWARE("b43/ucode5.fw");
+MODULE_FIRMWARE("b43/ucode9.fw");

static int modparam_bad_frames_preempt;
module_param_named(bad_frames_preempt, modparam_bad_frames_preempt, int, 0444);
--
1.6.2.4



2010-01-09 03:47:18

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] b43: Declare all possible firmware files.

On 01/08/2010 07:19 PM, Tim Gardner wrote:
> Michael Buesch wrote:
>> On Friday 08 January 2010 18:32:48 Martin Pitt wrote:
>>> Tim Gardner [2010-01-07 12:43 -0700]:
>>>> AFAIK Jockey only needs to be able to tell if _any_ of the firmware
>>>> files have been installed and could therefore make an install decision
>>>> based on just one firmware file name.
>>> Correct.
>>>
>>>> Martin - if thats the case, then we need only list one firmware file in
>>>> the modinfo, correct?
>>> Right. If that's not practical to fix on the kernel side for some
>>> reason, we could also put in a quirk into the Broadcom handler in
>>> update-notifier. (Right now it just listens for FIRMWARE subsystem
>>> uevents and checksc if the value of it exists as a file).
>>>
>>> This was originally introduced for the DVB-T driver firmware packages,
>>> but if we could make it work for b43 as well, this would be nice.
>>
>> I think it would be OK to list all the ucodeX.fw files, but listing all
>> these initvals files seems overkill to me.
>> If you still need all initval filenames, you could theoretically ask
>> b43-fwcutter.
>> That would just need a new fwcutter commandline option, as far as I
>> can see.
>>
>> As you can see, we currently only export the b43 specific firmware ID
>> in MODULE_FIRMWARE().
>> That is a unique identifier for a whole set of firmware files.
>> b43-fwcutter also
>> knows about that firmware ID.
>>
>> (While we're at it, I think the FW-id that b43 announces should be
>> updated. Because
>> I think the firmware with the currently announced ID does not support
>> all LP devices.)
>>
>
> How about the attached version that only includes the ucode files ?

This one looks good to me. Would you also like to do one for b43legacy with
ucode2.fw and ucode4.fw, or should I do it?

Larry

2010-01-08 17:43:37

by Martin Pitt

[permalink] [raw]
Subject: Re: [PATCH] b43: Declare all possible firmware files.

Tim Gardner [2010-01-07 12:43 -0700]:
> AFAIK Jockey only needs to be able to tell if _any_ of the firmware
> files have been installed and could therefore make an install decision
> based on just one firmware file name.

Correct.

> Martin - if thats the case, then we need only list one firmware file in
> the modinfo, correct?

Right. If that's not practical to fix on the kernel side for some
reason, we could also put in a quirk into the Broadcom handler in
update-notifier. (Right now it just listens for FIRMWARE subsystem
uevents and checksc if the value of it exists as a file).

This was originally introduced for the DVB-T driver firmware packages,
but if we could make it work for b43 as well, this would be nice.

Thanks!

Martin

2010-01-12 10:08:42

by Tim Gardner

[permalink] [raw]
Subject: Re: [PATCH] b43: Declare all possible firmware files.

Larry Finger wrote:
> On 01/08/2010 07:19 PM, Tim Gardner wrote:
>> Michael Buesch wrote:
>>> On Friday 08 January 2010 18:32:48 Martin Pitt wrote:
>>>> Tim Gardner [2010-01-07 12:43 -0700]:
>>>>> AFAIK Jockey only needs to be able to tell if _any_ of the firmware
>>>>> files have been installed and could therefore make an install decision
>>>>> based on just one firmware file name.
>>>> Correct.
>>>>
>>>>> Martin - if thats the case, then we need only list one firmware file in
>>>>> the modinfo, correct?
>>>> Right. If that's not practical to fix on the kernel side for some
>>>> reason, we could also put in a quirk into the Broadcom handler in
>>>> update-notifier. (Right now it just listens for FIRMWARE subsystem
>>>> uevents and checksc if the value of it exists as a file).
>>>>
>>>> This was originally introduced for the DVB-T driver firmware packages,
>>>> but if we could make it work for b43 as well, this would be nice.
>>> I think it would be OK to list all the ucodeX.fw files, but listing all
>>> these initvals files seems overkill to me.
>>> If you still need all initval filenames, you could theoretically ask
>>> b43-fwcutter.
>>> That would just need a new fwcutter commandline option, as far as I
>>> can see.
>>>
>>> As you can see, we currently only export the b43 specific firmware ID
>>> in MODULE_FIRMWARE().
>>> That is a unique identifier for a whole set of firmware files.
>>> b43-fwcutter also
>>> knows about that firmware ID.
>>>
>>> (While we're at it, I think the FW-id that b43 announces should be
>>> updated. Because
>>> I think the firmware with the currently announced ID does not support
>>> all LP devices.)
>>>
>> How about the attached version that only includes the ucode files ?
>
> This one looks good to me. Would you also like to do one for b43legacy with
> ucode2.fw and ucode4.fw, or should I do it?
>
> Larry
>

Uh, go ahead. I'm buried in London this week.

rtg
--
Tim Gardner [email protected]

2010-01-07 19:31:17

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] b43: Declare all possible firmware files.

On 01/07/2010 01:19 PM, Tim Gardner wrote:
> Larry Finger wrote:
>> On 01/07/2010 12:35 PM, Tim Gardner wrote:
>>> The following changes since commit 2c1f1895ef2aa8f0e5497893eff71304aef332e1:
>>> Linus Torvalds (1):
>>> Merge branch 'drm-linus' of git://git.kernel.org/.../airlied/drm-2.6
>>>
>>> are available in the git repository at:
>>>
>>> git://kernel.ubuntu.com/rtg/linux-2.6 b43
>>>
>>> Tim Gardner (1):
>>> b43: Declare all possible firmware files.
>>>
>>> drivers/net/wireless/b43/main.c | 34 ++++++++++++++++++++++++++++++++--
>>> 1 files changed, 32 insertions(+), 2 deletions(-)
>>>
>>> >From def1157eaeb397f0afab25b91db8bab3fcb8816c Mon Sep 17 00:00:00 2001
>>> From: Tim Gardner <[email protected]>
>>> Date: Thu, 7 Jan 2010 11:10:38 -0700
>>> Subject: [PATCH] b43: Declare all possible firmware files.
>>>
>>> BugLink: http://bugs.launchpad.net/bugs/488636
>>>
>>> Enhances module information with the names of the firmware files
>>> that could be used by this driver. This helps tools like Jockey to
>>> correctly detect and/or install the firmware files relevant to
>>> this driver.
>>>
>>> Signed-off-by: Tim Gardner <[email protected]>
>>> ---
>>
>> How does Jockey do the firmware installation? I'm not familiar with this tool.
>>
>> Larry
>>
>
> Jockey is the codename for the Ubuntu Hardware Manager tool developed
> and maintained by Martin Pitt. Its primary purpose is to assist with the
> installation of not-completely open source components. Examples include
> nVidia and Broadcom 'wl'. In this case, I believe jockey offers a choice
> of b43 or wl (if the PCI IDs overlap).
>
> Cc'ing Martin.

Assuming that Jockey does not violate Broadcom's copyright on these firmware
files, this approach is going to get a bit messy. There are two new kinds of
devices that are currently undergoing reverse engineering. Once code is
available for them, the number of firmware files will be increased by quite a
bit. My current /lib/firmware/b43 has 93 files in it. Having that many
MODULE_FIRMWARE macros seems wrong.

Larry

2010-01-09 01:19:28

by Tim Gardner

[permalink] [raw]
Subject: Re: [PATCH] b43: Declare all possible firmware files.

Michael Buesch wrote:
> On Friday 08 January 2010 18:32:48 Martin Pitt wrote:
>> Tim Gardner [2010-01-07 12:43 -0700]:
>>> AFAIK Jockey only needs to be able to tell if _any_ of the firmware
>>> files have been installed and could therefore make an install decision
>>> based on just one firmware file name.
>> Correct.
>>
>>> Martin - if thats the case, then we need only list one firmware file in
>>> the modinfo, correct?
>> Right. If that's not practical to fix on the kernel side for some
>> reason, we could also put in a quirk into the Broadcom handler in
>> update-notifier. (Right now it just listens for FIRMWARE subsystem
>> uevents and checksc if the value of it exists as a file).
>>
>> This was originally introduced for the DVB-T driver firmware packages,
>> but if we could make it work for b43 as well, this would be nice.
>
> I think it would be OK to list all the ucodeX.fw files, but listing all
> these initvals files seems overkill to me.
> If you still need all initval filenames, you could theoretically ask b43-fwcutter.
> That would just need a new fwcutter commandline option, as far as I can see.
>
> As you can see, we currently only export the b43 specific firmware ID in MODULE_FIRMWARE().
> That is a unique identifier for a whole set of firmware files. b43-fwcutter also
> knows about that firmware ID.
>
> (While we're at it, I think the FW-id that b43 announces should be updated. Because
> I think the firmware with the currently announced ID does not support all LP devices.)
>

How about the attached version that only includes the ucode files ?

rtg

--
Tim Gardner [email protected]


Attachments:
0001-b43-Declare-at-least-one-real-firmware-file-using-MO.patch (1.29 kB)

2010-01-07 19:45:58

by Tim Gardner

[permalink] [raw]
Subject: Re: [PATCH] b43: Declare all possible firmware files.

Larry Finger wrote:
> On 01/07/2010 12:35 PM, Tim Gardner wrote:
>> The following changes since commit 2c1f1895ef2aa8f0e5497893eff71304aef332e1:
>> Linus Torvalds (1):
>> Merge branch 'drm-linus' of git://git.kernel.org/.../airlied/drm-2.6
>>
>> are available in the git repository at:
>>
>> git://kernel.ubuntu.com/rtg/linux-2.6 b43
>>
>> Tim Gardner (1):
>> b43: Declare all possible firmware files.
>>
>> drivers/net/wireless/b43/main.c | 34 ++++++++++++++++++++++++++++++++--
>> 1 files changed, 32 insertions(+), 2 deletions(-)
>>
>> >From def1157eaeb397f0afab25b91db8bab3fcb8816c Mon Sep 17 00:00:00 2001
>> From: Tim Gardner <[email protected]>
>> Date: Thu, 7 Jan 2010 11:10:38 -0700
>> Subject: [PATCH] b43: Declare all possible firmware files.
>>
>> BugLink: http://bugs.launchpad.net/bugs/488636
>>
>> Enhances module information with the names of the firmware files
>> that could be used by this driver. This helps tools like Jockey to
>> correctly detect and/or install the firmware files relevant to
>> this driver.
>>
>> Signed-off-by: Tim Gardner <[email protected]>
>> ---
>
> How does Jockey do the firmware installation? I'm not familiar with this tool.
>
> Larry
>

Jockey is the codename for the Ubuntu Hardware Manager tool developed
and maintained by Martin Pitt. Its primary purpose is to assist with the
installation of not-completely open source components. Examples include
nVidia and Broadcom 'wl'. In this case, I believe jockey offers a choice
of b43 or wl (if the PCI IDs overlap).

Cc'ing Martin.

rtg
--
Tim Gardner [email protected]

2010-01-07 19:42:51

by Tim Gardner

[permalink] [raw]
Subject: Re: [PATCH] b43: Declare all possible firmware files.

Larry Finger wrote:
> On 01/07/2010 01:19 PM, Tim Gardner wrote:
>> Larry Finger wrote:
>>> On 01/07/2010 12:35 PM, Tim Gardner wrote:
>>>> The following changes since commit 2c1f1895ef2aa8f0e5497893eff71304aef332e1:
>>>> Linus Torvalds (1):
>>>> Merge branch 'drm-linus' of git://git.kernel.org/.../airlied/drm-2.6
>>>>
>>>> are available in the git repository at:
>>>>
>>>> git://kernel.ubuntu.com/rtg/linux-2.6 b43
>>>>
>>>> Tim Gardner (1):
>>>> b43: Declare all possible firmware files.
>>>>
>>>> drivers/net/wireless/b43/main.c | 34 ++++++++++++++++++++++++++++++++--
>>>> 1 files changed, 32 insertions(+), 2 deletions(-)
>>>>
>>>> >From def1157eaeb397f0afab25b91db8bab3fcb8816c Mon Sep 17 00:00:00 2001
>>>> From: Tim Gardner <[email protected]>
>>>> Date: Thu, 7 Jan 2010 11:10:38 -0700
>>>> Subject: [PATCH] b43: Declare all possible firmware files.
>>>>
>>>> BugLink: http://bugs.launchpad.net/bugs/488636
>>>>
>>>> Enhances module information with the names of the firmware files
>>>> that could be used by this driver. This helps tools like Jockey to
>>>> correctly detect and/or install the firmware files relevant to
>>>> this driver.
>>>>
>>>> Signed-off-by: Tim Gardner <[email protected]>
>>>> ---
>>> How does Jockey do the firmware installation? I'm not familiar with this tool.
>>>
>>> Larry
>>>
>> Jockey is the codename for the Ubuntu Hardware Manager tool developed
>> and maintained by Martin Pitt. Its primary purpose is to assist with the
>> installation of not-completely open source components. Examples include
>> nVidia and Broadcom 'wl'. In this case, I believe jockey offers a choice
>> of b43 or wl (if the PCI IDs overlap).
>>
>> Cc'ing Martin.
>
> Assuming that Jockey does not violate Broadcom's copyright on these firmware
> files, this approach is going to get a bit messy. There are two new kinds of
> devices that are currently undergoing reverse engineering. Once code is
> available for them, the number of firmware files will be increased by quite a
> bit. My current /lib/firmware/b43 has 93 files in it. Having that many
> MODULE_FIRMWARE macros seems wrong.
>
> Larry
>

AFAIK Jockey only needs to be able to tell if _any_ of the firmware
files have been installed and could therefore make an install decision
based on just one firmware file name.

Martin - if thats the case, then we need only list one firmware file in
the modinfo, correct?

rtg
--
Tim Gardner [email protected]

2010-01-07 19:05:48

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] b43: Declare all possible firmware files.

On 01/07/2010 12:35 PM, Tim Gardner wrote:
> The following changes since commit 2c1f1895ef2aa8f0e5497893eff71304aef332e1:
> Linus Torvalds (1):
> Merge branch 'drm-linus' of git://git.kernel.org/.../airlied/drm-2.6
>
> are available in the git repository at:
>
> git://kernel.ubuntu.com/rtg/linux-2.6 b43
>
> Tim Gardner (1):
> b43: Declare all possible firmware files.
>
> drivers/net/wireless/b43/main.c | 34 ++++++++++++++++++++++++++++++++--
> 1 files changed, 32 insertions(+), 2 deletions(-)
>
>>From def1157eaeb397f0afab25b91db8bab3fcb8816c Mon Sep 17 00:00:00 2001
> From: Tim Gardner <[email protected]>
> Date: Thu, 7 Jan 2010 11:10:38 -0700
> Subject: [PATCH] b43: Declare all possible firmware files.
>
> BugLink: http://bugs.launchpad.net/bugs/488636
>
> Enhances module information with the names of the firmware files
> that could be used by this driver. This helps tools like Jockey to
> correctly detect and/or install the firmware files relevant to
> this driver.
>
> Signed-off-by: Tim Gardner <[email protected]>
> ---

How does Jockey do the firmware installation? I'm not familiar with this tool.

Larry


2010-01-08 19:06:21

by Michael Büsch

[permalink] [raw]
Subject: Re: [PATCH] b43: Declare all possible firmware files.

On Friday 08 January 2010 18:32:48 Martin Pitt wrote:
> Tim Gardner [2010-01-07 12:43 -0700]:
> > AFAIK Jockey only needs to be able to tell if _any_ of the firmware
> > files have been installed and could therefore make an install decision
> > based on just one firmware file name.
>
> Correct.
>
> > Martin - if thats the case, then we need only list one firmware file in
> > the modinfo, correct?
>
> Right. If that's not practical to fix on the kernel side for some
> reason, we could also put in a quirk into the Broadcom handler in
> update-notifier. (Right now it just listens for FIRMWARE subsystem
> uevents and checksc if the value of it exists as a file).
>
> This was originally introduced for the DVB-T driver firmware packages,
> but if we could make it work for b43 as well, this would be nice.

I think it would be OK to list all the ucodeX.fw files, but listing all
these initvals files seems overkill to me.
If you still need all initval filenames, you could theoretically ask b43-fwcutter.
That would just need a new fwcutter commandline option, as far as I can see.

As you can see, we currently only export the b43 specific firmware ID in MODULE_FIRMWARE().
That is a unique identifier for a whole set of firmware files. b43-fwcutter also
knows about that firmware ID.

(While we're at it, I think the FW-id that b43 announces should be updated. Because
I think the firmware with the currently announced ID does not support all LP devices.)

--
Greetings, Michael.