diff options
author | John Crispin <john@openwrt.org> | 2010-08-06 15:49:42 +0000 |
---|---|---|
committer | John Crispin <john@openwrt.org> | 2010-08-06 15:49:42 +0000 |
commit | 419128775a76ef97e344462212b1a646a07e08a5 (patch) | |
tree | 4afd72a5fa1288f7ad7379835b4b7f28e6fb103f /package/ifx-vmmc/patches-2.6.33 | |
parent | e4598b8c1e33c6722ad4b4fddab3bbb1a0427cd3 (diff) | |
download | upstream-419128775a76ef97e344462212b1a646a07e08a5.tar.gz upstream-419128775a76ef97e344462212b1a646a07e08a5.tar.bz2 upstream-419128775a76ef97e344462212b1a646a07e08a5.zip |
* remove references to gpio_dev * make vmmc driver register its own memory and dont rely on arch code to do so * makes any Danube board with a CFI commandset 2 NOR flash chip functional again * fixes filenames of downloaded firmwares
thanks, Ithamar R. Adema
SVN-Revision: 22515
Diffstat (limited to 'package/ifx-vmmc/patches-2.6.33')
-rw-r--r-- | package/ifx-vmmc/patches-2.6.33/100-ifxmips.patch | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/package/ifx-vmmc/patches-2.6.33/100-ifxmips.patch b/package/ifx-vmmc/patches-2.6.33/100-ifxmips.patch index 6a4cc8d590..5d3d1c6cab 100644 --- a/package/ifx-vmmc/patches-2.6.33/100-ifxmips.patch +++ b/package/ifx-vmmc/patches-2.6.33/100-ifxmips.patch @@ -351,7 +351,7 @@ timer = TIMER1A; --- a/src/mps/drv_mps_vmmc_danube.c +++ b/src/mps/drv_mps_vmmc_danube.c -@@ -32,9 +32,22 @@ +@@ -32,9 +32,20 @@ #include "ifxos_select.h" #include "ifxos_interrupt.h" @@ -363,12 +363,10 @@ +# include <asm/mach-ifxmips/ifxmips_irq.h> +# include <asm/mach-ifxmips/ifxmips_gptu.h> +# include <asm/mach-ifxmips/ifxmips_prom.h> ++# include <linux/dma-mapping.h> + +# define IFX_RCU_RST_REQ IFXMIPS_RCU_RST +# define IFX_RCU_RST_REQ_CPU1 IFXMIPS_RCU_RST_CPU1 -+ -+# define ifx_get_cp1_base prom_get_cp1_base -+# define ifx_get_cp1_size prom_get_cp1_size +#else +# include <asm/ifx/ifx_regs.h> +# include <asm/ifx_vpe.h> @@ -377,6 +375,30 @@ #include "drv_mps_vmmc.h" #include "drv_mps_vmmc_dbg.h" +@@ -72,6 +71,23 @@ volatile IFX_uint32_t *danube_cp1_base; + /* Local function definition */ + /* ============================= */ + ++#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,28)) ++IFX_uint32_t ifx_get_cp1_size(IFX_void_t) ++{ ++ return 2; ++} ++ ++IFX_uint32_t *ifx_get_cp1_base(IFX_void_t) ++{ ++ if (!danube_cp1_base) { ++ dma_addr_t dma; ++ danube_cp1_base = dma_alloc_coherent(NULL, ifx_get_cp1_size()<<20, &dma, GFP_ATOMIC); ++ } ++ ++ return (IFX_uint32_t*)danube_cp1_base; ++} ++#endif ++ + /****************************************************************************** + * DANUBE Specific Routines + ******************************************************************************/ @@ -119,6 +132,15 @@ IFX_int32_t ifx_mps_download_firmware (m } |