summaryrefslogtreecommitdiff
path: root/target/linux/patches
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/patches')
-rw-r--r--target/linux/patches/2.6.32.70/proc-xscale.patch12
-rw-r--r--target/linux/patches/2.6.32.70/uaccess.patch14
-rw-r--r--target/linux/patches/5.10.236/arc.patch (renamed from target/linux/patches/5.10.234/arc.patch)0
-rw-r--r--target/linux/patches/5.10.236/darwin-dtc.patch (renamed from target/linux/patches/5.10.234/darwin-dtc.patch)0
-rw-r--r--target/linux/patches/5.10.236/dtc-noyaml.patch (renamed from target/linux/patches/5.10.234/dtc-noyaml.patch)0
-rw-r--r--target/linux/patches/5.10.236/nds32-ag101p.patch (renamed from target/linux/patches/5.10.234/nds32-ag101p.patch)0
-rw-r--r--target/linux/patches/5.10.236/or1k-more-ram.patch (renamed from target/linux/patches/5.10.234/or1k-more-ram.patch)0
-rw-r--r--target/linux/patches/5.10.236/relocs.patch (renamed from target/linux/patches/5.10.234/relocs.patch)0
-rw-r--r--target/linux/patches/5.10.236/startup.patch (renamed from target/linux/patches/5.10.234/startup.patch)0
-rw-r--r--target/linux/patches/5.15.180/darwin-dtc.patch (renamed from target/linux/patches/5.15.178/darwin-dtc.patch)0
-rw-r--r--target/linux/patches/5.15.180/dtc-noyaml.patch (renamed from target/linux/patches/5.15.178/dtc-noyaml.patch)0
-rw-r--r--target/linux/patches/5.15.180/enable-ethernet-bpi-m2-plus.patch (renamed from target/linux/patches/5.15.178/enable-ethernet-bpi-m2-plus.patch)0
-rw-r--r--target/linux/patches/5.15.180/nds32-ag101p.patch (renamed from target/linux/patches/5.15.178/nds32-ag101p.patch)0
-rw-r--r--target/linux/patches/5.15.180/or1k-more-ram.patch (renamed from target/linux/patches/5.15.178/or1k-more-ram.patch)0
-rw-r--r--target/linux/patches/5.15.180/relocs.patch (renamed from target/linux/patches/5.15.178/relocs.patch)0
-rw-r--r--target/linux/patches/5.15.180/rockchip-115200.patch (renamed from target/linux/patches/5.15.178/rockchip-115200.patch)0
-rw-r--r--target/linux/patches/5.15.180/startup.patch (renamed from target/linux/patches/5.15.178/startup.patch)0
-rw-r--r--target/linux/patches/5.4.292/arc.patch (renamed from target/linux/patches/5.4.289/arc.patch)0
-rw-r--r--target/linux/patches/5.4.292/arm-nommu.patch (renamed from target/linux/patches/5.4.289/arm-nommu.patch)0
-rw-r--r--target/linux/patches/5.4.292/darwin-dtc.patch (renamed from target/linux/patches/5.4.289/darwin-dtc.patch)0
-rw-r--r--target/linux/patches/5.4.292/dtc-noyaml.patch (renamed from target/linux/patches/5.4.289/dtc-noyaml.patch)0
-rw-r--r--target/linux/patches/5.4.292/macsonic.patch (renamed from target/linux/patches/5.4.289/macsonic.patch)0
-rw-r--r--target/linux/patches/5.4.292/or1k-more-ram.patch (renamed from target/linux/patches/5.4.289/or1k-more-ram.patch)0
-rw-r--r--target/linux/patches/5.4.292/relocs.patch (renamed from target/linux/patches/5.4.289/relocs.patch)0
-rw-r--r--target/linux/patches/5.4.292/sh4.patch (renamed from target/linux/patches/5.4.289/sh4.patch)0
-rw-r--r--target/linux/patches/5.4.292/startup.patch (renamed from target/linux/patches/5.4.289/startup.patch)0
-rw-r--r--target/linux/patches/6.1.135/armnommu-fix-thread-registers.patch (renamed from target/linux/patches/6.1.130/armnommu-fix-thread-registers.patch)0
-rw-r--r--target/linux/patches/6.1.135/armnommu-versatile.patch (renamed from target/linux/patches/6.1.130/armnommu-versatile.patch)0
-rw-r--r--target/linux/patches/6.1.135/board-rockpi4-0003-arm64-dts-pcie.patch (renamed from target/linux/patches/6.1.130/board-rockpi4-0003-arm64-dts-pcie.patch)0
-rw-r--r--target/linux/patches/6.1.135/enable-ethernet-bpi-m2-plus.patch (renamed from target/linux/patches/6.1.130/enable-ethernet-bpi-m2-plus.patch)0
-rw-r--r--target/linux/patches/6.1.135/hppa-cross-compile.patch (renamed from target/linux/patches/6.1.130/hppa-cross-compile.patch)0
-rw-r--r--target/linux/patches/6.1.135/macsonic.patch (renamed from target/linux/patches/6.1.130/macsonic.patch)0
-rw-r--r--target/linux/patches/6.1.135/nios2.patch (renamed from target/linux/patches/6.1.130/nios2.patch)0
-rw-r--r--target/linux/patches/6.1.135/or1k-more-ram.patch (renamed from target/linux/patches/6.1.130/or1k-more-ram.patch)0
-rw-r--r--target/linux/patches/6.1.135/riscv32.patch (renamed from target/linux/patches/6.1.130/riscv32.patch)0
-rw-r--r--target/linux/patches/6.1.135/riscv64-flat.patch (renamed from target/linux/patches/6.1.130/riscv64-flat.patch)0
-rw-r--r--target/linux/patches/6.1.135/rockchip-115200.patch (renamed from target/linux/patches/6.1.130/rockchip-115200.patch)0
-rw-r--r--target/linux/patches/6.1.135/rockchip-pcie-timeout.patch (renamed from target/linux/patches/6.1.130/rockchip-pcie-timeout.patch)0
-rw-r--r--target/linux/patches/6.12.37/armnommu-versatile.patch (renamed from target/linux/patches/6.12.18/armnommu-versatile.patch)0
-rw-r--r--target/linux/patches/6.12.37/hppa-cross-compile.patch (renamed from target/linux/patches/6.12.18/hppa-cross-compile.patch)0
-rw-r--r--target/linux/patches/6.12.37/macsonic.patch (renamed from target/linux/patches/6.12.18/macsonic.patch)0
-rw-r--r--target/linux/patches/6.12.37/mips-vdso-gcc15.patch12
-rw-r--r--target/linux/patches/6.15.6/0001-pcmcia-Add-Hitachi-HD6446x-PCMCIA-socket-support.patch720
-rw-r--r--target/linux/patches/6.15.6/orinoco.patch12933
-rw-r--r--target/linux/patches/6.6.88/armnommu-fix-thread-registers.patch (renamed from target/linux/patches/6.6.82/armnommu-fix-thread-registers.patch)0
-rw-r--r--target/linux/patches/6.6.88/armnommu-versatile.patch (renamed from target/linux/patches/6.6.82/armnommu-versatile.patch)0
-rw-r--r--target/linux/patches/6.6.88/hppa-cross-compile.patch (renamed from target/linux/patches/6.6.82/hppa-cross-compile.patch)0
-rw-r--r--target/linux/patches/6.6.88/linksys-nslu2.patch12
-rw-r--r--target/linux/patches/6.6.88/macsonic.patch (renamed from target/linux/patches/6.6.82/macsonic.patch)0
-rw-r--r--target/linux/patches/6a2f2e4198eaff63ee75f6085ce9f966c47b4441/flat-fix-debug-output.patch39
50 files changed, 13742 insertions, 0 deletions
diff --git a/target/linux/patches/2.6.32.70/proc-xscale.patch b/target/linux/patches/2.6.32.70/proc-xscale.patch
new file mode 100644
index 000000000..a8546bba9
--- /dev/null
+++ b/target/linux/patches/2.6.32.70/proc-xscale.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-2.6.32.70.orig/arch/arm/mm/proc-xscale.S linux-2.6.32.70/arch/arm/mm/proc-xscale.S
+--- linux-2.6.32.70.orig/arch/arm/mm/proc-xscale.S 2016-01-29 22:13:00.000000000 +0100
++++ linux-2.6.32.70/arch/arm/mm/proc-xscale.S 2025-04-06 10:56:31.793163221 +0200
+@@ -605,7 +605,7 @@
+
+ .align
+
+- .section ".proc.info.init", #alloc, #execinstr
++ .section ".proc.info.init", "ax"
+
+ .type __80200_A0_A1_proc_info,#object
+ __80200_A0_A1_proc_info:
diff --git a/target/linux/patches/2.6.32.70/uaccess.patch b/target/linux/patches/2.6.32.70/uaccess.patch
new file mode 100644
index 000000000..428a06b69
--- /dev/null
+++ b/target/linux/patches/2.6.32.70/uaccess.patch
@@ -0,0 +1,14 @@
+https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85745
+
+diff -Nur linux-2.6.32.70.orig/arch/arm/include/asm/uaccess.h linux-2.6.32.70/arch/arm/include/asm/uaccess.h
+--- linux-2.6.32.70.orig/arch/arm/include/asm/uaccess.h 2016-01-29 22:13:00.000000000 +0100
++++ linux-2.6.32.70/arch/arm/include/asm/uaccess.h 2025-04-06 10:41:37.342042671 +0200
+@@ -145,7 +145,7 @@
+
+ #define put_user(x,p) \
+ ({ \
+- register const typeof(*(p)) __r2 asm("r2") = (x); \
++ register typeof(*(p)) __r2 asm("r2") = (x); \
+ register const typeof(*(p)) __user *__p asm("r0") = (p);\
+ register int __e asm("r0"); \
+ switch (sizeof(*(__p))) { \
diff --git a/target/linux/patches/5.10.234/arc.patch b/target/linux/patches/5.10.236/arc.patch
index 20810ce64..20810ce64 100644
--- a/target/linux/patches/5.10.234/arc.patch
+++ b/target/linux/patches/5.10.236/arc.patch
diff --git a/target/linux/patches/5.10.234/darwin-dtc.patch b/target/linux/patches/5.10.236/darwin-dtc.patch
index 0cdc23ab4..0cdc23ab4 100644
--- a/target/linux/patches/5.10.234/darwin-dtc.patch
+++ b/target/linux/patches/5.10.236/darwin-dtc.patch
diff --git a/target/linux/patches/5.10.234/dtc-noyaml.patch b/target/linux/patches/5.10.236/dtc-noyaml.patch
index 759bb01f7..759bb01f7 100644
--- a/target/linux/patches/5.10.234/dtc-noyaml.patch
+++ b/target/linux/patches/5.10.236/dtc-noyaml.patch
diff --git a/target/linux/patches/5.10.234/nds32-ag101p.patch b/target/linux/patches/5.10.236/nds32-ag101p.patch
index a8beea478..a8beea478 100644
--- a/target/linux/patches/5.10.234/nds32-ag101p.patch
+++ b/target/linux/patches/5.10.236/nds32-ag101p.patch
diff --git a/target/linux/patches/5.10.234/or1k-more-ram.patch b/target/linux/patches/5.10.236/or1k-more-ram.patch
index de848c838..de848c838 100644
--- a/target/linux/patches/5.10.234/or1k-more-ram.patch
+++ b/target/linux/patches/5.10.236/or1k-more-ram.patch
diff --git a/target/linux/patches/5.10.234/relocs.patch b/target/linux/patches/5.10.236/relocs.patch
index 5bcd974c7..5bcd974c7 100644
--- a/target/linux/patches/5.10.234/relocs.patch
+++ b/target/linux/patches/5.10.236/relocs.patch
diff --git a/target/linux/patches/5.10.234/startup.patch b/target/linux/patches/5.10.236/startup.patch
index eef481021..eef481021 100644
--- a/target/linux/patches/5.10.234/startup.patch
+++ b/target/linux/patches/5.10.236/startup.patch
diff --git a/target/linux/patches/5.15.178/darwin-dtc.patch b/target/linux/patches/5.15.180/darwin-dtc.patch
index 0cdc23ab4..0cdc23ab4 100644
--- a/target/linux/patches/5.15.178/darwin-dtc.patch
+++ b/target/linux/patches/5.15.180/darwin-dtc.patch
diff --git a/target/linux/patches/5.15.178/dtc-noyaml.patch b/target/linux/patches/5.15.180/dtc-noyaml.patch
index 759bb01f7..759bb01f7 100644
--- a/target/linux/patches/5.15.178/dtc-noyaml.patch
+++ b/target/linux/patches/5.15.180/dtc-noyaml.patch
diff --git a/target/linux/patches/5.15.178/enable-ethernet-bpi-m2-plus.patch b/target/linux/patches/5.15.180/enable-ethernet-bpi-m2-plus.patch
index 7e9abd9ce..7e9abd9ce 100644
--- a/target/linux/patches/5.15.178/enable-ethernet-bpi-m2-plus.patch
+++ b/target/linux/patches/5.15.180/enable-ethernet-bpi-m2-plus.patch
diff --git a/target/linux/patches/5.15.178/nds32-ag101p.patch b/target/linux/patches/5.15.180/nds32-ag101p.patch
index a8beea478..a8beea478 100644
--- a/target/linux/patches/5.15.178/nds32-ag101p.patch
+++ b/target/linux/patches/5.15.180/nds32-ag101p.patch
diff --git a/target/linux/patches/5.15.178/or1k-more-ram.patch b/target/linux/patches/5.15.180/or1k-more-ram.patch
index de848c838..de848c838 100644
--- a/target/linux/patches/5.15.178/or1k-more-ram.patch
+++ b/target/linux/patches/5.15.180/or1k-more-ram.patch
diff --git a/target/linux/patches/5.15.178/relocs.patch b/target/linux/patches/5.15.180/relocs.patch
index 5bcd974c7..5bcd974c7 100644
--- a/target/linux/patches/5.15.178/relocs.patch
+++ b/target/linux/patches/5.15.180/relocs.patch
diff --git a/target/linux/patches/5.15.178/rockchip-115200.patch b/target/linux/patches/5.15.180/rockchip-115200.patch
index ad8a2d7a7..ad8a2d7a7 100644
--- a/target/linux/patches/5.15.178/rockchip-115200.patch
+++ b/target/linux/patches/5.15.180/rockchip-115200.patch
diff --git a/target/linux/patches/5.15.178/startup.patch b/target/linux/patches/5.15.180/startup.patch
index eef481021..eef481021 100644
--- a/target/linux/patches/5.15.178/startup.patch
+++ b/target/linux/patches/5.15.180/startup.patch
diff --git a/target/linux/patches/5.4.289/arc.patch b/target/linux/patches/5.4.292/arc.patch
index 20810ce64..20810ce64 100644
--- a/target/linux/patches/5.4.289/arc.patch
+++ b/target/linux/patches/5.4.292/arc.patch
diff --git a/target/linux/patches/5.4.289/arm-nommu.patch b/target/linux/patches/5.4.292/arm-nommu.patch
index fdcec3f09..fdcec3f09 100644
--- a/target/linux/patches/5.4.289/arm-nommu.patch
+++ b/target/linux/patches/5.4.292/arm-nommu.patch
diff --git a/target/linux/patches/5.4.289/darwin-dtc.patch b/target/linux/patches/5.4.292/darwin-dtc.patch
index 0cdc23ab4..0cdc23ab4 100644
--- a/target/linux/patches/5.4.289/darwin-dtc.patch
+++ b/target/linux/patches/5.4.292/darwin-dtc.patch
diff --git a/target/linux/patches/5.4.289/dtc-noyaml.patch b/target/linux/patches/5.4.292/dtc-noyaml.patch
index 759bb01f7..759bb01f7 100644
--- a/target/linux/patches/5.4.289/dtc-noyaml.patch
+++ b/target/linux/patches/5.4.292/dtc-noyaml.patch
diff --git a/target/linux/patches/5.4.289/macsonic.patch b/target/linux/patches/5.4.292/macsonic.patch
index 75a6fcad2..75a6fcad2 100644
--- a/target/linux/patches/5.4.289/macsonic.patch
+++ b/target/linux/patches/5.4.292/macsonic.patch
diff --git a/target/linux/patches/5.4.289/or1k-more-ram.patch b/target/linux/patches/5.4.292/or1k-more-ram.patch
index 540dc43b5..540dc43b5 100644
--- a/target/linux/patches/5.4.289/or1k-more-ram.patch
+++ b/target/linux/patches/5.4.292/or1k-more-ram.patch
diff --git a/target/linux/patches/5.4.289/relocs.patch b/target/linux/patches/5.4.292/relocs.patch
index 5bcd974c7..5bcd974c7 100644
--- a/target/linux/patches/5.4.289/relocs.patch
+++ b/target/linux/patches/5.4.292/relocs.patch
diff --git a/target/linux/patches/5.4.289/sh4.patch b/target/linux/patches/5.4.292/sh4.patch
index 8ae79d49d..8ae79d49d 100644
--- a/target/linux/patches/5.4.289/sh4.patch
+++ b/target/linux/patches/5.4.292/sh4.patch
diff --git a/target/linux/patches/5.4.289/startup.patch b/target/linux/patches/5.4.292/startup.patch
index 081aa103a..081aa103a 100644
--- a/target/linux/patches/5.4.289/startup.patch
+++ b/target/linux/patches/5.4.292/startup.patch
diff --git a/target/linux/patches/6.1.130/armnommu-fix-thread-registers.patch b/target/linux/patches/6.1.135/armnommu-fix-thread-registers.patch
index 8ab2196dc..8ab2196dc 100644
--- a/target/linux/patches/6.1.130/armnommu-fix-thread-registers.patch
+++ b/target/linux/patches/6.1.135/armnommu-fix-thread-registers.patch
diff --git a/target/linux/patches/6.1.130/armnommu-versatile.patch b/target/linux/patches/6.1.135/armnommu-versatile.patch
index f8f10f50b..f8f10f50b 100644
--- a/target/linux/patches/6.1.130/armnommu-versatile.patch
+++ b/target/linux/patches/6.1.135/armnommu-versatile.patch
diff --git a/target/linux/patches/6.1.130/board-rockpi4-0003-arm64-dts-pcie.patch b/target/linux/patches/6.1.135/board-rockpi4-0003-arm64-dts-pcie.patch
index 1777e7a86..1777e7a86 100644
--- a/target/linux/patches/6.1.130/board-rockpi4-0003-arm64-dts-pcie.patch
+++ b/target/linux/patches/6.1.135/board-rockpi4-0003-arm64-dts-pcie.patch
diff --git a/target/linux/patches/6.1.130/enable-ethernet-bpi-m2-plus.patch b/target/linux/patches/6.1.135/enable-ethernet-bpi-m2-plus.patch
index 7e9abd9ce..7e9abd9ce 100644
--- a/target/linux/patches/6.1.130/enable-ethernet-bpi-m2-plus.patch
+++ b/target/linux/patches/6.1.135/enable-ethernet-bpi-m2-plus.patch
diff --git a/target/linux/patches/6.1.130/hppa-cross-compile.patch b/target/linux/patches/6.1.135/hppa-cross-compile.patch
index 5400e87a0..5400e87a0 100644
--- a/target/linux/patches/6.1.130/hppa-cross-compile.patch
+++ b/target/linux/patches/6.1.135/hppa-cross-compile.patch
diff --git a/target/linux/patches/6.1.130/macsonic.patch b/target/linux/patches/6.1.135/macsonic.patch
index 177397221..177397221 100644
--- a/target/linux/patches/6.1.130/macsonic.patch
+++ b/target/linux/patches/6.1.135/macsonic.patch
diff --git a/target/linux/patches/6.1.130/nios2.patch b/target/linux/patches/6.1.135/nios2.patch
index 43631971e..43631971e 100644
--- a/target/linux/patches/6.1.130/nios2.patch
+++ b/target/linux/patches/6.1.135/nios2.patch
diff --git a/target/linux/patches/6.1.130/or1k-more-ram.patch b/target/linux/patches/6.1.135/or1k-more-ram.patch
index 6397f8445..6397f8445 100644
--- a/target/linux/patches/6.1.130/or1k-more-ram.patch
+++ b/target/linux/patches/6.1.135/or1k-more-ram.patch
diff --git a/target/linux/patches/6.1.130/riscv32.patch b/target/linux/patches/6.1.135/riscv32.patch
index 648b0de4d..648b0de4d 100644
--- a/target/linux/patches/6.1.130/riscv32.patch
+++ b/target/linux/patches/6.1.135/riscv32.patch
diff --git a/target/linux/patches/6.1.130/riscv64-flat.patch b/target/linux/patches/6.1.135/riscv64-flat.patch
index ee70ea915..ee70ea915 100644
--- a/target/linux/patches/6.1.130/riscv64-flat.patch
+++ b/target/linux/patches/6.1.135/riscv64-flat.patch
diff --git a/target/linux/patches/6.1.130/rockchip-115200.patch b/target/linux/patches/6.1.135/rockchip-115200.patch
index ad8a2d7a7..ad8a2d7a7 100644
--- a/target/linux/patches/6.1.130/rockchip-115200.patch
+++ b/target/linux/patches/6.1.135/rockchip-115200.patch
diff --git a/target/linux/patches/6.1.130/rockchip-pcie-timeout.patch b/target/linux/patches/6.1.135/rockchip-pcie-timeout.patch
index 2ef7df2da..2ef7df2da 100644
--- a/target/linux/patches/6.1.130/rockchip-pcie-timeout.patch
+++ b/target/linux/patches/6.1.135/rockchip-pcie-timeout.patch
diff --git a/target/linux/patches/6.12.18/armnommu-versatile.patch b/target/linux/patches/6.12.37/armnommu-versatile.patch
index f8f10f50b..f8f10f50b 100644
--- a/target/linux/patches/6.12.18/armnommu-versatile.patch
+++ b/target/linux/patches/6.12.37/armnommu-versatile.patch
diff --git a/target/linux/patches/6.12.18/hppa-cross-compile.patch b/target/linux/patches/6.12.37/hppa-cross-compile.patch
index 51c24fff2..51c24fff2 100644
--- a/target/linux/patches/6.12.18/hppa-cross-compile.patch
+++ b/target/linux/patches/6.12.37/hppa-cross-compile.patch
diff --git a/target/linux/patches/6.12.18/macsonic.patch b/target/linux/patches/6.12.37/macsonic.patch
index 51e76113b..51e76113b 100644
--- a/target/linux/patches/6.12.18/macsonic.patch
+++ b/target/linux/patches/6.12.37/macsonic.patch
diff --git a/target/linux/patches/6.12.37/mips-vdso-gcc15.patch b/target/linux/patches/6.12.37/mips-vdso-gcc15.patch
new file mode 100644
index 000000000..c18bc6c92
--- /dev/null
+++ b/target/linux/patches/6.12.37/mips-vdso-gcc15.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-6.12.25.orig/arch/mips/vdso/Makefile linux-6.12.25/arch/mips/vdso/Makefile
+--- linux-6.12.25.orig/arch/mips/vdso/Makefile 2025-04-25 10:48:08.000000000 +0200
++++ linux-6.12.25/arch/mips/vdso/Makefile 2025-04-30 19:42:08.538362252 +0200
+@@ -30,7 +30,7 @@
+ -O3 -g -fPIC -fno-strict-aliasing -fno-common -fno-builtin -G 0 \
+ -mrelax-pic-calls $(call cc-option, -mexplicit-relocs) \
+ -fno-stack-protector -fno-jump-tables -DDISABLE_BRANCH_PROFILING \
+- $(call cc-option, -fno-asynchronous-unwind-tables)
++ $(call cc-option, -fno-asynchronous-unwind-tables) -std=gnu11
+ aflags-vdso := $(ccflags-vdso) \
+ -D__ASSEMBLY__ -Wa,-gdwarf-2
+
diff --git a/target/linux/patches/6.15.6/0001-pcmcia-Add-Hitachi-HD6446x-PCMCIA-socket-support.patch b/target/linux/patches/6.15.6/0001-pcmcia-Add-Hitachi-HD6446x-PCMCIA-socket-support.patch
new file mode 100644
index 000000000..5c46fe5e4
--- /dev/null
+++ b/target/linux/patches/6.15.6/0001-pcmcia-Add-Hitachi-HD6446x-PCMCIA-socket-support.patch
@@ -0,0 +1,720 @@
+From b6ffbcb525539139a9b2255b992622f92757ea37 Mon Sep 17 00:00:00 2001
+From: Artur Rojek <contact@artur-rojek.eu>
+Date: Fri, 1 Aug 2025 22:52:22 +0200
+Subject: [PATCH] pcmcia: Add Hitachi HD6446x PCMCIA socket support
+
+Introduce support for the PC Card Controller part of the Hitachi HD6446x
+series of Intelligent Peripheral Controllers.
+
+WIP code. DO NOT UPSTREAM!
+---
+ arch/sh/boards/mach-hp6xx/setup.c | 45 ++-
+ arch/sh/cchips/hd6446x/hd64461.c | 56 +++-
+ arch/sh/include/asm/hd64461.h | 6 +-
+ drivers/pcmcia/Kconfig | 7 +
+ drivers/pcmcia/Makefile | 1 +
+ drivers/pcmcia/hd6446x_pcc.c | 453 ++++++++++++++++++++++++++++++
+ include/pcmcia/hd6446x_pcc.h | 9 +
+ 7 files changed, 569 insertions(+), 8 deletions(-)
+ create mode 100644 drivers/pcmcia/hd6446x_pcc.c
+ create mode 100644 include/pcmcia/hd6446x_pcc.h
+
+diff --git a/arch/sh/boards/mach-hp6xx/setup.c b/arch/sh/boards/mach-hp6xx/setup.c
+index 2ceead68d7bf..c697b8e1f5ac 100644
+--- a/arch/sh/boards/mach-hp6xx/setup.c
++++ b/arch/sh/boards/mach-hp6xx/setup.c
+@@ -18,19 +18,23 @@
+ #include <mach/hp6xx.h>
+ #include <cpu/dac.h>
+
++#include <pcmcia/hd6446x_pcc.h>
++
+ #define SCPCR 0xa4000116
+ #define SCPDR 0xa4000136
+
++#define CF_MEM_ATTR (0x15000000 - 0)
++
+ /* CF Slot */
+ static struct resource cf_ide_resources[] = {
+ [0] = {
+- .start = 0x15000000 + 0x1f0,
+- .end = 0x15000000 + 0x1f0 + 0x08 - 0x01,
++ .start = CF_MEM_ATTR + 0x1f0,
++ .end = CF_MEM_ATTR + 0x1f0 + 0x08 - 0x01,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+- .start = 0x15000000 + 0x1fe,
+- .end = 0x15000000 + 0x1fe + 0x01,
++ .start = CF_MEM_ATTR + 0x1fe,
++ .end = CF_MEM_ATTR + 0x1fe + 0x01,
+ .flags = IORESOURCE_MEM,
+ },
+ [2] = {
+@@ -51,6 +55,36 @@ static struct platform_device jornadakbd_device = {
+ .id = -1,
+ };
+
++static struct resource hd6446x_pcc_resources[] = {
++ [0] = {
++ .start = HD64461_PCC0ISR,
++ .end = HD64461_PCC0ISR + 0x10,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = HD64461_PCC0_BASE,
++ .end = HD64461_PCC0_BASE + 0x4000000,
++ .flags = IORESOURCE_MEM,
++ },
++ [2] = {
++ .start = HD64461_IRQ_PCC0,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++static struct hd6446x_pcc_plat_data hd6446x_pcc_platform_data = {
++ .slot_id = 1,
++ .io_support = true,
++};
++
++static struct platform_device hp6446x_pcc_device = {
++ .name = "hd6446x_pcc",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(hd6446x_pcc_resources),
++ .resource = hd6446x_pcc_resources,
++ .dev.platform_data = &hd6446x_pcc_platform_data,
++};
++
+ static void dac_audio_start(struct dac_audio_pdata *pdata)
+ {
+ u16 v;
+@@ -108,6 +142,7 @@ static struct platform_device *hp6xx_devices[] __initdata = {
+ &cf_ide_device,
+ &jornadakbd_device,
+ &dac_audio_device,
++ &hp6446x_pcc_device,
+ };
+
+ static void __init hp6xx_init_irq(void)
+@@ -126,6 +161,8 @@ static void __init hp6xx_setup(char **cmdline_p)
+ u8 v8;
+ u16 v;
+
++ __set_io_port_base(0);
++
+ v = inw(HD64461_STBCR);
+ v |= HD64461_STBCR_SURTST | HD64461_STBCR_SIRST |
+ HD64461_STBCR_STM1ST | HD64461_STBCR_STM0ST |
+diff --git a/arch/sh/cchips/hd6446x/hd64461.c b/arch/sh/cchips/hd6446x/hd64461.c
+index 81764882d87d..965486584ee5 100644
+--- a/arch/sh/cchips/hd6446x/hd64461.c
++++ b/arch/sh/cchips/hd6446x/hd64461.c
+@@ -4,7 +4,9 @@
+ * Hitachi HD64461 companion chip support
+ */
+
++#include <linux/clkdev.h>
+ #include <linux/sched.h>
++#include <linux/sh_clk.h>
+ #include <linux/module.h>
+ #include <linux/kernel.h>
+ #include <linux/param.h>
+@@ -45,7 +47,7 @@ static void hd64461_mask_and_ack_irq(struct irq_data *data)
+ hd64461_mask_irq(data);
+
+ #ifdef CONFIG_HD64461_ENABLER
+- if (data->irq == HD64461_IRQBASE + 13)
++ if (data->irq == HD64461_IRQ_PCC1)
+ __raw_writeb(0x00, HD64461_PCC1CSCR);
+ #endif
+ }
+@@ -72,6 +74,51 @@ static void hd64461_irq_demux(struct irq_desc *desc)
+ }
+ }
+
++static int hd64461_clk_enable(struct clk *clk)
++{
++ u16 reg = __raw_readw(HD64461_STBCR);
++
++ printk("clk enable: %d\n", clk->enable_bit);
++
++ __raw_writew(reg & ~(1 << clk->enable_bit), HD64461_STBCR);
++
++ return 0;
++}
++
++static void hd64461_clk_disable(struct clk *clk)
++{
++ u16 reg = __raw_readw(HD64461_STBCR);
++
++ printk("clk disable: %d\n", clk->enable_bit);
++ //panic("clk disable: %d\n", clk->enable_bit);
++
++
++ __raw_writew(reg | (1 << clk->enable_bit), HD64461_STBCR);
++}
++
++static struct sh_clk_ops hd64461_clk_ops = {
++ .enable = hd64461_clk_enable,
++ .disable = hd64461_clk_disable,
++};
++