diff options
author | Hauke Mehrtens <hauke@openwrt.org> | 2014-12-07 15:34:28 +0000 |
---|---|---|
committer | Hauke Mehrtens <hauke@openwrt.org> | 2014-12-07 15:34:28 +0000 |
commit | 5b0c81ab74b76a53f58a53a6048747fb63a6abcb (patch) | |
tree | a5ad6e9d20b3cfdd6903deb101c31cf3f2624751 /target/linux/brcm47xx/patches-3.10/051-mtd_bcm47xxsflash_implement_polling_chip_status.patch | |
parent | 159bc0e7e99b91e473a028cddd73ff1a2468eae7 (diff) | |
download | master-187ad058-5b0c81ab74b76a53f58a53a6048747fb63a6abcb.tar.gz master-187ad058-5b0c81ab74b76a53f58a53a6048747fb63a6abcb.tar.bz2 master-187ad058-5b0c81ab74b76a53f58a53a6048747fb63a6abcb.zip |
brcm47xx: remove kernel 3.10
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43535 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/brcm47xx/patches-3.10/051-mtd_bcm47xxsflash_implement_polling_chip_status.patch')
-rw-r--r-- | target/linux/brcm47xx/patches-3.10/051-mtd_bcm47xxsflash_implement_polling_chip_status.patch | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/target/linux/brcm47xx/patches-3.10/051-mtd_bcm47xxsflash_implement_polling_chip_status.patch b/target/linux/brcm47xx/patches-3.10/051-mtd_bcm47xxsflash_implement_polling_chip_status.patch deleted file mode 100644 index 3b452342a9..0000000000 --- a/target/linux/brcm47xx/patches-3.10/051-mtd_bcm47xxsflash_implement_polling_chip_status.patch +++ /dev/null @@ -1,87 +0,0 @@ -commit 7026e9844112fa33e5ffcd562daf0c919b16a9d1 -Author: Rafał Miłecki <zajec5@gmail.com> -Date: Sun Mar 24 21:51:31 2013 +0100 - - mtd: bcm47xxsflash: implement polling chip status - - Signed-off-by: Rafał Miłecki <zajec5@gmail.com> - Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> - ---- a/drivers/mtd/devices/bcm47xxsflash.c -+++ b/drivers/mtd/devices/bcm47xxsflash.c -@@ -1,6 +1,7 @@ - #include <linux/kernel.h> - #include <linux/module.h> - #include <linux/slab.h> -+#include <linux/delay.h> - #include <linux/mtd/mtd.h> - #include <linux/platform_device.h> - #include <linux/bcma/bcma.h> -@@ -12,6 +13,57 @@ MODULE_DESCRIPTION("Serial flash driver - - static const char * const probes[] = { "bcm47xxpart", NULL }; - -+/************************************************** -+ * Various helpers -+ **************************************************/ -+ -+static void bcm47xxsflash_cmd(struct bcm47xxsflash *b47s, u32 opcode) -+{ -+ int i; -+ -+ b47s->cc_write(b47s, BCMA_CC_FLASHCTL, BCMA_CC_FLASHCTL_START | opcode); -+ for (i = 0; i < 1000; i++) { -+ if (!(b47s->cc_read(b47s, BCMA_CC_FLASHCTL) & -+ BCMA_CC_FLASHCTL_BUSY)) -+ return; -+ cpu_relax(); -+ } -+ pr_err("Control command failed (timeout)!\n"); -+} -+ -+static int bcm47xxsflash_poll(struct bcm47xxsflash *b47s, int timeout) -+{ -+ unsigned long deadline = jiffies + timeout; -+ -+ do { -+ switch (b47s->type) { -+ case BCM47XXSFLASH_TYPE_ST: -+ bcm47xxsflash_cmd(b47s, OPCODE_ST_RDSR); -+ if (!(b47s->cc_read(b47s, BCMA_CC_FLASHDATA) & -+ SR_ST_WIP)) -+ return 0; -+ break; -+ case BCM47XXSFLASH_TYPE_ATMEL: -+ bcm47xxsflash_cmd(b47s, OPCODE_AT_STATUS); -+ if (b47s->cc_read(b47s, BCMA_CC_FLASHDATA) & -+ SR_AT_READY) -+ return 0; -+ break; -+ } -+ -+ cpu_relax(); -+ udelay(1); -+ } while (!time_after_eq(jiffies, deadline)); -+ -+ pr_err("Timeout waiting for flash to be ready!\n"); -+ -+ return -EBUSY; -+} -+ -+/************************************************** -+ * MTD ops -+ **************************************************/ -+ - static int bcm47xxsflash_read(struct mtd_info *mtd, loff_t from, size_t len, - size_t *retlen, u_char *buf) - { -@@ -97,6 +149,9 @@ static int bcm47xxsflash_bcma_probe(stru - goto err_dev_reg; - } - -+ if (bcm47xxsflash_poll(b47s, HZ / 10)) -+ pr_warn("Serial flash busy\n"); -+ - return 0; - - err_dev_reg: |