summaryrefslogtreecommitdiff
path: root/debian/patches/debian
diff options
context:
space:
mode:
authorBen Hutchings <benh@debian.org>2014-04-27 02:21:57 +0000
committerBen Hutchings <benh@debian.org>2014-04-27 02:21:57 +0000
commit4edd0d432b7f3a5879e2d45b6b9bc9ec5fec8c5b (patch)
tree770a5220c9e9453293c00137e167b5f6b3465f0d /debian/patches/debian
parent4530f5a9c6aaa4b8ecfc8dbf4cea09785645398d (diff)
Replace rtl8192e firmware removal patch with version submitted upstream
svn path=/dists/trunk/linux/; revision=21271
Diffstat (limited to 'debian/patches/debian')
-rw-r--r--debian/patches/debian/dfsg/r8192e-remove-firmware-again.patch61
-rw-r--r--debian/patches/debian/dfsg/staging-rtl8192e-remove-built-in-firmware-images.patch203
2 files changed, 203 insertions, 61 deletions
diff --git a/debian/patches/debian/dfsg/r8192e-remove-firmware-again.patch b/debian/patches/debian/dfsg/r8192e-remove-firmware-again.patch
deleted file mode 100644
index f3020867e..000000000
--- a/debian/patches/debian/dfsg/r8192e-remove-firmware-again.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From: Ben Hutchings <ben@decadent.org.uk>
-Date: Thu, 01 Dec 2011 15:13:37 +0000
-Subject: rtl8192e: Remove firmware again
-Forwarded: no
-
-Larry Finger imported a new version of this driver into staging.
-Damn the regressions, let's have new crap!
-
-diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c
-index 3771985..b073208 100644
---- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c
-+++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c
-@@ -228,13 +228,6 @@ bool init_firmware(struct net_device *dev)
- struct r8192_priv *priv = rtllib_priv(dev);
- bool rt_status = true;
-
-- u8 *firmware_img_buf[3] = { &Rtl8192PciEFwBootArray[0],
-- &Rtl8192PciEFwMainArray[0],
-- &Rtl8192PciEFwDataArray[0]};
--
-- u32 firmware_img_len[3] = { sizeof(Rtl8192PciEFwBootArray),
-- sizeof(Rtl8192PciEFwMainArray),
-- sizeof(Rtl8192PciEFwDataArray)};
- u32 file_length = 0;
- u8 *mapped_file = NULL;
- u8 init_step = 0;
-@@ -308,14 +301,6 @@ bool init_firmware(struct net_device *dev)
- file_length = pfirmware->firmware_buf_size[init_step];
- break;
- }
-- case FW_SOURCE_HEADER_FILE:
-- mapped_file = firmware_img_buf[init_step];
-- file_length = firmware_img_len[init_step];
-- if (init_step == FW_INIT_STEP2_DATA) {
-- memcpy(pfirmware->firmware_buf[init_step], mapped_file, file_length);
-- pfirmware->firmware_buf_size[init_step] = file_length;
-- }
-- break;
-
- default:
- break;
-diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c
-index 08e7dbb..e760397 100644
---- a/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c
-+++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c
-@@ -20,6 +20,7 @@
-
- #include "r8192E_hwimg.h"
-
-+#ifdef REMOVE_DFSG
- u8 Rtl8192PciEFwBootArray[BootArrayLengthPciE] = {
- 0x10,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x3c,0x08,0xbf,0xc0,0x25,0x08,0x00,0x08,
- 0x3c,0x09,0xb0,0x03,0xad,0x28,0x00,0x20,0x40,0x80,0x68,0x00,0x00,0x00,0x00,0x00,
-@@ -2790,6 +2791,7 @@ u8 Rtl8192PciEFwDataArray[DataArrayLengthPciE] = {
- 0x80,0x00,0x8f,0xa8,0x80,0x00,0x8f,0xa8,0x80,0x00,0x8f,0xa8,0x80,0x00,0x8f,0xa8,
- 0x80,0x00,0x8f,0xd8,0x80,0x00,0x8f,0xec,0x80,0x00,0x90,0x00,0x80,0x00,0x8b,0x88,
- };
-+#endif
-
- u32 Rtl8192PciEPHY_REGArray[PHY_REGArrayLengthPciE] = {0x0,};
-
diff --git a/debian/patches/debian/dfsg/staging-rtl8192e-remove-built-in-firmware-images.patch b/debian/patches/debian/dfsg/staging-rtl8192e-remove-built-in-firmware-images.patch
new file mode 100644
index 000000000..67dcabbe4
--- /dev/null
+++ b/debian/patches/debian/dfsg/staging-rtl8192e-remove-built-in-firmware-images.patch
@@ -0,0 +1,203 @@
+From: Ben Hutchings <ben@decadent.org.uk>
+Date: Thu, 24 Apr 2014 03:16:05 +0100
+Subject: Staging: rtl8192e: Remove built-in firmware images
+Origin: https://git.kernel.org/cgit/linux/kernel/git/gregkh/staging.git/commit?id=84fcb4b3a3716662ee2f7e0c8270241c71baeb97
+
+The driver can already use request_firmware() to load firmware, and
+always does so. There is code in init_firmware() to use the static
+firmware images, but it's unreachable! Remove the data and simplify
+init_firmware() accordingly.
+
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+[bwh: For Debian, insert markers for unifdef rather than quoting the firmware
+ to be removed]
+---
+diff --git a/drivers/staging/rtl8192e/rtl8192e/Kconfig b/drivers/staging/rtl8192e/rtl8192e/Kconfig
+index ad82bc3..282e293 100644
+--- a/drivers/staging/rtl8192e/rtl8192e/Kconfig
++++ b/drivers/staging/rtl8192e/rtl8192e/Kconfig
+@@ -5,5 +5,6 @@ config RTL8192E
+ select WIRELESS_EXT
+ select WEXT_PRIV
+ select CRYPTO
++ select FW_LOADER
+ default N
+ ---help---
+diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c
+index abcd22f..1a95d1f 100644
+--- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c
++++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.c
+@@ -228,13 +228,6 @@ bool init_firmware(struct net_device *dev)
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool rt_status = true;
+
+- u8 *firmware_img_buf[3] = { &Rtl8192PciEFwBootArray[0],
+- &Rtl8192PciEFwMainArray[0],
+- &Rtl8192PciEFwDataArray[0]};
+-
+- u32 firmware_img_len[3] = { sizeof(Rtl8192PciEFwBootArray),
+- sizeof(Rtl8192PciEFwMainArray),
+- sizeof(Rtl8192PciEFwDataArray)};
+ u32 file_length = 0;
+ u8 *mapped_file = NULL;
+ u8 init_step = 0;
+@@ -257,77 +250,55 @@ bool init_firmware(struct net_device *dev)
+ " firmware state\n");
+ }
+
+- priv->firmware_source = FW_SOURCE_IMG_FILE;
+ for (init_step = starting_state; init_step <= FW_INIT_STEP2_DATA;
+ init_step++) {
+ if (rst_opt == OPT_SYSTEM_RESET) {
+- switch (priv->firmware_source) {
+- case FW_SOURCE_IMG_FILE:
+- {
+- if (pfirmware->firmware_buf_size[init_step] == 0) {
+- const char *fw_name[3] = {
+- RTL8192E_BOOT_IMG_FW,
+- RTL8192E_MAIN_IMG_FW,
+- RTL8192E_DATA_IMG_FW
+- };
+- const struct firmware *fw_entry;
+- int rc;
+- rc = request_firmware(&fw_entry,
+- fw_name[init_step], &priv->pdev->dev);
+- if (rc < 0) {
+- RT_TRACE(COMP_FIRMWARE, "request firm"
+- "ware fail!\n");
+- goto download_firmware_fail;
+- }
+- if (fw_entry->size >
++ if (pfirmware->firmware_buf_size[init_step] == 0) {
++ const char *fw_name[3] = {
++ RTL8192E_BOOT_IMG_FW,
++ RTL8192E_MAIN_IMG_FW,
++ RTL8192E_DATA_IMG_FW
++ };
++ const struct firmware *fw_entry;
++ int rc;
++ rc = request_firmware(&fw_entry,
++ fw_name[init_step],
++ &priv->pdev->dev);
++ if (rc < 0) {
++ RT_TRACE(COMP_FIRMWARE, "request firmware fail!\n");
++ goto download_firmware_fail;
++ }
++ if (fw_entry->size >
+ sizeof(pfirmware->firmware_buf[init_step])) {
+- RT_TRACE(COMP_FIRMWARE, "img file size "
++ RT_TRACE(COMP_FIRMWARE, "img file size "
+ "exceed the container struct "
+ "buffer fail!\n");
+- goto download_firmware_fail;
+- }
++ goto download_firmware_fail;
++ }
+
+- if (init_step != FW_INIT_STEP1_MAIN) {
+- memcpy(pfirmware->firmware_buf[init_step],
++ if (init_step != FW_INIT_STEP1_MAIN) {
++ memcpy(pfirmware->firmware_buf[init_step],
+ fw_entry->data, fw_entry->size);
+- pfirmware->firmware_buf_size[init_step] =
+- fw_entry->size;
++ pfirmware->firmware_buf_size[init_step] =
++ fw_entry->size;
+
+- } else {
+- memset(pfirmware->firmware_buf[init_step],
++ } else {
++ memset(pfirmware->firmware_buf[init_step],
+ 0, 128);
+- memcpy(&pfirmware->firmware_buf[init_step][128],
++ memcpy(&pfirmware->firmware_buf[init_step][128],
+ fw_entry->data, fw_entry->size);
+- pfirmware->firmware_buf_size[init_step] =
+- fw_entry->size + 128;
+- }
+-
+- if (rst_opt == OPT_SYSTEM_RESET)
+- release_firmware(fw_entry);
++ pfirmware->firmware_buf_size[init_step] =
++ fw_entry->size + 128;
+ }
+- mapped_file = pfirmware->firmware_buf[init_step];
+- file_length = pfirmware->firmware_buf_size[init_step];
+- break;
+- }
+- case FW_SOURCE_HEADER_FILE:
+- mapped_file = firmware_img_buf[init_step];
+- file_length = firmware_img_len[init_step];
+- if (init_step == FW_INIT_STEP2_DATA) {
+- memcpy(pfirmware->firmware_buf[init_step], mapped_file, file_length);
+- pfirmware->firmware_buf_size[init_step] = file_length;
+- }
+- break;
+
+- default:
+- break;
++ if (rst_opt == OPT_SYSTEM_RESET)
++ release_firmware(fw_entry);
+ }
+-
+-
+- } else if (rst_opt == OPT_FIRMWARE_RESET) {
+- mapped_file = pfirmware->firmware_buf[init_step];
+- file_length = pfirmware->firmware_buf_size[init_step];
+ }
+
++ mapped_file = pfirmware->firmware_buf[init_step];
++ file_length = pfirmware->firmware_buf_size[init_step];
++
+ rt_status = fw_download_code(dev, mapped_file, file_length);
+ if (!rt_status) {
+ goto download_firmware_fail;
+diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h
+index 06d6abc..94fa16b 100644
+--- a/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h
++++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_firmware.h
+@@ -43,11 +43,6 @@ enum desc_packet_type {
+ DESC_PACKET_TYPE_NORMAL = 1,
+ };
+
+-enum firmware_source {
+- FW_SOURCE_IMG_FILE = 0,
+- FW_SOURCE_HEADER_FILE = 1,
+-};
+-
+ enum firmware_status {
+ FW_STATUS_0_INIT = 0,
+ FW_STATUS_1_MOVE_BOOT_CODE = 1,
+diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c
+index 08e7dbb..6767b59 100644
+--- a/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c
++++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_hwimg.c
+@@ -20,6 +20,7 @@
+
+ #include "r8192E_hwimg.h"
+
++#ifdef REMOVE_DFSG
+ u8 Rtl8192PciEFwBootArray[BootArrayLengthPciE] = {
+ 0x10,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x3c,0x08,0xbf,0xc0,0x25,0x08,0x00,0x08,
+ 0x3c,0x09,0xb0,0x03,0xad,0x28,0x00,0x20,0x40,0x80,0x68,0x00,0x00,0x00,0x00,0x00,
+@@ -2791,6 +2792,7 @@ u8 Rtl8192PciEFwDataArray[DataArrayLengthPciE] = {
+ 0x80,0x00,0x8f,0xd8,0x80,0x00,0x8f,0xec,0x80,0x00,0x90,0x00,0x80,0x00,0x8b,0x88,
+ };
+
++#endif
+ u32 Rtl8192PciEPHY_REGArray[PHY_REGArrayLengthPciE] = {0x0,};
+
+ u32 Rtl8192PciEPHY_REG_1T2RArray[PHY_REG_1T2RArrayLengthPciE] = {
+diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.h b/drivers/staging/rtl8192e/rtl8192e/rtl_core.h
+index 35fc116..d1438c2 100644
+--- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.h
++++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.h
+@@ -582,7 +582,6 @@ struct r8192_priv {
+
+ struct rt_firmware *pFirmware;
+ enum rtl819x_loopback LoopbackMode;
+- enum firmware_source firmware_source;
+
+ struct timer_list watch_dog_timer;
+ struct timer_list fsync_timer;