mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
bcm63xx: add a fixup for ath9k devices
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31880 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
From 087a67d5750a51f5b0851228b5b2518f3300f7d8 Mon Sep 17 00:00:00 2001
|
||||
From: Jonas Gorski <jonas.gorski@gmail.com>
|
||||
Date: Thu, 3 May 2012 12:17:54 +0200
|
||||
Subject: [PATCH 65/79] MIPS: BCM63XX: store the flash type in global variable
|
||||
|
||||
---
|
||||
arch/mips/bcm63xx/dev-flash.c | 36 +++++++++++++-------
|
||||
.../include/asm/mach-bcm63xx/bcm63xx_dev_flash.h | 2 ++
|
||||
2 files changed, 26 insertions(+), 12 deletions(-)
|
||||
|
||||
--- a/arch/mips/bcm63xx/dev-flash.c
|
||||
+++ b/arch/mips/bcm63xx/dev-flash.c
|
||||
@@ -24,6 +24,8 @@
|
||||
#include <bcm63xx_regs.h>
|
||||
#include <bcm63xx_io.h>
|
||||
|
||||
+int bcm63xx_attached_flash = -1;
|
||||
+
|
||||
static struct mtd_partition mtd_partitions[] = {
|
||||
{
|
||||
.name = "cfe",
|
||||
@@ -81,20 +83,23 @@ static int __init bcm63xx_detect_flash_t
|
||||
bcm63xx_spi_flash_info[0].max_speed_hz = 40000000;
|
||||
val = bcm_misc_readl(MISC_STRAPBUS_6328_REG);
|
||||
if (val & STRAPBUS_6328_BOOT_SEL_SERIAL)
|
||||
- return BCM63XX_FLASH_TYPE_SERIAL;
|
||||
+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_SERIAL;
|
||||
else
|
||||
- return BCM63XX_FLASH_TYPE_NAND;
|
||||
+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_NAND;
|
||||
+ break;
|
||||
case BCM6338_CPU_ID:
|
||||
case BCM6345_CPU_ID:
|
||||
case BCM6348_CPU_ID:
|
||||
/* no way to auto detect so assume parallel */
|
||||
- return BCM63XX_FLASH_TYPE_PARALLEL;
|
||||
+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_PARALLEL;
|
||||
+ break;
|
||||
case BCM6358_CPU_ID:
|
||||
val = bcm_gpio_readl(GPIO_STRAPBUS_REG);
|
||||
if (val & STRAPBUS_6358_BOOT_SEL_PARALLEL)
|
||||
- return BCM63XX_FLASH_TYPE_PARALLEL;
|
||||
+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_PARALLEL;
|
||||
else
|
||||
- return BCM63XX_FLASH_TYPE_SERIAL;
|
||||
+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_SERIAL;
|
||||
+ break;
|
||||
case BCM6368_CPU_ID:
|
||||
val = bcm_gpio_readl(GPIO_STRAPBUS_REG);
|
||||
if (val & STRAPBUS_6368_SPI_CLK_FAST)
|
||||
@@ -102,25 +107,32 @@ static int __init bcm63xx_detect_flash_t
|
||||
|
||||
switch (val & STRAPBUS_6368_BOOT_SEL_MASK) {
|
||||
case STRAPBUS_6368_BOOT_SEL_NAND:
|
||||
- return BCM63XX_FLASH_TYPE_NAND;
|
||||
+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_NAND;
|
||||
+ break;
|
||||
case STRAPBUS_6368_BOOT_SEL_SERIAL:
|
||||
- return BCM63XX_FLASH_TYPE_SERIAL;
|
||||
+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_SERIAL;
|
||||
+ break;
|
||||
case STRAPBUS_6368_BOOT_SEL_PARALLEL:
|
||||
- return BCM63XX_FLASH_TYPE_PARALLEL;
|
||||
+ bcm63xx_attached_flash = BCM63XX_FLASH_TYPE_PARALLEL;
|
||||
+ break;
|
||||
+ default:
|
||||
+ return -EINVAL;
|
||||
}
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
int __init bcm63xx_flash_register(void)
|
||||
{
|
||||
- int flash_type;
|
||||
u32 val;
|
||||
|
||||
- flash_type = bcm63xx_detect_flash_type();
|
||||
|
||||
- switch (flash_type) {
|
||||
+ bcm63xx_detect_flash_type();
|
||||
+
|
||||
+ switch (bcm63xx_attached_flash) {
|
||||
case BCM63XX_FLASH_TYPE_PARALLEL:
|
||||
/* read base address of boot chip select (0) */
|
||||
val = bcm_mpi_readl(MPI_CSBASE_REG(0));
|
||||
@@ -141,7 +153,7 @@ int __init bcm63xx_flash_register(void)
|
||||
return -ENODEV;
|
||||
default:
|
||||
pr_err("flash detection failed for BCM%x: %d",
|
||||
- bcm63xx_get_cpu_id(), flash_type);
|
||||
+ bcm63xx_get_cpu_id(), bcm63xx_attached_flash);
|
||||
return -ENODEV;
|
||||
}
|
||||
}
|
||||
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h
|
||||
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_flash.h
|
||||
@@ -7,6 +7,8 @@ enum {
|
||||
BCM63XX_FLASH_TYPE_NAND,
|
||||
};
|
||||
|
||||
+extern int bcm63xx_attached_flash;
|
||||
+
|
||||
int __init bcm63xx_flash_register(void);
|
||||
|
||||
#endif /* __BCM63XX_FLASH_H */
|
||||
Reference in New Issue
Block a user