2008-10-16 11:26:28

by Christian Lamparter

[permalink] [raw]
Subject: [PATCH] p54: change firmware names for usb devices

Johannes thought it would have been a good idea to change the firmware names.
Note: we still have fallbacks in case our users don't want to "break their running system".

Signed-off-by: Christian Lamparter <[email protected]>
---
diff -Nurp a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c
--- a/drivers/net/wireless/p54/p54common.c 2008-10-15 02:59:26.000000000 +0200
+++ b/drivers/net/wireless/p54/p54common.c 2008-10-16 13:18:15.000000000 +0200
@@ -214,6 +214,11 @@ int p54_parse_firmware(struct ieee80211_
printk(KERN_INFO "p54: FW rev %s - Softmac protocol %x.%x\n",
fw_version, priv->fw_var >> 8, priv->fw_var & 0xff);

+ if (priv->fw_var < 0x500)
+ printk(KERN_INFO "p54: you are using an obsolete firmware. "
+ "visit http://wireless.kernel.org/en/users/Drivers/p54 "
+ "and grab one for \"kernel >= 2.6.28\"!\n");
+
if (priv->fw_var >= 0x300) {
/* Firmware supports QoS, use it! */
priv->tx_stats[4].limit = 3;
diff -Nurp a/drivers/net/wireless/p54/p54pci.c b/drivers/net/wireless/p54/p54pci.c
--- a/drivers/net/wireless/p54/p54pci.c 2008-10-14 22:06:54.000000000 +0200
+++ b/drivers/net/wireless/p54/p54pci.c 2008-10-15 19:28:08.000000000 +0200
@@ -28,6 +28,7 @@ MODULE_AUTHOR("Michael Wu <flamingice@so
MODULE_DESCRIPTION("Prism54 PCI wireless driver");
MODULE_LICENSE("GPL");
MODULE_ALIAS("prism54pci");
+MODULE_FIRMWARE("isl3886");

static struct pci_device_id p54p_table[] __devinitdata = {
/* Intersil PRISM Duette/Prism GT Wireless LAN adapter */
diff -Nurp a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c
--- a/drivers/net/wireless/p54/p54usb.c 2008-10-14 22:07:39.000000000 +0200
+++ b/drivers/net/wireless/p54/p54usb.c 2008-10-16 12:58:35.000000000 +0200
@@ -28,6 +28,11 @@ MODULE_AUTHOR("Michael Wu <flamingice@so
MODULE_DESCRIPTION("Prism54 USB wireless driver");
MODULE_LICENSE("GPL");
MODULE_ALIAS("prism54usb");
+MODULE_FIRMWARE("isl3886usb");
+MODULE_FIRMWARE("isl3887usb");
+/* outdated firmware names */
+MODULE_FIRMWARE("isl3890usb");
+MODULE_FIRMWARE("isl3887usb_bare");

static struct usb_device_id p54u_table[] __devinitdata = {
/* Version 1 devices (pci chip + net2280) */
@@ -415,10 +420,13 @@ static int p54u_upload_firmware_3887(str
goto err_reset;
}

- err = request_firmware(&fw_entry, "isl3887usb_bare", &priv->udev->dev);
+ err = request_firmware(&fw_entry, "isl3887usb", &priv->udev->dev);
if (err) {
- printk(KERN_ERR "p54usb: cannot find firmware (isl3887usb_bare)!\n");
- goto err_req_fw_failed;
+ printk(KERN_ERR "p54usb: cannot find firmware (isl3887usb)\n");
+ err = request_firmware(&fw_entry, "isl3887usb_bare",
+ &priv->udev->dev);
+ if (err)
+ goto err_req_fw_failed;
}

err = p54_parse_firmware(dev, fw_entry);
@@ -553,11 +561,15 @@ static int p54u_upload_firmware_net2280(
return -ENOMEM;
}

- err = request_firmware(&fw_entry, "isl3890usb", &priv->udev->dev);
+ err = request_firmware(&fw_entry, "isl3886usb", &priv->udev->dev);
if (err) {
- printk(KERN_ERR "p54usb: cannot find firmware (isl3890usb)!\n");
- kfree(buf);
- return err;
+ printk(KERN_ERR "p54usb: cannot find firmware (isl3886usb)\n");
+ err = request_firmware(&fw_entry, "isl3890usb",
+ &priv->udev->dev);
+ if (err) {
+ kfree(buf);
+ return err;
+ }
}

err = p54_parse_firmware(dev, fw_entry);


2008-10-18 12:20:18

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] p54: change firmware names for usb devices

On Thu, 2008-10-16 at 13:30 +0200, Christian Lamparter wrote:

> +/* outdated firmware names */
> +MODULE_FIRMWARE("isl3890usb");
> +MODULE_FIRMWARE("isl3887usb_bare");

I think you should probably leave those out.

johannes


Attachments:
signature.asc (836.00 B)
This is a digitally signed message part

2008-10-18 21:00:02

by Christian Lamparter

[permalink] [raw]
Subject: [PATCH v2] p54: introduce new names for device firmwares

Johannes thought it would have been a good idea to change the firmware names.

Note: we still have fallbacks in case our users don't want to "break their running system",
but we won't advertise them with MODULE_FIRMWARE.

Signed-off-by: Christian Lamparter <[email protected]>
---
diff -Nurp a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c
--- a/drivers/net/wireless/p54/p54common.c 2008-10-18 21:02:04.000000000 +0200
+++ b/drivers/net/wireless/p54/p54common.c 2008-10-16 23:06:55.000000000 +0200
@@ -214,6 +214,11 @@ int p54_parse_firmware(struct ieee80211_
printk(KERN_INFO "p54: FW rev %s - Softmac protocol %x.%x\n",
fw_version, priv->fw_var >> 8, priv->fw_var & 0xff);

+ if (priv->fw_var < 0x500)
+ printk(KERN_INFO "p54: you are using an obsolete firmware. "
+ "visit http://wireless.kernel.org/en/users/Drivers/p54 "
+ "and grab one for \"kernel >= 2.6.28\"!\n");
+
if (priv->fw_var >= 0x300) {
/* Firmware supports QoS, use it! */
priv->tx_stats[4].limit = 3;
diff -Nurp a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c
--- a/drivers/net/wireless/p54/p54usb.c 2008-10-14 22:07:39.000000000 +0200
+++ b/drivers/net/wireless/p54/p54usb.c 2008-10-18 19:22:07.000000000 +0200
@@ -28,6 +28,8 @@ MODULE_AUTHOR("Michael Wu <flamingice@so
MODULE_DESCRIPTION("Prism54 USB wireless driver");
MODULE_LICENSE("GPL");
MODULE_ALIAS("prism54usb");
+MODULE_FIRMWARE("isl3886usb");
+MODULE_FIRMWARE("isl3887usb");

static struct usb_device_id p54u_table[] __devinitdata = {
/* Version 1 devices (pci chip + net2280) */
@@ -415,10 +417,13 @@ static int p54u_upload_firmware_3887(str
goto err_reset;
}

- err = request_firmware(&fw_entry, "isl3887usb_bare", &priv->udev->dev);
+ err = request_firmware(&fw_entry, "isl3887usb", &priv->udev->dev);
if (err) {
- printk(KERN_ERR "p54usb: cannot find firmware (isl3887usb_bare)!\n");
- goto err_req_fw_failed;
+ printk(KERN_ERR "p54usb: cannot find firmware (isl3887usb)\n");
+ err = request_firmware(&fw_entry, "isl3887usb_bare",
+ &priv->udev->dev);
+ if (err)
+ goto err_req_fw_failed;
}

err = p54_parse_firmware(dev, fw_entry);
@@ -553,11 +558,15 @@ static int p54u_upload_firmware_net2280(
return -ENOMEM;
}

- err = request_firmware(&fw_entry, "isl3890usb", &priv->udev->dev);
+ err = request_firmware(&fw_entry, "isl3886usb", &priv->udev->dev);
if (err) {
- printk(KERN_ERR "p54usb: cannot find firmware (isl3890usb)!\n");
- kfree(buf);
- return err;
+ printk(KERN_ERR "p54usb: cannot find firmware (isl3886usb)\n");
+ err = request_firmware(&fw_entry, "isl3890usb",
+ &priv->udev->dev);
+ if (err) {
+ kfree(buf);
+ return err;
+ }
}

err = p54_parse_firmware(dev, fw_entry);
diff -Nurp a/drivers/net/wireless/p54/p54pci.c b/drivers/net/wireless/p54/p54pci.c
--- a/drivers/net/wireless/p54/p54pci.c 2008-10-14 22:06:54.000000000 +0200
+++ b/drivers/net/wireless/p54/p54pci.c 2008-10-18 20:58:02.000000000 +0200
@@ -28,6 +28,7 @@ MODULE_AUTHOR("Michael Wu <flamingice@so
MODULE_DESCRIPTION("Prism54 PCI wireless driver");
MODULE_LICENSE("GPL");
MODULE_ALIAS("prism54pci");
+MODULE_FIRMWARE("isl3886pci");

static struct pci_device_id p54p_table[] __devinitdata = {
/* Intersil PRISM Duette/Prism GT Wireless LAN adapter */
@@ -72,11 +73,13 @@ static int p54p_upload_firmware(struct i
P54P_WRITE(ctrl_stat, reg);
wmb();

- err = request_firmware(&fw_entry, "isl3886", &priv->pdev->dev);
+ err = request_firmware(&fw_entry, "isl3886pci", &priv->pdev->dev);
if (err) {
printk(KERN_ERR "%s (p54pci): cannot find firmware "
- "(isl3886)\n", pci_name(priv->pdev));
- return err;
+ "(isl3886pci)\n", pci_name(priv->pdev));
+ err = request_firmware(&fw_entry, "isl3886", &priv->pdev->dev);
+ if (err)
+ return err;
}

err = p54_parse_firmware(dev, fw_entry);