mirror of https://github.com/hak5/openwrt.git
brcm2708: update 3.10 patches with raspberrypi/rpi-3.10.y of 27 Apr. 2014
Update the 3.10 rasperry patches by rebasing raspberry/rpi-3.10-y against linux-stable/v3.10.49. Signed-off-by: Florian Fainelli <florian@openwrt.org> SVN-Revision: 42678lede-17.01
parent
ff6b0d57b8
commit
6918ea2484
|
@ -1,7 +1,7 @@
|
||||||
From 47ecfc09ad3289994f80bd3dcaec876ac536d884 Mon Sep 17 00:00:00 2001
|
From 8775cd3a02a2eb38e20465b0ca5db05de1f75125 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Sun, 12 May 2013 12:24:19 +0100
|
Date: Sun, 12 May 2013 12:24:19 +0100
|
||||||
Subject: [PATCH 001/174] Main bcm2708 linux port
|
Subject: [PATCH 001/196] Main bcm2708 linux port
|
||||||
|
|
||||||
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
---
|
---
|
||||||
|
@ -95,6 +95,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
create mode 100644 arch/arm/mach-bcm2708/vcio.c
|
create mode 100644 arch/arm/mach-bcm2708/vcio.c
|
||||||
create mode 100644 drivers/mmc/host/sdhci-bcm2708.c
|
create mode 100644 drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
|
||||||
|
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
|
||||||
|
index 18a9f5e..eb291c7 100644
|
||||||
--- a/arch/arm/Kconfig
|
--- a/arch/arm/Kconfig
|
||||||
+++ b/arch/arm/Kconfig
|
+++ b/arch/arm/Kconfig
|
||||||
@@ -361,6 +361,21 @@ config ARCH_AT91
|
@@ -361,6 +361,21 @@ config ARCH_AT91
|
||||||
|
@ -127,6 +129,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
|
|
||||||
source "arch/arm/mach-zynq/Kconfig"
|
source "arch/arm/mach-zynq/Kconfig"
|
||||||
|
|
||||||
|
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
|
||||||
|
index 1d41908..52377c9 100644
|
||||||
--- a/arch/arm/Kconfig.debug
|
--- a/arch/arm/Kconfig.debug
|
||||||
+++ b/arch/arm/Kconfig.debug
|
+++ b/arch/arm/Kconfig.debug
|
||||||
@@ -519,6 +519,14 @@ choice
|
@@ -519,6 +519,14 @@ choice
|
||||||
|
@ -144,9 +148,11 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
config DEBUG_EXYNOS_UART
|
config DEBUG_EXYNOS_UART
|
||||||
|
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
|
||||||
|
index 1ba358b..fb73cf0 100644
|
||||||
--- a/arch/arm/Makefile
|
--- a/arch/arm/Makefile
|
||||||
+++ b/arch/arm/Makefile
|
+++ b/arch/arm/Makefile
|
||||||
@@ -144,6 +144,7 @@ textofs-$(CONFIG_ARCH_MSM8960) := 0x0020
|
@@ -139,6 +139,7 @@ textofs-$(CONFIG_ARCH_MSM8960) := 0x00208000
|
||||||
# by CONFIG_* macro name.
|
# by CONFIG_* macro name.
|
||||||
machine-$(CONFIG_ARCH_AT91) += at91
|
machine-$(CONFIG_ARCH_AT91) += at91
|
||||||
machine-$(CONFIG_ARCH_BCM) += bcm
|
machine-$(CONFIG_ARCH_BCM) += bcm
|
||||||
|
@ -154,6 +160,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
machine-$(CONFIG_ARCH_BCM2835) += bcm2835
|
machine-$(CONFIG_ARCH_BCM2835) += bcm2835
|
||||||
machine-$(CONFIG_ARCH_CLPS711X) += clps711x
|
machine-$(CONFIG_ARCH_CLPS711X) += clps711x
|
||||||
machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx
|
machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx
|
||||||
|
diff --git a/arch/arm/configs/bcmrpi_cutdown_defconfig b/arch/arm/configs/bcmrpi_cutdown_defconfig
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..74f2dc9
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/configs/bcmrpi_cutdown_defconfig
|
+++ b/arch/arm/configs/bcmrpi_cutdown_defconfig
|
||||||
@@ -0,0 +1,474 @@
|
@@ -0,0 +1,474 @@
|
||||||
|
@ -631,6 +640,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+# CONFIG_CRYPTO_HW is not set
|
+# CONFIG_CRYPTO_HW is not set
|
||||||
+CONFIG_CRC_ITU_T=y
|
+CONFIG_CRC_ITU_T=y
|
||||||
+CONFIG_LIBCRC32C=y
|
+CONFIG_LIBCRC32C=y
|
||||||
|
diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..339aabf
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/configs/bcmrpi_defconfig
|
+++ b/arch/arm/configs/bcmrpi_defconfig
|
||||||
@@ -0,0 +1,510 @@
|
@@ -0,0 +1,510 @@
|
||||||
|
@ -1144,6 +1156,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+# CONFIG_CRYPTO_HW is not set
|
+# CONFIG_CRYPTO_HW is not set
|
||||||
+CONFIG_CRC_ITU_T=y
|
+CONFIG_CRC_ITU_T=y
|
||||||
+CONFIG_LIBCRC32C=y
|
+CONFIG_LIBCRC32C=y
|
||||||
|
diff --git a/arch/arm/configs/bcmrpi_emergency_defconfig b/arch/arm/configs/bcmrpi_emergency_defconfig
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..3b40c49
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/configs/bcmrpi_emergency_defconfig
|
+++ b/arch/arm/configs/bcmrpi_emergency_defconfig
|
||||||
@@ -0,0 +1,532 @@
|
@@ -0,0 +1,532 @@
|
||||||
|
@ -1679,6 +1694,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+# CONFIG_CRYPTO_HW is not set
|
+# CONFIG_CRYPTO_HW is not set
|
||||||
+CONFIG_CRC_ITU_T=y
|
+CONFIG_CRC_ITU_T=y
|
||||||
+CONFIG_LIBCRC32C=y
|
+CONFIG_LIBCRC32C=y
|
||||||
|
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
|
||||||
|
index ac4c2e5..d3a6810 100644
|
||||||
--- a/arch/arm/kernel/process.c
|
--- a/arch/arm/kernel/process.c
|
||||||
+++ b/arch/arm/kernel/process.c
|
+++ b/arch/arm/kernel/process.c
|
||||||
@@ -174,7 +174,7 @@ void arch_cpu_idle(void)
|
@@ -174,7 +174,7 @@ void arch_cpu_idle(void)
|
||||||
|
@ -1690,6 +1707,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
|
|
||||||
int __init reboot_setup(char *str)
|
int __init reboot_setup(char *str)
|
||||||
{
|
{
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/Kconfig b/arch/arm/mach-bcm2708/Kconfig
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..63bb76c
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/Kconfig
|
+++ b/arch/arm/mach-bcm2708/Kconfig
|
||||||
@@ -0,0 +1,34 @@
|
@@ -0,0 +1,34 @@
|
||||||
|
@ -1727,6 +1747,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ Do not allow ARM to use GPU's L2 cache. Requires disable_l2cache in config.txt.
|
+ Do not allow ARM to use GPU's L2 cache. Requires disable_l2cache in config.txt.
|
||||||
+
|
+
|
||||||
+endmenu
|
+endmenu
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/Makefile b/arch/arm/mach-bcm2708/Makefile
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..164ecb2
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/Makefile
|
+++ b/arch/arm/mach-bcm2708/Makefile
|
||||||
@@ -0,0 +1,8 @@
|
@@ -0,0 +1,8 @@
|
||||||
|
@ -1738,12 +1761,18 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+obj-$(CONFIG_BCM2708_GPIO) += bcm2708_gpio.o
|
+obj-$(CONFIG_BCM2708_GPIO) += bcm2708_gpio.o
|
||||||
+obj-$(CONFIG_BCM2708_VCMEM) += vc_mem.o
|
+obj-$(CONFIG_BCM2708_VCMEM) += vc_mem.o
|
||||||
+
|
+
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/Makefile.boot b/arch/arm/mach-bcm2708/Makefile.boot
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..67039c3
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/Makefile.boot
|
+++ b/arch/arm/mach-bcm2708/Makefile.boot
|
||||||
@@ -0,0 +1,3 @@
|
@@ -0,0 +1,3 @@
|
||||||
+ zreladdr-y := 0x00008000
|
+ zreladdr-y := 0x00008000
|
||||||
+params_phys-y := 0x00000100
|
+params_phys-y := 0x00000100
|
||||||
+initrd_phys-y := 0x00800000
|
+initrd_phys-y := 0x00800000
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/armctrl.c b/arch/arm/mach-bcm2708/armctrl.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..da18725
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/armctrl.c
|
+++ b/arch/arm/mach-bcm2708/armctrl.c
|
||||||
@@ -0,0 +1,208 @@
|
@@ -0,0 +1,208 @@
|
||||||
|
@ -1955,6 +1984,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ armctrl_pm_register(base, irq_start, resume_sources);
|
+ armctrl_pm_register(base, irq_start, resume_sources);
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/armctrl.h b/arch/arm/mach-bcm2708/armctrl.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..0aa916e
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/armctrl.h
|
+++ b/arch/arm/mach-bcm2708/armctrl.h
|
||||||
@@ -0,0 +1,27 @@
|
@@ -0,0 +1,27 @@
|
||||||
|
@ -1985,6 +2017,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ u32 armctrl_sources, u32 resume_sources);
|
+ u32 armctrl_sources, u32 resume_sources);
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/bcm2708.c b/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..64a2783
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/bcm2708.c
|
+++ b/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
@@ -0,0 +1,695 @@
|
@@ -0,0 +1,695 @@
|
||||||
|
@ -2683,6 +2718,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+module_param(serial, uint, 0644);
|
+module_param(serial, uint, 0644);
|
||||||
+module_param(uart_clock, uint, 0644);
|
+module_param(uart_clock, uint, 0644);
|
||||||
+module_param(reboot_part, uint, 0644);
|
+module_param(reboot_part, uint, 0644);
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/bcm2708.h b/arch/arm/mach-bcm2708/bcm2708.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..dfe8700
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/bcm2708.h
|
+++ b/arch/arm/mach-bcm2708/bcm2708.h
|
||||||
@@ -0,0 +1,51 @@
|
@@ -0,0 +1,51 @@
|
||||||
|
@ -2737,6 +2775,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/bcm2708_gpio.c b/arch/arm/mach-bcm2708/bcm2708_gpio.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..d0339eb
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/bcm2708_gpio.c
|
+++ b/arch/arm/mach-bcm2708/bcm2708_gpio.c
|
||||||
@@ -0,0 +1,339 @@
|
@@ -0,0 +1,339 @@
|
||||||
|
@ -3079,6 +3120,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+MODULE_DESCRIPTION("Broadcom BCM2708 GPIO driver");
|
+MODULE_DESCRIPTION("Broadcom BCM2708 GPIO driver");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/clock.c b/arch/arm/mach-bcm2708/clock.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..4fc556e
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/clock.c
|
+++ b/arch/arm/mach-bcm2708/clock.c
|
||||||
@@ -0,0 +1,61 @@
|
@@ -0,0 +1,61 @@
|
||||||
|
@ -3143,6 +3187,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ return -EIO;
|
+ return -EIO;
|
||||||
+}
|
+}
|
||||||
+EXPORT_SYMBOL(clk_set_rate);
|
+EXPORT_SYMBOL(clk_set_rate);
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/clock.h b/arch/arm/mach-bcm2708/clock.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..5f9d725
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/clock.h
|
+++ b/arch/arm/mach-bcm2708/clock.h
|
||||||
@@ -0,0 +1,24 @@
|
@@ -0,0 +1,24 @@
|
||||||
|
@ -3170,6 +3217,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+struct clk {
|
+struct clk {
|
||||||
+ unsigned long rate;
|
+ unsigned long rate;
|
||||||
+};
|
+};
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/dma.c b/arch/arm/mach-bcm2708/dma.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..51d147a
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/dma.c
|
+++ b/arch/arm/mach-bcm2708/dma.c
|
||||||
@@ -0,0 +1,399 @@
|
@@ -0,0 +1,399 @@
|
||||||
|
@ -3572,6 +3622,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
+
|
+
|
||||||
+MODULE_PARM_DESC(dmachans, "Bitmap of DMA channels available to the ARM");
|
+MODULE_PARM_DESC(dmachans, "Bitmap of DMA channels available to the ARM");
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/arm_control.h b/arch/arm/mach-bcm2708/include/mach/arm_control.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..a82bb92
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/arm_control.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/arm_control.h
|
||||||
@@ -0,0 +1,419 @@
|
@@ -0,0 +1,419 @@
|
||||||
|
@ -3994,6 +4047,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#define AJBTDO HW_REGISTER_RW(AJB_BASE+0x0c)
|
+#define AJBTDO HW_REGISTER_RW(AJB_BASE+0x0c)
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/arm_power.h b/arch/arm/mach-bcm2708/include/mach/arm_power.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..aae9136
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/arm_power.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/arm_power.h
|
||||||
@@ -0,0 +1,60 @@
|
@@ -0,0 +1,60 @@
|
||||||
|
@ -4057,6 +4113,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/clkdev.h b/arch/arm/mach-bcm2708/include/mach/clkdev.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..04b37a8
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/clkdev.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/clkdev.h
|
||||||
@@ -0,0 +1,7 @@
|
@@ -0,0 +1,7 @@
|
||||||
|
@ -4067,6 +4126,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#define __clk_put(clk) do { } while (0)
|
+#define __clk_put(clk) do { } while (0)
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/debug-macro.S b/arch/arm/mach-bcm2708/include/mach/debug-macro.S
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..2d0dc1c
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/debug-macro.S
|
+++ b/arch/arm/mach-bcm2708/include/mach/debug-macro.S
|
||||||
@@ -0,0 +1,22 @@
|
@@ -0,0 +1,22 @@
|
||||||
|
@ -4092,6 +4154,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ .endm
|
+ .endm
|
||||||
+
|
+
|
||||||
+#include <asm/hardware/debug-pl01x.S>
|
+#include <asm/hardware/debug-pl01x.S>
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/dma.h b/arch/arm/mach-bcm2708/include/mach/dma.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..ac7a4a0
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/dma.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/dma.h
|
||||||
@@ -0,0 +1,86 @@
|
@@ -0,0 +1,86 @@
|
||||||
|
@ -4181,6 +4246,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
+#endif /* _MACH_BCM2708_DMA_H */
|
+#endif /* _MACH_BCM2708_DMA_H */
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/entry-macro.S b/arch/arm/mach-bcm2708/include/mach/entry-macro.S
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..79b62d9
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/entry-macro.S
|
+++ b/arch/arm/mach-bcm2708/include/mach/entry-macro.S
|
||||||
@@ -0,0 +1,69 @@
|
@@ -0,0 +1,69 @@
|
||||||
|
@ -4253,6 +4321,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+1020: @ EQ will be set if no irqs pending
|
+1020: @ EQ will be set if no irqs pending
|
||||||
+
|
+
|
||||||
+ .endm
|
+ .endm
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/frc.h b/arch/arm/mach-bcm2708/include/mach/frc.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..dd51e07
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/frc.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/frc.h
|
||||||
@@ -0,0 +1,38 @@
|
@@ -0,0 +1,38 @@
|
||||||
|
@ -4294,6 +4365,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+extern unsigned long long frc_clock_ticks63(void);
|
+extern unsigned long long frc_clock_ticks63(void);
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/gpio.h b/arch/arm/mach-bcm2708/include/mach/gpio.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..f600bc7
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/gpio.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/gpio.h
|
||||||
@@ -0,0 +1,18 @@
|
@@ -0,0 +1,18 @@
|
||||||
|
@ -4315,6 +4389,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/hardware.h b/arch/arm/mach-bcm2708/include/mach/hardware.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..c2954e8
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/hardware.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/hardware.h
|
||||||
@@ -0,0 +1,28 @@
|
@@ -0,0 +1,28 @@
|
||||||
|
@ -4346,6 +4423,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#include <mach/platform.h>
|
+#include <mach/platform.h>
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/io.h b/arch/arm/mach-bcm2708/include/mach/io.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..e6eb84d
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/io.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/io.h
|
||||||
@@ -0,0 +1,27 @@
|
@@ -0,0 +1,27 @@
|
||||||
|
@ -4376,6 +4456,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#define __io(a) __typesafe_io(a)
|
+#define __io(a) __typesafe_io(a)
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/irqs.h b/arch/arm/mach-bcm2708/include/mach/irqs.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..e8bb068
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/irqs.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/irqs.h
|
||||||
@@ -0,0 +1,196 @@
|
@@ -0,0 +1,196 @@
|
||||||
|
@ -4575,6 +4658,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
+#endif /* _BCM2708_IRQS_H_ */
|
+#endif /* _BCM2708_IRQS_H_ */
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/memory.h b/arch/arm/mach-bcm2708/include/mach/memory.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..521540d
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/memory.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/memory.h
|
||||||
@@ -0,0 +1,57 @@
|
@@ -0,0 +1,57 @@
|
||||||
|
@ -4635,6 +4721,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#define __bus_to_pfn(x) __phys_to_pfn((x) - (BUS_OFFSET - PLAT_PHYS_OFFSET))
|
+#define __bus_to_pfn(x) __phys_to_pfn((x) - (BUS_OFFSET - PLAT_PHYS_OFFSET))
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/platform.h b/arch/arm/mach-bcm2708/include/mach/platform.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..110ce07
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/platform.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/platform.h
|
||||||
@@ -0,0 +1,220 @@
|
@@ -0,0 +1,220 @@
|
||||||
|
@ -4858,6 +4947,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+/* END */
|
+/* END */
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/power.h b/arch/arm/mach-bcm2708/include/mach/power.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..52b3b02
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/power.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/power.h
|
||||||
@@ -0,0 +1,26 @@
|
@@ -0,0 +1,26 @@
|
||||||
|
@ -4887,6 +4979,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+extern int bcm_power_close(BCM_POWER_HANDLE_T handle);
|
+extern int bcm_power_close(BCM_POWER_HANDLE_T handle);
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/system.h b/arch/arm/mach-bcm2708/include/mach/system.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..2d0b821
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/system.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/system.h
|
||||||
@@ -0,0 +1,38 @@
|
@@ -0,0 +1,38 @@
|
||||||
|
@ -4928,6 +5023,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/timex.h b/arch/arm/mach-bcm2708/include/mach/timex.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..64a660c
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/timex.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/timex.h
|
||||||
@@ -0,0 +1,23 @@
|
@@ -0,0 +1,23 @@
|
||||||
|
@ -4954,6 +5052,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ */
|
+ */
|
||||||
+
|
+
|
||||||
+#define CLOCK_TICK_RATE (1000000)
|
+#define CLOCK_TICK_RATE (1000000)
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/uncompress.h b/arch/arm/mach-bcm2708/include/mach/uncompress.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..6ff8f94
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/uncompress.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/uncompress.h
|
||||||
@@ -0,0 +1,85 @@
|
@@ -0,0 +1,85 @@
|
||||||
|
@ -5042,6 +5143,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ */
|
+ */
|
||||||
+#define arch_decomp_wdog()
|
+#define arch_decomp_wdog()
|
||||||
+
|
+
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/vc_mem.h b/arch/arm/mach-bcm2708/include/mach/vc_mem.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..d29125b
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/vc_mem.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/vc_mem.h
|
||||||
@@ -0,0 +1,36 @@
|
@@ -0,0 +1,36 @@
|
||||||
|
@ -5081,6 +5185,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+#endif /* VC_MEM_H */
|
+#endif /* VC_MEM_H */
|
||||||
+
|
+
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/vcio.h b/arch/arm/mach-bcm2708/include/mach/vcio.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..b522ba9
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/vcio.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/vcio.h
|
||||||
@@ -0,0 +1,141 @@
|
@@ -0,0 +1,141 @@
|
||||||
|
@ -5225,6 +5332,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#define DEVICE_FILE_NAME "char_dev"
|
+#define DEVICE_FILE_NAME "char_dev"
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/vmalloc.h b/arch/arm/mach-bcm2708/include/mach/vmalloc.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..502c617
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/vmalloc.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/vmalloc.h
|
||||||
@@ -0,0 +1,20 @@
|
@@ -0,0 +1,20 @@
|
||||||
|
@ -5248,6 +5358,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
+ */
|
+ */
|
||||||
+#define VMALLOC_END (0xe8000000)
|
+#define VMALLOC_END (0xe8000000)
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/power.c b/arch/arm/mach-bcm2708/power.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..256bf1a
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/power.c
|
+++ b/arch/arm/mach-bcm2708/power.c
|
||||||
@@ -0,0 +1,194 @@
|
@@ -0,0 +1,194 @@
|
||||||
|
@ -5445,6 +5558,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+MODULE_AUTHOR("Phil Elwell");
|
+MODULE_AUTHOR("Phil Elwell");
|
||||||
+MODULE_DESCRIPTION("Interface to BCM2708 power management");
|
+MODULE_DESCRIPTION("Interface to BCM2708 power management");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/vc_mem.c b/arch/arm/mach-bcm2708/vc_mem.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..aeae4d5
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/vc_mem.c
|
+++ b/arch/arm/mach-bcm2708/vc_mem.c
|
||||||
@@ -0,0 +1,462 @@
|
@@ -0,0 +1,462 @@
|
||||||
|
@ -5910,6 +6026,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+module_param(mem_size, uint, 0644);
|
+module_param(mem_size, uint, 0644);
|
||||||
+module_param(mem_base, uint, 0644);
|
+module_param(mem_base, uint, 0644);
|
||||||
+
|
+
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/vcio.c b/arch/arm/mach-bcm2708/vcio.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..599eb63
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/vcio.c
|
+++ b/arch/arm/mach-bcm2708/vcio.c
|
||||||
@@ -0,0 +1,474 @@
|
@@ -0,0 +1,474 @@
|
||||||
|
@ -6387,6 +6506,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+MODULE_DESCRIPTION("ARM I/O to VideoCore processor");
|
+MODULE_DESCRIPTION("ARM I/O to VideoCore processor");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
+MODULE_ALIAS("platform:bcm-mbox");
|
+MODULE_ALIAS("platform:bcm-mbox");
|
||||||
|
diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
|
||||||
|
index c21082d..6ae2668 100644
|
||||||
--- a/arch/arm/mm/Kconfig
|
--- a/arch/arm/mm/Kconfig
|
||||||
+++ b/arch/arm/mm/Kconfig
|
+++ b/arch/arm/mm/Kconfig
|
||||||
@@ -358,7 +358,7 @@ config CPU_PJ4B
|
@@ -358,7 +358,7 @@ config CPU_PJ4B
|
||||||
|
@ -6398,6 +6519,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
select CPU_32v6
|
select CPU_32v6
|
||||||
select CPU_ABRT_EV6
|
select CPU_ABRT_EV6
|
||||||
select CPU_CACHE_V6
|
select CPU_CACHE_V6
|
||||||
|
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S
|
||||||
|
index d073528..223fc69 100644
|
||||||
--- a/arch/arm/mm/proc-v6.S
|
--- a/arch/arm/mm/proc-v6.S
|
||||||
+++ b/arch/arm/mm/proc-v6.S
|
+++ b/arch/arm/mm/proc-v6.S
|
||||||
@@ -73,10 +73,19 @@ ENDPROC(cpu_v6_reset)
|
@@ -73,10 +73,19 @@ ENDPROC(cpu_v6_reset)
|
||||||
|
@ -6423,6 +6546,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
mov pc, lr
|
mov pc, lr
|
||||||
|
|
||||||
ENTRY(cpu_v6_dcache_clean_area)
|
ENTRY(cpu_v6_dcache_clean_area)
|
||||||
|
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
|
||||||
|
index a10297d..c9ddd87 100644
|
||||||
--- a/arch/arm/tools/mach-types
|
--- a/arch/arm/tools/mach-types
|
||||||
+++ b/arch/arm/tools/mach-types
|
+++ b/arch/arm/tools/mach-types
|
||||||
@@ -522,6 +522,7 @@ torbreck MACH_TORBRECK TORBRECK 3090
|
@@ -522,6 +522,7 @@ torbreck MACH_TORBRECK TORBRECK 3090
|
||||||
|
@ -6433,6 +6558,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
ag5evm MACH_AG5EVM AG5EVM 3189
|
ag5evm MACH_AG5EVM AG5EVM 3189
|
||||||
ics_if_voip MACH_ICS_IF_VOIP ICS_IF_VOIP 3206
|
ics_if_voip MACH_ICS_IF_VOIP ICS_IF_VOIP 3206
|
||||||
wlf_cragg_6410 MACH_WLF_CRAGG_6410 WLF_CRAGG_6410 3207
|
wlf_cragg_6410 MACH_WLF_CRAGG_6410 WLF_CRAGG_6410 3207
|
||||||
|
diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
|
||||||
|
index 9ab8f8d..74e7543 100644
|
||||||
--- a/drivers/mmc/host/Kconfig
|
--- a/drivers/mmc/host/Kconfig
|
||||||
+++ b/drivers/mmc/host/Kconfig
|
+++ b/drivers/mmc/host/Kconfig
|
||||||
@@ -249,6 +249,27 @@ config MMC_SDHCI_S3C_DMA
|
@@ -249,6 +249,27 @@ config MMC_SDHCI_S3C_DMA
|
||||||
|
@ -6463,9 +6590,11 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
config MMC_SDHCI_BCM2835
|
config MMC_SDHCI_BCM2835
|
||||||
tristate "SDHCI platform support for the BCM2835 SD/MMC Controller"
|
tristate "SDHCI platform support for the BCM2835 SD/MMC Controller"
|
||||||
depends on ARCH_BCM2835
|
depends on ARCH_BCM2835
|
||||||
|
diff --git a/drivers/mmc/host/Makefile b/drivers/mmc/host/Makefile
|
||||||
|
index cd32280..6a7b985 100644
|
||||||
--- a/drivers/mmc/host/Makefile
|
--- a/drivers/mmc/host/Makefile
|
||||||
+++ b/drivers/mmc/host/Makefile
|
+++ b/drivers/mmc/host/Makefile
|
||||||
@@ -15,6 +15,7 @@ obj-$(CONFIG_MMC_SDHCI_PXAV2) += sdhci-p
|
@@ -15,6 +15,7 @@ obj-$(CONFIG_MMC_SDHCI_PXAV2) += sdhci-pxav2.o
|
||||||
obj-$(CONFIG_MMC_SDHCI_S3C) += sdhci-s3c.o
|
obj-$(CONFIG_MMC_SDHCI_S3C) += sdhci-s3c.o
|
||||||
obj-$(CONFIG_MMC_SDHCI_SIRF) += sdhci-sirf.o
|
obj-$(CONFIG_MMC_SDHCI_SIRF) += sdhci-sirf.o
|
||||||
obj-$(CONFIG_MMC_SDHCI_SPEAR) += sdhci-spear.o
|
obj-$(CONFIG_MMC_SDHCI_SPEAR) += sdhci-spear.o
|
||||||
|
@ -6473,6 +6602,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
obj-$(CONFIG_MMC_WBSD) += wbsd.o
|
obj-$(CONFIG_MMC_WBSD) += wbsd.o
|
||||||
obj-$(CONFIG_MMC_AU1X) += au1xmmc.o
|
obj-$(CONFIG_MMC_AU1X) += au1xmmc.o
|
||||||
obj-$(CONFIG_MMC_OMAP) += omap.o
|
obj-$(CONFIG_MMC_OMAP) += omap.o
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..e79723d
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -0,0 +1,1425 @@
|
@@ -0,0 +1,1425 @@
|
||||||
|
@ -7901,6 +8033,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+MODULE_LICENSE("GPL v2");
|
+MODULE_LICENSE("GPL v2");
|
||||||
+MODULE_ALIAS("platform:"DRIVER_NAME);
|
+MODULE_ALIAS("platform:"DRIVER_NAME);
|
||||||
+
|
+
|
||||||
|
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
|
||||||
|
index 2ea429c..179e83e 100644
|
||||||
--- a/drivers/mmc/host/sdhci.c
|
--- a/drivers/mmc/host/sdhci.c
|
||||||
+++ b/drivers/mmc/host/sdhci.c
|
+++ b/drivers/mmc/host/sdhci.c
|
||||||
@@ -28,6 +28,7 @@
|
@@ -28,6 +28,7 @@
|
||||||
|
@ -7911,7 +8045,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
#include <linux/mmc/slot-gpio.h>
|
#include <linux/mmc/slot-gpio.h>
|
||||||
|
|
||||||
#include "sdhci.h"
|
#include "sdhci.h"
|
||||||
@@ -315,7 +316,7 @@ static void sdhci_read_block_pio(struct
|
@@ -315,7 +316,7 @@ static void sdhci_read_block_pio(struct sdhci_host *host)
|
||||||
u32 uninitialized_var(scratch);
|
u32 uninitialized_var(scratch);
|
||||||
u8 *buf;
|
u8 *buf;
|
||||||
|
|
||||||
|
@ -7920,7 +8054,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
|
|
||||||
blksize = host->data->blksz;
|
blksize = host->data->blksz;
|
||||||
chunk = 0;
|
chunk = 0;
|
||||||
@@ -360,7 +361,7 @@ static void sdhci_write_block_pio(struct
|
@@ -360,7 +361,7 @@ static void sdhci_write_block_pio(struct sdhci_host *host)
|
||||||
u32 scratch;
|
u32 scratch;
|
||||||
u8 *buf;
|
u8 *buf;
|
||||||
|
|
||||||
|
@ -7929,7 +8063,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
|
|
||||||
blksize = host->data->blksz;
|
blksize = host->data->blksz;
|
||||||
chunk = 0;
|
chunk = 0;
|
||||||
@@ -399,19 +400,28 @@ static void sdhci_write_block_pio(struct
|
@@ -399,19 +400,28 @@ static void sdhci_write_block_pio(struct sdhci_host *host)
|
||||||
local_irq_restore(flags);
|
local_irq_restore(flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7961,7 +8095,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Some controllers (JMicron JMB38x) mess up the buffer bits
|
* Some controllers (JMicron JMB38x) mess up the buffer bits
|
||||||
@@ -422,7 +432,7 @@ static void sdhci_transfer_pio(struct sd
|
@@ -422,7 +432,7 @@ static void sdhci_transfer_pio(struct sdhci_host *host)
|
||||||
(host->data->blocks == 1))
|
(host->data->blocks == 1))
|
||||||
mask = ~0;
|
mask = ~0;
|
||||||
|
|
||||||
|
@ -7970,7 +8104,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
if (host->quirks & SDHCI_QUIRK_PIO_NEEDS_DELAY)
|
if (host->quirks & SDHCI_QUIRK_PIO_NEEDS_DELAY)
|
||||||
udelay(100);
|
udelay(100);
|
||||||
|
|
||||||
@@ -434,9 +444,11 @@ static void sdhci_transfer_pio(struct sd
|
@@ -434,9 +444,11 @@ static void sdhci_transfer_pio(struct sdhci_host *host)
|
||||||
host->blocks--;
|
host->blocks--;
|
||||||
if (host->blocks == 0)
|
if (host->blocks == 0)
|
||||||
break;
|
break;
|
||||||
|
@ -7983,7 +8117,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *sdhci_kmap_atomic(struct scatterlist *sg, unsigned long *flags)
|
static char *sdhci_kmap_atomic(struct scatterlist *sg, unsigned long *flags)
|
||||||
@@ -709,7 +721,9 @@ static void sdhci_set_transfer_irqs(stru
|
@@ -709,7 +721,9 @@ static void sdhci_set_transfer_irqs(struct sdhci_host *host)
|
||||||
u32 pio_irqs = SDHCI_INT_DATA_AVAIL | SDHCI_INT_SPACE_AVAIL;
|
u32 pio_irqs = SDHCI_INT_DATA_AVAIL | SDHCI_INT_SPACE_AVAIL;
|
||||||
u32 dma_irqs = SDHCI_INT_DMA_END | SDHCI_INT_ADMA_ERROR;
|
u32 dma_irqs = SDHCI_INT_DMA_END | SDHCI_INT_ADMA_ERROR;
|
||||||
|
|
||||||
|
@ -7994,7 +8128,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
sdhci_clear_set_irqs(host, pio_irqs, dma_irqs);
|
sdhci_clear_set_irqs(host, pio_irqs, dma_irqs);
|
||||||
else
|
else
|
||||||
sdhci_clear_set_irqs(host, dma_irqs, pio_irqs);
|
sdhci_clear_set_irqs(host, dma_irqs, pio_irqs);
|
||||||
@@ -741,44 +755,25 @@ static void sdhci_prepare_data(struct sd
|
@@ -741,44 +755,25 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd)
|
||||||
host->data_early = 0;
|
host->data_early = 0;
|
||||||
host->data->bytes_xfered = 0;
|
host->data->bytes_xfered = 0;
|
||||||
|
|
||||||
|
@ -8047,7 +8181,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
int broken, i;
|
int broken, i;
|
||||||
struct scatterlist *sg;
|
struct scatterlist *sg;
|
||||||
|
|
||||||
@@ -837,7 +832,8 @@ static void sdhci_prepare_data(struct sd
|
@@ -837,7 +832,8 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd)
|
||||||
*/
|
*/
|
||||||
WARN_ON(1);
|
WARN_ON(1);
|
||||||
host->flags &= ~SDHCI_REQ_USE_DMA;
|
host->flags &= ~SDHCI_REQ_USE_DMA;
|
||||||
|
@ -8057,7 +8191,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
WARN_ON(sg_cnt != 1);
|
WARN_ON(sg_cnt != 1);
|
||||||
sdhci_writel(host, sg_dma_address(data->sg),
|
sdhci_writel(host, sg_dma_address(data->sg),
|
||||||
SDHCI_DMA_ADDRESS);
|
SDHCI_DMA_ADDRESS);
|
||||||
@@ -853,11 +849,13 @@ static void sdhci_prepare_data(struct sd
|
@@ -853,11 +849,13 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd)
|
||||||
if (host->version >= SDHCI_SPEC_200) {
|
if (host->version >= SDHCI_SPEC_200) {
|
||||||
ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
|
ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
|
||||||
ctrl &= ~SDHCI_CTRL_DMA_MASK;
|
ctrl &= ~SDHCI_CTRL_DMA_MASK;
|
||||||
|
@ -8071,7 +8205,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
|
sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -909,7 +907,8 @@ static void sdhci_set_transfer_mode(stru
|
@@ -909,7 +907,8 @@ static void sdhci_set_transfer_mode(struct sdhci_host *host,
|
||||||
|
|
||||||
if (data->flags & MMC_DATA_READ)
|
if (data->flags & MMC_DATA_READ)
|
||||||
mode |= SDHCI_TRNS_READ;
|
mode |= SDHCI_TRNS_READ;
|
||||||
|
@ -8081,7 +8215,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
mode |= SDHCI_TRNS_DMA;
|
mode |= SDHCI_TRNS_DMA;
|
||||||
|
|
||||||
sdhci_writew(host, mode, SDHCI_TRANSFER_MODE);
|
sdhci_writew(host, mode, SDHCI_TRANSFER_MODE);
|
||||||
@@ -925,13 +924,16 @@ static void sdhci_finish_data(struct sdh
|
@@ -925,13 +924,16 @@ static void sdhci_finish_data(struct sdhci_host *host)
|
||||||
host->data = NULL;
|
host->data = NULL;
|
||||||
|
|
||||||
if (host->flags & SDHCI_REQ_USE_DMA) {
|
if (host->flags & SDHCI_REQ_USE_DMA) {
|
||||||
|
@ -8102,7 +8236,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -984,6 +986,12 @@ static void sdhci_send_command(struct sd
|
@@ -984,6 +986,12 @@ static void sdhci_send_command(struct sdhci_host *host, struct mmc_command *cmd)
|
||||||
if ((cmd->data != NULL) || (cmd->flags & MMC_RSP_BUSY))
|
if ((cmd->data != NULL) || (cmd->flags & MMC_RSP_BUSY))
|
||||||
mask |= SDHCI_DATA_INHIBIT;
|
mask |= SDHCI_DATA_INHIBIT;
|
||||||
|
|
||||||
|
@ -8115,7 +8249,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
/* We shouldn't wait for data inihibit for stop commands, even
|
/* We shouldn't wait for data inihibit for stop commands, even
|
||||||
though they might use busy signaling */
|
though they might use busy signaling */
|
||||||
if (host->mrq->data && (cmd == host->mrq->data->stop))
|
if (host->mrq->data && (cmd == host->mrq->data->stop))
|
||||||
@@ -1001,10 +1009,16 @@ static void sdhci_send_command(struct sd
|
@@ -1001,10 +1009,16 @@ static void sdhci_send_command(struct sdhci_host *host, struct mmc_command *cmd)
|
||||||
timeout--;
|
timeout--;
|
||||||
mdelay(1);
|
mdelay(1);
|
||||||
}
|
}
|
||||||
|
@ -8132,7 +8266,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
|
|
||||||
sdhci_prepare_data(host, cmd);
|
sdhci_prepare_data(host, cmd);
|
||||||
|
|
||||||
@@ -1470,7 +1484,7 @@ static void sdhci_do_set_ios(struct sdhc
|
@@ -1470,7 +1484,7 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
|
||||||
else
|
else
|
||||||
ctrl &= ~SDHCI_CTRL_HISPD;
|
ctrl &= ~SDHCI_CTRL_HISPD;
|
||||||
|
|
||||||
|
@ -8141,7 +8275,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
u16 clk, ctrl_2;
|
u16 clk, ctrl_2;
|
||||||
|
|
||||||
/* In case of UHS-I modes, set High Speed Enable */
|
/* In case of UHS-I modes, set High Speed Enable */
|
||||||
@@ -2164,7 +2178,7 @@ static void sdhci_timeout_timer(unsigned
|
@@ -2164,7 +2178,7 @@ static void sdhci_timeout_timer(unsigned long data)
|
||||||
|
|
||||||
if (host->mrq) {
|
if (host->mrq) {
|
||||||
pr_err("%s: Timeout waiting for hardware "
|
pr_err("%s: Timeout waiting for hardware "
|
||||||
|
@ -8150,7 +8284,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
sdhci_dumpregs(host);
|
sdhci_dumpregs(host);
|
||||||
|
|
||||||
if (host->data) {
|
if (host->data) {
|
||||||
@@ -2209,10 +2223,13 @@ static void sdhci_cmd_irq(struct sdhci_h
|
@@ -2209,10 +2223,13 @@ static void sdhci_cmd_irq(struct sdhci_host *host, u32 intmask)
|
||||||
BUG_ON(intmask == 0);
|
BUG_ON(intmask == 0);
|
||||||
|
|
||||||
if (!host->cmd) {
|
if (!host->cmd) {
|
||||||
|
@ -8164,7 +8298,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2282,6 +2299,19 @@ static void sdhci_show_adma_error(struct
|
@@ -2282,6 +2299,19 @@ static void sdhci_show_adma_error(struct sdhci_host *host)
|
||||||
static void sdhci_show_adma_error(struct sdhci_host *host) { }
|
static void sdhci_show_adma_error(struct sdhci_host *host) { }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -8184,7 +8318,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
|
static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
|
||||||
{
|
{
|
||||||
u32 command;
|
u32 command;
|
||||||
@@ -2311,23 +2341,39 @@ static void sdhci_data_irq(struct sdhci_
|
@@ -2311,23 +2341,39 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8228,7 +8362,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
pr_err("%s: ADMA error\n", mmc_hostname(host->mmc));
|
pr_err("%s: ADMA error\n", mmc_hostname(host->mmc));
|
||||||
sdhci_show_adma_error(host);
|
sdhci_show_adma_error(host);
|
||||||
host->data->error = -EIO;
|
host->data->error = -EIO;
|
||||||
@@ -2335,11 +2381,18 @@ static void sdhci_data_irq(struct sdhci_
|
@@ -2335,11 +2381,18 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
|
||||||
host->ops->adma_workaround(host, intmask);
|
host->ops->adma_workaround(host, intmask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8251,7 +8385,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We currently don't do anything fancy with DMA
|
* We currently don't do anything fancy with DMA
|
||||||
@@ -2368,18 +2421,8 @@ static void sdhci_data_irq(struct sdhci_
|
@@ -2368,18 +2421,8 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 intmask)
|
||||||
sdhci_writel(host, dmanow, SDHCI_DMA_ADDRESS);
|
sdhci_writel(host, dmanow, SDHCI_DMA_ADDRESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8310,7 +8444,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
|
|
||||||
if (intmask & SDHCI_INT_BUS_POWER) {
|
if (intmask & SDHCI_INT_BUS_POWER) {
|
||||||
pr_err("%s: Card is consuming too much power!\n",
|
pr_err("%s: Card is consuming too much power!\n",
|
||||||
@@ -2569,7 +2634,8 @@ int sdhci_resume_host(struct sdhci_host
|
@@ -2569,7 +2634,8 @@ int sdhci_resume_host(struct sdhci_host *host)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -8320,7 +8454,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
if (host->ops->enable_dma)
|
if (host->ops->enable_dma)
|
||||||
host->ops->enable_dma(host);
|
host->ops->enable_dma(host);
|
||||||
}
|
}
|
||||||
@@ -2785,14 +2851,16 @@ int sdhci_add_host(struct sdhci_host *ho
|
@@ -2785,14 +2851,16 @@ int sdhci_add_host(struct sdhci_host *host)
|
||||||
host->flags &= ~SDHCI_USE_ADMA;
|
host->flags &= ~SDHCI_USE_ADMA;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8339,7 +8473,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3080,6 +3148,12 @@ int sdhci_add_host(struct sdhci_host *ho
|
@@ -3080,6 +3148,12 @@ int sdhci_add_host(struct sdhci_host *host)
|
||||||
SDHCI_MAX_CURRENT_MULTIPLIER;
|
SDHCI_MAX_CURRENT_MULTIPLIER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8352,7 +8486,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
mmc->ocr_avail = ocr_avail;
|
mmc->ocr_avail = ocr_avail;
|
||||||
mmc->ocr_avail_sdio = ocr_avail;
|
mmc->ocr_avail_sdio = ocr_avail;
|
||||||
if (host->ocr_avail_sdio)
|
if (host->ocr_avail_sdio)
|
||||||
@@ -3210,6 +3284,7 @@ int sdhci_add_host(struct sdhci_host *ho
|
@@ -3210,6 +3284,7 @@ int sdhci_add_host(struct sdhci_host *host)
|
||||||
|
|
||||||
pr_info("%s: SDHCI controller on %s [%s] using %s\n",
|
pr_info("%s: SDHCI controller on %s [%s] using %s\n",
|
||||||
mmc_hostname(mmc), host->hw_name, dev_name(mmc_dev(mmc)),
|
mmc_hostname(mmc), host->hw_name, dev_name(mmc_dev(mmc)),
|
||||||
|
@ -8360,6 +8494,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
(host->flags & SDHCI_USE_ADMA) ? "ADMA" :
|
(host->flags & SDHCI_USE_ADMA) ? "ADMA" :
|
||||||
(host->flags & SDHCI_USE_SDMA) ? "DMA" : "PIO");
|
(host->flags & SDHCI_USE_SDMA) ? "DMA" : "PIO");
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
|
||||||
|
index 379e09d..f90574e 100644
|
||||||
--- a/drivers/mmc/host/sdhci.h
|
--- a/drivers/mmc/host/sdhci.h
|
||||||
+++ b/drivers/mmc/host/sdhci.h
|
+++ b/drivers/mmc/host/sdhci.h
|
||||||
@@ -289,6 +289,20 @@ struct sdhci_ops {
|
@@ -289,6 +289,20 @@ struct sdhci_ops {
|
||||||
|
@ -8383,7 +8519,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
void (*hw_reset)(struct sdhci_host *host);
|
void (*hw_reset)(struct sdhci_host *host);
|
||||||
void (*platform_suspend)(struct sdhci_host *host);
|
void (*platform_suspend)(struct sdhci_host *host);
|
||||||
void (*platform_resume)(struct sdhci_host *host);
|
void (*platform_resume)(struct sdhci_host *host);
|
||||||
@@ -399,6 +413,29 @@ extern int sdhci_resume_host(struct sdhc
|
@@ -399,6 +413,29 @@ extern int sdhci_resume_host(struct sdhci_host *host);
|
||||||
extern void sdhci_enable_irq_wakeups(struct sdhci_host *host);
|
extern void sdhci_enable_irq_wakeups(struct sdhci_host *host);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -8413,6 +8549,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
#ifdef CONFIG_PM_RUNTIME
|
#ifdef CONFIG_PM_RUNTIME
|
||||||
extern int sdhci_runtime_suspend_host(struct sdhci_host *host);
|
extern int sdhci_runtime_suspend_host(struct sdhci_host *host);
|
||||||
extern int sdhci_runtime_resume_host(struct sdhci_host *host);
|
extern int sdhci_runtime_resume_host(struct sdhci_host *host);
|
||||||
|
diff --git a/include/linux/mmc/sdhci.h b/include/linux/mmc/sdhci.h
|
||||||
|
index b838ffc..f3a39c1 100644
|
||||||
--- a/include/linux/mmc/sdhci.h
|
--- a/include/linux/mmc/sdhci.h
|
||||||
+++ b/include/linux/mmc/sdhci.h
|
+++ b/include/linux/mmc/sdhci.h
|
||||||
@@ -128,6 +128,7 @@ struct sdhci_host {
|
@@ -128,6 +128,7 @@ struct sdhci_host {
|
||||||
|
@ -8431,3 +8569,6 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
struct mmc_data *data; /* Current data request */
|
struct mmc_data *data; /* Current data request */
|
||||||
unsigned int data_early:1; /* Data finished before cmd */
|
unsigned int data_early:1; /* Data finished before cmd */
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From ee24f1f0affd88d3e101a7e66c5ebfd8e582b868 Mon Sep 17 00:00:00 2001
|
From 344d6f31638c96846ac26f40a74ee1cc495f421e Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 1 May 2013 19:46:17 +0100
|
Date: Wed, 1 May 2013 19:46:17 +0100
|
||||||
Subject: [PATCH 002/174] Add dwc_otg driver
|
Subject: [PATCH 002/196] Add dwc_otg driver
|
||||||
|
|
||||||
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
---
|
---
|
||||||
|
@ -129,6 +129,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
create mode 100644 drivers/usb/host/dwc_otg/test/test_mod_param.pl
|
create mode 100644 drivers/usb/host/dwc_otg/test/test_mod_param.pl
|
||||||
create mode 100644 drivers/usb/host/dwc_otg/test/test_sysfs.pl
|
create mode 100644 drivers/usb/host/dwc_otg/test/test_sysfs.pl
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile
|
||||||
|
index c41feba..0b5c606 100644
|
||||||
--- a/drivers/usb/Makefile
|
--- a/drivers/usb/Makefile
|
||||||
+++ b/drivers/usb/Makefile
|
+++ b/drivers/usb/Makefile
|
||||||
@@ -23,6 +23,7 @@ obj-$(CONFIG_USB_U132_HCD) += host/
|
@@ -23,6 +23,7 @@ obj-$(CONFIG_USB_U132_HCD) += host/
|
||||||
|
@ -139,9 +141,11 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
obj-$(CONFIG_USB_IMX21_HCD) += host/
|
obj-$(CONFIG_USB_IMX21_HCD) += host/
|
||||||
obj-$(CONFIG_USB_FSL_MPH_DR_OF) += host/
|
obj-$(CONFIG_USB_FSL_MPH_DR_OF) += host/
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/core/generic.c b/drivers/usb/core/generic.c
|
||||||
|
index acbfeb0..7d675c8 100644
|
||||||
--- a/drivers/usb/core/generic.c
|
--- a/drivers/usb/core/generic.c
|
||||||
+++ b/drivers/usb/core/generic.c
|
+++ b/drivers/usb/core/generic.c
|
||||||
@@ -152,6 +152,7 @@ int usb_choose_configuration(struct usb_
|
@@ -152,6 +152,7 @@ int usb_choose_configuration(struct usb_device *udev)
|
||||||
dev_warn(&udev->dev,
|
dev_warn(&udev->dev,
|
||||||
"no configuration chosen from %d choice%s\n",
|
"no configuration chosen from %d choice%s\n",
|
||||||
num_configs, plural(num_configs));
|
num_configs, plural(num_configs));
|
||||||
|
@ -149,6 +153,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
|
||||||
|
index 444d30e..3ff77fa 100644
|
||||||
--- a/drivers/usb/core/message.c
|
--- a/drivers/usb/core/message.c
|
||||||
+++ b/drivers/usb/core/message.c
|
+++ b/drivers/usb/core/message.c
|
||||||
@@ -1875,6 +1875,85 @@ free_interfaces:
|
@@ -1875,6 +1875,85 @@ free_interfaces:
|
||||||
|
@ -237,6 +243,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
|
|
||||||
/* Now that the interfaces are installed, re-enable LPM. */
|
/* Now that the interfaces are installed, re-enable LPM. */
|
||||||
usb_unlocked_enable_lpm(dev);
|
usb_unlocked_enable_lpm(dev);
|
||||||
|
diff --git a/drivers/usb/core/otg_whitelist.h b/drivers/usb/core/otg_whitelist.h
|
||||||
|
index e8cdce5..3a0da17 100644
|
||||||
--- a/drivers/usb/core/otg_whitelist.h
|
--- a/drivers/usb/core/otg_whitelist.h
|
||||||
+++ b/drivers/usb/core/otg_whitelist.h
|
+++ b/drivers/usb/core/otg_whitelist.h
|
||||||
@@ -19,33 +19,82 @@
|
@@ -19,33 +19,82 @@
|
||||||
|
@ -328,20 +336,14 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
static int is_targeted(struct usb_device *dev)
|
static int is_targeted(struct usb_device *dev)
|
||||||
{
|
{
|
||||||
struct usb_device_id *id = whitelist_table;
|
struct usb_device_id *id = whitelist_table;
|
||||||
@@ -55,58 +104,83 @@ static int is_targeted(struct usb_device
|
@@ -55,58 +104,83 @@ static int is_targeted(struct usb_device *dev)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* HNP test device is _never_ targeted (see OTG spec 6.6.6) */
|
/* HNP test device is _never_ targeted (see OTG spec 6.6.6) */
|
||||||
- if ((le16_to_cpu(dev->descriptor.idVendor) == 0x1a0a &&
|
- if ((le16_to_cpu(dev->descriptor.idVendor) == 0x1a0a &&
|
||||||
- le16_to_cpu(dev->descriptor.idProduct) == 0xbadd))
|
- le16_to_cpu(dev->descriptor.idProduct) == 0xbadd))
|
||||||
- return 0;
|
- return 0;
|
||||||
+ if (dev->descriptor.idVendor == 0x1a0a &&
|
-
|
||||||
+ dev->descriptor.idProduct == 0xbadd) {
|
|
||||||
+ return 0;
|
|
||||||
+ } else if (!enable_whitelist) {
|
|
||||||
+ return 1;
|
|
||||||
+ } else {
|
|
||||||
|
|
||||||
- /* NOTE: can't use usb_match_id() since interface caches
|
- /* NOTE: can't use usb_match_id() since interface caches
|
||||||
- * aren't set up yet. this is cut/paste from that code.
|
- * aren't set up yet. this is cut/paste from that code.
|
||||||
- */
|
- */
|
||||||
|
@ -375,6 +377,13 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
- if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_PROTOCOL) &&
|
- if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_PROTOCOL) &&
|
||||||
- (id->bDeviceProtocol != dev->descriptor.bDeviceProtocol))
|
- (id->bDeviceProtocol != dev->descriptor.bDeviceProtocol))
|
||||||
- continue;
|
- continue;
|
||||||
|
+ if (dev->descriptor.idVendor == 0x1a0a &&
|
||||||
|
+ dev->descriptor.idProduct == 0xbadd) {
|
||||||
|
+ return 0;
|
||||||
|
+ } else if (!enable_whitelist) {
|
||||||
|
+ return 1;
|
||||||
|
+ } else {
|
||||||
|
+
|
||||||
+#ifdef DEBUG
|
+#ifdef DEBUG
|
||||||
+ dev_dbg(&dev->dev, "device V:%04x P:%04x DC:%04x SC:%04x PR:%04x \n",
|
+ dev_dbg(&dev->dev, "device V:%04x P:%04x DC:%04x SC:%04x PR:%04x \n",
|
||||||
+ dev->descriptor.idVendor,
|
+ dev->descriptor.idVendor,
|
||||||
|
@ -454,6 +463,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..a896d73
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/gadget/file_storage.c
|
+++ b/drivers/usb/gadget/file_storage.c
|
||||||
@@ -0,0 +1,3676 @@
|
@@ -0,0 +1,3676 @@
|
||||||
|
@ -4133,6 +4145,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ kref_put(&fsg->ref, fsg_release);
|
+ kref_put(&fsg->ref, fsg_release);
|
||||||
+}
|
+}
|
||||||
+module_exit(fsg_cleanup);
|
+module_exit(fsg_cleanup);
|
||||||
|
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
|
||||||
|
index 344d5e2..0937bde 100644
|
||||||
--- a/drivers/usb/host/Kconfig
|
--- a/drivers/usb/host/Kconfig
|
||||||
+++ b/drivers/usb/host/Kconfig
|
+++ b/drivers/usb/host/Kconfig
|
||||||
@@ -663,6 +663,19 @@ config USB_HWA_HCD
|
@@ -663,6 +663,19 @@ config USB_HWA_HCD
|
||||||
|
@ -4155,6 +4169,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
config USB_IMX21_HCD
|
config USB_IMX21_HCD
|
||||||
tristate "i.MX21 HCD support"
|
tristate "i.MX21 HCD support"
|
||||||
depends on ARM && ARCH_MXC
|
depends on ARM && ARCH_MXC
|
||||||
|
diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
|
||||||
|
index 4fb73c1..76d97de 100644
|
||||||
--- a/drivers/usb/host/Makefile
|
--- a/drivers/usb/host/Makefile
|
||||||
+++ b/drivers/usb/host/Makefile
|
+++ b/drivers/usb/host/Makefile
|
||||||
@@ -47,6 +47,8 @@ obj-$(CONFIG_USB_U132_HCD) += u132-hcd.o
|
@@ -47,6 +47,8 @@ obj-$(CONFIG_USB_U132_HCD) += u132-hcd.o
|
||||||
|
@ -4166,6 +4182,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
obj-$(CONFIG_USB_IMX21_HCD) += imx21-hcd.o
|
obj-$(CONFIG_USB_IMX21_HCD) += imx21-hcd.o
|
||||||
obj-$(CONFIG_USB_FSL_MPH_DR_OF) += fsl-mph-dr-of.o
|
obj-$(CONFIG_USB_FSL_MPH_DR_OF) += fsl-mph-dr-of.o
|
||||||
obj-$(CONFIG_USB_OCTEON2_COMMON) += octeon2-common.o
|
obj-$(CONFIG_USB_OCTEON2_COMMON) += octeon2-common.o
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/Makefile b/drivers/usb/host/dwc_common_port/Makefile
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..63e3485
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/Makefile
|
+++ b/drivers/usb/host/dwc_common_port/Makefile
|
||||||
@@ -0,0 +1,58 @@
|
@@ -0,0 +1,58 @@
|
||||||
|
@ -4227,6 +4246,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+clean:
|
+clean:
|
||||||
+ rm -rf *.o *.ko .*.cmd *.mod.c .*.o.d .*.o.tmp modules.order Module.markers Module.symvers .tmp_versions/
|
+ rm -rf *.o *.ko .*.cmd *.mod.c .*.o.d .*.o.tmp modules.order Module.markers Module.symvers .tmp_versions/
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/Makefile.fbsd b/drivers/usb/host/dwc_common_port/Makefile.fbsd
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..45db991
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/Makefile.fbsd
|
+++ b/drivers/usb/host/dwc_common_port/Makefile.fbsd
|
||||||
@@ -0,0 +1,17 @@
|
@@ -0,0 +1,17 @@
|
||||||
|
@ -4247,6 +4269,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ dwc_common_fbsd.c dwc_mem.c
|
+ dwc_common_fbsd.c dwc_mem.c
|
||||||
+
|
+
|
||||||
+.include <bsd.kmod.mk>
|
+.include <bsd.kmod.mk>
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/Makefile.linux b/drivers/usb/host/dwc_common_port/Makefile.linux
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..961df3f
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/Makefile.linux
|
+++ b/drivers/usb/host/dwc_common_port/Makefile.linux
|
||||||
@@ -0,0 +1,49 @@
|
@@ -0,0 +1,49 @@
|
||||||
|
@ -4299,6 +4324,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+clean:
|
+clean:
|
||||||
+ rm -rf *.o *.ko .*.cmd *.mod.c .*.o.d .*.o.tmp modules.order Module.markers Module.symvers .tmp_versions/
|
+ rm -rf *.o *.ko .*.cmd *.mod.c .*.o.d .*.o.tmp modules.order Module.markers Module.symvers .tmp_versions/
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/changes.txt b/drivers/usb/host/dwc_common_port/changes.txt
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..f6839f9
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/changes.txt
|
+++ b/drivers/usb/host/dwc_common_port/changes.txt
|
||||||
@@ -0,0 +1,174 @@
|
@@ -0,0 +1,174 @@
|
||||||
|
@ -4476,6 +4504,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+A DWC_LIBMODULE #define has also been added. If this is not defined, then the
|
+A DWC_LIBMODULE #define has also been added. If this is not defined, then the
|
||||||
+module code in dwc_common_linux.c is not compiled in. This allows linking the
|
+module code in dwc_common_linux.c is not compiled in. This allows linking the
|
||||||
+library code directly into a driver module, instead of as a standalone module.
|
+library code directly into a driver module, instead of as a standalone module.
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/doc/doxygen.cfg b/drivers/usb/host/dwc_common_port/doc/doxygen.cfg
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..605b9dab
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/doc/doxygen.cfg
|
+++ b/drivers/usb/host/dwc_common_port/doc/doxygen.cfg
|
||||||
@@ -0,0 +1,270 @@
|
@@ -0,0 +1,270 @@
|
||||||
|
@ -4749,6 +4780,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+# Configuration::additions related to the search engine
|
+# Configuration::additions related to the search engine
|
||||||
+#---------------------------------------------------------------------------
|
+#---------------------------------------------------------------------------
|
||||||
+SEARCHENGINE = NO
|
+SEARCHENGINE = NO
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_cc.c b/drivers/usb/host/dwc_common_port/dwc_cc.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..613c901
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_cc.c
|
+++ b/drivers/usb/host/dwc_common_port/dwc_cc.c
|
||||||
@@ -0,0 +1,532 @@
|
@@ -0,0 +1,532 @@
|
||||||
|
@ -5284,6 +5318,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif /* DWC_CCLIB */
|
+#endif /* DWC_CCLIB */
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_cc.h b/drivers/usb/host/dwc_common_port/dwc_cc.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..6b2bbaf
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_cc.h
|
+++ b/drivers/usb/host/dwc_common_port/dwc_cc.h
|
||||||
@@ -0,0 +1,225 @@
|
@@ -0,0 +1,225 @@
|
||||||
|
@ -5512,6 +5549,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+#endif /* _DWC_CC_H_ */
|
+#endif /* _DWC_CC_H_ */
|
||||||
+
|
+
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c b/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..6dd04b5
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c
|
+++ b/drivers/usb/host/dwc_common_port/dwc_common_fbsd.c
|
||||||
@@ -0,0 +1,1308 @@
|
@@ -0,0 +1,1308 @@
|
||||||
|
@ -6823,6 +6863,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+{
|
+{
|
||||||
+ return wq->pending;
|
+ return wq->pending;
|
||||||
+}
|
+}
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_common_linux.c b/drivers/usb/host/dwc_common_port/dwc_common_linux.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..f00a9ff
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_common_linux.c
|
+++ b/drivers/usb/host/dwc_common_port/dwc_common_linux.c
|
||||||
@@ -0,0 +1,1421 @@
|
@@ -0,0 +1,1421 @@
|
||||||
|
@ -8247,6 +8290,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+MODULE_LICENSE ("GPL");
|
+MODULE_LICENSE ("GPL");
|
||||||
+
|
+
|
||||||
+#endif /* DWC_LIBMODULE */
|
+#endif /* DWC_LIBMODULE */
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c b/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..49b07e1
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c
|
+++ b/drivers/usb/host/dwc_common_port/dwc_common_nbsd.c
|
||||||
@@ -0,0 +1,1275 @@
|
@@ -0,0 +1,1275 @@
|
||||||
|
@ -9525,6 +9571,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+{
|
+{
|
||||||
+ return wq->pending;
|
+ return wq->pending;
|
||||||
+}
|
+}
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_crypto.c b/drivers/usb/host/dwc_common_port/dwc_crypto.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..3b03532
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_crypto.c
|
+++ b/drivers/usb/host/dwc_common_port/dwc_crypto.c
|
||||||
@@ -0,0 +1,308 @@
|
@@ -0,0 +1,308 @@
|
||||||
|
@ -9836,6 +9885,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif /* DWC_CRYPTOLIB */
|
+#endif /* DWC_CRYPTOLIB */
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_crypto.h b/drivers/usb/host/dwc_common_port/dwc_crypto.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..26fcddc
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_crypto.h
|
+++ b/drivers/usb/host/dwc_common_port/dwc_crypto.h
|
||||||
@@ -0,0 +1,111 @@
|
@@ -0,0 +1,111 @@
|
||||||
|
@ -9950,6 +10002,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+#endif /* _DWC_CRYPTO_H_ */
|
+#endif /* _DWC_CRYPTO_H_ */
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_dh.c b/drivers/usb/host/dwc_common_port/dwc_dh.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..997f753
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_dh.c
|
+++ b/drivers/usb/host/dwc_common_port/dwc_dh.c
|
||||||
@@ -0,0 +1,291 @@
|
@@ -0,0 +1,291 @@
|
||||||
|
@ -10244,6 +10299,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif /* !CONFIG_MACH_IPMATE */
|
+#endif /* !CONFIG_MACH_IPMATE */
|
||||||
+
|
+
|
||||||
+#endif /* DWC_CRYPTOLIB */
|
+#endif /* DWC_CRYPTOLIB */
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_dh.h b/drivers/usb/host/dwc_common_port/dwc_dh.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..25c1cc0
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_dh.h
|
+++ b/drivers/usb/host/dwc_common_port/dwc_dh.h
|
||||||
@@ -0,0 +1,106 @@
|
@@ -0,0 +1,106 @@
|
||||||
|
@ -10353,6 +10411,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+#endif /* _DWC_DH_H_ */
|
+#endif /* _DWC_DH_H_ */
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_list.h b/drivers/usb/host/dwc_common_port/dwc_list.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..89cc325
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_list.h
|
+++ b/drivers/usb/host/dwc_common_port/dwc_list.h
|
||||||
@@ -0,0 +1,594 @@
|
@@ -0,0 +1,594 @@
|
||||||
|
@ -10950,6 +11011,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+#endif /* _DWC_LIST_H_ */
|
+#endif /* _DWC_LIST_H_ */
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_mem.c b/drivers/usb/host/dwc_common_port/dwc_mem.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..ad645ff
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_mem.c
|
+++ b/drivers/usb/host/dwc_common_port/dwc_mem.c
|
||||||
@@ -0,0 +1,245 @@
|
@@ -0,0 +1,245 @@
|
||||||
|
@ -11198,6 +11262,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif /* DWC_DEBUG_MEMORY */
|
+#endif /* DWC_DEBUG_MEMORY */
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_modpow.c b/drivers/usb/host/dwc_common_port/dwc_modpow.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..b7c456b
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_modpow.c
|
+++ b/drivers/usb/host/dwc_common_port/dwc_modpow.c
|
||||||
@@ -0,0 +1,636 @@
|
@@ -0,0 +1,636 @@
|
||||||
|
@ -11837,6 +11904,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif /* CONFIG_MACH_IPMATE */
|
+#endif /* CONFIG_MACH_IPMATE */
|
||||||
+
|
+
|
||||||
+#endif /*DWC_CRYPTOLIB */
|
+#endif /*DWC_CRYPTOLIB */
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_modpow.h b/drivers/usb/host/dwc_common_port/dwc_modpow.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..64f00c2
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_modpow.h
|
+++ b/drivers/usb/host/dwc_common_port/dwc_modpow.h
|
||||||
@@ -0,0 +1,34 @@
|
@@ -0,0 +1,34 @@
|
||||||
|
@ -11874,6 +11944,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+#endif /* _LINUX_BIGNUM_H */
|
+#endif /* _LINUX_BIGNUM_H */
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_notifier.c b/drivers/usb/host/dwc_common_port/dwc_notifier.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..8b3772a
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_notifier.c
|
+++ b/drivers/usb/host/dwc_common_port/dwc_notifier.c
|
||||||
@@ -0,0 +1,319 @@
|
@@ -0,0 +1,319 @@
|
||||||
|
@ -12196,6 +12269,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif /* DWC_NOTIFYLIB */
|
+#endif /* DWC_NOTIFYLIB */
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_notifier.h b/drivers/usb/host/dwc_common_port/dwc_notifier.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..4a8cdfe
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_notifier.h
|
+++ b/drivers/usb/host/dwc_common_port/dwc_notifier.h
|
||||||
@@ -0,0 +1,122 @@
|
@@ -0,0 +1,122 @@
|
||||||
|
@ -12321,6 +12397,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+#endif /* __DWC_NOTIFIER_H__ */
|
+#endif /* __DWC_NOTIFIER_H__ */
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_os.h b/drivers/usb/host/dwc_common_port/dwc_os.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..308ddd5
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_os.h
|
+++ b/drivers/usb/host/dwc_common_port/dwc_os.h
|
||||||
@@ -0,0 +1,1260 @@
|
@@ -0,0 +1,1260 @@
|
||||||
|
@ -13584,6 +13663,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+#endif /* _DWC_OS_H_ */
|
+#endif /* _DWC_OS_H_ */
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/usb.h b/drivers/usb/host/dwc_common_port/usb.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..27bda82
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_common_port/usb.h
|
+++ b/drivers/usb/host/dwc_common_port/usb.h
|
||||||
@@ -0,0 +1,946 @@
|
@@ -0,0 +1,946 @@
|
||||||
|
@ -14533,6 +14615,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+#endif /* _USB_H_ */
|
+#endif /* _USB_H_ */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/Makefile b/drivers/usb/host/dwc_otg/Makefile
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..c4c6e4e
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/Makefile
|
+++ b/drivers/usb/host/dwc_otg/Makefile
|
||||||
@@ -0,0 +1,80 @@
|
@@ -0,0 +1,80 @@
|
||||||
|
@ -14616,6 +14701,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ rm -rf *.o *.ko .*cmd *.mod.c .tmp_versions Module.symvers
|
+ rm -rf *.o *.ko .*cmd *.mod.c .tmp_versions Module.symvers
|
||||||
+
|
+
|
||||||
+endif
|
+endif
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/doc/doxygen.cfg b/drivers/usb/host/dwc_otg/doc/doxygen.cfg
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..537c676
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/doc/doxygen.cfg
|
+++ b/drivers/usb/host/dwc_otg/doc/doxygen.cfg
|
||||||
@@ -0,0 +1,224 @@
|
@@ -0,0 +1,224 @@
|
||||||
|
@ -14843,6 +14931,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+# Configuration::additions related to the search engine
|
+# Configuration::additions related to the search engine
|
||||||
+#---------------------------------------------------------------------------
|
+#---------------------------------------------------------------------------
|
||||||
+SEARCHENGINE = NO
|
+SEARCHENGINE = NO
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dummy_audio.c b/drivers/usb/host/dwc_otg/dummy_audio.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..530ac8b
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dummy_audio.c
|
+++ b/drivers/usb/host/dwc_otg/dummy_audio.c
|
||||||
@@ -0,0 +1,1575 @@
|
@@ -0,0 +1,1575 @@
|
||||||
|
@ -16421,6 +16512,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ remove_proc_entry("isoc_test", NULL);
|
+ remove_proc_entry("isoc_test", NULL);
|
||||||
+}
|
+}
|
||||||
+module_exit (cleanup);
|
+module_exit (cleanup);
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_cfi_common.h b/drivers/usb/host/dwc_otg/dwc_cfi_common.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..be56af4
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_cfi_common.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_cfi_common.h
|
||||||
@@ -0,0 +1,142 @@
|
@@ -0,0 +1,142 @@
|
||||||
|
@ -16566,6 +16660,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+typedef struct cfi_string cfi_string_t;
|
+typedef struct cfi_string cfi_string_t;
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_adp.c b/drivers/usb/host/dwc_otg/dwc_otg_adp.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..0877472
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_adp.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_adp.c
|
||||||
@@ -0,0 +1,854 @@
|
@@ -0,0 +1,854 @@
|
||||||
|
@ -17423,6 +17520,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif
|
+#endif
|
||||||
+ return 1;
|
+ return 1;
|
||||||
+}
|
+}
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_adp.h b/drivers/usb/host/dwc_otg/dwc_otg_adp.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..d8c3f85
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_adp.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_adp.h
|
||||||
@@ -0,0 +1,80 @@
|
@@ -0,0 +1,80 @@
|
||||||
|
@ -17506,6 +17606,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+extern int32_t dwc_otg_adp_handle_srp_intr(dwc_otg_core_if_t * core_if);
|
+extern int32_t dwc_otg_adp_handle_srp_intr(dwc_otg_core_if_t * core_if);
|
||||||
+
|
+
|
||||||
+#endif //__DWC_OTG_ADP_H__
|
+#endif //__DWC_OTG_ADP_H__
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_attr.c b/drivers/usb/host/dwc_otg/dwc_otg_attr.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..95eb7f8
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_attr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_attr.c
|
||||||
@@ -0,0 +1,1210 @@
|
@@ -0,0 +1,1210 @@
|
||||||
|
@ -18719,6 +18822,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ device_remove_file(&dev->dev, &dev_attr_sleep_status);
|
+ device_remove_file(&dev->dev, &dev_attr_sleep_status);
|
||||||
+#endif
|
+#endif
|
||||||
+}
|
+}
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_attr.h b/drivers/usb/host/dwc_otg/dwc_otg_attr.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..fc14d94
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_attr.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_attr.h
|
||||||
@@ -0,0 +1,89 @@
|
@@ -0,0 +1,89 @@
|
||||||
|
@ -18811,6 +18917,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif
|
+#endif
|
||||||
+ );
|
+ );
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_cfi.c b/drivers/usb/host/dwc_otg/dwc_otg_cfi.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..a9878d6
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cfi.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cfi.c
|
||||||
@@ -0,0 +1,1876 @@
|
@@ -0,0 +1,1876 @@
|
||||||
|
@ -20690,6 +20799,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif //DWC_UTE_CFI
|
+#endif //DWC_UTE_CFI
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_cfi.h b/drivers/usb/host/dwc_otg/dwc_otg_cfi.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..cbccdab
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cfi.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cfi.h
|
||||||
@@ -0,0 +1,320 @@
|
@@ -0,0 +1,320 @@
|
||||||
|
@ -21013,6 +21125,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+int cfi_setup(struct dwc_otg_pcd *pcd, struct cfi_usb_ctrlrequest *ctrl);
|
+int cfi_setup(struct dwc_otg_pcd *pcd, struct cfi_usb_ctrlrequest *ctrl);
|
||||||
+
|
+
|
||||||
+#endif /* (__DWC_OTG_CFI_H__) */
|
+#endif /* (__DWC_OTG_CFI_H__) */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_cil.c b/drivers/usb/host/dwc_otg/dwc_otg_cil.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..9b67537
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cil.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cil.c
|
||||||
@@ -0,0 +1,7151 @@
|
@@ -0,0 +1,7151 @@
|
||||||
|
@ -28167,6 +28282,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ dwc_otg_pcd_start_srp_timer(core_if);
|
+ dwc_otg_pcd_start_srp_timer(core_if);
|
||||||
+ return;
|
+ return;
|
||||||
+}
|
+}
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_cil.h b/drivers/usb/host/dwc_otg/dwc_otg_cil.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..d367cd1
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cil.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cil.h
|
||||||
@@ -0,0 +1,1464 @@
|
@@ -0,0 +1,1464 @@
|
||||||
|
@ -29634,6 +29752,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+//////////////////////////////////////////////////////////////////////
|
+//////////////////////////////////////////////////////////////////////
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..21804c4
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
|
||||||
@@ -0,0 +1,1563 @@
|
@@ -0,0 +1,1563 @@
|
||||||
|
@ -31200,6 +31321,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+ return retval;
|
+ return retval;
|
||||||
+}
|
+}
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_core_if.h b/drivers/usb/host/dwc_otg/dwc_otg_core_if.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..10b68c4
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_core_if.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_core_if.h
|
||||||
@@ -0,0 +1,705 @@
|
@@ -0,0 +1,705 @@
|
||||||
|
@ -31908,6 +32032,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+/** @} */
|
+/** @} */
|
||||||
+
|
+
|
||||||
+#endif /* __DWC_CORE_IF_H__ */
|
+#endif /* __DWC_CORE_IF_H__ */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_dbg.h b/drivers/usb/host/dwc_otg/dwc_otg_dbg.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..8681aa9
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_dbg.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_dbg.h
|
||||||
@@ -0,0 +1,116 @@
|
@@ -0,0 +1,116 @@
|
||||||
|
@ -32027,6 +32154,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+#endif /*DEBUG*/
|
+#endif /*DEBUG*/
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_driver.c b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..e7f99e1
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
@@ -0,0 +1,1700 @@
|
@@ -0,0 +1,1700 @@
|
||||||
|
@ -33730,6 +33860,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ </td></tr>
|
+ </td></tr>
|
||||||
+
|
+
|
||||||
+*/
|
+*/
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_driver.h b/drivers/usb/host/dwc_otg/dwc_otg_driver.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..8a0e41b
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.h
|
||||||
@@ -0,0 +1,86 @@
|
@@ -0,0 +1,86 @@
|
||||||
|
@ -33819,6 +33952,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..434d0c4
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -0,0 +1,3473 @@
|
@@ -0,0 +1,3473 @@
|
||||||
|
@ -37295,6 +37431,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif /* DWC_DEVICE_ONLY */
|
+#endif /* DWC_DEVICE_ONLY */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..8075595
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
@@ -0,0 +1,824 @@
|
@@ -0,0 +1,824 @@
|
||||||
|
@ -38122,6 +38261,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif
|
+#endif
|
||||||
+#endif
|
+#endif
|
||||||
+#endif /* DWC_DEVICE_ONLY */
|
+#endif /* DWC_DEVICE_ONLY */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..d0d5fa1
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c
|
||||||
@@ -0,0 +1,1133 @@
|
@@ -0,0 +1,1133 @@
|
||||||
|
@ -39258,6 +39400,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif /* DWC_DEVICE_ONLY */
|
+#endif /* DWC_DEVICE_ONLY */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h b/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..b3dc806
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h
|
||||||
@@ -0,0 +1,412 @@
|
@@ -0,0 +1,412 @@
|
||||||
|
@ -39673,6 +39818,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+#endif /* __DWC_HCD_IF_H__ */
|
+#endif /* __DWC_HCD_IF_H__ */
|
||||||
+#endif /* DWC_DEVICE_ONLY */
|
+#endif /* DWC_DEVICE_ONLY */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..63c1b55
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -0,0 +1,2106 @@
|
@@ -0,0 +1,2106 @@
|
||||||
|
@ -41782,6 +41930,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif /* DWC_DEVICE_ONLY */
|
+#endif /* DWC_DEVICE_ONLY */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..4a985a6
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
@@ -0,0 +1,893 @@
|
@@ -0,0 +1,893 @@
|
||||||
|
@ -42678,6 +42829,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif /* DWC_DEVICE_ONLY */
|
+#endif /* DWC_DEVICE_ONLY */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..08c1669
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
@@ -0,0 +1,922 @@
|
@@ -0,0 +1,922 @@
|
||||||
|
@ -43603,6 +43757,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif /* DWC_DEVICE_ONLY */
|
+#endif /* DWC_DEVICE_ONLY */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h b/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..a7e9076
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
|
||||||
@@ -0,0 +1,185 @@
|
@@ -0,0 +1,185 @@
|
||||||
|
@ -43791,6 +43948,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
+#endif /* _DWC_OS_DEP_H_ */
|
+#endif /* _DWC_OS_DEP_H_ */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..c97d65c
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd.c
|
||||||
@@ -0,0 +1,2708 @@
|
@@ -0,0 +1,2708 @@
|
||||||
|
@ -46502,6 +46662,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif /* DWC_HOST_ONLY */
|
+#endif /* DWC_HOST_ONLY */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd.h b/drivers/usb/host/dwc_otg/dwc_otg_pcd.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..8ef7ba6
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd.h
|
||||||
@@ -0,0 +1,266 @@
|
@@ -0,0 +1,266 @@
|
||||||
|
@ -46771,6 +46934,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+extern void do_test_mode(void *data);
|
+extern void do_test_mode(void *data);
|
||||||
+#endif
|
+#endif
|
||||||
+#endif /* DWC_HOST_ONLY */
|
+#endif /* DWC_HOST_ONLY */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h b/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..c8d2e0e
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_if.h
|
||||||
@@ -0,0 +1,360 @@
|
@@ -0,0 +1,360 @@
|
||||||
|
@ -47134,6 +47300,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif /* __DWC_PCD_IF_H__ */
|
+#endif /* __DWC_PCD_IF_H__ */
|
||||||
+
|
+
|
||||||
+#endif /* DWC_HOST_ONLY */
|
+#endif /* DWC_HOST_ONLY */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..27061d3
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c
|
||||||
@@ -0,0 +1,5147 @@
|
@@ -0,0 +1,5147 @@
|
||||||
|
@ -52284,6 +52453,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+#endif /* DWC_HOST_ONLY */
|
+#endif /* DWC_HOST_ONLY */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..a591d89
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_linux.c
|
||||||
@@ -0,0 +1,1358 @@
|
@@ -0,0 +1,1358 @@
|
||||||
|
@ -53645,6 +53817,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+EXPORT_SYMBOL(usb_gadget_unregister_driver);
|
+EXPORT_SYMBOL(usb_gadget_unregister_driver);
|
||||||
+
|
+
|
||||||
+#endif /* DWC_HOST_ONLY */
|
+#endif /* DWC_HOST_ONLY */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_regs.h b/drivers/usb/host/dwc_otg/dwc_otg_regs.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..0572642
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_regs.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_regs.h
|
||||||
@@ -0,0 +1,2550 @@
|
@@ -0,0 +1,2550 @@
|
||||||
|
@ -56198,6 +56373,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+} gpwrdn_data_t;
|
+} gpwrdn_data_t;
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/test/Makefile b/drivers/usb/host/dwc_otg/test/Makefile
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..fc45375
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/test/Makefile
|
+++ b/drivers/usb/host/dwc_otg/test/Makefile
|
||||||
@@ -0,0 +1,16 @@
|
@@ -0,0 +1,16 @@
|
||||||
|
@ -56217,6 +56395,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ else echo "=======> $$test, FAILED" ; \
|
+ else echo "=======> $$test, FAILED" ; \
|
||||||
+ fi \
|
+ fi \
|
||||||
+ done
|
+ done
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm b/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..233b04a
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm
|
+++ b/drivers/usb/host/dwc_otg/test/dwc_otg_test.pm
|
||||||
@@ -0,0 +1,337 @@
|
@@ -0,0 +1,337 @@
|
||||||
|
@ -56557,6 +56738,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+);
|
+);
|
||||||
+
|
+
|
||||||
+1;
|
+1;
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/test/test_mod_param.pl b/drivers/usb/host/dwc_otg/test/test_mod_param.pl
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..e887dce
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/test/test_mod_param.pl
|
+++ b/drivers/usb/host/dwc_otg/test/test_mod_param.pl
|
||||||
@@ -0,0 +1,133 @@
|
@@ -0,0 +1,133 @@
|
||||||
|
@ -56693,6 +56877,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+test_main();
|
+test_main();
|
||||||
+0;
|
+0;
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/test/test_sysfs.pl b/drivers/usb/host/dwc_otg/test/test_sysfs.pl
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..abcf284
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/test/test_sysfs.pl
|
+++ b/drivers/usb/host/dwc_otg/test/test_sysfs.pl
|
||||||
@@ -0,0 +1,193 @@
|
@@ -0,0 +1,193 @@
|
||||||
|
@ -56889,3 +57076,6 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+test_main();
|
+test_main();
|
||||||
+0;
|
+0;
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From dd611b3364087514ef5fc59c6106d8924d2a2a30 Mon Sep 17 00:00:00 2001
|
From 34844524c88edbb0fd75339fd655f6b69b221b0a Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 1 May 2013 19:54:32 +0100
|
Date: Wed, 1 May 2013 19:54:32 +0100
|
||||||
Subject: [PATCH 003/174] bcm2708 watchdog driver
|
Subject: [PATCH 003/196] bcm2708 watchdog driver
|
||||||
|
|
||||||
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
---
|
---
|
||||||
|
@ -11,6 +11,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
3 files changed, 392 insertions(+)
|
3 files changed, 392 insertions(+)
|
||||||
create mode 100644 drivers/watchdog/bcm2708_wdog.c
|
create mode 100644 drivers/watchdog/bcm2708_wdog.c
|
||||||
|
|
||||||
|
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
|
||||||
|
index e89fc31..60ca320 100644
|
||||||
--- a/drivers/watchdog/Kconfig
|
--- a/drivers/watchdog/Kconfig
|
||||||
+++ b/drivers/watchdog/Kconfig
|
+++ b/drivers/watchdog/Kconfig
|
||||||
@@ -391,6 +391,12 @@ config RETU_WATCHDOG
|
@@ -391,6 +391,12 @@ config RETU_WATCHDOG
|
||||||
|
@ -26,9 +28,11 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
# AVR32 Architecture
|
# AVR32 Architecture
|
||||||
|
|
||||||
config AT32AP700X_WDT
|
config AT32AP700X_WDT
|
||||||
|
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
|
||||||
|
index a300b94..0e357711 100644
|
||||||
--- a/drivers/watchdog/Makefile
|
--- a/drivers/watchdog/Makefile
|
||||||
+++ b/drivers/watchdog/Makefile
|
+++ b/drivers/watchdog/Makefile
|
||||||
@@ -54,6 +54,7 @@ obj-$(CONFIG_TS72XX_WATCHDOG) += ts72xx_
|
@@ -54,6 +54,7 @@ obj-$(CONFIG_TS72XX_WATCHDOG) += ts72xx_wdt.o
|
||||||
obj-$(CONFIG_IMX2_WDT) += imx2_wdt.o
|
obj-$(CONFIG_IMX2_WDT) += imx2_wdt.o
|
||||||
obj-$(CONFIG_UX500_WATCHDOG) += ux500_wdt.o
|
obj-$(CONFIG_UX500_WATCHDOG) += ux500_wdt.o
|
||||||
obj-$(CONFIG_RETU_WATCHDOG) += retu_wdt.o
|
obj-$(CONFIG_RETU_WATCHDOG) += retu_wdt.o
|
||||||
|
@ -36,6 +40,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
|
|
||||||
# AVR32 Architecture
|
# AVR32 Architecture
|
||||||
obj-$(CONFIG_AT32AP700X_WDT) += at32ap700x_wdt.o
|
obj-$(CONFIG_AT32AP700X_WDT) += at32ap700x_wdt.o
|
||||||
|
diff --git a/drivers/watchdog/bcm2708_wdog.c b/drivers/watchdog/bcm2708_wdog.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..dd33c35
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/watchdog/bcm2708_wdog.c
|
+++ b/drivers/watchdog/bcm2708_wdog.c
|
||||||
@@ -0,0 +1,385 @@
|
@@ -0,0 +1,385 @@
|
||||||
|
@ -424,3 +431,6 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+MODULE_ALIAS_MISCDEV(TEMP_MINOR);
|
+MODULE_ALIAS_MISCDEV(TEMP_MINOR);
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
+
|
+
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From c9fbd3932a41a14af51d04fb6f43c45d60e66f8c Mon Sep 17 00:00:00 2001
|
From db56ac21f4312a9cf97d4f9f35ff2593b5b81f7d Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 1 May 2013 19:55:09 +0100
|
Date: Wed, 1 May 2013 19:55:09 +0100
|
||||||
Subject: [PATCH 004/174] bcm2708 framebuffer driver
|
Subject: [PATCH 004/196] bcm2708 framebuffer driver
|
||||||
|
|
||||||
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
---
|
---
|
||||||
|
@ -12,6 +12,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
4 files changed, 1387 insertions(+), 1602 deletions(-)
|
4 files changed, 1387 insertions(+), 1602 deletions(-)
|
||||||
create mode 100644 drivers/video/bcm2708_fb.c
|
create mode 100644 drivers/video/bcm2708_fb.c
|
||||||
|
|
||||||
|
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
|
||||||
|
index 2e937bd..9f4c58f 100644
|
||||||
--- a/drivers/video/Kconfig
|
--- a/drivers/video/Kconfig
|
||||||
+++ b/drivers/video/Kconfig
|
+++ b/drivers/video/Kconfig
|
||||||
@@ -310,6 +310,20 @@ config FB_PM2_FIFO_DISCONNECT
|
@@ -310,6 +310,20 @@ config FB_PM2_FIFO_DISCONNECT
|
||||||
|
@ -35,9 +37,11 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
config FB_ARMCLCD
|
config FB_ARMCLCD
|
||||||
tristate "ARM PrimeCell PL110 support"
|
tristate "ARM PrimeCell PL110 support"
|
||||||
depends on FB && ARM && ARM_AMBA
|
depends on FB && ARM && ARM_AMBA
|
||||||
|
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
|
||||||
|
index e8bae8d..032f386 100644
|
||||||
--- a/drivers/video/Makefile
|
--- a/drivers/video/Makefile
|
||||||
+++ b/drivers/video/Makefile
|
+++ b/drivers/video/Makefile
|
||||||
@@ -100,6 +100,7 @@ obj-$(CONFIG_FB_PVR2) += pvr
|
@@ -100,6 +100,7 @@ obj-$(CONFIG_FB_PVR2) += pvr2fb.o
|
||||||
obj-$(CONFIG_FB_VOODOO1) += sstfb.o
|
obj-$(CONFIG_FB_VOODOO1) += sstfb.o
|
||||||
obj-$(CONFIG_FB_ARMCLCD) += amba-clcd.o
|
obj-$(CONFIG_FB_ARMCLCD) += amba-clcd.o
|
||||||
obj-$(CONFIG_FB_GOLDFISH) += goldfishfb.o
|
obj-$(CONFIG_FB_GOLDFISH) += goldfishfb.o
|
||||||
|
@ -45,6 +49,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
obj-$(CONFIG_FB_68328) += 68328fb.o
|
obj-$(CONFIG_FB_68328) += 68328fb.o
|
||||||
obj-$(CONFIG_FB_GBE) += gbefb.o
|
obj-$(CONFIG_FB_GBE) += gbefb.o
|
||||||
obj-$(CONFIG_FB_CIRRUS) += cirrusfb.o
|
obj-$(CONFIG_FB_CIRRUS) += cirrusfb.o
|
||||||
|
diff --git a/drivers/video/bcm2708_fb.c b/drivers/video/bcm2708_fb.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..08d9238
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/video/bcm2708_fb.c
|
+++ b/drivers/video/bcm2708_fb.c
|
||||||
@@ -0,0 +1,491 @@
|
@@ -0,0 +1,491 @@
|
||||||
|
@ -539,6 +546,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+MODULE_PARM_DESC(fbwidth, "Width of ARM Framebuffer");
|
+MODULE_PARM_DESC(fbwidth, "Width of ARM Framebuffer");
|
||||||
+MODULE_PARM_DESC(fbheight, "Height of ARM Framebuffer");
|
+MODULE_PARM_DESC(fbheight, "Height of ARM Framebuffer");
|
||||||
+MODULE_PARM_DESC(fbdepth, "Bit depth of ARM Framebuffer");
|
+MODULE_PARM_DESC(fbdepth, "Bit depth of ARM Framebuffer");
|
||||||
|
diff --git a/drivers/video/logo/logo_linux_clut224.ppm b/drivers/video/logo/logo_linux_clut224.ppm
|
||||||
|
index 3c14e43..7626beb 100644
|
||||||
--- a/drivers/video/logo/logo_linux_clut224.ppm
|
--- a/drivers/video/logo/logo_linux_clut224.ppm
|
||||||
+++ b/drivers/video/logo/logo_linux_clut224.ppm
|
+++ b/drivers/video/logo/logo_linux_clut224.ppm
|
||||||
@@ -1,1604 +1,883 @@
|
@@ -1,1604 +1,883 @@
|
||||||
|
@ -3027,3 +3036,6 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||||||
+0 0 0 0 0 0 0 0 0
|
+0 0 0 0 0 0 0 0 0
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 2fdd1c3ab61a7a58a3ef3bc5b3d1504202bbc108 Mon Sep 17 00:00:00 2001
|
From 8edd8c6dbdb6a5288c7116ea6e9dc59705b15a6a Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Tue, 2 Jul 2013 23:42:01 +0100
|
Date: Tue, 2 Jul 2013 23:42:01 +0100
|
||||||
Subject: [PATCH 005/174] bcm2708 vchiq driver
|
Subject: [PATCH 005/196] bcm2708 vchiq driver
|
||||||
|
|
||||||
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
---
|
---
|
||||||
|
@ -71,6 +71,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h
|
create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h
|
||||||
create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c
|
create mode 100644 drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c
|
||||||
|
|
||||||
|
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
|
||||||
|
index c002d86..84d3100 100644
|
||||||
--- a/drivers/misc/Kconfig
|
--- a/drivers/misc/Kconfig
|
||||||
+++ b/drivers/misc/Kconfig
|
+++ b/drivers/misc/Kconfig
|
||||||
@@ -536,4 +536,6 @@ source "drivers/misc/carma/Kconfig"
|
@@ -536,4 +536,6 @@ source "drivers/misc/carma/Kconfig"
|
||||||
|
@ -80,6 +82,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+source "drivers/misc/vc04_services/Kconfig"
|
+source "drivers/misc/vc04_services/Kconfig"
|
||||||
endmenu
|
endmenu
|
||||||
+
|
+
|
||||||
|
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
|
||||||
|
index c235d5b..d72aaf2 100644
|
||||||
--- a/drivers/misc/Makefile
|
--- a/drivers/misc/Makefile
|
||||||
+++ b/drivers/misc/Makefile
|
+++ b/drivers/misc/Makefile
|
||||||
@@ -53,3 +53,4 @@ obj-$(CONFIG_INTEL_MEI) += mei/
|
@@ -53,3 +53,4 @@ obj-$(CONFIG_INTEL_MEI) += mei/
|
||||||
|
@ -87,6 +91,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o
|
obj-$(CONFIG_LATTICE_ECP3_CONFIG) += lattice-ecp3-config.o
|
||||||
obj-$(CONFIG_SRAM) += sram.o
|
obj-$(CONFIG_SRAM) += sram.o
|
||||||
+obj-y += vc04_services/
|
+obj-y += vc04_services/
|
||||||
|
diff --git a/drivers/misc/vc04_services/Kconfig b/drivers/misc/vc04_services/Kconfig
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..b48a3f3
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/Kconfig
|
+++ b/drivers/misc/vc04_services/Kconfig
|
||||||
@@ -0,0 +1,10 @@
|
@@ -0,0 +1,10 @@
|
||||||
|
@ -100,6 +107,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ Defaults to Y when the Broadcom Videocore services
|
+ Defaults to Y when the Broadcom Videocore services
|
||||||
+ are included in the build, N otherwise.
|
+ are included in the build, N otherwise.
|
||||||
+
|
+
|
||||||
|
diff --git a/drivers/misc/vc04_services/Makefile b/drivers/misc/vc04_services/Makefile
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..1aeb20a
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/Makefile
|
+++ b/drivers/misc/vc04_services/Makefile
|
||||||
@@ -0,0 +1,18 @@
|
@@ -0,0 +1,18 @@
|
||||||
|
@ -121,6 +131,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+endif
|
+endif
|
||||||
+
|
+
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchi/connections/connection.h b/drivers/misc/vc04_services/interface/vchi/connections/connection.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..fef6ac3
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchi/connections/connection.h
|
+++ b/drivers/misc/vc04_services/interface/vchi/connections/connection.h
|
||||||
@@ -0,0 +1,328 @@
|
@@ -0,0 +1,328 @@
|
||||||
|
@ -452,6 +465,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif /* CONNECTION_H_ */
|
+#endif /* CONNECTION_H_ */
|
||||||
+
|
+
|
||||||
+/****************************** End of file **********************************/
|
+/****************************** End of file **********************************/
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h b/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..8b3f767
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h
|
+++ b/drivers/misc/vc04_services/interface/vchi/message_drivers/message.h
|
||||||
@@ -0,0 +1,204 @@
|
@@ -0,0 +1,204 @@
|
||||||
|
@ -659,6 +675,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif // _VCHI_MESSAGE_H_
|
+#endif // _VCHI_MESSAGE_H_
|
||||||
+
|
+
|
||||||
+/****************************** End of file ***********************************/
|
+/****************************** End of file ***********************************/
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchi/vchi.h b/drivers/misc/vc04_services/interface/vchi/vchi.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..cee5291
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchi/vchi.h
|
+++ b/drivers/misc/vc04_services/interface/vchi/vchi.h
|
||||||
@@ -0,0 +1,373 @@
|
@@ -0,0 +1,373 @@
|
||||||
|
@ -1035,6 +1054,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif /* VCHI_H_ */
|
+#endif /* VCHI_H_ */
|
||||||
+
|
+
|
||||||
+/****************************** End of file **********************************/
|
+/****************************** End of file **********************************/
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h b/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..26bc2d3
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h
|
+++ b/drivers/misc/vc04_services/interface/vchi/vchi_cfg.h
|
||||||
@@ -0,0 +1,224 @@
|
@@ -0,0 +1,224 @@
|
||||||
|
@ -1262,6 +1284,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif /* VCHI_CFG_H_ */
|
+#endif /* VCHI_CFG_H_ */
|
||||||
+
|
+
|
||||||
+/****************************** End of file **********************************/
|
+/****************************** End of file **********************************/
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h b/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..35dcba4
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h
|
+++ b/drivers/misc/vc04_services/interface/vchi/vchi_cfg_internal.h
|
||||||
@@ -0,0 +1,71 @@
|
@@ -0,0 +1,71 @@
|
||||||
|
@ -1336,6 +1361,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+//#define VCHI_RX_NANOLOCKS
|
+//#define VCHI_RX_NANOLOCKS
|
||||||
+
|
+
|
||||||
+#endif /*VCHI_CFG_INTERNAL_H_*/
|
+#endif /*VCHI_CFG_INTERNAL_H_*/
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchi/vchi_common.h b/drivers/misc/vc04_services/interface/vchi/vchi_common.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..9e6c00e
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchi/vchi_common.h
|
+++ b/drivers/misc/vc04_services/interface/vchi/vchi_common.h
|
||||||
@@ -0,0 +1,163 @@
|
@@ -0,0 +1,163 @@
|
||||||
|
@ -1502,6 +1530,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
+#endif // VCHI_COMMON_H_
|
+#endif // VCHI_COMMON_H_
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchi/vchi_mh.h b/drivers/misc/vc04_services/interface/vchi/vchi_mh.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..198bd07
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchi/vchi_mh.h
|
+++ b/drivers/misc/vc04_services/interface/vchi/vchi_mh.h
|
||||||
@@ -0,0 +1,42 @@
|
@@ -0,0 +1,42 @@
|
||||||
|
@ -1547,6 +1578,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#define VCHI_MEM_HANDLE_INVALID 0
|
+#define VCHI_MEM_HANDLE_INVALID 0
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..f87dcbd
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq.h
|
||||||
@@ -0,0 +1,41 @@
|
@@ -0,0 +1,41 @@
|
||||||
|
@ -1591,6 +1625,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..7ea5c64
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835.h
|
||||||
@@ -0,0 +1,42 @@
|
@@ -0,0 +1,42 @@
|
||||||
|
@ -1636,6 +1673,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#define VCHIQ_PLATFORM_FRAGMENTS_COUNT_IDX 1
|
+#define VCHIQ_PLATFORM_FRAGMENTS_COUNT_IDX 1
|
||||||
+
|
+
|
||||||
+#endif /* VCHIQ_2835_H */
|
+#endif /* VCHIQ_2835_H */
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..2b5fa56
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
|
||||||
@@ -0,0 +1,538 @@
|
@@ -0,0 +1,538 @@
|
||||||
|
@ -2177,6 +2217,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+ kfree(pagelist);
|
+ kfree(pagelist);
|
||||||
+}
|
+}
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..f44d4b4
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.c
|
||||||
@@ -0,0 +1,2813 @@
|
@@ -0,0 +1,2813 @@
|
||||||
|
@ -4993,6 +5036,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+module_exit(vchiq_exit);
|
+module_exit(vchiq_exit);
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
+MODULE_AUTHOR("Broadcom Corporation");
|
+MODULE_AUTHOR("Broadcom Corporation");
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..75ad4c6
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_arm.h
|
||||||
@@ -0,0 +1,212 @@
|
@@ -0,0 +1,212 @@
|
||||||
|
@ -5208,6 +5254,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
+#endif /* VCHIQ_ARM_H */
|
+#endif /* VCHIQ_ARM_H */
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..df64581
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_build_info.h
|
||||||
@@ -0,0 +1,37 @@
|
@@ -0,0 +1,37 @@
|
||||||
|
@ -5248,6 +5297,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+const char *vchiq_get_build_version(void);
|
+const char *vchiq_get_build_version(void);
|
||||||
+const char *vchiq_get_build_time(void);
|
+const char *vchiq_get_build_time(void);
|
||||||
+const char *vchiq_get_build_date(void);
|
+const char *vchiq_get_build_date(void);
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..493c86c
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_cfg.h
|
||||||
@@ -0,0 +1,60 @@
|
@@ -0,0 +1,60 @@
|
||||||
|
@ -5311,6 +5363,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+#endif /* VCHIQ_CFG_H */
|
+#endif /* VCHIQ_CFG_H */
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..65f4b52
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.c
|
||||||
@@ -0,0 +1,119 @@
|
@@ -0,0 +1,119 @@
|
||||||
|
@ -5433,6 +5488,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ mutex_unlock(&g_connected_mutex);
|
+ mutex_unlock(&g_connected_mutex);
|
||||||
+}
|
+}
|
||||||
+EXPORT_SYMBOL(vchiq_add_connected_callback);
|
+EXPORT_SYMBOL(vchiq_add_connected_callback);
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..e4cfdcc
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_connected.h
|
||||||
@@ -0,0 +1,51 @@
|
@@ -0,0 +1,51 @@
|
||||||
|
@ -5487,6 +5545,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+#endif /* VCHIQ_CONNECTED_H */
|
+#endif /* VCHIQ_CONNECTED_H */
|
||||||
+
|
+
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..f35ed4f
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.c
|
||||||
@@ -0,0 +1,3824 @@
|
@@ -0,0 +1,3824 @@
|
||||||
|
@ -9314,6 +9375,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ numBytes = 0;
|
+ numBytes = 0;
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..47cdf27
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_core.h
|
||||||
@@ -0,0 +1,706 @@
|
@@ -0,0 +1,706 @@
|
||||||
|
@ -10023,6 +10087,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ size_t numBytes);
|
+ size_t numBytes);
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..77dd613
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_genversion
|
||||||
@@ -0,0 +1,89 @@
|
@@ -0,0 +1,89 @@
|
||||||
|
@ -10115,6 +10182,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+EOF
|
+EOF
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..50359b0
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_if.h
|
||||||
@@ -0,0 +1,188 @@
|
@@ -0,0 +1,188 @@
|
||||||
|
@ -10306,6 +10376,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ short *peer_version);
|
+ short *peer_version);
|
||||||
+
|
+
|
||||||
+#endif /* VCHIQ_IF_H */
|
+#endif /* VCHIQ_IF_H */
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..e248037
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_ioctl.h
|
||||||
@@ -0,0 +1,129 @@
|
@@ -0,0 +1,129 @@
|
||||||
|
@ -10438,6 +10511,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+#define VCHIQ_IOC_MAX 15
|
+#define VCHIQ_IOC_MAX 15
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..be9735f
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_kern_lib.c
|
||||||
@@ -0,0 +1,456 @@
|
@@ -0,0 +1,456 @@
|
||||||
|
@ -10897,6 +10973,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+ return status;
|
+ return status;
|
||||||
+}
|
+}
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..d02e776
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_memdrv.h
|
||||||
@@ -0,0 +1,71 @@
|
@@ -0,0 +1,71 @@
|
||||||
|
@ -10971,6 +11050,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ const VCHIQ_PLATFORM_DATA_T * platform_data);
|
+ const VCHIQ_PLATFORM_DATA_T * platform_data);
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..54a3ece
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_pagelist.h
|
||||||
@@ -0,0 +1,58 @@
|
@@ -0,0 +1,58 @@
|
||||||
|
@ -11032,6 +11114,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+} FRAGMENTS_T;
|
+} FRAGMENTS_T;
|
||||||
+
|
+
|
||||||
+#endif /* VCHIQ_PAGELIST_H */
|
+#endif /* VCHIQ_PAGELIST_H */
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..dc3bdda
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_proc.c
|
||||||
@@ -0,0 +1,254 @@
|
@@ -0,0 +1,254 @@
|
||||||
|
@ -11289,6 +11374,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..f752f8d
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_shim.c
|
||||||
@@ -0,0 +1,815 @@
|
@@ -0,0 +1,815 @@
|
||||||
|
@ -12107,6 +12195,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ return ret;
|
+ return ret;
|
||||||
+}
|
+}
|
||||||
+EXPORT_SYMBOL(vchi_service_release);
|
+EXPORT_SYMBOL(vchi_service_release);
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..c2eefef
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.c
|
||||||
@@ -0,0 +1,151 @@
|
@@ -0,0 +1,151 @@
|
||||||
|
@ -12261,6 +12352,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+ return header;
|
+ return header;
|
||||||
+}
|
+}
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..7c4bf7c
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_util.h
|
||||||
@@ -0,0 +1,82 @@
|
@@ -0,0 +1,82 @@
|
||||||
|
@ -12346,6 +12440,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
|
diff --git a/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..b6bfa21
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c
|
+++ b/drivers/misc/vc04_services/interface/vchiq_arm/vchiq_version.c
|
||||||
@@ -0,0 +1,59 @@
|
@@ -0,0 +1,59 @@
|
||||||
|
@ -12408,3 +12505,6 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+{
|
+{
|
||||||
+ return vchiq_build_time;
|
+ return vchiq_build_time;
|
||||||
+}
|
+}
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From ff28398a53a45795382bdb25db71f2a8b3394dab Mon Sep 17 00:00:00 2001
|
From 15b3faf99f1b16184620bc89be78a5f205acbe92 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 3 Jul 2013 00:31:47 +0100
|
Date: Wed, 3 Jul 2013 00:31:47 +0100
|
||||||
Subject: [PATCH 006/174] cma: Add vc_cma driver to enable use of CMA
|
Subject: [PATCH 006/196] cma: Add vc_cma driver to enable use of CMA
|
||||||
|
|
||||||
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
---
|
---
|
||||||
|
@ -20,6 +20,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
create mode 100644 drivers/char/broadcom/vc_cma/vc_cma.c
|
create mode 100644 drivers/char/broadcom/vc_cma/vc_cma.c
|
||||||
create mode 100644 include/linux/broadcom/vc_cma.h
|
create mode 100644 include/linux/broadcom/vc_cma.h
|
||||||
|
|
||||||
|
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
|
||||||
|
index 3bb6fa3..022b91c 100644
|
||||||
--- a/drivers/char/Kconfig
|
--- a/drivers/char/Kconfig
|
||||||
+++ b/drivers/char/Kconfig
|
+++ b/drivers/char/Kconfig
|
||||||
@@ -586,6 +586,8 @@ config DEVPORT
|
@@ -586,6 +586,8 @@ config DEVPORT
|
||||||
|
@ -31,6 +33,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
config MSM_SMD_PKT
|
config MSM_SMD_PKT
|
||||||
bool "Enable device interface for some SMD packet ports"
|
bool "Enable device interface for some SMD packet ports"
|
||||||
default n
|
default n
|
||||||
|
diff --git a/drivers/char/Makefile b/drivers/char/Makefile
|
||||||
|
index 7ff1d0d..c594502 100644
|
||||||
--- a/drivers/char/Makefile
|
--- a/drivers/char/Makefile
|
||||||
+++ b/drivers/char/Makefile
|
+++ b/drivers/char/Makefile
|
||||||
@@ -62,3 +62,6 @@ obj-$(CONFIG_JS_RTC) += js-rtc.o
|
@@ -62,3 +62,6 @@ obj-$(CONFIG_JS_RTC) += js-rtc.o
|
||||||
|
@ -40,6 +44,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+obj-$(CONFIG_BRCM_CHAR_DRIVERS) += broadcom/
|
+obj-$(CONFIG_BRCM_CHAR_DRIVERS) += broadcom/
|
||||||
+
|
+
|
||||||
|
diff --git a/drivers/char/broadcom/Kconfig b/drivers/char/broadcom/Kconfig
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..e23b440
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/char/broadcom/Kconfig
|
+++ b/drivers/char/broadcom/Kconfig
|
||||||
@@ -0,0 +1,16 @@
|
@@ -0,0 +1,16 @@
|
||||||
|
@ -59,11 +66,17 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+ help
|
+ help
|
||||||
+ Helper for videocore CMA access.
|
+ Helper for videocore CMA access.
|
||||||
+
|
+
|
||||||
|
diff --git a/drivers/char/broadcom/Makefile b/drivers/char/broadcom/Makefile
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..c8574c8
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/char/broadcom/Makefile
|
+++ b/drivers/char/broadcom/Makefile
|
||||||
@@ -0,0 +1,2 @@
|
@@ -0,0 +1,2 @@
|
||||||
+obj-$(CONFIG_BCM_VC_CMA) += vc_cma/
|
+obj-$(CONFIG_BCM_VC_CMA) += vc_cma/
|
||||||
+
|
+
|
||||||
|
diff --git a/drivers/char/broadcom/vc_cma/Makefile b/drivers/char/broadcom/vc_cma/Makefile
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..ae71918
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/char/broadcom/vc_cma/Makefile
|
+++ b/drivers/char/broadcom/vc_cma/Makefile
|
||||||
@@ -0,0 +1,15 @@
|
@@ -0,0 +1,15 @@
|
||||||
|
@ -82,6 +95,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+vc-cma-objs := vc_cma.o
|
+vc-cma-objs := vc_cma.o
|
||||||
+
|
+
|
||||||
|
diff --git a/drivers/char/broadcom/vc_cma/vc_cma.c b/drivers/char/broadcom/vc_cma/vc_cma.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..fe80887
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/char/broadcom/vc_cma/vc_cma.c
|
+++ b/drivers/char/broadcom/vc_cma/vc_cma.c
|
||||||
@@ -0,0 +1,1143 @@
|
@@ -0,0 +1,1143 @@
|
||||||
|
@ -1228,6 +1244,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+module_exit(vc_cma_exit);
|
+module_exit(vc_cma_exit);
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
+MODULE_AUTHOR("Broadcom Corporation");
|
+MODULE_AUTHOR("Broadcom Corporation");
|
||||||
|
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
|
||||||
|
index d72aaf2..24b40c3 100644
|
||||||
--- a/drivers/misc/Makefile
|
--- a/drivers/misc/Makefile
|
||||||
+++ b/drivers/misc/Makefile
|
+++ b/drivers/misc/Makefile
|
||||||
@@ -53,4 +53,4 @@ obj-$(CONFIG_INTEL_MEI) += mei/
|
@@ -53,4 +53,4 @@ obj-$(CONFIG_INTEL_MEI) += mei/
|
||||||
|
@ -1236,6 +1254,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
obj-$(CONFIG_SRAM) += sram.o
|
obj-$(CONFIG_SRAM) += sram.o
|
||||||
-obj-y += vc04_services/
|
-obj-y += vc04_services/
|
||||||
+obj-$(CONFIG_BCM2708_VCHIQ) += vc04_services/
|
+obj-$(CONFIG_BCM2708_VCHIQ) += vc04_services/
|
||||||
|
diff --git a/include/linux/broadcom/vc_cma.h b/include/linux/broadcom/vc_cma.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..bdc9d79
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/include/linux/broadcom/vc_cma.h
|
+++ b/include/linux/broadcom/vc_cma.h
|
||||||
@@ -0,0 +1,30 @@
|
@@ -0,0 +1,30 @@
|
||||||
|
@ -1269,3 +1290,6 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
+
|
+
|
||||||
+#endif /* VC_CMA_H */
|
+#endif /* VC_CMA_H */
|
||||||
+
|
+
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 7868fb252f8846b21a00b9a42a8bfa10f1c969ee Mon Sep 17 00:00:00 2001
|
From f99826368eeb17ddaf6b9459f577356c0387f365 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Mon, 26 Mar 2012 22:15:50 +0100
|
Date: Mon, 26 Mar 2012 22:15:50 +0100
|
||||||
Subject: [PATCH 007/174] bcm2708: alsa sound driver
|
Subject: [PATCH 007/196] bcm2708: alsa sound driver
|
||||||
|
|
||||||
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
---
|
---
|
||||||
|
@ -24,6 +24,8 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
|
||||||
create mode 100755 sound/arm/bcm2835.h
|
create mode 100755 sound/arm/bcm2835.h
|
||||||
create mode 100644 sound/arm/vc_vchi_audioserv_defs.h
|
create mode 100644 sound/arm/vc_vchi_audioserv_defs.h
|
||||||
|
|
||||||
|
diff --git a/arch/arm/configs/bcmrpi_cutdown_defconfig b/arch/arm/configs/bcmrpi_cutdown_defconfig
|
||||||
|
index 74f2dc9..e519412 100644
|
||||||
--- a/arch/arm/configs/bcmrpi_cutdown_defconfig
|
--- a/arch/arm/configs/bcmrpi_cutdown_defconfig
|
||||||
+++ b/arch/arm/configs/bcmrpi_cutdown_defconfig
|
+++ b/arch/arm/configs/bcmrpi_cutdown_defconfig
|
||||||
@@ -208,6 +208,26 @@ CONFIG_FRAMEBUFFER_CONSOLE=y
|
@@ -208,6 +208,26 @@ CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||||
|
@ -53,6 +55,8 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
|
||||||
CONFIG_HID_PID=y
|
CONFIG_HID_PID=y
|
||||||
CONFIG_USB_HIDDEV=y
|
CONFIG_USB_HIDDEV=y
|
||||||
CONFIG_HID_A4TECH=m
|
CONFIG_HID_A4TECH=m
|
||||||
|
diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig
|
||||||
|
index 339aabf..df947e5 100644
|
||||||
--- a/arch/arm/configs/bcmrpi_defconfig
|
--- a/arch/arm/configs/bcmrpi_defconfig
|
||||||
+++ b/arch/arm/configs/bcmrpi_defconfig
|
+++ b/arch/arm/configs/bcmrpi_defconfig
|
||||||
@@ -225,6 +225,26 @@ CONFIG_FRAMEBUFFER_CONSOLE=y
|
@@ -225,6 +225,26 @@ CONFIG_FRAMEBUFFER_CONSOLE=y
|
||||||
|
@ -82,9 +86,11 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
|
||||||
CONFIG_HID_PID=y
|
CONFIG_HID_PID=y
|
||||||
CONFIG_USB_HIDDEV=y
|
CONFIG_USB_HIDDEV=y
|
||||||
CONFIG_HID_A4TECH=m
|
CONFIG_HID_A4TECH=m
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/bcm2708.c b/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
|
index 64a2783..67f3608 100644
|
||||||
--- a/arch/arm/mach-bcm2708/bcm2708.c
|
--- a/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
+++ b/arch/arm/mach-bcm2708/bcm2708.c
|
+++ b/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
@@ -424,6 +424,16 @@ struct platform_device bcm2708_powerman_
|
@@ -424,6 +424,16 @@ struct platform_device bcm2708_powerman_device = {
|
||||||
.coherent_dma_mask = 0xffffffffUL},
|
.coherent_dma_mask = 0xffffffffUL},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -110,6 +116,8 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
|
for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
|
||||||
struct amba_device *d = amba_devs[i];
|
struct amba_device *d = amba_devs[i];
|
||||||
|
diff --git a/sound/arm/Kconfig b/sound/arm/Kconfig
|
||||||
|
index 885683a..f7ceafd 100644
|
||||||
--- a/sound/arm/Kconfig
|
--- a/sound/arm/Kconfig
|
||||||
+++ b/sound/arm/Kconfig
|
+++ b/sound/arm/Kconfig
|
||||||
@@ -39,5 +39,12 @@ config SND_PXA2XX_AC97
|
@@ -39,5 +39,12 @@ config SND_PXA2XX_AC97
|
||||||
|
@ -125,9 +133,11 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
|
||||||
+
|
+
|
||||||
endif # SND_ARM
|
endif # SND_ARM
|
||||||
|
|
||||||
|
diff --git a/sound/arm/Makefile b/sound/arm/Makefile
|
||||||
|
index 8c0c851..181cb57 100644
|
||||||
--- a/sound/arm/Makefile
|
--- a/sound/arm/Makefile
|
||||||
+++ b/sound/arm/Makefile
|
+++ b/sound/arm/Makefile
|
||||||
@@ -14,3 +14,9 @@ snd-pxa2xx-lib-$(CONFIG_SND_PXA2XX_LIB_A
|
@@ -14,3 +14,9 @@ snd-pxa2xx-lib-$(CONFIG_SND_PXA2XX_LIB_AC97) += pxa2xx-ac97-lib.o
|
||||||
|
|
||||||
obj-$(CONFIG_SND_PXA2XX_AC97) += snd-pxa2xx-ac97.o
|
obj-$(CONFIG_SND_PXA2XX_AC97) += snd-pxa2xx-ac97.o
|
||||||
snd-pxa2xx-ac97-objs := pxa2xx-ac97.o
|
snd-pxa2xx-ac97-objs := pxa2xx-ac97.o
|
||||||
|
@ -137,6 +147,9 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
|
||||||
+
|
+
|
||||||
+EXTRA_CFLAGS += -Idrivers/misc/vc04_services -Idrivers/misc/vc04_services/interface/vcos/linuxkernel -D__VCCOREVER__=0x04000000
|
+EXTRA_CFLAGS += -Idrivers/misc/vc04_services -Idrivers/misc/vc04_services/interface/vcos/linuxkernel -D__VCCOREVER__=0x04000000
|
||||||
+
|
+
|
||||||
|
diff --git a/sound/arm/bcm2835-ctl.c b/sound/arm/bcm2835-ctl.c
|
||||||
|
new file mode 100755
|
||||||
|
index 0000000..c3e0f7a
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/sound/arm/bcm2835-ctl.c
|
+++ b/sound/arm/bcm2835-ctl.c
|
||||||
@@ -0,0 +1,200 @@
|
@@ -0,0 +1,200 @@
|
||||||
|
@ -340,6 +353,9 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
|
||||||
+ }
|
+ }
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
|
diff --git a/sound/arm/bcm2835-pcm.c b/sound/arm/bcm2835-pcm.c
|
||||||
|
new file mode 100755
|
||||||
|
index 0000000..4206b7e
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/sound/arm/bcm2835-pcm.c
|
+++ b/sound/arm/bcm2835-pcm.c
|
||||||
@@ -0,0 +1,409 @@
|
@@ -0,0 +1,409 @@
|
||||||
|
@ -752,6 +768,9 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
|
||||||
+
|
+
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+}
|
+}
|
||||||
|
diff --git a/sound/arm/bcm2835-vchiq.c b/sound/arm/bcm2835-vchiq.c
|
||||||
|
new file mode 100755
|
||||||
|
index 0000000..9ecb2d6
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/sound/arm/bcm2835-vchiq.c
|
+++ b/sound/arm/bcm2835-vchiq.c
|
||||||
@@ -0,0 +1,844 @@
|
@@ -0,0 +1,844 @@
|
||||||
|
@ -1599,6 +1618,9 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
|
||||||
+
|
+
|
||||||
+module_param(force_bulk, bool, 0444);
|
+module_param(force_bulk, bool, 0444);
|
||||||
+MODULE_PARM_DESC(force_bulk, "Force use of vchiq bulk for audio");
|
+MODULE_PARM_DESC(force_bulk, "Force use of vchiq bulk for audio");
|
||||||
|
diff --git a/sound/arm/bcm2835.c b/sound/arm/bcm2835.c
|
||||||
|
new file mode 100755
|
||||||
|
index 0000000..e5ac894
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/sound/arm/bcm2835.c
|
+++ b/sound/arm/bcm2835.c
|
||||||
@@ -0,0 +1,413 @@
|
@@ -0,0 +1,413 @@
|
||||||
|
@ -2015,6 +2037,9 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
|
||||||
+MODULE_DESCRIPTION("Alsa driver for BCM2835 chip");
|
+MODULE_DESCRIPTION("Alsa driver for BCM2835 chip");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
+MODULE_ALIAS("platform:bcm2835_alsa");
|
+MODULE_ALIAS("platform:bcm2835_alsa");
|
||||||
|
diff --git a/sound/arm/bcm2835.h b/sound/arm/bcm2835.h
|
||||||
|
new file mode 100755
|
||||||
|
index 0000000..b966e28
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/sound/arm/bcm2835.h
|
+++ b/sound/arm/bcm2835.h
|
||||||
@@ -0,0 +1,155 @@
|
@@ -0,0 +1,155 @@
|
||||||
|
@ -2173,6 +2198,9 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
|
||||||
+void bcm2835_audio_flush_playback_buffers(bcm2835_alsa_stream_t * alsa_stream);
|
+void bcm2835_audio_flush_playback_buffers(bcm2835_alsa_stream_t * alsa_stream);
|
||||||
+
|
+
|
||||||
+#endif /* __SOUND_ARM_BCM2835_H */
|
+#endif /* __SOUND_ARM_BCM2835_H */
|
||||||
|
diff --git a/sound/arm/vc_vchi_audioserv_defs.h b/sound/arm/vc_vchi_audioserv_defs.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..af3e6eb
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/sound/arm/vc_vchi_audioserv_defs.h
|
+++ b/sound/arm/vc_vchi_audioserv_defs.h
|
||||||
@@ -0,0 +1,116 @@
|
@@ -0,0 +1,116 @@
|
||||||
|
@ -2292,3 +2320,6 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
|
||||||
+} VC_AUDIO_MSG_T;
|
+} VC_AUDIO_MSG_T;
|
||||||
+
|
+
|
||||||
+#endif // _VC_AUDIO_DEFS_H_
|
+#endif // _VC_AUDIO_DEFS_H_
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
From bd5ea6c71eb31d1c65f718a2938ea9a4272c8b8e Mon Sep 17 00:00:00 2001
|
From 6bcf2da9cea3a1565a87f848f4e17bc634bb160c Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Tue, 26 Mar 2013 17:26:38 +0000
|
Date: Tue, 26 Mar 2013 17:26:38 +0000
|
||||||
Subject: [PATCH 008/174] Allow mac address to be set in smsc95xx
|
Subject: [PATCH 008/196] Allow mac address to be set in smsc95xx
|
||||||
|
|
||||||
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
---
|
---
|
||||||
drivers/net/usb/smsc95xx.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++
|
drivers/net/usb/smsc95xx.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
1 file changed, 56 insertions(+)
|
1 file changed, 56 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
|
||||||
|
index 9375b8c..f024562 100644
|
||||||
--- a/drivers/net/usb/smsc95xx.c
|
--- a/drivers/net/usb/smsc95xx.c
|
||||||
+++ b/drivers/net/usb/smsc95xx.c
|
+++ b/drivers/net/usb/smsc95xx.c
|
||||||
@@ -61,6 +61,7 @@
|
@@ -61,6 +61,7 @@
|
||||||
|
@ -29,7 +31,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
|
static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index,
|
||||||
u32 *data, int in_pm)
|
u32 *data, int in_pm)
|
||||||
{
|
{
|
||||||
@@ -765,8 +770,59 @@ static int smsc95xx_ioctl(struct net_dev
|
@@ -765,8 +770,59 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
|
||||||
return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL);
|
return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,3 +91,6 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
||||||
/* try reading mac address from EEPROM */
|
/* try reading mac address from EEPROM */
|
||||||
if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
|
if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
|
||||||
dev->net->dev_addr) == 0) {
|
dev->net->dev_addr) == 0) {
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
From f7ea3b11c29f79b86cbb2e25fa4cd1598a4350e3 Mon Sep 17 00:00:00 2001
|
From ea8076fd5bc2996fbc04cc54178bb1f113ee0ccc Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Tue, 8 May 2012 23:12:13 +0100
|
Date: Tue, 8 May 2012 23:12:13 +0100
|
||||||
Subject: [PATCH 009/174] possible fix for sdcard missing status. Thank naren
|
Subject: [PATCH 009/196] possible fix for sdcard missing status. Thank naren
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 9 +++++++++
|
drivers/mmc/host/sdhci-bcm2708.c | 9 +++++++++
|
||||||
1 file changed, 9 insertions(+)
|
1 file changed, 9 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index e79723d..a405114 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -1173,6 +1173,14 @@ static unsigned int sdhci_bcm2708_uhs_br
|
@@ -1173,6 +1173,14 @@ static unsigned int sdhci_bcm2708_uhs_broken(struct sdhci_host *host)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +26,7 @@ Subject: [PATCH 009/174] possible fix for sdcard missing status. Thank naren
|
||||||
/***************************************************************************** \
|
/***************************************************************************** \
|
||||||
* *
|
* *
|
||||||
* Device ops *
|
* Device ops *
|
||||||
@@ -1206,6 +1214,7 @@ static struct sdhci_ops sdhci_bcm2708_op
|
@@ -1206,6 +1214,7 @@ static struct sdhci_ops sdhci_bcm2708_ops = {
|
||||||
.spurious_crc_acmd51 = sdhci_bcm2708_quirk_spurious_crc,
|
.spurious_crc_acmd51 = sdhci_bcm2708_quirk_spurious_crc,
|
||||||
.voltage_broken = sdhci_bcm2708_quirk_voltage_broken,
|
.voltage_broken = sdhci_bcm2708_quirk_voltage_broken,
|
||||||
.uhs_broken = sdhci_bcm2708_uhs_broken,
|
.uhs_broken = sdhci_bcm2708_uhs_broken,
|
||||||
|
@ -32,3 +34,6 @@ Subject: [PATCH 009/174] possible fix for sdcard missing status. Thank naren
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************\
|
/*****************************************************************************\
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
From 7063eab83522ea1f24934b971418bfdd4c5578f1 Mon Sep 17 00:00:00 2001
|
From c655ceea69b95ccf2cc486a83048e41c3f664d1f Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Thu, 17 May 2012 14:44:19 +0100
|
Date: Thu, 17 May 2012 14:44:19 +0100
|
||||||
Subject: [PATCH 010/174] sdcard patch improvements from naren
|
Subject: [PATCH 010/196] sdcard patch improvements from naren
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 23 +++++++----------------
|
drivers/mmc/host/sdhci-bcm2708.c | 23 +++++++----------------
|
||||||
1 file changed, 7 insertions(+), 16 deletions(-)
|
1 file changed, 7 insertions(+), 16 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index a405114..ae8edf7 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -886,8 +886,7 @@ static void sdhci_bcm2708_dma_complete_i
|
@@ -886,8 +886,7 @@ static void sdhci_bcm2708_dma_complete_irq(struct sdhci_host *host,
|
||||||
We get CRC and DEND errors unless we wait for
|
We get CRC and DEND errors unless we wait for
|
||||||
the SD controller to finish reading/writing to the card. */
|
the SD controller to finish reading/writing to the card. */
|
||||||
u32 state_mask;
|
u32 state_mask;
|
||||||
|
@ -19,7 +21,7 @@ Subject: [PATCH 010/174] sdcard patch improvements from naren
|
||||||
|
|
||||||
DBG("PDMA over - sync card\n");
|
DBG("PDMA over - sync card\n");
|
||||||
if (data->flags & MMC_DATA_READ)
|
if (data->flags & MMC_DATA_READ)
|
||||||
@@ -895,17 +894,12 @@ static void sdhci_bcm2708_dma_complete_i
|
@@ -895,17 +894,12 @@ static void sdhci_bcm2708_dma_complete_irq(struct sdhci_host *host,
|
||||||
else
|
else
|
||||||
state_mask = SDHCI_DOING_WRITE;
|
state_mask = SDHCI_DOING_WRITE;
|
||||||
|
|
||||||
|
@ -42,7 +44,7 @@ Subject: [PATCH 010/174] sdcard patch improvements from naren
|
||||||
if (timeout <= 0)
|
if (timeout <= 0)
|
||||||
printk(KERN_ERR"%s: final %s to SD card still "
|
printk(KERN_ERR"%s: final %s to SD card still "
|
||||||
"running\n",
|
"running\n",
|
||||||
@@ -1175,10 +1169,7 @@ static unsigned int sdhci_bcm2708_uhs_br
|
@@ -1175,10 +1169,7 @@ static unsigned int sdhci_bcm2708_uhs_broken(struct sdhci_host *host)
|
||||||
|
|
||||||
static unsigned int sdhci_bcm2708_missing_status(struct sdhci_host *host)
|
static unsigned int sdhci_bcm2708_missing_status(struct sdhci_host *host)
|
||||||
{
|
{
|
||||||
|
@ -54,3 +56,6 @@ Subject: [PATCH 010/174] sdcard patch improvements from naren
|
||||||
}
|
}
|
||||||
|
|
||||||
/***************************************************************************** \
|
/***************************************************************************** \
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From e38d3d05747f6877a2ad1a7af1ac26e6a48a8be3 Mon Sep 17 00:00:00 2001
|
From 07947cfde701f7ba29b06574e9533bd6459da8ad Mon Sep 17 00:00:00 2001
|
||||||
From: Grigori Goronzy <greg@blackbox>
|
From: Grigori Goronzy <greg@blackbox>
|
||||||
Date: Mon, 4 Jun 2012 04:27:48 +0200
|
Date: Mon, 4 Jun 2012 04:27:48 +0200
|
||||||
Subject: [PATCH 011/174] sdhci-bcm2708: speed up DMA sync
|
Subject: [PATCH 011/196] sdhci-bcm2708: speed up DMA sync
|
||||||
|
|
||||||
Experiments show that it doesn't really take that long to sync, so we
|
Experiments show that it doesn't really take that long to sync, so we
|
||||||
can reduce the poll interval slightly. Might improve performance a bit.
|
can reduce the poll interval slightly. Might improve performance a bit.
|
||||||
|
@ -9,9 +9,11 @@ can reduce the poll interval slightly. Might improve performance a bit.
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 2 +-
|
drivers/mmc/host/sdhci-bcm2708.c | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index ae8edf7..a6bdc25 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -897,7 +897,7 @@ static void sdhci_bcm2708_dma_complete_i
|
@@ -897,7 +897,7 @@ static void sdhci_bcm2708_dma_complete_irq(struct sdhci_host *host,
|
||||||
while (0 != (sdhci_bcm2708_raw_readl(host, SDHCI_PRESENT_STATE)
|
while (0 != (sdhci_bcm2708_raw_readl(host, SDHCI_PRESENT_STATE)
|
||||||
& state_mask) && --timeout > 0)
|
& state_mask) && --timeout > 0)
|
||||||
{
|
{
|
||||||
|
@ -20,3 +22,6 @@ can reduce the poll interval slightly. Might improve performance a bit.
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (timeout <= 0)
|
if (timeout <= 0)
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 3f65aaaabc3ddc09bacf06bb608f8bab5671fb18 Mon Sep 17 00:00:00 2001
|
From d63cca1d57881d931236d101fe16fd249d91b060 Mon Sep 17 00:00:00 2001
|
||||||
From: Grigori Goronzy <greg@blackbox>
|
From: Grigori Goronzy <greg@blackbox>
|
||||||
Date: Mon, 11 Jun 2012 18:52:04 +0200
|
Date: Mon, 11 Jun 2012 18:52:04 +0200
|
||||||
Subject: [PATCH 012/174] sdhci-bcm2708: remove custom clock handling
|
Subject: [PATCH 012/196] sdhci-bcm2708: remove custom clock handling
|
||||||
|
|
||||||
The custom clock handling code is redundant and buggy. The MMC/SDHCI
|
The custom clock handling code is redundant and buggy. The MMC/SDHCI
|
||||||
subsystem does a better job than it, so remove it for good.
|
subsystem does a better job than it, so remove it for good.
|
||||||
|
@ -9,9 +9,11 @@ subsystem does a better job than it, so remove it for good.
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 65 +---------------------------------------
|
drivers/mmc/host/sdhci-bcm2708.c | 65 +---------------------------------------
|
||||||
1 file changed, 1 insertion(+), 64 deletions(-)
|
1 file changed, 1 insertion(+), 64 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index a6bdc25..0ed4d85 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -353,68 +353,9 @@ void sdhci_bcm2708_writeb(struct sdhci_h
|
@@ -353,68 +353,9 @@ void sdhci_bcm2708_writeb(struct sdhci_host *host, u8 val, int reg)
|
||||||
|
|
||||||
static unsigned int sdhci_bcm2708_get_max_clock(struct sdhci_host *host)
|
static unsigned int sdhci_bcm2708_get_max_clock(struct sdhci_host *host)
|
||||||
{
|
{
|
||||||
|
@ -81,7 +83,7 @@ subsystem does a better job than it, so remove it for good.
|
||||||
/*****************************************************************************\
|
/*****************************************************************************\
|
||||||
* *
|
* *
|
||||||
* DMA Operation *
|
* DMA Operation *
|
||||||
@@ -1189,11 +1130,7 @@ static struct sdhci_ops sdhci_bcm2708_op
|
@@ -1189,11 +1130,7 @@ static struct sdhci_ops sdhci_bcm2708_ops = {
|
||||||
#else
|
#else
|
||||||
#error The BCM2708 SDHCI driver needs CONFIG_MMC_SDHCI_IO_ACCESSORS to be set
|
#error The BCM2708 SDHCI driver needs CONFIG_MMC_SDHCI_IO_ACCESSORS to be set
|
||||||
#endif
|
#endif
|
||||||
|
@ -93,3 +95,6 @@ subsystem does a better job than it, so remove it for good.
|
||||||
|
|
||||||
#ifdef CONFIG_MMC_SDHCI_BCM2708_DMA
|
#ifdef CONFIG_MMC_SDHCI_BCM2708_DMA
|
||||||
// Platform DMA operations
|
// Platform DMA operations
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From b567bbb9b16e9c860c8d7a4f2c6cf44c66533dfa Mon Sep 17 00:00:00 2001
|
From fa0e27879ec0fc9034eca320e4055539a1b97797 Mon Sep 17 00:00:00 2001
|
||||||
From: Grigori Goronzy <greg@blackbox>
|
From: Grigori Goronzy <greg@blackbox>
|
||||||
Date: Mon, 11 Jun 2012 18:53:59 +0200
|
Date: Mon, 11 Jun 2012 18:53:59 +0200
|
||||||
Subject: [PATCH 013/174] sdhci-bcm2708: add additional quirks
|
Subject: [PATCH 013/196] sdhci-bcm2708: add additional quirks
|
||||||
|
|
||||||
Some additional quirks are needed for correct operation.
|
Some additional quirks are needed for correct operation.
|
||||||
There's no SDHCI capabilities register documented, and it always reads
|
There's no SDHCI capabilities register documented, and it always reads
|
||||||
|
@ -12,9 +12,11 @@ high-speed mode, so add it as well.
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 4 +++-
|
drivers/mmc/host/sdhci-bcm2708.c | 4 +++-
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index 0ed4d85..3001836 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -1189,7 +1189,9 @@ static int sdhci_bcm2708_probe(struct pl
|
@@ -1189,7 +1189,9 @@ static int sdhci_bcm2708_probe(struct platform_device *pdev)
|
||||||
host->quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION |
|
host->quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION |
|
||||||
SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK |
|
SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK |
|
||||||
SDHCI_QUIRK_BROKEN_TIMEOUT_VAL |
|
SDHCI_QUIRK_BROKEN_TIMEOUT_VAL |
|
||||||
|
@ -25,3 +27,6 @@ high-speed mode, so add it as well.
|
||||||
#ifdef CONFIG_MMC_SDHCI_BCM2708_DMA
|
#ifdef CONFIG_MMC_SDHCI_BCM2708_DMA
|
||||||
host->flags = SDHCI_USE_PLATDMA;
|
host->flags = SDHCI_USE_PLATDMA;
|
||||||
#endif
|
#endif
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From f779191cd42376e2b1f555be1b2c486dd99b2fef Mon Sep 17 00:00:00 2001
|
From 06d314090d1c837d5f2c42c9686c8e8fa7db7370 Mon Sep 17 00:00:00 2001
|
||||||
From: Grigori Goronzy <greg@blackbox>
|
From: Grigori Goronzy <greg@blackbox>
|
||||||
Date: Mon, 11 Jun 2012 18:57:13 +0200
|
Date: Mon, 11 Jun 2012 18:57:13 +0200
|
||||||
Subject: [PATCH 014/174] sdhci-bcm2708: add allow_highspeed parameter
|
Subject: [PATCH 014/196] sdhci-bcm2708: add allow_highspeed parameter
|
||||||
|
|
||||||
Add a parameter to disable high-speed mode for the few cards that
|
Add a parameter to disable high-speed mode for the few cards that
|
||||||
still might have problems. High-speed mode is enabled by default.
|
still might have problems. High-speed mode is enabled by default.
|
||||||
|
@ -9,9 +9,11 @@ still might have problems. High-speed mode is enabled by default.
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 9 ++++++++-
|
drivers/mmc/host/sdhci-bcm2708.c | 9 ++++++++-
|
||||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index 3001836..c64de21 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -129,6 +129,8 @@ static inline unsigned long int since_ns
|
@@ -129,6 +129,8 @@ static inline unsigned long int since_ns(hptime_t t)
|
||||||
return (unsigned long)((hptime() - t) * HPTIME_CLK_NS);
|
return (unsigned long)((hptime() - t) * HPTIME_CLK_NS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,7 +22,7 @@ still might have problems. High-speed mode is enabled by default.
|
||||||
#if 0
|
#if 0
|
||||||
static void hptime_test(void)
|
static void hptime_test(void)
|
||||||
{
|
{
|
||||||
@@ -1254,7 +1256,8 @@ static int sdhci_bcm2708_probe(struct pl
|
@@ -1254,7 +1256,8 @@ static int sdhci_bcm2708_probe(struct platform_device *pdev)
|
||||||
host_priv->dma_chan, host_priv->dma_chan_base,
|
host_priv->dma_chan, host_priv->dma_chan_base,
|
||||||
host_priv->dma_irq);
|
host_priv->dma_irq);
|
||||||
|
|
||||||
|
@ -43,3 +45,6 @@ still might have problems. High-speed mode is enabled by default.
|
||||||
|
|
||||||
+MODULE_PARM_DESC(allow_highspeed, "Allow high speed transfers modes");
|
+MODULE_PARM_DESC(allow_highspeed, "Allow high speed transfers modes");
|
||||||
+
|
+
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 55ed27d2c44fcf2e808ba26cc2a1c9c4041500da Mon Sep 17 00:00:00 2001
|
From 4e5732952c3c2f14058bd7dbcba67d911d77bd39 Mon Sep 17 00:00:00 2001
|
||||||
From: Grigori Goronzy <greg@blackbox>
|
From: Grigori Goronzy <greg@blackbox>
|
||||||
Date: Mon, 11 Jun 2012 18:58:40 +0200
|
Date: Mon, 11 Jun 2012 18:58:40 +0200
|
||||||
Subject: [PATCH 015/174] sdhci-bcm2708: assume 50 MHz eMMC clock
|
Subject: [PATCH 015/196] sdhci-bcm2708: assume 50 MHz eMMC clock
|
||||||
|
|
||||||
80 MHz clock isnt't suited well to be dividable to get SD clocks of 25
|
80 MHz clock isnt't suited well to be dividable to get SD clocks of 25
|
||||||
MHz (default mode) or 50 MHz (high speed mode). 50 MHz are perfect to
|
MHz (default mode) or 50 MHz (high speed mode). 50 MHz are perfect to
|
||||||
|
@ -10,6 +10,8 @@ drive the SD interface at ideal frequencies.
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 2 +-
|
drivers/mmc/host/sdhci-bcm2708.c | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index c64de21..d174938 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -73,7 +73,7 @@
|
@@ -73,7 +73,7 @@
|
||||||
|
@ -21,3 +23,6 @@ drive the SD interface at ideal frequencies.
|
||||||
|
|
||||||
/*****************************************************************************\
|
/*****************************************************************************\
|
||||||
* *
|
* *
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,18 @@
|
||||||
From 9227615100c139c48fbbf39312b38c4430eac00d Mon Sep 17 00:00:00 2001
|
From f3cbdb41b8e7194b03523eceed5dd8b488f93909 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Sat, 16 Jun 2012 22:31:55 +0100
|
Date: Sat, 16 Jun 2012 22:31:55 +0100
|
||||||
Subject: [PATCH 016/174] Allow emmc clock to be specified as command line
|
Subject: [PATCH 016/196] Allow emmc clock to be specified as command line
|
||||||
parameter
|
parameter
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 6 +++++-
|
drivers/mmc/host/sdhci-bcm2708.c | 6 +++++-
|
||||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index d174938..0ee983c 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -130,6 +130,7 @@ static inline unsigned long int since_ns
|
@@ -130,6 +130,7 @@ static inline unsigned long int since_ns(hptime_t t)
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool allow_highspeed = 1;
|
static bool allow_highspeed = 1;
|
||||||
|
@ -18,7 +20,7 @@ Subject: [PATCH 016/174] Allow emmc clock to be specified as command line
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
static void hptime_test(void)
|
static void hptime_test(void)
|
||||||
@@ -355,7 +356,7 @@ void sdhci_bcm2708_writeb(struct sdhci_h
|
@@ -355,7 +356,7 @@ void sdhci_bcm2708_writeb(struct sdhci_host *host, u8 val, int reg)
|
||||||
|
|
||||||
static unsigned int sdhci_bcm2708_get_max_clock(struct sdhci_host *host)
|
static unsigned int sdhci_bcm2708_get_max_clock(struct sdhci_host *host)
|
||||||
{
|
{
|
||||||
|
@ -42,3 +44,6 @@ Subject: [PATCH 016/174] Allow emmc clock to be specified as command line
|
||||||
+MODULE_PARM_DESC(emmc_clock_freq, "Specify the speed of emmc clock");
|
+MODULE_PARM_DESC(emmc_clock_freq, "Specify the speed of emmc clock");
|
||||||
+
|
+
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From a6544a62be8711e727a0d774b55c5edeec12e531 Mon Sep 17 00:00:00 2001
|
From 93ad4d743dfa8a5f6bb1d7abf739c7149012099b Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Sat, 16 Jun 2012 22:35:38 +0100
|
Date: Sat, 16 Jun 2012 22:35:38 +0100
|
||||||
Subject: [PATCH 017/174] sdhci-bcm2708: raise DMA sync timeout
|
Subject: [PATCH 017/196] sdhci-bcm2708: raise DMA sync timeout
|
||||||
|
|
||||||
Commit d64b84c by accident reduced the maximum overall DMA sync
|
Commit d64b84c by accident reduced the maximum overall DMA sync
|
||||||
timeout. The maximum overall timeout was reduced from 100ms to 30ms,
|
timeout. The maximum overall timeout was reduced from 100ms to 30ms,
|
||||||
|
@ -14,9 +14,11 @@ enough for most cards.
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 2 +-
|
drivers/mmc/host/sdhci-bcm2708.c | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index 0ee983c..b0cdd7d 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -830,7 +830,7 @@ static void sdhci_bcm2708_dma_complete_i
|
@@ -830,7 +830,7 @@ static void sdhci_bcm2708_dma_complete_irq(struct sdhci_host *host,
|
||||||
We get CRC and DEND errors unless we wait for
|
We get CRC and DEND errors unless we wait for
|
||||||
the SD controller to finish reading/writing to the card. */
|
the SD controller to finish reading/writing to the card. */
|
||||||
u32 state_mask;
|
u32 state_mask;
|
||||||
|
@ -25,3 +27,6 @@ enough for most cards.
|
||||||
|
|
||||||
DBG("PDMA over - sync card\n");
|
DBG("PDMA over - sync card\n");
|
||||||
if (data->flags & MMC_DATA_READ)
|
if (data->flags & MMC_DATA_READ)
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
From a56370b5a103f3949c5ed2997a971e1949a15132 Mon Sep 17 00:00:00 2001
|
From 3755210aaea18a4531069911f36a4771339565c4 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Fri, 22 Jun 2012 12:57:42 +0100
|
Date: Fri, 22 Jun 2012 12:57:42 +0100
|
||||||
Subject: [PATCH 018/174] Use ndelay rather than udelay. Thanks lb
|
Subject: [PATCH 018/196] Use ndelay rather than udelay. Thanks lb
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 8 ++++----
|
drivers/mmc/host/sdhci-bcm2708.c | 8 ++++----
|
||||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index b0cdd7d..7bba950 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -249,14 +249,14 @@ static void sdhci_bcm2708_raw_writel(str
|
@@ -249,14 +249,14 @@ static void sdhci_bcm2708_raw_writel(struct sdhci_host *host, u32 val, int reg)
|
||||||
if (now == last_write_hpt || now == last_write_hpt+1) {
|
if (now == last_write_hpt || now == last_write_hpt+1) {
|
||||||
/* we can't guarantee any significant time has
|
/* we can't guarantee any significant time has
|
||||||
* passed - we'll have to wait anyway ! */
|
* passed - we'll have to wait anyway ! */
|
||||||
|
@ -26,7 +28,7 @@ Subject: [PATCH 018/174] Use ndelay rather than udelay. Thanks lb
|
||||||
}
|
}
|
||||||
last_write_hpt = now;
|
last_write_hpt = now;
|
||||||
}
|
}
|
||||||
@@ -272,13 +272,13 @@ static void sdhci_bcm2708_raw_writel(str
|
@@ -272,13 +272,13 @@ static void sdhci_bcm2708_raw_writel(struct sdhci_host *host, u32 val, int reg)
|
||||||
ier &= ~SDHCI_INT_DATA_TIMEOUT;
|
ier &= ~SDHCI_INT_DATA_TIMEOUT;
|
||||||
writel(ier, host->ioaddr + SDHCI_SIGNAL_ENABLE);
|
writel(ier, host->ioaddr + SDHCI_SIGNAL_ENABLE);
|
||||||
timeout_disabled = true;
|
timeout_disabled = true;
|
||||||
|
@ -42,3 +44,6 @@ Subject: [PATCH 018/174] Use ndelay rather than udelay. Thanks lb
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
writel(val, host->ioaddr + reg);
|
writel(val, host->ioaddr + reg);
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 5a3b6667524d9164140077cfadf61b165f0950ec Mon Sep 17 00:00:00 2001
|
From eb8655fe20ef40189e9cda1441d488c5a23c89f2 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 3 Jul 2013 00:41:10 +0100
|
Date: Wed, 3 Jul 2013 00:41:10 +0100
|
||||||
Subject: [PATCH 019/174] Backport of Chris Boot's i2c and spi drivers.
|
Subject: [PATCH 019/196] Backport of Chris Boot's i2c and spi drivers.
|
||||||
|
|
||||||
---
|
---
|
||||||
arch/arm/configs/bcmrpi_cutdown_defconfig | 10 +
|
arch/arm/configs/bcmrpi_cutdown_defconfig | 10 +
|
||||||
|
@ -19,6 +19,8 @@ Subject: [PATCH 019/174] Backport of Chris Boot's i2c and spi drivers.
|
||||||
create mode 100644 drivers/i2c/busses/i2c-bcm2708.c
|
create mode 100644 drivers/i2c/busses/i2c-bcm2708.c
|
||||||
create mode 100644 drivers/spi/spi-bcm2708.c
|
create mode 100644 drivers/spi/spi-bcm2708.c
|
||||||
|
|
||||||
|
diff --git a/arch/arm/configs/bcmrpi_cutdown_defconfig b/arch/arm/configs/bcmrpi_cutdown_defconfig
|
||||||
|
index e519412..a61a915 100644
|
||||||
--- a/arch/arm/configs/bcmrpi_cutdown_defconfig
|
--- a/arch/arm/configs/bcmrpi_cutdown_defconfig
|
||||||
+++ b/arch/arm/configs/bcmrpi_cutdown_defconfig
|
+++ b/arch/arm/configs/bcmrpi_cutdown_defconfig
|
||||||
@@ -492,3 +492,13 @@ CONFIG_CRYPTO_DEFLATE=m
|
@@ -492,3 +492,13 @@ CONFIG_CRYPTO_DEFLATE=m
|
||||||
|
@ -35,6 +37,8 @@ Subject: [PATCH 019/174] Backport of Chris Boot's i2c and spi drivers.
|
||||||
+CONFIG_SPI_MASTER=y
|
+CONFIG_SPI_MASTER=y
|
||||||
+CONFIG_SPI_BCM2708=m
|
+CONFIG_SPI_BCM2708=m
|
||||||
+
|
+
|
||||||
|
diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig
|
||||||
|
index df947e5..6219df3 100644
|
||||||
--- a/arch/arm/configs/bcmrpi_defconfig
|
--- a/arch/arm/configs/bcmrpi_defconfig
|
||||||
+++ b/arch/arm/configs/bcmrpi_defconfig
|
+++ b/arch/arm/configs/bcmrpi_defconfig
|
||||||
@@ -214,6 +214,11 @@ CONFIG_SERIAL_AMBA_PL011=y
|
@@ -214,6 +214,11 @@ CONFIG_SERIAL_AMBA_PL011=y
|
||||||
|
@ -49,6 +53,8 @@ Subject: [PATCH 019/174] Backport of Chris Boot's i2c and spi drivers.
|
||||||
CONFIG_GPIO_SYSFS=y
|
CONFIG_GPIO_SYSFS=y
|
||||||
# CONFIG_HWMON is not set
|
# CONFIG_HWMON is not set
|
||||||
CONFIG_WATCHDOG=y
|
CONFIG_WATCHDOG=y
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/Kconfig b/arch/arm/mach-bcm2708/Kconfig
|
||||||
|
index 63bb76c..a35ff89 100644
|
||||||
--- a/arch/arm/mach-bcm2708/Kconfig
|
--- a/arch/arm/mach-bcm2708/Kconfig
|
||||||
+++ b/arch/arm/mach-bcm2708/Kconfig
|
+++ b/arch/arm/mach-bcm2708/Kconfig
|
||||||
@@ -31,4 +31,11 @@ config BCM2708_NOL2CACHE
|
@@ -31,4 +31,11 @@ config BCM2708_NOL2CACHE
|
||||||
|
@ -63,6 +69,8 @@ Subject: [PATCH 019/174] Backport of Chris Boot's i2c and spi drivers.
|
||||||
+ help
|
+ help
|
||||||
+ Binds spidev driver to the SPI0 master
|
+ Binds spidev driver to the SPI0 master
|
||||||
endmenu
|
endmenu
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/bcm2708.c b/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
|
index 67f3608..03b8ec5 100644
|
||||||
--- a/arch/arm/mach-bcm2708/bcm2708.c
|
--- a/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
+++ b/arch/arm/mach-bcm2708/bcm2708.c
|
+++ b/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
@@ -31,6 +31,7 @@
|
@@ -31,6 +31,7 @@
|
||||||
|
@ -105,7 +113,7 @@ Subject: [PATCH 019/174] Backport of Chris Boot's i2c and spi drivers.
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -434,6 +442,89 @@ static struct platform_device bcm2708_al
|
@@ -434,6 +442,89 @@ static struct platform_device bcm2708_alsa_devices[] = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -217,6 +225,8 @@ Subject: [PATCH 019/174] Backport of Chris Boot's i2c and spi drivers.
|
||||||
}
|
}
|
||||||
|
|
||||||
static void timer_set_mode(enum clock_event_mode mode,
|
static void timer_set_mode(enum clock_event_mode mode,
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/platform.h b/arch/arm/mach-bcm2708/include/mach/platform.h
|
||||||
|
index 110ce07..4d3c15d 100644
|
||||||
--- a/arch/arm/mach-bcm2708/include/mach/platform.h
|
--- a/arch/arm/mach-bcm2708/include/mach/platform.h
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/platform.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/platform.h
|
||||||
@@ -63,9 +63,12 @@
|
@@ -63,9 +63,12 @@
|
||||||
|
@ -232,9 +242,11 @@ Subject: [PATCH 019/174] Backport of Chris Boot's i2c and spi drivers.
|
||||||
#define USB_BASE (BCM2708_PERI_BASE + 0x980000) /* DTC_OTG USB controller */
|
#define USB_BASE (BCM2708_PERI_BASE + 0x980000) /* DTC_OTG USB controller */
|
||||||
#define MCORE_BASE (BCM2708_PERI_BASE + 0x0000) /* Fake frame buffer device (actually the multicore sync block*/
|
#define MCORE_BASE (BCM2708_PERI_BASE + 0x0000) /* Fake frame buffer device (actually the multicore sync block*/
|
||||||
|
|
||||||
|
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
|
||||||
|
index d4fe13e..290aee4 100644
|
||||||
--- a/drivers/i2c/busses/Kconfig
|
--- a/drivers/i2c/busses/Kconfig
|
||||||
+++ b/drivers/i2c/busses/Kconfig
|
+++ b/drivers/i2c/busses/Kconfig
|
||||||
@@ -345,6 +345,14 @@ config I2C_BCM2835
|
@@ -347,6 +347,14 @@ config I2C_BCM2835
|
||||||
This support is also available as a module. If so, the module
|
This support is also available as a module. If so, the module
|
||||||
will be called i2c-bcm2835.
|
will be called i2c-bcm2835.
|
||||||
|
|
||||||
|
@ -249,9 +261,11 @@ Subject: [PATCH 019/174] Backport of Chris Boot's i2c and spi drivers.
|
||||||
config I2C_BLACKFIN_TWI
|
config I2C_BLACKFIN_TWI
|
||||||
tristate "Blackfin TWI I2C support"
|
tristate "Blackfin TWI I2C support"
|
||||||
depends on BLACKFIN
|
depends on BLACKFIN
|
||||||
|
diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
|
||||||
|
index 8f4fc23..ef26c38 100644
|
||||||
--- a/drivers/i2c/busses/Makefile
|
--- a/drivers/i2c/busses/Makefile
|
||||||
+++ b/drivers/i2c/busses/Makefile
|
+++ b/drivers/i2c/busses/Makefile
|
||||||
@@ -32,6 +32,7 @@ obj-$(CONFIG_I2C_POWERMAC) += i2c-powerm
|
@@ -32,6 +32,7 @@ obj-$(CONFIG_I2C_POWERMAC) += i2c-powermac.o
|
||||||
obj-$(CONFIG_I2C_AT91) += i2c-at91.o
|
obj-$(CONFIG_I2C_AT91) += i2c-at91.o
|
||||||
obj-$(CONFIG_I2C_AU1550) += i2c-au1550.o
|
obj-$(CONFIG_I2C_AU1550) += i2c-au1550.o
|
||||||
obj-$(CONFIG_I2C_BCM2835) += i2c-bcm2835.o
|
obj-$(CONFIG_I2C_BCM2835) += i2c-bcm2835.o
|
||||||
|
@ -259,6 +273,9 @@ Subject: [PATCH 019/174] Backport of Chris Boot's i2c and spi drivers.
|
||||||
obj-$(CONFIG_I2C_BLACKFIN_TWI) += i2c-bfin-twi.o
|
obj-$(CONFIG_I2C_BLACKFIN_TWI) += i2c-bfin-twi.o
|
||||||
obj-$(CONFIG_I2C_CBUS_GPIO) += i2c-cbus-gpio.o
|
obj-$(CONFIG_I2C_CBUS_GPIO) += i2c-cbus-gpio.o
|
||||||
obj-$(CONFIG_I2C_CPM) += i2c-cpm.o
|
obj-$(CONFIG_I2C_CPM) += i2c-cpm.o
|
||||||
|
diff --git a/drivers/i2c/busses/i2c-bcm2708.c b/drivers/i2c/busses/i2c-bcm2708.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..7cae615
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/i2c/busses/i2c-bcm2708.c
|
+++ b/drivers/i2c/busses/i2c-bcm2708.c
|
||||||
@@ -0,0 +1,396 @@
|
@@ -0,0 +1,396 @@
|
||||||
|
@ -658,6 +675,8 @@ Subject: [PATCH 019/174] Backport of Chris Boot's i2c and spi drivers.
|
||||||
+MODULE_AUTHOR("Chris Boot <bootc@bootc.net>");
|
+MODULE_AUTHOR("Chris Boot <bootc@bootc.net>");
|
||||||
+MODULE_LICENSE("GPL v2");
|
+MODULE_LICENSE("GPL v2");
|
||||||
+MODULE_ALIAS("platform:" DRV_NAME);
|
+MODULE_ALIAS("platform:" DRV_NAME);
|
||||||
|
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
|
||||||
|
index 92a9345..f0a2a9f 100644
|
||||||
--- a/drivers/spi/Kconfig
|
--- a/drivers/spi/Kconfig
|
||||||
+++ b/drivers/spi/Kconfig
|
+++ b/drivers/spi/Kconfig
|
||||||
@@ -86,6 +86,14 @@ config SPI_BCM2835
|
@@ -86,6 +86,14 @@ config SPI_BCM2835
|
||||||
|
@ -675,9 +694,11 @@ Subject: [PATCH 019/174] Backport of Chris Boot's i2c and spi drivers.
|
||||||
config SPI_BFIN5XX
|
config SPI_BFIN5XX
|
||||||
tristate "SPI controller driver for ADI Blackfin5xx"
|
tristate "SPI controller driver for ADI Blackfin5xx"
|
||||||
depends on BLACKFIN
|
depends on BLACKFIN
|
||||||
|
diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
|
||||||
|
index 33f9c09..17b4737 100644
|
||||||
--- a/drivers/spi/Makefile
|
--- a/drivers/spi/Makefile
|
||||||
+++ b/drivers/spi/Makefile
|
+++ b/drivers/spi/Makefile
|
||||||
@@ -17,6 +17,7 @@ obj-$(CONFIG_SPI_AU1550) += spi-au1550.
|
@@ -17,6 +17,7 @@ obj-$(CONFIG_SPI_AU1550) += spi-au1550.o
|
||||||
obj-$(CONFIG_SPI_BCM2835) += spi-bcm2835.o
|
obj-$(CONFIG_SPI_BCM2835) += spi-bcm2835.o
|
||||||
obj-$(CONFIG_SPI_BCM63XX) += spi-bcm63xx.o
|
obj-$(CONFIG_SPI_BCM63XX) += spi-bcm63xx.o
|
||||||
obj-$(CONFIG_SPI_BFIN5XX) += spi-bfin5xx.o
|
obj-$(CONFIG_SPI_BFIN5XX) += spi-bfin5xx.o
|
||||||
|
@ -685,6 +706,9 @@ Subject: [PATCH 019/174] Backport of Chris Boot's i2c and spi drivers.
|
||||||
obj-$(CONFIG_SPI_BFIN_SPORT) += spi-bfin-sport.o
|
obj-$(CONFIG_SPI_BFIN_SPORT) += spi-bfin-sport.o
|
||||||
obj-$(CONFIG_SPI_BITBANG) += spi-bitbang.o
|
obj-$(CONFIG_SPI_BITBANG) += spi-bitbang.o
|
||||||
obj-$(CONFIG_SPI_BUTTERFLY) += spi-butterfly.o
|
obj-$(CONFIG_SPI_BUTTERFLY) += spi-butterfly.o
|
||||||
|
diff --git a/drivers/spi/spi-bcm2708.c b/drivers/spi/spi-bcm2708.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..9f1580e
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/spi/spi-bcm2708.c
|
+++ b/drivers/spi/spi-bcm2708.c
|
||||||
@@ -0,0 +1,594 @@
|
@@ -0,0 +1,594 @@
|
||||||
|
@ -1282,3 +1306,6 @@ Subject: [PATCH 019/174] Backport of Chris Boot's i2c and spi drivers.
|
||||||
+MODULE_AUTHOR("Chris Boot <bootc@bootc.net>");
|
+MODULE_AUTHOR("Chris Boot <bootc@bootc.net>");
|
||||||
+MODULE_LICENSE("GPL v2");
|
+MODULE_LICENSE("GPL v2");
|
||||||
+MODULE_ALIAS("platform:" DRV_NAME);
|
+MODULE_ALIAS("platform:" DRV_NAME);
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
From 9e42f33f4f80999a2c65a50b2a7ac6562ca194f5 Mon Sep 17 00:00:00 2001
|
From a30b981976f90774867ec2a60bac86ebe7244d9a Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Tue, 17 Jul 2012 00:48:27 +0100
|
Date: Tue, 17 Jul 2012 00:48:27 +0100
|
||||||
Subject: [PATCH 020/174] Add sync_after_dma module parameter
|
Subject: [PATCH 020/196] Add sync_after_dma module parameter
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 60 +++++++++++++++++++++-------------------
|
drivers/mmc/host/sdhci-bcm2708.c | 60 +++++++++++++++++++++-------------------
|
||||||
1 file changed, 32 insertions(+), 28 deletions(-)
|
1 file changed, 32 insertions(+), 28 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index 7bba950..3792b9f 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -51,7 +51,6 @@
|
@@ -51,7 +51,6 @@
|
||||||
|
@ -17,7 +19,7 @@ Subject: [PATCH 020/174] Add sync_after_dma module parameter
|
||||||
#ifdef CONFIG_MMC_SDHCI_BCM2708_DMA
|
#ifdef CONFIG_MMC_SDHCI_BCM2708_DMA
|
||||||
/* #define CHECK_DMA_USE */
|
/* #define CHECK_DMA_USE */
|
||||||
#endif
|
#endif
|
||||||
@@ -131,6 +130,7 @@ static inline unsigned long int since_ns
|
@@ -131,6 +130,7 @@ static inline unsigned long int since_ns(hptime_t t)
|
||||||
|
|
||||||
static bool allow_highspeed = 1;
|
static bool allow_highspeed = 1;
|
||||||
static int emmc_clock_freq = BCM2708_EMMC_CLOCK_FREQ;
|
static int emmc_clock_freq = BCM2708_EMMC_CLOCK_FREQ;
|
||||||
|
@ -25,7 +27,7 @@ Subject: [PATCH 020/174] Add sync_after_dma module parameter
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
static void hptime_test(void)
|
static void hptime_test(void)
|
||||||
@@ -822,34 +822,34 @@ static void sdhci_bcm2708_dma_complete_i
|
@@ -822,34 +822,34 @@ static void sdhci_bcm2708_dma_complete_irq(struct sdhci_host *host,
|
||||||
SDHCI_INT_SPACE_AVAIL);
|
SDHCI_INT_SPACE_AVAIL);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -38,6 +40,12 @@ Subject: [PATCH 020/174] Add sync_after_dma module parameter
|
||||||
- the SD controller to finish reading/writing to the card. */
|
- the SD controller to finish reading/writing to the card. */
|
||||||
- u32 state_mask;
|
- u32 state_mask;
|
||||||
- int timeout=5000;
|
- int timeout=5000;
|
||||||
|
-
|
||||||
|
- DBG("PDMA over - sync card\n");
|
||||||
|
- if (data->flags & MMC_DATA_READ)
|
||||||
|
- state_mask = SDHCI_DOING_READ;
|
||||||
|
- else
|
||||||
|
- state_mask = SDHCI_DOING_WRITE;
|
||||||
+ if (sync_after_dma) {
|
+ if (sync_after_dma) {
|
||||||
+ /* On the Arasan controller the stop command (which will be
|
+ /* On the Arasan controller the stop command (which will be
|
||||||
+ scheduled after this completes) does not seem to work
|
+ scheduled after this completes) does not seem to work
|
||||||
|
@ -47,12 +55,7 @@ Subject: [PATCH 020/174] Add sync_after_dma module parameter
|
||||||
+ the SD controller to finish reading/writing to the card. */
|
+ the SD controller to finish reading/writing to the card. */
|
||||||
+ u32 state_mask;
|
+ u32 state_mask;
|
||||||
+ int timeout=30*5000;
|
+ int timeout=30*5000;
|
||||||
|
+
|
||||||
- DBG("PDMA over - sync card\n");
|
|
||||||
- if (data->flags & MMC_DATA_READ)
|
|
||||||
- state_mask = SDHCI_DOING_READ;
|
|
||||||
- else
|
|
||||||
- state_mask = SDHCI_DOING_WRITE;
|
|
||||||
+ DBG("PDMA over - sync card\n");
|
+ DBG("PDMA over - sync card\n");
|
||||||
+ if (data->flags & MMC_DATA_READ)
|
+ if (data->flags & MMC_DATA_READ)
|
||||||
+ state_mask = SDHCI_DOING_READ;
|
+ state_mask = SDHCI_DOING_READ;
|
||||||
|
@ -85,7 +88,7 @@ Subject: [PATCH 020/174] Add sync_after_dma module parameter
|
||||||
if (host_priv->complete) {
|
if (host_priv->complete) {
|
||||||
(*host_priv->complete)(host);
|
(*host_priv->complete)(host);
|
||||||
DBG("PDMA %s complete\n",
|
DBG("PDMA %s complete\n",
|
||||||
@@ -1193,7 +1193,9 @@ static int sdhci_bcm2708_probe(struct pl
|
@@ -1193,7 +1193,9 @@ static int sdhci_bcm2708_probe(struct platform_device *pdev)
|
||||||
SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK |
|
SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK |
|
||||||
SDHCI_QUIRK_BROKEN_TIMEOUT_VAL |
|
SDHCI_QUIRK_BROKEN_TIMEOUT_VAL |
|
||||||
SDHCI_QUIRK_MISSING_CAPS |
|
SDHCI_QUIRK_MISSING_CAPS |
|
||||||
|
@ -111,3 +114,6 @@ Subject: [PATCH 020/174] Add sync_after_dma module parameter
|
||||||
+MODULE_PARM_DESC(sync_after_dma, "Block in driver until dma complete");
|
+MODULE_PARM_DESC(sync_after_dma, "Block in driver until dma complete");
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 3e9891e91d7dda096ab1cc2518830938ad69880d Mon Sep 17 00:00:00 2001
|
From b802bfd3bb337e92226bd521f8ebbbcfc6642333 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Sun, 12 May 2013 12:25:52 +0100
|
Date: Sun, 12 May 2013 12:25:52 +0100
|
||||||
Subject: [PATCH 021/174] sdhci-bcm2708: use extension FIFO to buffer DMA
|
Subject: [PATCH 021/196] sdhci-bcm2708: use extension FIFO to buffer DMA
|
||||||
transfers
|
transfers
|
||||||
|
|
||||||
The additional FIFO might speed up transfers in some cases.
|
The additional FIFO might speed up transfers in some cases.
|
||||||
|
@ -9,6 +9,8 @@ The additional FIFO might speed up transfers in some cases.
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 11 +++++++++++
|
drivers/mmc/host/sdhci-bcm2708.c | 11 +++++++++++
|
||||||
1 file changed, 11 insertions(+)
|
1 file changed, 11 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index 3792b9f..326b962 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -74,6 +74,9 @@
|
@@ -74,6 +74,9 @@
|
||||||
|
@ -21,7 +23,7 @@ The additional FIFO might speed up transfers in some cases.
|
||||||
/*****************************************************************************\
|
/*****************************************************************************\
|
||||||
* *
|
* *
|
||||||
* Debug *
|
* Debug *
|
||||||
@@ -957,10 +960,12 @@ static ssize_t attr_dma_store(struct dev
|
@@ -957,10 +960,12 @@ static ssize_t attr_dma_store(struct device *_dev,
|
||||||
int on = simple_strtol(buf, NULL, 0);
|
int on = simple_strtol(buf, NULL, 0);
|
||||||
if (on) {
|
if (on) {
|
||||||
host->flags |= SDHCI_USE_PLATDMA;
|
host->flags |= SDHCI_USE_PLATDMA;
|
||||||
|
@ -34,7 +36,7 @@ The additional FIFO might speed up transfers in some cases.
|
||||||
printk(KERN_INFO "%s: DMA disabled\n",
|
printk(KERN_INFO "%s: DMA disabled\n",
|
||||||
mmc_hostname(host->mmc));
|
mmc_hostname(host->mmc));
|
||||||
}
|
}
|
||||||
@@ -1272,6 +1277,12 @@ static int sdhci_bcm2708_probe(struct pl
|
@@ -1272,6 +1277,12 @@ static int sdhci_bcm2708_probe(struct platform_device *pdev)
|
||||||
ret = device_create_file(&pdev->dev, &dev_attr_dma_wait);
|
ret = device_create_file(&pdev->dev, &dev_attr_dma_wait);
|
||||||
ret = device_create_file(&pdev->dev, &dev_attr_status);
|
ret = device_create_file(&pdev->dev, &dev_attr_status);
|
||||||
|
|
||||||
|
@ -47,3 +49,6 @@ The additional FIFO might speed up transfers in some cases.
|
||||||
printk(KERN_INFO "%s: BCM2708 SDHC host at 0x%08llx DMA %d IRQ %d\n",
|
printk(KERN_INFO "%s: BCM2708 SDHC host at 0x%08llx DMA %d IRQ %d\n",
|
||||||
mmc_hostname(host->mmc), (unsigned long long)iomem->start,
|
mmc_hostname(host->mmc), (unsigned long long)iomem->start,
|
||||||
host_priv->dma_chan, host_priv->dma_irq);
|
host_priv->dma_chan, host_priv->dma_irq);
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 9f5c2a77277b99949398e97cc753074d1b8e9521 Mon Sep 17 00:00:00 2001
|
From d91049bd18e847ba86d661889b92a25cd7ce53cc Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 3 Jul 2013 00:42:49 +0100
|
Date: Wed, 3 Jul 2013 00:42:49 +0100
|
||||||
Subject: [PATCH 022/174] sdhci-bcm2708: use multiblock-type transfers for
|
Subject: [PATCH 022/196] sdhci-bcm2708: use multiblock-type transfers for
|
||||||
single blocks
|
single blocks
|
||||||
|
|
||||||
There are issues with both single block reads (missed completion)
|
There are issues with both single block reads (missed completion)
|
||||||
|
@ -14,9 +14,11 @@ adds a quirk for this and uses it.
|
||||||
include/linux/mmc/host.h | 1 +
|
include/linux/mmc/host.h | 1 +
|
||||||
3 files changed, 5 insertions(+), 1 deletion(-)
|
3 files changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
|
||||||
|
index 9aca946..0d0c4ad 100644
|
||||||
--- a/drivers/mmc/card/block.c
|
--- a/drivers/mmc/card/block.c
|
||||||
+++ b/drivers/mmc/card/block.c
|
+++ b/drivers/mmc/card/block.c
|
||||||
@@ -1333,7 +1333,7 @@ static void mmc_blk_rw_rq_prep(struct mm
|
@@ -1333,7 +1333,7 @@ static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
|
||||||
brq->data.blocks = 1;
|
brq->data.blocks = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,9 +27,11 @@ adds a quirk for this and uses it.
|
||||||
/* SPI multiblock writes terminate using a special
|
/* SPI multiblock writes terminate using a special
|
||||||
* token, not a STOP_TRANSMISSION request.
|
* token, not a STOP_TRANSMISSION request.
|
||||||
*/
|
*/
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index 326b962..c6d6bb0 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -1266,6 +1266,9 @@ static int sdhci_bcm2708_probe(struct pl
|
@@ -1266,6 +1266,9 @@ static int sdhci_bcm2708_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
if (allow_highspeed)
|
if (allow_highspeed)
|
||||||
host->mmc->caps |= MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED;
|
host->mmc->caps |= MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED;
|
||||||
|
@ -37,6 +41,8 @@ adds a quirk for this and uses it.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
ret = sdhci_add_host(host);
|
ret = sdhci_add_host(host);
|
||||||
|
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
|
||||||
|
index e326ae2..70020e3 100644
|
||||||
--- a/include/linux/mmc/host.h
|
--- a/include/linux/mmc/host.h
|
||||||
+++ b/include/linux/mmc/host.h
|
+++ b/include/linux/mmc/host.h
|
||||||
@@ -281,6 +281,7 @@ struct mmc_host {
|
@@ -281,6 +281,7 @@ struct mmc_host {
|
||||||
|
@ -47,3 +53,6 @@ adds a quirk for this and uses it.
|
||||||
|
|
||||||
mmc_pm_flag_t pm_caps; /* supported pm features */
|
mmc_pm_flag_t pm_caps; /* supported pm features */
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,18 @@
|
||||||
From 4548721c4c1b160a8b5702b6226c5b6403b3df8b Mon Sep 17 00:00:00 2001
|
From 9572b1f23fb60dc2c55bde196a7070f57fc20a92 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 1 Aug 2012 19:02:14 +0100
|
Date: Wed, 1 Aug 2012 19:02:14 +0100
|
||||||
Subject: [PATCH 023/174] Add module parameter for missing_status quirk.
|
Subject: [PATCH 023/196] Add module parameter for missing_status quirk.
|
||||||
sdhci-bcm2708.missing_status=0 may improve interrupt latency
|
sdhci-bcm2708.missing_status=0 may improve interrupt latency
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 7 ++++++-
|
drivers/mmc/host/sdhci-bcm2708.c | 7 ++++++-
|
||||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index c6d6bb0..8243593 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -134,6 +134,7 @@ static inline unsigned long int since_ns
|
@@ -134,6 +134,7 @@ static inline unsigned long int since_ns(hptime_t t)
|
||||||
static bool allow_highspeed = 1;
|
static bool allow_highspeed = 1;
|
||||||
static int emmc_clock_freq = BCM2708_EMMC_CLOCK_FREQ;
|
static int emmc_clock_freq = BCM2708_EMMC_CLOCK_FREQ;
|
||||||
static bool sync_after_dma = 1;
|
static bool sync_after_dma = 1;
|
||||||
|
@ -18,7 +20,7 @@ Subject: [PATCH 023/174] Add module parameter for missing_status quirk.
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
static void hptime_test(void)
|
static void hptime_test(void)
|
||||||
@@ -1150,7 +1151,6 @@ static struct sdhci_ops sdhci_bcm2708_op
|
@@ -1150,7 +1151,6 @@ static struct sdhci_ops sdhci_bcm2708_ops = {
|
||||||
.spurious_crc_acmd51 = sdhci_bcm2708_quirk_spurious_crc,
|
.spurious_crc_acmd51 = sdhci_bcm2708_quirk_spurious_crc,
|
||||||
.voltage_broken = sdhci_bcm2708_quirk_voltage_broken,
|
.voltage_broken = sdhci_bcm2708_quirk_voltage_broken,
|
||||||
.uhs_broken = sdhci_bcm2708_uhs_broken,
|
.uhs_broken = sdhci_bcm2708_uhs_broken,
|
||||||
|
@ -26,7 +28,7 @@ Subject: [PATCH 023/174] Add module parameter for missing_status quirk.
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************\
|
/*****************************************************************************\
|
||||||
@@ -1189,6 +1189,9 @@ static int sdhci_bcm2708_probe(struct pl
|
@@ -1189,6 +1189,9 @@ static int sdhci_bcm2708_probe(struct platform_device *pdev)
|
||||||
ret = PTR_ERR(host);
|
ret = PTR_ERR(host);
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
@ -51,3 +53,6 @@ Subject: [PATCH 023/174] Add module parameter for missing_status quirk.
|
||||||
+MODULE_PARM_DESC(missing_status, "Use the missing status quirk");
|
+MODULE_PARM_DESC(missing_status, "Use the missing status quirk");
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
From bd9a95701602937c6e402a4fc6786d1675431117 Mon Sep 17 00:00:00 2001
|
From 24ecdf1266c6dd4213f7fc5e2a01c3b661877c81 Mon Sep 17 00:00:00 2001
|
||||||
From: ddv2005 <ddv@abinet.com>
|
From: ddv2005 <ddv@abinet.com>
|
||||||
Date: Sun, 5 Aug 2012 10:42:12 -0400
|
Date: Sun, 5 Aug 2012 10:42:12 -0400
|
||||||
Subject: [PATCH 024/174] Fix spinlock recursion in sdhci-bcm2708.c
|
Subject: [PATCH 024/196] Fix spinlock recursion in sdhci-bcm2708.c
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 14 +++++++-------
|
drivers/mmc/host/sdhci-bcm2708.c | 14 +++++++-------
|
||||||
1 file changed, 7 insertions(+), 7 deletions(-)
|
1 file changed, 7 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index 8243593..7a703c2 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -643,11 +643,11 @@ void
|
@@ -643,11 +643,11 @@ void
|
||||||
|
@ -23,7 +25,7 @@ Subject: [PATCH 024/174] Fix spinlock recursion in sdhci-bcm2708.c
|
||||||
|
|
||||||
if (host_priv->dma_wanted) {
|
if (host_priv->dma_wanted) {
|
||||||
if (NULL == data) {
|
if (NULL == data) {
|
||||||
@@ -727,7 +727,7 @@ sdhci_bcm2708_platdma_reset(struct sdhci
|
@@ -727,7 +727,7 @@ sdhci_bcm2708_platdma_reset(struct sdhci_host *host, struct mmc_data *data)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +34,7 @@ Subject: [PATCH 024/174] Fix spinlock recursion in sdhci-bcm2708.c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -740,11 +740,11 @@ static void sdhci_bcm2708_dma_complete_i
|
@@ -740,11 +740,11 @@ static void sdhci_bcm2708_dma_complete_irq(struct sdhci_host *host,
|
||||||
int sg_len;
|
int sg_len;
|
||||||
int sg_ix;
|
int sg_ix;
|
||||||
int sg_todo;
|
int sg_todo;
|
||||||
|
@ -46,7 +48,7 @@ Subject: [PATCH 024/174] Fix spinlock recursion in sdhci-bcm2708.c
|
||||||
data = host->data;
|
data = host->data;
|
||||||
|
|
||||||
#ifdef CHECK_DMA_USE
|
#ifdef CHECK_DMA_USE
|
||||||
@@ -769,7 +769,7 @@ static void sdhci_bcm2708_dma_complete_i
|
@@ -769,7 +769,7 @@ static void sdhci_bcm2708_dma_complete_irq(struct sdhci_host *host,
|
||||||
|
|
||||||
if (NULL == data) {
|
if (NULL == data) {
|
||||||
DBG("PDMA unused completion - status 0x%X\n", dma_cs);
|
DBG("PDMA unused completion - status 0x%X\n", dma_cs);
|
||||||
|
@ -55,7 +57,7 @@ Subject: [PATCH 024/174] Fix spinlock recursion in sdhci-bcm2708.c
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sg = data->sg;
|
sg = data->sg;
|
||||||
@@ -862,7 +862,7 @@ static void sdhci_bcm2708_dma_complete_i
|
@@ -862,7 +862,7 @@ static void sdhci_bcm2708_dma_complete_irq(struct sdhci_host *host,
|
||||||
SDHCI_INT_SPACE_AVAIL);
|
SDHCI_INT_SPACE_AVAIL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,3 +66,6 @@ Subject: [PATCH 024/174] Fix spinlock recursion in sdhci-bcm2708.c
|
||||||
}
|
}
|
||||||
|
|
||||||
static irqreturn_t sdhci_bcm2708_dma_irq(int irq, void *dev_id)
|
static irqreturn_t sdhci_bcm2708_dma_irq(int irq, void *dev_id)
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
From d3ea04a7506cca51d1e154cde5bcc7063595c98c Mon Sep 17 00:00:00 2001
|
From b0ffe239799004245e53a998216d361f6ab67f96 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 8 May 2013 11:46:50 +0100
|
Date: Wed, 8 May 2013 11:46:50 +0100
|
||||||
Subject: [PATCH 025/174] enabling the realtime clock 1-wire chip DS1307 and
|
Subject: [PATCH 025/196] enabling the realtime clock 1-wire chip DS1307 and
|
||||||
1-wire on GPIO4 (as a module)
|
1-wire on GPIO4 (as a module)
|
||||||
|
|
||||||
---
|
---
|
||||||
arch/arm/mach-bcm2708/bcm2708.c | 20 ++++++++++++++++++++
|
arch/arm/mach-bcm2708/bcm2708.c | 20 ++++++++++++++++++++
|
||||||
1 file changed, 20 insertions(+)
|
1 file changed, 20 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/bcm2708.c b/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
|
index 03b8ec5..18f7ede 100644
|
||||||
--- a/arch/arm/mach-bcm2708/bcm2708.c
|
--- a/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
+++ b/arch/arm/mach-bcm2708/bcm2708.c
|
+++ b/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
@@ -32,6 +32,7 @@
|
@@ -32,6 +32,7 @@
|
||||||
|
@ -28,7 +30,7 @@ Subject: [PATCH 025/174] enabling the realtime clock 1-wire chip DS1307 and
|
||||||
/* command line parameters */
|
/* command line parameters */
|
||||||
static unsigned boardrev, serial;
|
static unsigned boardrev, serial;
|
||||||
static unsigned uart_clock;
|
static unsigned uart_clock;
|
||||||
@@ -251,6 +255,19 @@ static struct platform_device bcm2708_dm
|
@@ -251,6 +255,19 @@ static struct platform_device bcm2708_dmaman_device = {
|
||||||
.num_resources = ARRAY_SIZE(bcm2708_dmaman_resources),
|
.num_resources = ARRAY_SIZE(bcm2708_dmaman_resources),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -58,3 +60,6 @@ Subject: [PATCH 025/174] enabling the realtime clock 1-wire chip DS1307 and
|
||||||
bcm_register_device(&bcm2708_systemtimer_device);
|
bcm_register_device(&bcm2708_systemtimer_device);
|
||||||
bcm_register_device(&bcm2708_fb_device);
|
bcm_register_device(&bcm2708_fb_device);
|
||||||
bcm_register_device(&bcm2708_usb_device);
|
bcm_register_device(&bcm2708_usb_device);
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From fc153c5cb49f20f5e9644d92b8be064ed9159a16 Mon Sep 17 00:00:00 2001
|
From 4ec6de1f59d1f0b5ed9cfebf3c1b4080d7215dc2 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Sun, 12 May 2013 12:27:48 +0100
|
Date: Sun, 12 May 2013 12:27:48 +0100
|
||||||
Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
Subject: [PATCH 026/196] Add low-latency mode to sdcard driver. Disable with
|
||||||
sdhci-bcm2708.enable_llm=0. Thanks ddv2005.
|
sdhci-bcm2708.enable_llm=0. Thanks ddv2005.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -11,6 +11,8 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
include/linux/mmc/sdhci.h | 1 +
|
include/linux/mmc/sdhci.h | 1 +
|
||||||
4 files changed, 145 insertions(+), 44 deletions(-)
|
4 files changed, 145 insertions(+), 44 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index 7a703c2..7ce2829 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -135,6 +135,7 @@ static bool allow_highspeed = 1;
|
@@ -135,6 +135,7 @@ static bool allow_highspeed = 1;
|
||||||
|
@ -21,7 +23,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
static void hptime_test(void)
|
static void hptime_test(void)
|
||||||
@@ -871,12 +872,11 @@ static irqreturn_t sdhci_bcm2708_dma_irq
|
@@ -871,12 +872,11 @@ static irqreturn_t sdhci_bcm2708_dma_irq(int irq, void *dev_id)
|
||||||
struct sdhci_host *host = dev_id;
|
struct sdhci_host *host = dev_id;
|
||||||
struct sdhci_bcm2708_priv *host_priv = SDHCI_HOST_PRIV(host);
|
struct sdhci_bcm2708_priv *host_priv = SDHCI_HOST_PRIV(host);
|
||||||
u32 dma_cs; /* control and status register */
|
u32 dma_cs; /* control and status register */
|
||||||
|
@ -35,7 +37,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
dma_cs = readl(host_priv->dma_chan_base + BCM2708_DMA_CS);
|
dma_cs = readl(host_priv->dma_chan_base + BCM2708_DMA_CS);
|
||||||
|
|
||||||
@@ -917,8 +917,7 @@ static irqreturn_t sdhci_bcm2708_dma_irq
|
@@ -917,8 +917,7 @@ static irqreturn_t sdhci_bcm2708_dma_irq(int irq, void *dev_id)
|
||||||
|
|
||||||
result = IRQ_HANDLED;
|
result = IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
@ -45,7 +47,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -1193,9 +1192,12 @@ static int sdhci_bcm2708_probe(struct pl
|
@@ -1193,9 +1192,12 @@ static int sdhci_bcm2708_probe(struct platform_device *pdev)
|
||||||
sdhci_bcm2708_ops.missing_status = sdhci_bcm2708_missing_status;
|
sdhci_bcm2708_ops.missing_status = sdhci_bcm2708_missing_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,7 +60,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
host->quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION |
|
host->quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION |
|
||||||
SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK |
|
SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK |
|
||||||
@@ -1256,12 +1258,13 @@ static int sdhci_bcm2708_probe(struct pl
|
@@ -1256,12 +1258,13 @@ static int sdhci_bcm2708_probe(struct platform_device *pdev)
|
||||||
}
|
}
|
||||||
host_priv->dma_chan = ret;
|
host_priv->dma_chan = ret;
|
||||||
|
|
||||||
|
@ -74,7 +76,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
DBG("DMA CBs %p handle %08X DMA%d %p DMA IRQ %d\n",
|
DBG("DMA CBs %p handle %08X DMA%d %p DMA IRQ %d\n",
|
||||||
host_priv->cb_base, (unsigned)host_priv->cb_handle,
|
host_priv->cb_base, (unsigned)host_priv->cb_handle,
|
||||||
host_priv->dma_chan, host_priv->dma_chan_base,
|
host_priv->dma_chan, host_priv->dma_chan_base,
|
||||||
@@ -1384,6 +1387,7 @@ module_param(allow_highspeed, bool, 0444
|
@@ -1384,6 +1387,7 @@ module_param(allow_highspeed, bool, 0444);
|
||||||
module_param(emmc_clock_freq, int, 0444);
|
module_param(emmc_clock_freq, int, 0444);
|
||||||
module_param(sync_after_dma, bool, 0444);
|
module_param(sync_after_dma, bool, 0444);
|
||||||
module_param(missing_status, bool, 0444);
|
module_param(missing_status, bool, 0444);
|
||||||
|
@ -82,16 +84,18 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
MODULE_DESCRIPTION("Secure Digital Host Controller Interface platform driver");
|
MODULE_DESCRIPTION("Secure Digital Host Controller Interface platform driver");
|
||||||
MODULE_AUTHOR("Broadcom <info@broadcom.com>");
|
MODULE_AUTHOR("Broadcom <info@broadcom.com>");
|
||||||
@@ -1394,5 +1398,6 @@ MODULE_PARM_DESC(allow_highspeed, "Allow
|
@@ -1394,5 +1398,6 @@ MODULE_PARM_DESC(allow_highspeed, "Allow high speed transfers modes");
|
||||||
MODULE_PARM_DESC(emmc_clock_freq, "Specify the speed of emmc clock");
|
MODULE_PARM_DESC(emmc_clock_freq, "Specify the speed of emmc clock");
|
||||||
MODULE_PARM_DESC(sync_after_dma, "Block in driver until dma complete");
|
MODULE_PARM_DESC(sync_after_dma, "Block in driver until dma complete");
|
||||||
MODULE_PARM_DESC(missing_status, "Use the missing status quirk");
|
MODULE_PARM_DESC(missing_status, "Use the missing status quirk");
|
||||||
+MODULE_PARM_DESC(enable_llm, "Enable low-latency mode");
|
+MODULE_PARM_DESC(enable_llm, "Enable low-latency mode");
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
|
||||||
|
index 179e83e..470860b 100644
|
||||||
--- a/drivers/mmc/host/sdhci.c
|
--- a/drivers/mmc/host/sdhci.c
|
||||||
+++ b/drivers/mmc/host/sdhci.c
|
+++ b/drivers/mmc/host/sdhci.c
|
||||||
@@ -124,6 +124,91 @@ static void sdhci_dumpregs(struct sdhci_
|
@@ -124,6 +124,91 @@ static void sdhci_dumpregs(struct sdhci_host *host)
|
||||||
* Low level functions *
|
* Low level functions *
|
||||||
* *
|
* *
|
||||||
\*****************************************************************************/
|
\*****************************************************************************/
|
||||||
|
@ -183,7 +187,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
static void sdhci_clear_set_irqs(struct sdhci_host *host, u32 clear, u32 set)
|
static void sdhci_clear_set_irqs(struct sdhci_host *host, u32 clear, u32 set)
|
||||||
{
|
{
|
||||||
@@ -289,7 +374,7 @@ static void sdhci_led_control(struct led
|
@@ -289,7 +374,7 @@ static void sdhci_led_control(struct led_classdev *led,
|
||||||
struct sdhci_host *host = container_of(led, struct sdhci_host, led);
|
struct sdhci_host *host = container_of(led, struct sdhci_host, led);
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
@ -192,7 +196,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
if (host->runtime_suspended)
|
if (host->runtime_suspended)
|
||||||
goto out;
|
goto out;
|
||||||
@@ -299,7 +384,7 @@ static void sdhci_led_control(struct led
|
@@ -299,7 +384,7 @@ static void sdhci_led_control(struct led_classdev *led,
|
||||||
else
|
else
|
||||||
sdhci_activate_led(host);
|
sdhci_activate_led(host);
|
||||||
out:
|
out:
|
||||||
|
@ -201,7 +205,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1007,7 +1092,9 @@ static void sdhci_send_command(struct sd
|
@@ -1007,7 +1092,9 @@ static void sdhci_send_command(struct sdhci_host *host, struct mmc_command *cmd)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
timeout--;
|
timeout--;
|
||||||
|
@ -221,7 +225,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
}
|
}
|
||||||
|
|
||||||
clk |= SDHCI_CLOCK_CARD_EN;
|
clk |= SDHCI_CLOCK_CARD_EN;
|
||||||
@@ -1330,7 +1419,7 @@ static void sdhci_request(struct mmc_hos
|
@@ -1330,7 +1419,7 @@ static void sdhci_request(struct mmc_host *mmc, struct mmc_request *mrq)
|
||||||
|
|
||||||
sdhci_runtime_pm_get(host);
|
sdhci_runtime_pm_get(host);
|
||||||
|
|
||||||
|
@ -230,7 +234,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
WARN_ON(host->mrq != NULL);
|
WARN_ON(host->mrq != NULL);
|
||||||
|
|
||||||
@@ -1388,9 +1477,9 @@ static void sdhci_request(struct mmc_hos
|
@@ -1388,9 +1477,9 @@ static void sdhci_request(struct mmc_host *mmc, struct mmc_request *mrq)
|
||||||
mmc->card->type == MMC_TYPE_MMC ?
|
mmc->card->type == MMC_TYPE_MMC ?
|
||||||
MMC_SEND_TUNING_BLOCK_HS200 :
|
MMC_SEND_TUNING_BLOCK_HS200 :
|
||||||
MMC_SEND_TUNING_BLOCK;
|
MMC_SEND_TUNING_BLOCK;
|
||||||
|
@ -242,7 +246,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
/* Restore original mmc_request structure */
|
/* Restore original mmc_request structure */
|
||||||
host->mrq = mrq;
|
host->mrq = mrq;
|
||||||
@@ -1404,7 +1493,7 @@ static void sdhci_request(struct mmc_hos
|
@@ -1404,7 +1493,7 @@ static void sdhci_request(struct mmc_host *mmc, struct mmc_request *mrq)
|
||||||
}
|
}
|
||||||
|
|
||||||
mmiowb();
|
mmiowb();
|
||||||
|
@ -251,7 +255,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
|
static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
|
||||||
@@ -1413,10 +1502,10 @@ static void sdhci_do_set_ios(struct sdhc
|
@@ -1413,10 +1502,10 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
|
||||||
int vdd_bit = -1;
|
int vdd_bit = -1;
|
||||||
u8 ctrl;
|
u8 ctrl;
|
||||||
|
|
||||||
|
@ -264,7 +268,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
if (host->vmmc && ios->power_mode == MMC_POWER_OFF)
|
if (host->vmmc && ios->power_mode == MMC_POWER_OFF)
|
||||||
mmc_regulator_set_ocr(host->mmc, host->vmmc, 0);
|
mmc_regulator_set_ocr(host->mmc, host->vmmc, 0);
|
||||||
return;
|
return;
|
||||||
@@ -1443,9 +1532,9 @@ static void sdhci_do_set_ios(struct sdhc
|
@@ -1443,9 +1532,9 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
|
||||||
vdd_bit = sdhci_set_power(host, ios->vdd);
|
vdd_bit = sdhci_set_power(host, ios->vdd);
|
||||||
|
|
||||||
if (host->vmmc && vdd_bit != -1) {
|
if (host->vmmc && vdd_bit != -1) {
|
||||||
|
@ -276,7 +280,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
}
|
}
|
||||||
|
|
||||||
if (host->ops->platform_send_init_74_clocks)
|
if (host->ops->platform_send_init_74_clocks)
|
||||||
@@ -1583,7 +1672,7 @@ static void sdhci_do_set_ios(struct sdhc
|
@@ -1583,7 +1672,7 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
|
||||||
sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA);
|
sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA);
|
||||||
|
|
||||||
mmiowb();
|
mmiowb();
|
||||||
|
@ -285,7 +289,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
|
static void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
|
||||||
@@ -1631,7 +1720,7 @@ static int sdhci_check_ro(struct sdhci_h
|
@@ -1631,7 +1720,7 @@ static int sdhci_check_ro(struct sdhci_host *host)
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
int is_readonly;
|
int is_readonly;
|
||||||
|
|
||||||
|
@ -294,7 +298,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
if (host->flags & SDHCI_DEVICE_DEAD)
|
if (host->flags & SDHCI_DEVICE_DEAD)
|
||||||
is_readonly = 0;
|
is_readonly = 0;
|
||||||
@@ -1641,7 +1730,7 @@ static int sdhci_check_ro(struct sdhci_h
|
@@ -1641,7 +1730,7 @@ static int sdhci_check_ro(struct sdhci_host *host)
|
||||||
is_readonly = !(sdhci_readl(host, SDHCI_PRESENT_STATE)
|
is_readonly = !(sdhci_readl(host, SDHCI_PRESENT_STATE)
|
||||||
& SDHCI_WRITE_PROTECT);
|
& SDHCI_WRITE_PROTECT);
|
||||||
|
|
||||||
|
@ -303,7 +307,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
/* This quirk needs to be replaced by a callback-function later */
|
/* This quirk needs to be replaced by a callback-function later */
|
||||||
return host->quirks & SDHCI_QUIRK_INVERTED_WRITE_PROTECT ?
|
return host->quirks & SDHCI_QUIRK_INVERTED_WRITE_PROTECT ?
|
||||||
@@ -1714,9 +1803,9 @@ static void sdhci_enable_sdio_irq(struct
|
@@ -1714,9 +1803,9 @@ static void sdhci_enable_sdio_irq(struct mmc_host *mmc, int enable)
|
||||||
struct sdhci_host *host = mmc_priv(mmc);
|
struct sdhci_host *host = mmc_priv(mmc);
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
@ -315,7 +319,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sdhci_do_start_signal_voltage_switch(struct sdhci_host *host,
|
static int sdhci_do_start_signal_voltage_switch(struct sdhci_host *host,
|
||||||
@@ -2060,7 +2149,7 @@ static void sdhci_card_event(struct mmc_
|
@@ -2060,7 +2149,7 @@ static void sdhci_card_event(struct mmc_host *mmc)
|
||||||
struct sdhci_host *host = mmc_priv(mmc);
|
struct sdhci_host *host = mmc_priv(mmc);
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
@ -324,7 +328,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
/* Check host->mrq first in case we are runtime suspended */
|
/* Check host->mrq first in case we are runtime suspended */
|
||||||
if (host->mrq &&
|
if (host->mrq &&
|
||||||
@@ -2077,7 +2166,7 @@ static void sdhci_card_event(struct mmc_
|
@@ -2077,7 +2166,7 @@ static void sdhci_card_event(struct mmc_host *mmc)
|
||||||
tasklet_schedule(&host->finish_tasklet);
|
tasklet_schedule(&host->finish_tasklet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -333,7 +337,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct mmc_host_ops sdhci_ops = {
|
static const struct mmc_host_ops sdhci_ops = {
|
||||||
@@ -2116,14 +2205,14 @@ static void sdhci_tasklet_finish(unsigne
|
@@ -2116,14 +2205,14 @@ static void sdhci_tasklet_finish(unsigned long param)
|
||||||
|
|
||||||
host = (struct sdhci_host*)param;
|
host = (struct sdhci_host*)param;
|
||||||
|
|
||||||
|
@ -350,7 +354,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2161,7 +2250,7 @@ static void sdhci_tasklet_finish(unsigne
|
@@ -2161,7 +2250,7 @@ static void sdhci_tasklet_finish(unsigned long param)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
mmiowb();
|
mmiowb();
|
||||||
|
@ -359,7 +363,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
mmc_request_done(host->mmc, mrq);
|
mmc_request_done(host->mmc, mrq);
|
||||||
sdhci_runtime_pm_put(host);
|
sdhci_runtime_pm_put(host);
|
||||||
@@ -2174,7 +2263,7 @@ static void sdhci_timeout_timer(unsigned
|
@@ -2174,7 +2263,7 @@ static void sdhci_timeout_timer(unsigned long data)
|
||||||
|
|
||||||
host = (struct sdhci_host*)data;
|
host = (struct sdhci_host*)data;
|
||||||
|
|
||||||
|
@ -368,7 +372,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
if (host->mrq) {
|
if (host->mrq) {
|
||||||
pr_err("%s: Timeout waiting for hardware "
|
pr_err("%s: Timeout waiting for hardware "
|
||||||
@@ -2195,7 +2284,7 @@ static void sdhci_timeout_timer(unsigned
|
@@ -2195,7 +2284,7 @@ static void sdhci_timeout_timer(unsigned long data)
|
||||||
}
|
}
|
||||||
|
|
||||||
mmiowb();
|
mmiowb();
|
||||||
|
@ -377,7 +381,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sdhci_tuning_timer(unsigned long data)
|
static void sdhci_tuning_timer(unsigned long data)
|
||||||
@@ -2205,11 +2294,11 @@ static void sdhci_tuning_timer(unsigned
|
@@ -2205,11 +2294,11 @@ static void sdhci_tuning_timer(unsigned long data)
|
||||||
|
|
||||||
host = (struct sdhci_host *)data;
|
host = (struct sdhci_host *)data;
|
||||||
|
|
||||||
|
@ -391,7 +395,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************\
|
/*****************************************************************************\
|
||||||
@@ -2433,10 +2522,10 @@ static irqreturn_t sdhci_irq(int irq, vo
|
@@ -2433,10 +2522,10 @@ static irqreturn_t sdhci_irq(int irq, void *dev_id)
|
||||||
u32 intmask, unexpected = 0;
|
u32 intmask, unexpected = 0;
|
||||||
int cardint = 0, max_loops = 16;
|
int cardint = 0, max_loops = 16;
|
||||||
|
|
||||||
|
@ -413,7 +417,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
if (unexpected) {
|
if (unexpected) {
|
||||||
pr_err("%s: Unexpected interrupt 0x%08x.\n",
|
pr_err("%s: Unexpected interrupt 0x%08x.\n",
|
||||||
@@ -2702,15 +2791,15 @@ int sdhci_runtime_suspend_host(struct sd
|
@@ -2702,15 +2791,15 @@ int sdhci_runtime_suspend_host(struct sdhci_host *host)
|
||||||
host->flags &= ~SDHCI_NEEDS_RETUNING;
|
host->flags &= ~SDHCI_NEEDS_RETUNING;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -433,7 +437,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -2736,16 +2825,16 @@ int sdhci_runtime_resume_host(struct sdh
|
@@ -2736,16 +2825,16 @@ int sdhci_runtime_resume_host(struct sdhci_host *host)
|
||||||
sdhci_do_start_signal_voltage_switch(host, &host->mmc->ios);
|
sdhci_do_start_signal_voltage_switch(host, &host->mmc->ios);
|
||||||
if ((host_flags & SDHCI_PV_ENABLED) &&
|
if ((host_flags & SDHCI_PV_ENABLED) &&
|
||||||
!(host->quirks2 & SDHCI_QUIRK2_PRESET_VALUE_BROKEN)) {
|
!(host->quirks2 & SDHCI_QUIRK2_PRESET_VALUE_BROKEN)) {
|
||||||
|
@ -453,7 +457,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
host->runtime_suspended = false;
|
host->runtime_suspended = false;
|
||||||
|
|
||||||
@@ -2756,7 +2845,7 @@ int sdhci_runtime_resume_host(struct sdh
|
@@ -2756,7 +2845,7 @@ int sdhci_runtime_resume_host(struct sdhci_host *host)
|
||||||
/* Enable Card Detection */
|
/* Enable Card Detection */
|
||||||
sdhci_enable_card_detection(host);
|
sdhci_enable_card_detection(host);
|
||||||
|
|
||||||
|
@ -462,7 +466,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -3248,7 +3337,7 @@ int sdhci_add_host(struct sdhci_host *ho
|
@@ -3248,7 +3337,7 @@ int sdhci_add_host(struct sdhci_host *host)
|
||||||
host->tuning_timer.function = sdhci_tuning_timer;
|
host->tuning_timer.function = sdhci_tuning_timer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -471,7 +475,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
mmc_hostname(mmc), host);
|
mmc_hostname(mmc), host);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
pr_err("%s: Failed to request IRQ %d: %d\n",
|
pr_err("%s: Failed to request IRQ %d: %d\n",
|
||||||
@@ -3312,7 +3401,7 @@ void sdhci_remove_host(struct sdhci_host
|
@@ -3312,7 +3401,7 @@ void sdhci_remove_host(struct sdhci_host *host, int dead)
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
if (dead) {
|
if (dead) {
|
||||||
|
@ -480,7 +484,7 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
|
|
||||||
host->flags |= SDHCI_DEVICE_DEAD;
|
host->flags |= SDHCI_DEVICE_DEAD;
|
||||||
|
|
||||||
@@ -3324,7 +3413,7 @@ void sdhci_remove_host(struct sdhci_host
|
@@ -3324,7 +3413,7 @@ void sdhci_remove_host(struct sdhci_host *host, int dead)
|
||||||
tasklet_schedule(&host->finish_tasklet);
|
tasklet_schedule(&host->finish_tasklet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -489,9 +493,11 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
}
|
}
|
||||||
|
|
||||||
sdhci_disable_card_detection(host);
|
sdhci_disable_card_detection(host);
|
||||||
|
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
|
||||||
|
index f90574e..cc393af 100644
|
||||||
--- a/drivers/mmc/host/sdhci.h
|
--- a/drivers/mmc/host/sdhci.h
|
||||||
+++ b/drivers/mmc/host/sdhci.h
|
+++ b/drivers/mmc/host/sdhci.h
|
||||||
@@ -441,4 +441,10 @@ extern int sdhci_runtime_suspend_host(st
|
@@ -441,4 +441,10 @@ extern int sdhci_runtime_suspend_host(struct sdhci_host *host);
|
||||||
extern int sdhci_runtime_resume_host(struct sdhci_host *host);
|
extern int sdhci_runtime_resume_host(struct sdhci_host *host);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -502,6 +508,8 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
#endif /* __SDHCI_HW_H */
|
#endif /* __SDHCI_HW_H */
|
||||||
|
diff --git a/include/linux/mmc/sdhci.h b/include/linux/mmc/sdhci.h
|
||||||
|
index f3a39c1..58bfab0 100644
|
||||||
--- a/include/linux/mmc/sdhci.h
|
--- a/include/linux/mmc/sdhci.h
|
||||||
+++ b/include/linux/mmc/sdhci.h
|
+++ b/include/linux/mmc/sdhci.h
|
||||||
@@ -97,6 +97,7 @@ struct sdhci_host {
|
@@ -97,6 +97,7 @@ struct sdhci_host {
|
||||||
|
@ -512,3 +520,6 @@ Subject: [PATCH 026/174] Add low-latency mode to sdcard driver. Disable with
|
||||||
void __iomem *ioaddr; /* Mapped address */
|
void __iomem *ioaddr; /* Mapped address */
|
||||||
|
|
||||||
const struct sdhci_ops *ops; /* Low level hw interface */
|
const struct sdhci_ops *ops; /* Low level hw interface */
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From c80392fbbb9a09f035f66a7d2a9fed2469373210 Mon Sep 17 00:00:00 2001
|
From 5e4c6e64d0c5fd6adc6c68cc1366f0f7c0ad84ba Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 3 Jul 2013 00:46:42 +0100
|
Date: Wed, 3 Jul 2013 00:46:42 +0100
|
||||||
Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
Subject: [PATCH 027/196] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
dwc_otg.fiq_fix_enable=1. Should give about 10% more ARM performance. Thanks
|
dwc_otg.fiq_fix_enable=1. Should give about 10% more ARM performance. Thanks
|
||||||
to Gordon and Costas
|
to Gordon and Costas
|
||||||
|
|
||||||
|
@ -31,6 +31,8 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
create mode 100755 drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c
|
create mode 100755 drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c
|
||||||
create mode 100755 drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h
|
create mode 100755 drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h
|
||||||
|
|
||||||
|
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
|
||||||
|
index eb291c7..5468f1f 100644
|
||||||
--- a/arch/arm/Kconfig
|
--- a/arch/arm/Kconfig
|
||||||
+++ b/arch/arm/Kconfig
|
+++ b/arch/arm/Kconfig
|
||||||
@@ -373,6 +373,7 @@ config ARCH_BCM2708
|
@@ -373,6 +373,7 @@ config ARCH_BCM2708
|
||||||
|
@ -41,6 +43,8 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
help
|
help
|
||||||
This enables support for Broadcom BCM2708 boards.
|
This enables support for Broadcom BCM2708 boards.
|
||||||
|
|
||||||
|
diff --git a/arch/arm/include/asm/fiq.h b/arch/arm/include/asm/fiq.h
|
||||||
|
index d493d0b..f1a131b 100644
|
||||||
--- a/arch/arm/include/asm/fiq.h
|
--- a/arch/arm/include/asm/fiq.h
|
||||||
+++ b/arch/arm/include/asm/fiq.h
|
+++ b/arch/arm/include/asm/fiq.h
|
||||||
@@ -42,6 +42,7 @@ extern void disable_fiq(int fiq);
|
@@ -42,6 +42,7 @@ extern void disable_fiq(int fiq);
|
||||||
|
@ -51,9 +55,11 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
|
|
||||||
static inline void set_fiq_regs(struct pt_regs const *regs)
|
static inline void set_fiq_regs(struct pt_regs const *regs)
|
||||||
{
|
{
|
||||||
|
diff --git a/arch/arm/kernel/fiq.c b/arch/arm/kernel/fiq.c
|
||||||
|
index 25442f4..74ff4ba 100644
|
||||||
--- a/arch/arm/kernel/fiq.c
|
--- a/arch/arm/kernel/fiq.c
|
||||||
+++ b/arch/arm/kernel/fiq.c
|
+++ b/arch/arm/kernel/fiq.c
|
||||||
@@ -141,6 +141,7 @@ void disable_fiq(int fiq)
|
@@ -145,6 +145,7 @@ void disable_fiq(int fiq)
|
||||||
EXPORT_SYMBOL(set_fiq_handler);
|
EXPORT_SYMBOL(set_fiq_handler);
|
||||||
EXPORT_SYMBOL(__set_fiq_regs); /* defined in fiqasm.S */
|
EXPORT_SYMBOL(__set_fiq_regs); /* defined in fiqasm.S */
|
||||||
EXPORT_SYMBOL(__get_fiq_regs); /* defined in fiqasm.S */
|
EXPORT_SYMBOL(__get_fiq_regs); /* defined in fiqasm.S */
|
||||||
|
@ -61,6 +67,8 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
EXPORT_SYMBOL(claim_fiq);
|
EXPORT_SYMBOL(claim_fiq);
|
||||||
EXPORT_SYMBOL(release_fiq);
|
EXPORT_SYMBOL(release_fiq);
|
||||||
EXPORT_SYMBOL(enable_fiq);
|
EXPORT_SYMBOL(enable_fiq);
|
||||||
|
diff --git a/arch/arm/kernel/fiqasm.S b/arch/arm/kernel/fiqasm.S
|
||||||
|
index 207f9d6..93eddfe 100644
|
||||||
--- a/arch/arm/kernel/fiqasm.S
|
--- a/arch/arm/kernel/fiqasm.S
|
||||||
+++ b/arch/arm/kernel/fiqasm.S
|
+++ b/arch/arm/kernel/fiqasm.S
|
||||||
@@ -25,6 +25,9 @@
|
@@ -25,6 +25,9 @@
|
||||||
|
@ -81,9 +89,11 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
+ENTRY(__FIQ_Branch)
|
+ENTRY(__FIQ_Branch)
|
||||||
+ mov pc, r8
|
+ mov pc, r8
|
||||||
+ENDPROC(__FIQ_Branch)
|
+ENDPROC(__FIQ_Branch)
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/armctrl.c b/arch/arm/mach-bcm2708/armctrl.c
|
||||||
|
index da18725..274aa30 100644
|
||||||
--- a/arch/arm/mach-bcm2708/armctrl.c
|
--- a/arch/arm/mach-bcm2708/armctrl.c
|
||||||
+++ b/arch/arm/mach-bcm2708/armctrl.c
|
+++ b/arch/arm/mach-bcm2708/armctrl.c
|
||||||
@@ -52,8 +52,12 @@ static void armctrl_mask_irq(struct irq_
|
@@ -52,8 +52,12 @@ static void armctrl_mask_irq(struct irq_data *d)
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -98,7 +108,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
}
|
}
|
||||||
|
|
||||||
static void armctrl_unmask_irq(struct irq_data *d)
|
static void armctrl_unmask_irq(struct irq_data *d)
|
||||||
@@ -65,8 +69,14 @@ static void armctrl_unmask_irq(struct ir
|
@@ -65,8 +69,14 @@ static void armctrl_unmask_irq(struct irq_data *d)
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -115,16 +125,18 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_PM)
|
#if defined(CONFIG_PM)
|
||||||
@@ -204,5 +214,6 @@ int __init armctrl_init(void __iomem * b
|
@@ -204,5 +214,6 @@ int __init armctrl_init(void __iomem * base, unsigned int irq_start,
|
||||||
}
|
}
|
||||||
|
|
||||||
armctrl_pm_register(base, irq_start, resume_sources);
|
armctrl_pm_register(base, irq_start, resume_sources);
|
||||||
+ init_FIQ(FIQ_START);
|
+ init_FIQ(FIQ_START);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/bcm2708.c b/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
|
index 18f7ede..b9aa2de 100644
|
||||||
--- a/arch/arm/mach-bcm2708/bcm2708.c
|
--- a/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
+++ b/arch/arm/mach-bcm2708/bcm2708.c
|
+++ b/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
@@ -309,12 +309,32 @@ static struct resource bcm2708_usb_resou
|
@@ -309,12 +309,32 @@ static struct resource bcm2708_usb_resources[] = {
|
||||||
.flags = IORESOURCE_MEM,
|
.flags = IORESOURCE_MEM,
|
||||||
},
|
},
|
||||||
[1] = {
|
[1] = {
|
||||||
|
@ -171,6 +183,8 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
bcm_register_device(&bcm2708_usb_device);
|
bcm_register_device(&bcm2708_usb_device);
|
||||||
bcm_register_device(&bcm2708_uart1_device);
|
bcm_register_device(&bcm2708_uart1_device);
|
||||||
bcm_register_device(&bcm2708_powerman_device);
|
bcm_register_device(&bcm2708_powerman_device);
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/irqs.h b/arch/arm/mach-bcm2708/include/mach/irqs.h
|
||||||
|
index e8bb068..9aaedf1 100644
|
||||||
--- a/arch/arm/mach-bcm2708/include/mach/irqs.h
|
--- a/arch/arm/mach-bcm2708/include/mach/irqs.h
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/irqs.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/irqs.h
|
||||||
@@ -106,91 +106,94 @@
|
@@ -106,91 +106,94 @@
|
||||||
|
@ -246,17 +260,6 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
-#define FIQ_RNG INT_RNG
|
-#define FIQ_RNG INT_RNG
|
||||||
-#define FIQ_ARASANSDIO INT_ARASANSDIO
|
-#define FIQ_ARASANSDIO INT_ARASANSDIO
|
||||||
-#define FIQ_AVSPMON INT_AVSPMON
|
-#define FIQ_AVSPMON INT_AVSPMON
|
||||||
-
|
|
||||||
-#define FIQ_ARM_TIMER INT_ARM_TIMER
|
|
||||||
-#define FIQ_ARM_MAILBOX INT_ARM_MAILBOX
|
|
||||||
-#define FIQ_ARM_DOORBELL_0 INT_ARM_DOORBELL_0
|
|
||||||
-#define FIQ_ARM_DOORBELL_1 INT_ARM_DOORBELL_1
|
|
||||||
-#define FIQ_VPU0_HALTED INT_VPU0_HALTED
|
|
||||||
-#define FIQ_VPU1_HALTED INT_VPU1_HALTED
|
|
||||||
-#define FIQ_ILLEGAL_TYPE0 INT_ILLEGAL_TYPE0
|
|
||||||
-#define FIQ_ILLEGAL_TYPE1 INT_ILLEGAL_TYPE1
|
|
||||||
-#define FIQ_PENDING1 INT_PENDING1
|
|
||||||
-#define FIQ_PENDING2 INT_PENDING2
|
|
||||||
+#define FIQ_TIMER0 (FIQ_START+INTERRUPT_TIMER0)
|
+#define FIQ_TIMER0 (FIQ_START+INTERRUPT_TIMER0)
|
||||||
+#define FIQ_TIMER1 (FIQ_START+INTERRUPT_TIMER1)
|
+#define FIQ_TIMER1 (FIQ_START+INTERRUPT_TIMER1)
|
||||||
+#define FIQ_TIMER2 (FIQ_START+INTERRUPT_TIMER2)
|
+#define FIQ_TIMER2 (FIQ_START+INTERRUPT_TIMER2)
|
||||||
|
@ -321,7 +324,17 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
+#define FIQ_RNG (FIQ_START+INTERRUPT_RNG)
|
+#define FIQ_RNG (FIQ_START+INTERRUPT_RNG)
|
||||||
+#define FIQ_ARASANSDIO (FIQ_START+INTERRUPT_ARASANSDIO)
|
+#define FIQ_ARASANSDIO (FIQ_START+INTERRUPT_ARASANSDIO)
|
||||||
+#define FIQ_AVSPMON (FIQ_START+INTERRUPT_AVSPMON)
|
+#define FIQ_AVSPMON (FIQ_START+INTERRUPT_AVSPMON)
|
||||||
+
|
|
||||||
|
-#define FIQ_ARM_TIMER INT_ARM_TIMER
|
||||||
|
-#define FIQ_ARM_MAILBOX INT_ARM_MAILBOX
|
||||||
|
-#define FIQ_ARM_DOORBELL_0 INT_ARM_DOORBELL_0
|
||||||
|
-#define FIQ_ARM_DOORBELL_1 INT_ARM_DOORBELL_1
|
||||||
|
-#define FIQ_VPU0_HALTED INT_VPU0_HALTED
|
||||||
|
-#define FIQ_VPU1_HALTED INT_VPU1_HALTED
|
||||||
|
-#define FIQ_ILLEGAL_TYPE0 INT_ILLEGAL_TYPE0
|
||||||
|
-#define FIQ_ILLEGAL_TYPE1 INT_ILLEGAL_TYPE1
|
||||||
|
-#define FIQ_PENDING1 INT_PENDING1
|
||||||
|
-#define FIQ_PENDING2 INT_PENDING2
|
||||||
+#define FIQ_ARM_TIMER (FIQ_START+INTERRUPT_ARM_TIMER)
|
+#define FIQ_ARM_TIMER (FIQ_START+INTERRUPT_ARM_TIMER)
|
||||||
+#define FIQ_ARM_MAILBOX (FIQ_START+INTERRUPT_ARM_MAILBOX)
|
+#define FIQ_ARM_MAILBOX (FIQ_START+INTERRUPT_ARM_MAILBOX)
|
||||||
+#define FIQ_ARM_DOORBELL_0 (FIQ_START+INTERRUPT_ARM_DOORBELL_0)
|
+#define FIQ_ARM_DOORBELL_0 (FIQ_START+INTERRUPT_ARM_DOORBELL_0)
|
||||||
|
@ -347,6 +360,8 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
|
|
||||||
|
|
||||||
#endif /* _BCM2708_IRQS_H_ */
|
#endif /* _BCM2708_IRQS_H_ */
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/platform.h b/arch/arm/mach-bcm2708/include/mach/platform.h
|
||||||
|
index 4d3c15d..89e72d1 100644
|
||||||
--- a/arch/arm/mach-bcm2708/include/mach/platform.h
|
--- a/arch/arm/mach-bcm2708/include/mach/platform.h
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/platform.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/platform.h
|
||||||
@@ -56,7 +56,9 @@
|
@@ -56,7 +56,9 @@
|
||||||
|
@ -359,9 +374,11 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
#define DMA_BASE (BCM2708_PERI_BASE + 0x7000) /* DMA controller */
|
#define DMA_BASE (BCM2708_PERI_BASE + 0x7000) /* DMA controller */
|
||||||
#define ARM_BASE (BCM2708_PERI_BASE + 0xB000) /* BCM2708 ARM control block */
|
#define ARM_BASE (BCM2708_PERI_BASE + 0xB000) /* BCM2708 ARM control block */
|
||||||
#define PM_BASE (BCM2708_PERI_BASE + 0x100000) /* Power Management, Reset controller and Watchdog registers */
|
#define PM_BASE (BCM2708_PERI_BASE + 0x100000) /* Power Management, Reset controller and Watchdog registers */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/Makefile b/drivers/usb/host/dwc_otg/Makefile
|
||||||
|
index c4c6e4e..6bd6a2e 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/Makefile
|
--- a/drivers/usb/host/dwc_otg/Makefile
|
||||||
+++ b/drivers/usb/host/dwc_otg/Makefile
|
+++ b/drivers/usb/host/dwc_otg/Makefile
|
||||||
@@ -36,6 +36,7 @@ dwc_otg-objs += dwc_otg_cil.o dwc_otg_ci
|
@@ -36,6 +36,7 @@ dwc_otg-objs += dwc_otg_cil.o dwc_otg_cil_intr.o
|
||||||
dwc_otg-objs += dwc_otg_pcd_linux.o dwc_otg_pcd.o dwc_otg_pcd_intr.o
|
dwc_otg-objs += dwc_otg_pcd_linux.o dwc_otg_pcd.o dwc_otg_pcd_intr.o
|
||||||
dwc_otg-objs += dwc_otg_hcd.o dwc_otg_hcd_linux.o dwc_otg_hcd_intr.o dwc_otg_hcd_queue.o dwc_otg_hcd_ddma.o
|
dwc_otg-objs += dwc_otg_hcd.o dwc_otg_hcd_linux.o dwc_otg_hcd_intr.o dwc_otg_hcd_queue.o dwc_otg_hcd_ddma.o
|
||||||
dwc_otg-objs += dwc_otg_adp.o
|
dwc_otg-objs += dwc_otg_adp.o
|
||||||
|
@ -369,6 +386,8 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
ifneq ($(CFI),)
|
ifneq ($(CFI),)
|
||||||
dwc_otg-objs += dwc_otg_cfi.o
|
dwc_otg-objs += dwc_otg_cfi.o
|
||||||
endif
|
endif
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
|
||||||
|
index 21804c4..b861b55 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
|
||||||
@@ -45,6 +45,9 @@
|
@@ -45,6 +45,9 @@
|
||||||
|
@ -381,7 +400,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
inline const char *op_state_str(dwc_otg_core_if_t * core_if)
|
inline const char *op_state_str(dwc_otg_core_if_t * core_if)
|
||||||
@@ -1351,10 +1354,15 @@ static inline uint32_t dwc_otg_read_comm
|
@@ -1351,10 +1354,15 @@ static inline uint32_t dwc_otg_read_common_intr(dwc_otg_core_if_t * core_if)
|
||||||
gintsts.d32, gintmsk.d32);
|
gintsts.d32, gintmsk.d32);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -400,9 +419,11 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_dbg.h b/drivers/usb/host/dwc_otg/dwc_otg_dbg.h
|
||||||
|
index 8681aa9..2ff1532 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_dbg.h
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_dbg.h
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_dbg.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_dbg.h
|
||||||
@@ -49,6 +49,7 @@ static inline uint32_t SET_DEBUG_LEVEL(c
|
@@ -49,6 +49,7 @@ static inline uint32_t SET_DEBUG_LEVEL(const uint32_t new)
|
||||||
return old;
|
return old;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -410,6 +431,8 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
/** When debug level has the DBG_CIL bit set, display CIL Debug messages. */
|
/** When debug level has the DBG_CIL bit set, display CIL Debug messages. */
|
||||||
#define DBG_CIL (0x2)
|
#define DBG_CIL (0x2)
|
||||||
/** When debug level has the DBG_CILV bit set, display CIL Verbose debug
|
/** When debug level has the DBG_CILV bit set, display CIL Verbose debug
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_driver.c b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
|
index e7f99e1..3ac720b 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
@@ -64,6 +64,8 @@ bool microframe_schedule=true;
|
@@ -64,6 +64,8 @@ bool microframe_schedule=true;
|
||||||
|
@ -421,7 +444,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
extern int pcd_init(
|
extern int pcd_init(
|
||||||
#ifdef LM_INTERFACE
|
#ifdef LM_INTERFACE
|
||||||
struct lm_device *_dev
|
struct lm_device *_dev
|
||||||
@@ -238,6 +240,10 @@ static struct dwc_otg_driver_module_para
|
@@ -238,6 +240,10 @@ static struct dwc_otg_driver_module_params dwc_otg_module_params = {
|
||||||
.adp_enable = -1,
|
.adp_enable = -1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -471,7 +494,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
#else
|
#else
|
||||||
{
|
{
|
||||||
struct map_desc desc = {
|
struct map_desc desc = {
|
||||||
@@ -1063,6 +1085,7 @@ static int __init dwc_otg_driver_init(vo
|
@@ -1063,6 +1085,7 @@ static int __init dwc_otg_driver_init(void)
|
||||||
printk(KERN_ERR "%s retval=%d\n", __func__, retval);
|
printk(KERN_ERR "%s retval=%d\n", __func__, retval);
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -479,7 +502,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
|
|
||||||
error = driver_create_file(drv, &driver_attr_version);
|
error = driver_create_file(drv, &driver_attr_version);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
@@ -1343,6 +1366,10 @@ MODULE_PARM_DESC(otg_ver, "OTG revision
|
@@ -1343,6 +1366,10 @@ MODULE_PARM_DESC(otg_ver, "OTG revision supported 0=OTG 1.3 1=OTG 2.0");
|
||||||
module_param(microframe_schedule, bool, 0444);
|
module_param(microframe_schedule, bool, 0444);
|
||||||
MODULE_PARM_DESC(microframe_schedule, "Enable the microframe scheduler");
|
MODULE_PARM_DESC(microframe_schedule, "Enable the microframe scheduler");
|
||||||
|
|
||||||
|
@ -490,9 +513,11 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
/** @page "Module Parameters"
|
/** @page "Module Parameters"
|
||||||
*
|
*
|
||||||
* The following parameters may be specified when starting the module.
|
* The following parameters may be specified when starting the module.
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
index 434d0c4..20f989e 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -53,6 +53,8 @@ static int last_sel_trans_num_avail_hc_a
|
@@ -53,6 +53,8 @@ static int last_sel_trans_num_avail_hc_at_start = 0;
|
||||||
static int last_sel_trans_num_avail_hc_at_end = 0;
|
static int last_sel_trans_num_avail_hc_at_end = 0;
|
||||||
#endif /* DEBUG_HOST_CHANNELS */
|
#endif /* DEBUG_HOST_CHANNELS */
|
||||||
|
|
||||||
|
@ -509,7 +534,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
/**
|
/**
|
||||||
* HCD Callback function for Remote Wakeup.
|
* HCD Callback function for Remote Wakeup.
|
||||||
*
|
*
|
||||||
@@ -1330,6 +1333,8 @@ dwc_otg_transaction_type_e dwc_otg_hcd_s
|
@@ -1330,6 +1333,8 @@ dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t * hcd)
|
||||||
&qh->qh_list_entry);
|
&qh->qh_list_entry);
|
||||||
DWC_SPINUNLOCK_IRQRESTORE(channel_lock, flags);
|
DWC_SPINUNLOCK_IRQRESTORE(channel_lock, flags);
|
||||||
|
|
||||||
|
@ -518,9 +543,11 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
if (ret_val == DWC_OTG_TRANSACTION_NONE) {
|
if (ret_val == DWC_OTG_TRANSACTION_NONE) {
|
||||||
ret_val = DWC_OTG_TRANSACTION_NON_PERIODIC;
|
ret_val = DWC_OTG_TRANSACTION_NON_PERIODIC;
|
||||||
} else {
|
} else {
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
|
index 8075595..dd30f47 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
@@ -594,7 +594,7 @@ extern void dwc_otg_hcd_queue_transactio
|
@@ -594,7 +594,7 @@ extern void dwc_otg_hcd_queue_transactions(dwc_otg_hcd_t * hcd,
|
||||||
/** @name Interrupt Handler Functions */
|
/** @name Interrupt Handler Functions */
|
||||||
/** @{ */
|
/** @{ */
|
||||||
extern int32_t dwc_otg_hcd_handle_intr(dwc_otg_hcd_t * dwc_otg_hcd);
|
extern int32_t dwc_otg_hcd_handle_intr(dwc_otg_hcd_t * dwc_otg_hcd);
|
||||||
|
@ -529,9 +556,11 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
extern int32_t dwc_otg_hcd_handle_rx_status_q_level_intr(dwc_otg_hcd_t *
|
extern int32_t dwc_otg_hcd_handle_rx_status_q_level_intr(dwc_otg_hcd_t *
|
||||||
dwc_otg_hcd);
|
dwc_otg_hcd);
|
||||||
extern int32_t dwc_otg_hcd_handle_np_tx_fifo_empty_intr(dwc_otg_hcd_t *
|
extern int32_t dwc_otg_hcd_handle_np_tx_fifo_empty_intr(dwc_otg_hcd_t *
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h b/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h
|
||||||
|
index b3dc806..04ca4c2 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_if.h
|
||||||
@@ -113,6 +113,11 @@ extern void dwc_otg_hcd_remove(dwc_otg_h
|
@@ -113,6 +113,11 @@ extern void dwc_otg_hcd_remove(dwc_otg_hcd_t * hcd);
|
||||||
*/
|
*/
|
||||||
extern int32_t dwc_otg_hcd_handle_intr(dwc_otg_hcd_t * dwc_otg_hcd);
|
extern int32_t dwc_otg_hcd_handle_intr(dwc_otg_hcd_t * dwc_otg_hcd);
|
||||||
|
|
||||||
|
@ -543,6 +572,8 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
/**
|
/**
|
||||||
* Returns private data set by
|
* Returns private data set by
|
||||||
* dwc_otg_hcd_set_priv_data function.
|
* dwc_otg_hcd_set_priv_data function.
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index 63c1b55..f1658fa 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -34,6 +34,11 @@
|
@@ -34,6 +34,11 @@
|
||||||
|
@ -673,7 +704,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
}
|
}
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
/* Don't print debug message in the interrupt handler on SOF */
|
/* Don't print debug message in the interrupt handler on SOF */
|
||||||
@@ -88,9 +162,14 @@ int32_t dwc_otg_hcd_handle_intr(dwc_otg_
|
@@ -88,9 +162,14 @@ int32_t dwc_otg_hcd_handle_intr(dwc_otg_hcd_t * dwc_otg_hcd)
|
||||||
"DWC OTG HCD Interrupt Detected gintsts&gintmsk=0x%08x core_if=%p\n",
|
"DWC OTG HCD Interrupt Detected gintsts&gintmsk=0x%08x core_if=%p\n",
|
||||||
gintsts.d32, core_if);
|
gintsts.d32, core_if);
|
||||||
#endif
|
#endif
|
||||||
|
@ -691,7 +722,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
}
|
}
|
||||||
if (gintsts.b.rxstsqlvl) {
|
if (gintsts.b.rxstsqlvl) {
|
||||||
retval |=
|
retval |=
|
||||||
@@ -138,11 +217,37 @@ int32_t dwc_otg_hcd_handle_intr(dwc_otg_
|
@@ -138,11 +217,37 @@ int32_t dwc_otg_hcd_handle_intr(dwc_otg_hcd_t * dwc_otg_hcd)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -729,7 +760,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
#warning Compiling code to track missed SOFs
|
#warning Compiling code to track missed SOFs
|
||||||
#define FRAME_NUM_ARRAY_SIZE 1000
|
#define FRAME_NUM_ARRAY_SIZE 1000
|
||||||
/**
|
/**
|
||||||
@@ -182,13 +287,15 @@ static inline void track_missed_sofs(uin
|
@@ -182,13 +287,15 @@ static inline void track_missed_sofs(uint16_t curr_frame_number)
|
||||||
* (micro)frame. Periodic transactions may be queued to the controller for the
|
* (micro)frame. Periodic transactions may be queued to the controller for the
|
||||||
* next (micro)frame.
|
* next (micro)frame.
|
||||||
*/
|
*/
|
||||||
|
@ -746,7 +777,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
|
|
||||||
hfnum.d32 =
|
hfnum.d32 =
|
||||||
DWC_READ_REG32(&hcd->core_if->host_if->host_global_regs->hfnum);
|
DWC_READ_REG32(&hcd->core_if->host_if->host_global_regs->hfnum);
|
||||||
@@ -218,12 +325,30 @@ int32_t dwc_otg_hcd_handle_sof_intr(dwc_
|
@@ -218,12 +325,30 @@ int32_t dwc_otg_hcd_handle_sof_intr(dwc_otg_hcd_t * hcd)
|
||||||
*/
|
*/
|
||||||
DWC_LIST_MOVE_HEAD(&hcd->periodic_sched_ready,
|
DWC_LIST_MOVE_HEAD(&hcd->periodic_sched_ready,
|
||||||
&qh->qh_list_entry);
|
&qh->qh_list_entry);
|
||||||
|
@ -777,12 +808,14 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
|
|
||||||
/* Clear interrupt */
|
/* Clear interrupt */
|
||||||
gintsts.b.sofintr = 1;
|
gintsts.b.sofintr = 1;
|
||||||
@@ -2102,5 +2227,4 @@ int32_t dwc_otg_hcd_handle_hc_n_intr(dwc
|
@@ -2102,5 +2227,4 @@ int32_t dwc_otg_hcd_handle_hc_n_intr(dwc_otg_hcd_t * dwc_otg_hcd, uint32_t num)
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
-
|
-
|
||||||
#endif /* DWC_DEVICE_ONLY */
|
#endif /* DWC_DEVICE_ONLY */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
|
index 4a985a6..9702f81 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
@@ -1,3 +1,4 @@
|
@@ -1,3 +1,4 @@
|
||||||
|
@ -816,7 +849,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
/** @name Linux HC Driver API Functions */
|
/** @name Linux HC Driver API Functions */
|
||||||
/** @{ */
|
/** @{ */
|
||||||
/* manage i/o requests, device state */
|
/* manage i/o requests, device state */
|
||||||
@@ -366,6 +372,12 @@ static struct dwc_otg_hcd_function_ops h
|
@@ -366,6 +372,12 @@ static struct dwc_otg_hcd_function_ops hcd_fops = {
|
||||||
.get_b_hnp_enable = _get_b_hnp_enable,
|
.get_b_hnp_enable = _get_b_hnp_enable,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -883,9 +916,11 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
/* Initialize the DWC OTG HCD. */
|
/* Initialize the DWC OTG HCD. */
|
||||||
dwc_otg_hcd = dwc_otg_hcd_alloc_hcd();
|
dwc_otg_hcd = dwc_otg_hcd_alloc_hcd();
|
||||||
if (!dwc_otg_hcd) {
|
if (!dwc_otg_hcd) {
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
|
index 08c1669..ac10323 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
@@ -572,6 +572,9 @@ static int check_max_xfer_size(dwc_otg_h
|
@@ -572,6 +572,9 @@ static int check_max_xfer_size(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh)
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -895,7 +930,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
/**
|
/**
|
||||||
* Schedules an interrupt or isochronous transfer in the periodic schedule.
|
* Schedules an interrupt or isochronous transfer in the periodic schedule.
|
||||||
*
|
*
|
||||||
@@ -630,8 +633,13 @@ static int schedule_periodic(dwc_otg_hcd
|
@@ -630,8 +633,13 @@ static int schedule_periodic(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh)
|
||||||
DWC_LIST_INSERT_TAIL(&hcd->periodic_sched_ready, &qh->qh_list_entry);
|
DWC_LIST_INSERT_TAIL(&hcd->periodic_sched_ready, &qh->qh_list_entry);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -911,7 +946,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!microframe_schedule) {
|
if (!microframe_schedule) {
|
||||||
@@ -645,6 +653,7 @@ static int schedule_periodic(dwc_otg_hcd
|
@@ -645,6 +653,7 @@ static int schedule_periodic(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh)
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -919,7 +954,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
/**
|
/**
|
||||||
* This function adds a QH to either the non periodic or periodic schedule if
|
* This function adds a QH to either the non periodic or periodic schedule if
|
||||||
* it is not already in the schedule. If the QH is already in the schedule, no
|
* it is not already in the schedule. If the QH is already in the schedule, no
|
||||||
@@ -667,6 +676,7 @@ int dwc_otg_hcd_qh_add(dwc_otg_hcd_t * h
|
@@ -667,6 +676,7 @@ int dwc_otg_hcd_qh_add(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh)
|
||||||
/* Always start in the inactive schedule. */
|
/* Always start in the inactive schedule. */
|
||||||
DWC_LIST_INSERT_TAIL(&hcd->non_periodic_sched_inactive,
|
DWC_LIST_INSERT_TAIL(&hcd->non_periodic_sched_inactive,
|
||||||
&qh->qh_list_entry);
|
&qh->qh_list_entry);
|
||||||
|
@ -927,7 +962,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
} else {
|
} else {
|
||||||
status = schedule_periodic(hcd, qh);
|
status = schedule_periodic(hcd, qh);
|
||||||
if ( !hcd->periodic_qh_count ) {
|
if ( !hcd->periodic_qh_count ) {
|
||||||
@@ -767,6 +777,7 @@ void dwc_otg_hcd_qh_deactivate(dwc_otg_h
|
@@ -767,6 +777,7 @@ void dwc_otg_hcd_qh_deactivate(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh,
|
||||||
if (sched_next_periodic_split) {
|
if (sched_next_periodic_split) {
|
||||||
|
|
||||||
qh->sched_frame = frame_number;
|
qh->sched_frame = frame_number;
|
||||||
|
@ -935,7 +970,7 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
if (dwc_frame_num_le(frame_number,
|
if (dwc_frame_num_le(frame_number,
|
||||||
dwc_frame_num_inc
|
dwc_frame_num_inc
|
||||||
(qh->start_split_frame,
|
(qh->start_split_frame,
|
||||||
@@ -815,6 +826,11 @@ void dwc_otg_hcd_qh_deactivate(dwc_otg_h
|
@@ -815,6 +826,11 @@ void dwc_otg_hcd_qh_deactivate(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh,
|
||||||
DWC_LIST_MOVE_HEAD(&hcd->periodic_sched_ready,
|
DWC_LIST_MOVE_HEAD(&hcd->periodic_sched_ready,
|
||||||
&qh->qh_list_entry);
|
&qh->qh_list_entry);
|
||||||
} else {
|
} else {
|
||||||
|
@ -947,6 +982,9 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
DWC_LIST_MOVE_HEAD
|
DWC_LIST_MOVE_HEAD
|
||||||
(&hcd->periodic_sched_inactive,
|
(&hcd->periodic_sched_inactive,
|
||||||
&qh->qh_list_entry);
|
&qh->qh_list_entry);
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c b/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c
|
||||||
|
new file mode 100755
|
||||||
|
index 0000000..b70ca68
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.c
|
||||||
@@ -0,0 +1,113 @@
|
@@ -0,0 +1,113 @@
|
||||||
|
@ -1063,6 +1101,9 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
+
|
+
|
||||||
+ return;
|
+ return;
|
||||||
+}
|
+}
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h b/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h
|
||||||
|
new file mode 100755
|
||||||
|
index 0000000..22f28e1
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h
|
||||||
@@ -0,0 +1,36 @@
|
@@ -0,0 +1,36 @@
|
||||||
|
@ -1102,6 +1143,8 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
+#endif
|
+#endif
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h b/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
|
||||||
|
index a7e9076..bb1c42d 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_os_dep.h
|
||||||
@@ -97,6 +97,9 @@ typedef struct os_dependent {
|
@@ -97,6 +97,9 @@ typedef struct os_dependent {
|
||||||
|
@ -1114,3 +1157,6 @@ Subject: [PATCH 027/174] Add FIQ patch to dwc_otg driver. Enable with
|
||||||
#ifdef LM_INTERFACE
|
#ifdef LM_INTERFACE
|
||||||
struct lm_device *lmdev;
|
struct lm_device *lmdev;
|
||||||
#elif defined(PCI_INTERFACE)
|
#elif defined(PCI_INTERFACE)
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,13 +1,15 @@
|
||||||
From dae7c3832370e9a807907128ce37070f40fbb882 Mon Sep 17 00:00:00 2001
|
From 74275981ae08b9a054457568070c1f9aef2dc594 Mon Sep 17 00:00:00 2001
|
||||||
From: Jo Are By <grimjoey@gmail.com>
|
From: Jo Are By <grimjoey@gmail.com>
|
||||||
Date: Sun, 17 Mar 2013 17:45:41 +0100
|
Date: Sun, 17 Mar 2013 17:45:41 +0100
|
||||||
Subject: [PATCH 029/174] Add device ID (330d)
|
Subject: [PATCH 029/196] Add device ID (330d)
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c | 2 ++
|
drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c | 2 ++
|
||||||
drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c | 1 +
|
drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c | 1 +
|
||||||
2 files changed, 3 insertions(+)
|
2 files changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c b/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c
|
||||||
|
index eb5ea29..6cac2d5 100644
|
||||||
--- a/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c
|
--- a/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c
|
||||||
+++ b/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c
|
+++ b/drivers/net/wireless/rtl8192cu/hal/rtl8192c/usb/usb_halinit.c
|
||||||
@@ -3786,6 +3786,8 @@ _ReadIDs(
|
@@ -3786,6 +3786,8 @@ _ReadIDs(
|
||||||
|
@ -19,9 +21,11 @@ Subject: [PATCH 029/174] Add device ID (330d)
|
||||||
break;
|
break;
|
||||||
case EEPROM_CID_WHQL:
|
case EEPROM_CID_WHQL:
|
||||||
/*
|
/*
|
||||||
|
diff --git a/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c b/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
|
||||||
|
index 134acdc..9d303f4 100644
|
||||||
--- a/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
|
--- a/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
|
||||||
+++ b/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
|
+++ b/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
|
||||||
@@ -137,6 +137,7 @@ static struct usb_device_id rtw_usb_id_t
|
@@ -137,6 +137,7 @@ static struct usb_device_id rtw_usb_id_tbl[] ={
|
||||||
{USB_DEVICE(0x2001, 0x3307)},//D-Link - Cameo
|
{USB_DEVICE(0x2001, 0x3307)},//D-Link - Cameo
|
||||||
{USB_DEVICE(0x2001, 0x330A)},//D-Link - Alpha
|
{USB_DEVICE(0x2001, 0x330A)},//D-Link - Alpha
|
||||||
{USB_DEVICE(0x2001, 0x3309)},//D-Link - Alpha
|
{USB_DEVICE(0x2001, 0x3309)},//D-Link - Alpha
|
||||||
|
@ -29,3 +33,6 @@ Subject: [PATCH 029/174] Add device ID (330d)
|
||||||
{USB_DEVICE(0x0586, 0x341F)},//Zyxel - Abocom
|
{USB_DEVICE(0x0586, 0x341F)},//Zyxel - Abocom
|
||||||
{USB_DEVICE(0x7392, 0x7822)},//Edimax - Edimax
|
{USB_DEVICE(0x7392, 0x7822)},//Edimax - Edimax
|
||||||
{USB_DEVICE(0x2019, 0xAB2B)},//Planex - Abocom
|
{USB_DEVICE(0x2019, 0xAB2B)},//Planex - Abocom
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From f56b0b76fdd4b17bd359536ae926c4cb04706e54 Mon Sep 17 00:00:00 2001
|
From f97cc1b1a4c868500cee6b016f54d78bdd3cdc26 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Sat, 8 Sep 2012 15:17:53 +0100
|
Date: Sat, 8 Sep 2012 15:17:53 +0100
|
||||||
Subject: [PATCH 030/174] Avoid dynamic memory allocation for channel lock in
|
Subject: [PATCH 030/196] Avoid dynamic memory allocation for channel lock in
|
||||||
USB driver. Thanks ddv2005.
|
USB driver. Thanks ddv2005.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -11,9 +11,11 @@ Subject: [PATCH 030/174] Avoid dynamic memory allocation for channel lock in
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 3 +--
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 3 +--
|
||||||
4 files changed, 6 insertions(+), 8 deletions(-)
|
4 files changed, 6 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
index 20f989e..0ce7e46 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -822,6 +822,7 @@ static void dwc_otg_hcd_free(dwc_otg_hcd
|
@@ -822,6 +822,7 @@ static void dwc_otg_hcd_free(dwc_otg_hcd_t * dwc_otg_hcd)
|
||||||
} else if (dwc_otg_hcd->status_buf != NULL) {
|
} else if (dwc_otg_hcd->status_buf != NULL) {
|
||||||
DWC_FREE(dwc_otg_hcd->status_buf);
|
DWC_FREE(dwc_otg_hcd->status_buf);
|
||||||
}
|
}
|
||||||
|
@ -21,7 +23,7 @@ Subject: [PATCH 030/174] Avoid dynamic memory allocation for channel lock in
|
||||||
DWC_SPINLOCK_FREE(dwc_otg_hcd->lock);
|
DWC_SPINLOCK_FREE(dwc_otg_hcd->lock);
|
||||||
/* Set core_if's lock pointer to NULL */
|
/* Set core_if's lock pointer to NULL */
|
||||||
dwc_otg_hcd->core_if->lock = NULL;
|
dwc_otg_hcd->core_if->lock = NULL;
|
||||||
@@ -848,6 +849,7 @@ int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd
|
@@ -848,6 +849,7 @@ int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd, dwc_otg_core_if_t * core_if)
|
||||||
dwc_hc_t *channel;
|
dwc_hc_t *channel;
|
||||||
|
|
||||||
hcd->lock = DWC_SPINLOCK_ALLOC();
|
hcd->lock = DWC_SPINLOCK_ALLOC();
|
||||||
|
@ -29,7 +31,7 @@ Subject: [PATCH 030/174] Avoid dynamic memory allocation for channel lock in
|
||||||
DWC_DEBUGPL(DBG_HCDV, "init of HCD %p given core_if %p\n",
|
DWC_DEBUGPL(DBG_HCDV, "init of HCD %p given core_if %p\n",
|
||||||
hcd, core_if);
|
hcd, core_if);
|
||||||
if (!hcd->lock) {
|
if (!hcd->lock) {
|
||||||
@@ -1248,7 +1250,7 @@ dwc_otg_transaction_type_e dwc_otg_hcd_s
|
@@ -1248,7 +1250,7 @@ dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t * hcd)
|
||||||
dwc_otg_qh_t *qh;
|
dwc_otg_qh_t *qh;
|
||||||
int num_channels;
|
int num_channels;
|
||||||
dwc_irqflags_t flags;
|
dwc_irqflags_t flags;
|
||||||
|
@ -38,7 +40,7 @@ Subject: [PATCH 030/174] Avoid dynamic memory allocation for channel lock in
|
||||||
dwc_otg_transaction_type_e ret_val = DWC_OTG_TRANSACTION_NONE;
|
dwc_otg_transaction_type_e ret_val = DWC_OTG_TRANSACTION_NONE;
|
||||||
|
|
||||||
#ifdef DEBUG_SOF
|
#ifdef DEBUG_SOF
|
||||||
@@ -1348,8 +1350,6 @@ dwc_otg_transaction_type_e dwc_otg_hcd_s
|
@@ -1348,8 +1350,6 @@ dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t * hcd)
|
||||||
#ifdef DEBUG_HOST_CHANNELS
|
#ifdef DEBUG_HOST_CHANNELS
|
||||||
last_sel_trans_num_avail_hc_at_end = hcd->available_host_channels;
|
last_sel_trans_num_avail_hc_at_end = hcd->available_host_channels;
|
||||||
#endif /* DEBUG_HOST_CHANNELS */
|
#endif /* DEBUG_HOST_CHANNELS */
|
||||||
|
@ -47,6 +49,8 @@ Subject: [PATCH 030/174] Avoid dynamic memory allocation for channel lock in
|
||||||
return ret_val;
|
return ret_val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
|
index dd30f47..6d82127 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
@@ -548,7 +548,7 @@ struct dwc_otg_hcd {
|
@@ -548,7 +548,7 @@ struct dwc_otg_hcd {
|
||||||
|
@ -58,9 +62,11 @@ Subject: [PATCH 030/174] Avoid dynamic memory allocation for channel lock in
|
||||||
/**
|
/**
|
||||||
* Private data that could be used by OS wrapper.
|
* Private data that could be used by OS wrapper.
|
||||||
*/
|
*/
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c
|
||||||
|
index d0d5fa1..a2ceb77 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_ddma.c
|
||||||
@@ -276,7 +276,7 @@ void dump_frame_list(dwc_otg_hcd_t * hcd
|
@@ -276,7 +276,7 @@ void dump_frame_list(dwc_otg_hcd_t * hcd)
|
||||||
static void release_channel_ddma(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh)
|
static void release_channel_ddma(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh)
|
||||||
{
|
{
|
||||||
dwc_irqflags_t flags;
|
dwc_irqflags_t flags;
|
||||||
|
@ -69,7 +75,7 @@ Subject: [PATCH 030/174] Avoid dynamic memory allocation for channel lock in
|
||||||
|
|
||||||
dwc_hc_t *hc = qh->channel;
|
dwc_hc_t *hc = qh->channel;
|
||||||
if (dwc_qh_is_non_per(qh)) {
|
if (dwc_qh_is_non_per(qh)) {
|
||||||
@@ -306,7 +306,6 @@ static void release_channel_ddma(dwc_otg
|
@@ -306,7 +306,6 @@ static void release_channel_ddma(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh)
|
||||||
dwc_memset(qh->desc_list, 0x00,
|
dwc_memset(qh->desc_list, 0x00,
|
||||||
sizeof(dwc_otg_host_dma_desc_t) * max_desc_num(qh));
|
sizeof(dwc_otg_host_dma_desc_t) * max_desc_num(qh));
|
||||||
}
|
}
|
||||||
|
@ -77,9 +83,11 @@ Subject: [PATCH 030/174] Avoid dynamic memory allocation for channel lock in
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index f1658fa..21e8f09 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -922,7 +922,7 @@ static void release_channel(dwc_otg_hcd_
|
@@ -922,7 +922,7 @@ static void release_channel(dwc_otg_hcd_t * hcd,
|
||||||
dwc_otg_transaction_type_e tr_type;
|
dwc_otg_transaction_type_e tr_type;
|
||||||
int free_qtd;
|
int free_qtd;
|
||||||
dwc_irqflags_t flags;
|
dwc_irqflags_t flags;
|
||||||
|
@ -96,3 +104,6 @@ Subject: [PATCH 030/174] Avoid dynamic memory allocation for channel lock in
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From d19db6057337b577baab7766718781d55c402fbb Mon Sep 17 00:00:00 2001
|
From 083183f7770ae4fb6f23c99a64a3c5058b9b3b40 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Sat, 2 Nov 2013 22:44:41 +0000
|
Date: Sat, 2 Nov 2013 22:44:41 +0000
|
||||||
Subject: [PATCH 031/174] Add cpufreq driver
|
Subject: [PATCH 031/196] Add cpufreq driver
|
||||||
|
|
||||||
---
|
---
|
||||||
arch/arm/Kconfig | 1 +
|
arch/arm/Kconfig | 1 +
|
||||||
|
@ -11,6 +11,8 @@ Subject: [PATCH 031/174] Add cpufreq driver
|
||||||
4 files changed, 249 insertions(+)
|
4 files changed, 249 insertions(+)
|
||||||
create mode 100755 drivers/cpufreq/bcm2835-cpufreq.c
|
create mode 100755 drivers/cpufreq/bcm2835-cpufreq.c
|
||||||
|
|
||||||
|
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
|
||||||
|
index 5468f1f..4e36ccd 100644
|
||||||
--- a/arch/arm/Kconfig
|
--- a/arch/arm/Kconfig
|
||||||
+++ b/arch/arm/Kconfig
|
+++ b/arch/arm/Kconfig
|
||||||
@@ -369,6 +369,7 @@ config ARCH_BCM2708
|
@@ -369,6 +369,7 @@ config ARCH_BCM2708
|
||||||
|
@ -21,6 +23,8 @@ Subject: [PATCH 031/174] Add cpufreq driver
|
||||||
select GENERIC_CLOCKEVENTS
|
select GENERIC_CLOCKEVENTS
|
||||||
select ARM_ERRATA_411920
|
select ARM_ERRATA_411920
|
||||||
select MACH_BCM2708
|
select MACH_BCM2708
|
||||||
|
diff --git a/drivers/cpufreq/Kconfig.arm b/drivers/cpufreq/Kconfig.arm
|
||||||
|
index 6e57543..bf40783 100644
|
||||||
--- a/drivers/cpufreq/Kconfig.arm
|
--- a/drivers/cpufreq/Kconfig.arm
|
||||||
+++ b/drivers/cpufreq/Kconfig.arm
|
+++ b/drivers/cpufreq/Kconfig.arm
|
||||||
@@ -150,3 +150,11 @@ config ARM_SPEAR_CPUFREQ
|
@@ -150,3 +150,11 @@ config ARM_SPEAR_CPUFREQ
|
||||||
|
@ -35,9 +39,11 @@ Subject: [PATCH 031/174] Add cpufreq driver
|
||||||
+ This adds the CPUFreq driver for BCM2835
|
+ This adds the CPUFreq driver for BCM2835
|
||||||
+
|
+
|
||||||
+ If in doubt, say N.
|
+ If in doubt, say N.
|
||||||
|
diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile
|
||||||
|
index 3b95322..3a30bab 100644
|
||||||
--- a/drivers/cpufreq/Makefile
|
--- a/drivers/cpufreq/Makefile
|
||||||
+++ b/drivers/cpufreq/Makefile
|
+++ b/drivers/cpufreq/Makefile
|
||||||
@@ -72,6 +72,7 @@ obj-$(CONFIG_ARM_SA1100_CPUFREQ) += sa11
|
@@ -72,6 +72,7 @@ obj-$(CONFIG_ARM_SA1100_CPUFREQ) += sa1100-cpufreq.o
|
||||||
obj-$(CONFIG_ARM_SA1110_CPUFREQ) += sa1110-cpufreq.o
|
obj-$(CONFIG_ARM_SA1110_CPUFREQ) += sa1110-cpufreq.o
|
||||||
obj-$(CONFIG_ARM_SPEAR_CPUFREQ) += spear-cpufreq.o
|
obj-$(CONFIG_ARM_SPEAR_CPUFREQ) += spear-cpufreq.o
|
||||||
obj-$(CONFIG_ARCH_TEGRA) += tegra-cpufreq.o
|
obj-$(CONFIG_ARCH_TEGRA) += tegra-cpufreq.o
|
||||||
|
@ -45,6 +51,9 @@ Subject: [PATCH 031/174] Add cpufreq driver
|
||||||
|
|
||||||
##################################################################################
|
##################################################################################
|
||||||
# PowerPC platform drivers
|
# PowerPC platform drivers
|
||||||
|
diff --git a/drivers/cpufreq/bcm2835-cpufreq.c b/drivers/cpufreq/bcm2835-cpufreq.c
|
||||||
|
new file mode 100755
|
||||||
|
index 0000000..822139a
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/cpufreq/bcm2835-cpufreq.c
|
+++ b/drivers/cpufreq/bcm2835-cpufreq.c
|
||||||
@@ -0,0 +1,239 @@
|
@@ -0,0 +1,239 @@
|
||||||
|
@ -287,3 +296,6 @@ Subject: [PATCH 031/174] Add cpufreq driver
|
||||||
+module_init(bcm2835_cpufreq_module_init);
|
+module_init(bcm2835_cpufreq_module_init);
|
||||||
+module_exit(bcm2835_cpufreq_module_exit);
|
+module_exit(bcm2835_cpufreq_module_exit);
|
||||||
+
|
+
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 99e6d36a5f752bb0237a61143bea29c93e6da22c Mon Sep 17 00:00:00 2001
|
From 56822de577325e209a9ecfcf3e62d8bb70c2f2cc Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Mon, 8 Apr 2013 21:12:48 +0100
|
Date: Mon, 8 Apr 2013 21:12:48 +0100
|
||||||
Subject: [PATCH 032/174] Add NAK holdoff scheme. Enabled by default, disable
|
Subject: [PATCH 032/196] Add NAK holdoff scheme. Enabled by default, disable
|
||||||
with dwc_otg.nak_holdoff_enable=0. Thanks gsh
|
with dwc_otg.nak_holdoff_enable=0. Thanks gsh
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -12,9 +12,11 @@ Subject: [PATCH 032/174] Add NAK holdoff scheme. Enabled by default, disable
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c | 19 +++++++++++++++++++
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c | 19 +++++++++++++++++++
|
||||||
5 files changed, 70 insertions(+), 4 deletions(-)
|
5 files changed, 70 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_driver.c b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
|
index 3ac720b..d353a9a 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
@@ -243,6 +243,9 @@ static struct dwc_otg_driver_module_para
|
@@ -243,6 +243,9 @@ static struct dwc_otg_driver_module_params dwc_otg_module_params = {
|
||||||
//Global variable to switch the fiq fix on or off (declared in bcm2708.c)
|
//Global variable to switch the fiq fix on or off (declared in bcm2708.c)
|
||||||
extern bool fiq_fix_enable;
|
extern bool fiq_fix_enable;
|
||||||
|
|
||||||
|
@ -24,7 +26,7 @@ Subject: [PATCH 032/174] Add NAK holdoff scheme. Enabled by default, disable
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This function shows the Driver Version.
|
* This function shows the Driver Version.
|
||||||
@@ -1086,6 +1089,7 @@ static int __init dwc_otg_driver_init(vo
|
@@ -1086,6 +1089,7 @@ static int __init dwc_otg_driver_init(void)
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
printk(KERN_DEBUG "dwc_otg: FIQ %s\n", fiq_fix_enable ? "enabled":"disabled");
|
printk(KERN_DEBUG "dwc_otg: FIQ %s\n", fiq_fix_enable ? "enabled":"disabled");
|
||||||
|
@ -32,7 +34,7 @@ Subject: [PATCH 032/174] Add NAK holdoff scheme. Enabled by default, disable
|
||||||
|
|
||||||
error = driver_create_file(drv, &driver_attr_version);
|
error = driver_create_file(drv, &driver_attr_version);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
@@ -1366,9 +1370,10 @@ MODULE_PARM_DESC(otg_ver, "OTG revision
|
@@ -1366,9 +1370,10 @@ MODULE_PARM_DESC(otg_ver, "OTG revision supported 0=OTG 1.3 1=OTG 2.0");
|
||||||
module_param(microframe_schedule, bool, 0444);
|
module_param(microframe_schedule, bool, 0444);
|
||||||
MODULE_PARM_DESC(microframe_schedule, "Enable the microframe scheduler");
|
MODULE_PARM_DESC(microframe_schedule, "Enable the microframe scheduler");
|
||||||
|
|
||||||
|
@ -44,9 +46,11 @@ Subject: [PATCH 032/174] Add NAK holdoff scheme. Enabled by default, disable
|
||||||
|
|
||||||
/** @page "Module Parameters"
|
/** @page "Module Parameters"
|
||||||
*
|
*
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
index 0ce7e46..2b7945a 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -527,6 +527,8 @@ int dwc_otg_hcd_urb_dequeue(dwc_otg_hcd_
|
@@ -527,6 +527,8 @@ int dwc_otg_hcd_urb_dequeue(dwc_otg_hcd_t * hcd,
|
||||||
{
|
{
|
||||||
dwc_otg_qh_t *qh;
|
dwc_otg_qh_t *qh;
|
||||||
dwc_otg_qtd_t *urb_qtd;
|
dwc_otg_qtd_t *urb_qtd;
|
||||||
|
@ -55,7 +59,7 @@ Subject: [PATCH 032/174] Add NAK holdoff scheme. Enabled by default, disable
|
||||||
|
|
||||||
#ifdef DEBUG /* integrity checks (Broadcom) */
|
#ifdef DEBUG /* integrity checks (Broadcom) */
|
||||||
|
|
||||||
@@ -543,14 +545,17 @@ int dwc_otg_hcd_urb_dequeue(dwc_otg_hcd_
|
@@ -543,14 +545,17 @@ int dwc_otg_hcd_urb_dequeue(dwc_otg_hcd_t * hcd,
|
||||||
return -DWC_E_INVALID;
|
return -DWC_E_INVALID;
|
||||||
}
|
}
|
||||||
urb_qtd = dwc_otg_urb->qtd;
|
urb_qtd = dwc_otg_urb->qtd;
|
||||||
|
@ -73,7 +77,7 @@ Subject: [PATCH 032/174] Add NAK holdoff scheme. Enabled by default, disable
|
||||||
if (CHK_DEBUG_LEVEL(DBG_HCDV | DBG_HCD_URB)) {
|
if (CHK_DEBUG_LEVEL(DBG_HCDV | DBG_HCD_URB)) {
|
||||||
if (urb_qtd->in_process) {
|
if (urb_qtd->in_process) {
|
||||||
dump_channel_info(hcd, qh);
|
dump_channel_info(hcd, qh);
|
||||||
@@ -1309,6 +1314,22 @@ dwc_otg_transaction_type_e dwc_otg_hcd_s
|
@@ -1309,6 +1314,22 @@ dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t * hcd)
|
||||||
num_channels - hcd->periodic_channels) &&
|
num_channels - hcd->periodic_channels) &&
|
||||||
!DWC_CIRCLEQ_EMPTY(&hcd->free_hc_list)) {
|
!DWC_CIRCLEQ_EMPTY(&hcd->free_hc_list)) {
|
||||||
|
|
||||||
|
@ -96,7 +100,7 @@ Subject: [PATCH 032/174] Add NAK holdoff scheme. Enabled by default, disable
|
||||||
if (microframe_schedule) {
|
if (microframe_schedule) {
|
||||||
DWC_SPINLOCK_IRQSAVE(channel_lock, &flags);
|
DWC_SPINLOCK_IRQSAVE(channel_lock, &flags);
|
||||||
if (hcd->available_host_channels < 1) {
|
if (hcd->available_host_channels < 1) {
|
||||||
@@ -1321,7 +1342,6 @@ dwc_otg_transaction_type_e dwc_otg_hcd_s
|
@@ -1321,7 +1342,6 @@ dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t * hcd)
|
||||||
last_sel_trans_num_nonper_scheduled++;
|
last_sel_trans_num_nonper_scheduled++;
|
||||||
#endif /* DEBUG_HOST_CHANNELS */
|
#endif /* DEBUG_HOST_CHANNELS */
|
||||||
}
|
}
|
||||||
|
@ -104,6 +108,8 @@ Subject: [PATCH 032/174] Add NAK holdoff scheme. Enabled by default, disable
|
||||||
|
|
||||||
assign_and_init_hc(hcd, qh);
|
assign_and_init_hc(hcd, qh);
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
|
index 6d82127..45e44ea 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
@@ -321,6 +321,11 @@ typedef struct dwc_otg_qh {
|
@@ -321,6 +321,11 @@ typedef struct dwc_otg_qh {
|
||||||
|
@ -118,6 +124,8 @@ Subject: [PATCH 032/174] Add NAK holdoff scheme. Enabled by default, disable
|
||||||
/** (micro)frame at which last start split was initialized. */
|
/** (micro)frame at which last start split was initialized. */
|
||||||
uint16_t start_split_frame;
|
uint16_t start_split_frame;
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index 21e8f09..3e762e2 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -56,7 +56,12 @@ int fiq_done, int_done;
|
@@ -56,7 +56,12 @@ int fiq_done, int_done;
|
||||||
|
@ -143,7 +151,7 @@ Subject: [PATCH 032/174] Add NAK holdoff scheme. Enabled by default, disable
|
||||||
if((jiffies / HZ) > last_time)
|
if((jiffies / HZ) > last_time)
|
||||||
{
|
{
|
||||||
/* Once a second output the fiq and irq numbers, useful for debug */
|
/* Once a second output the fiq and irq numbers, useful for debug */
|
||||||
@@ -1419,6 +1424,18 @@ static int32_t handle_hc_nak_intr(dwc_ot
|
@@ -1419,6 +1424,18 @@ static int32_t handle_hc_nak_intr(dwc_otg_hcd_t * hcd,
|
||||||
"NAK Received--\n", hc->hc_num);
|
"NAK Received--\n", hc->hc_num);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -162,9 +170,11 @@ Subject: [PATCH 032/174] Add NAK holdoff scheme. Enabled by default, disable
|
||||||
* Handle NAK for IN/OUT SSPLIT/CSPLIT transfers, bulk, control, and
|
* Handle NAK for IN/OUT SSPLIT/CSPLIT transfers, bulk, control, and
|
||||||
* interrupt. Re-start the SSPLIT transfer.
|
* interrupt. Re-start the SSPLIT transfer.
|
||||||
*/
|
*/
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
|
index ac10323..e6b2a7b 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
@@ -181,6 +181,7 @@ void qh_init(dwc_otg_hcd_t * hcd, dwc_ot
|
@@ -181,6 +181,7 @@ void qh_init(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh, dwc_otg_hcd_urb_t * urb)
|
||||||
if (microframe_schedule)
|
if (microframe_schedule)
|
||||||
qh->speed = dev_speed;
|
qh->speed = dev_speed;
|
||||||
|
|
||||||
|
@ -172,7 +182,7 @@ Subject: [PATCH 032/174] Add NAK holdoff scheme. Enabled by default, disable
|
||||||
|
|
||||||
if (((dev_speed == USB_SPEED_LOW) ||
|
if (((dev_speed == USB_SPEED_LOW) ||
|
||||||
(dev_speed == USB_SPEED_FULL)) &&
|
(dev_speed == USB_SPEED_FULL)) &&
|
||||||
@@ -764,6 +765,24 @@ void dwc_otg_hcd_qh_deactivate(dwc_otg_h
|
@@ -764,6 +765,24 @@ void dwc_otg_hcd_qh_deactivate(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh,
|
||||||
int sched_next_periodic_split)
|
int sched_next_periodic_split)
|
||||||
{
|
{
|
||||||
if (dwc_qh_is_non_per(qh)) {
|
if (dwc_qh_is_non_per(qh)) {
|
||||||
|
@ -197,3 +207,6 @@ Subject: [PATCH 032/174] Add NAK holdoff scheme. Enabled by default, disable
|
||||||
dwc_otg_hcd_qh_remove(hcd, qh);
|
dwc_otg_hcd_qh_remove(hcd, qh);
|
||||||
if (!DWC_CIRCLEQ_EMPTY(&qh->qtd_list)) {
|
if (!DWC_CIRCLEQ_EMPTY(&qh->qtd_list)) {
|
||||||
/* Add back to inactive non-periodic schedule. */
|
/* Add back to inactive non-periodic schedule. */
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 40934fa5ae748fab27146883be929d4190b35c16 Mon Sep 17 00:00:00 2001
|
From 4c7d4bffe1986d856b37460f87950dabe29c616e Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Tue, 26 Mar 2013 19:24:24 +0000
|
Date: Tue, 26 Mar 2013 19:24:24 +0000
|
||||||
Subject: [PATCH 033/174] Added hwmon/thermal driver for reporting core
|
Subject: [PATCH 033/196] Added hwmon/thermal driver for reporting core
|
||||||
temperature. Thanks Dorian
|
temperature. Thanks Dorian
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -16,9 +16,11 @@ Subject: [PATCH 033/174] Added hwmon/thermal driver for reporting core
|
||||||
create mode 100644 drivers/hwmon/bcm2835-hwmon.c
|
create mode 100644 drivers/hwmon/bcm2835-hwmon.c
|
||||||
create mode 100644 drivers/thermal/bcm2835-thermal.c
|
create mode 100644 drivers/thermal/bcm2835-thermal.c
|
||||||
|
|
||||||
--- a/arch/arm/mach-bcm2708/bcm2708.c
|
Index: linux-3.10.49/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
+++ b/arch/arm/mach-bcm2708/bcm2708.c
|
===================================================================
|
||||||
@@ -562,6 +562,14 @@ static struct platform_device bcm2708_bs
|
--- linux-3.10.49.orig/arch/arm/mach-bcm2708/bcm2708.c 2014-09-27 11:40:40.999449257 -0700
|
||||||
|
+++ linux-3.10.49/arch/arm/mach-bcm2708/bcm2708.c 2014-09-27 11:40:40.979449258 -0700
|
||||||
|
@@ -562,6 +562,14 @@
|
||||||
.resource = bcm2708_bsc1_resources,
|
.resource = bcm2708_bsc1_resources,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -33,7 +35,7 @@ Subject: [PATCH 033/174] Added hwmon/thermal driver for reporting core
|
||||||
int __init bcm_register_device(struct platform_device *pdev)
|
int __init bcm_register_device(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
@@ -682,6 +690,9 @@ void __init bcm2708_init(void)
|
@@ -682,6 +690,9 @@
|
||||||
bcm_register_device(&bcm2708_bsc0_device);
|
bcm_register_device(&bcm2708_bsc0_device);
|
||||||
bcm_register_device(&bcm2708_bsc1_device);
|
bcm_register_device(&bcm2708_bsc1_device);
|
||||||
|
|
||||||
|
@ -43,9 +45,11 @@ Subject: [PATCH 033/174] Added hwmon/thermal driver for reporting core
|
||||||
for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
|
for (i = 0; i < ARRAY_SIZE(amba_devs); i++) {
|
||||||
struct amba_device *d = amba_devs[i];
|
struct amba_device *d = amba_devs[i];
|
||||||
amba_device_register(d, &iomem_resource);
|
amba_device_register(d, &iomem_resource);
|
||||||
--- a/drivers/hwmon/Kconfig
|
Index: linux-3.10.49/drivers/hwmon/Kconfig
|
||||||
+++ b/drivers/hwmon/Kconfig
|
===================================================================
|
||||||
@@ -1537,6 +1537,16 @@ config SENSORS_MC13783_ADC
|
--- linux-3.10.49.orig/drivers/hwmon/Kconfig 2014-09-27 11:40:40.999449257 -0700
|
||||||
|
+++ linux-3.10.49/drivers/hwmon/Kconfig 2014-09-27 11:40:40.979449258 -0700
|
||||||
|
@@ -1537,6 +1537,16 @@
|
||||||
help
|
help
|
||||||
Support for the A/D converter on MC13783 and MC13892 PMIC.
|
Support for the A/D converter on MC13783 and MC13892 PMIC.
|
||||||
|
|
||||||
|
@ -62,8 +66,10 @@ Subject: [PATCH 033/174] Added hwmon/thermal driver for reporting core
|
||||||
if ACPI
|
if ACPI
|
||||||
|
|
||||||
comment "ACPI drivers"
|
comment "ACPI drivers"
|
||||||
--- /dev/null
|
Index: linux-3.10.49/drivers/hwmon/bcm2835-hwmon.c
|
||||||
+++ b/drivers/hwmon/bcm2835-hwmon.c
|
===================================================================
|
||||||
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
|
+++ linux-3.10.49/drivers/hwmon/bcm2835-hwmon.c 2014-09-27 11:40:40.979449258 -0700
|
||||||
@@ -0,0 +1,219 @@
|
@@ -0,0 +1,219 @@
|
||||||
+/*****************************************************************************
|
+/*****************************************************************************
|
||||||
+* Copyright 2011 Broadcom Corporation. All rights reserved.
|
+* Copyright 2011 Broadcom Corporation. All rights reserved.
|
||||||
|
@ -284,9 +290,11 @@ Subject: [PATCH 033/174] Added hwmon/thermal driver for reporting core
|
||||||
+MODULE_DESCRIPTION("HW Monitor driver for bcm2835 chip");
|
+MODULE_DESCRIPTION("HW Monitor driver for bcm2835 chip");
|
||||||
+
|
+
|
||||||
+module_platform_driver(bcm2835_hwmon_driver);
|
+module_platform_driver(bcm2835_hwmon_driver);
|
||||||
--- a/drivers/thermal/Kconfig
|
Index: linux-3.10.49/drivers/thermal/Kconfig
|
||||||
+++ b/drivers/thermal/Kconfig
|
===================================================================
|
||||||
@@ -169,4 +169,11 @@ config INTEL_POWERCLAMP
|
--- linux-3.10.49.orig/drivers/thermal/Kconfig 2014-09-27 11:40:40.999449257 -0700
|
||||||
|
+++ linux-3.10.49/drivers/thermal/Kconfig 2014-09-27 11:40:40.983449258 -0700
|
||||||
|
@@ -169,4 +169,11 @@
|
||||||
enforce idle time which results in more package C-state residency. The
|
enforce idle time which results in more package C-state residency. The
|
||||||
user interface is exposed via generic thermal framework.
|
user interface is exposed via generic thermal framework.
|
||||||
|
|
||||||
|
@ -298,16 +306,20 @@ Subject: [PATCH 033/174] Added hwmon/thermal driver for reporting core
|
||||||
+
|
+
|
||||||
endif
|
endif
|
||||||
+
|
+
|
||||||
--- a/drivers/thermal/Makefile
|
Index: linux-3.10.49/drivers/thermal/Makefile
|
||||||
+++ b/drivers/thermal/Makefile
|
===================================================================
|
||||||
@@ -23,4 +23,5 @@ obj-$(CONFIG_DB8500_THERMAL) += db8500_t
|
--- linux-3.10.49.orig/drivers/thermal/Makefile 2014-09-27 11:40:40.999449257 -0700
|
||||||
|
+++ linux-3.10.49/drivers/thermal/Makefile 2014-09-27 11:40:40.983449258 -0700
|
||||||
|
@@ -23,4 +23,5 @@
|
||||||
obj-$(CONFIG_ARMADA_THERMAL) += armada_thermal.o
|
obj-$(CONFIG_ARMADA_THERMAL) += armada_thermal.o
|
||||||
obj-$(CONFIG_DB8500_CPUFREQ_COOLING) += db8500_cpufreq_cooling.o
|
obj-$(CONFIG_DB8500_CPUFREQ_COOLING) += db8500_cpufreq_cooling.o
|
||||||
obj-$(CONFIG_INTEL_POWERCLAMP) += intel_powerclamp.o
|
obj-$(CONFIG_INTEL_POWERCLAMP) += intel_powerclamp.o
|
||||||
+obj-$(CONFIG_THERMAL_BCM2835) += bcm2835-thermal.o
|
+obj-$(CONFIG_THERMAL_BCM2835) += bcm2835-thermal.o
|
||||||
|
|
||||||
--- /dev/null
|
Index: linux-3.10.49/drivers/thermal/bcm2835-thermal.c
|
||||||
+++ b/drivers/thermal/bcm2835-thermal.c
|
===================================================================
|
||||||
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
|
+++ linux-3.10.49/drivers/thermal/bcm2835-thermal.c 2014-09-27 11:40:40.983449258 -0700
|
||||||
@@ -0,0 +1,208 @@
|
@@ -0,0 +1,208 @@
|
||||||
+/*****************************************************************************
|
+/*****************************************************************************
|
||||||
+* Copyright 2011 Broadcom Corporation. All rights reserved.
|
+* Copyright 2011 Broadcom Corporation. All rights reserved.
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
From dc54a9801e33f0e7c0685f0535b90237ab3d4837 Mon Sep 17 00:00:00 2001
|
From f9fb4aaaf959dc36b36a7ee1734fada2d68da15f Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Thu, 19 Jul 2012 16:00:28 +0100
|
Date: Thu, 19 Jul 2012 16:00:28 +0100
|
||||||
Subject: [PATCH 034/174] config: add missing options from 3.6.y kernel
|
Subject: [PATCH 034/196] config: add missing options from 3.6.y kernel
|
||||||
|
|
||||||
---
|
---
|
||||||
arch/arm/configs/bcmrpi_defconfig | 653 ++++++++++++++++++++++++++-----
|
arch/arm/configs/bcmrpi_defconfig | 653 ++++++++++++++++++++++++++-----
|
||||||
drivers/net/wireless/ath/ath9k/hif_usb.c | 2 +
|
drivers/net/wireless/ath/ath9k/hif_usb.c | 2 +
|
||||||
2 files changed, 564 insertions(+), 91 deletions(-)
|
2 files changed, 564 insertions(+), 91 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig
|
||||||
|
index 6219df3..36fcd49 100644
|
||||||
--- a/arch/arm/configs/bcmrpi_defconfig
|
--- a/arch/arm/configs/bcmrpi_defconfig
|
||||||
+++ b/arch/arm/configs/bcmrpi_defconfig
|
+++ b/arch/arm/configs/bcmrpi_defconfig
|
||||||
@@ -1,11 +1,17 @@
|
@@ -1,11 +1,17 @@
|
||||||
|
@ -927,9 +929,11 @@ Subject: [PATCH 034/174] config: add missing options from 3.6.y kernel
|
||||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||||
# CONFIG_CRYPTO_HW is not set
|
# CONFIG_CRYPTO_HW is not set
|
||||||
CONFIG_CRC_ITU_T=y
|
CONFIG_CRC_ITU_T=y
|
||||||
|
diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c
|
||||||
|
index 75a6376..8cb8d8d 100644
|
||||||
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
|
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
|
||||||
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
|
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
|
||||||
@@ -37,9 +37,11 @@ static struct usb_device_id ath9k_hif_us
|
@@ -37,9 +37,11 @@ static struct usb_device_id ath9k_hif_usb_ids[] = {
|
||||||
{ USB_DEVICE(0x13D3, 0x3350) }, /* Azurewave */
|
{ USB_DEVICE(0x13D3, 0x3350) }, /* Azurewave */
|
||||||
{ USB_DEVICE(0x04CA, 0x4605) }, /* Liteon */
|
{ USB_DEVICE(0x04CA, 0x4605) }, /* Liteon */
|
||||||
{ USB_DEVICE(0x040D, 0x3801) }, /* VIA */
|
{ USB_DEVICE(0x040D, 0x3801) }, /* VIA */
|
||||||
|
@ -941,3 +945,6 @@ Subject: [PATCH 034/174] config: add missing options from 3.6.y kernel
|
||||||
|
|
||||||
{ USB_DEVICE(0x0cf3, 0x7015),
|
{ USB_DEVICE(0x0cf3, 0x7015),
|
||||||
.driver_info = AR9287_USB }, /* Atheros */
|
.driver_info = AR9287_USB }, /* Atheros */
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
From 10a2ded6cbf58da71121f0c7a35462f52f49dfae Mon Sep 17 00:00:00 2001
|
From 2be2a87be13a5e4df2e3afb13a6089fcd7073906 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 17 Apr 2013 12:16:36 +0100
|
Date: Wed, 17 Apr 2013 12:16:36 +0100
|
||||||
Subject: [PATCH 035/174] Enable multiple ALSA channels
|
Subject: [PATCH 035/196] Enable multiple ALSA channels
|
||||||
|
|
||||||
---
|
---
|
||||||
arch/arm/mach-bcm2708/bcm2708.c | 54 ++++++++++++++++++++++++++++++++++++-----
|
arch/arm/mach-bcm2708/bcm2708.c | 54 ++++++++++++++++++++++++++++++++++++-----
|
||||||
1 file changed, 48 insertions(+), 6 deletions(-)
|
1 file changed, 48 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/bcm2708.c b/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
|
index ab8bac6..5a7437b 100644
|
||||||
--- a/arch/arm/mach-bcm2708/bcm2708.c
|
--- a/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
+++ b/arch/arm/mach-bcm2708/bcm2708.c
|
+++ b/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
@@ -471,12 +471,54 @@ struct platform_device bcm2708_powerman_
|
@@ -471,12 +471,54 @@ struct platform_device bcm2708_powerman_device = {
|
||||||
|
|
||||||
|
|
||||||
static struct platform_device bcm2708_alsa_devices[] = {
|
static struct platform_device bcm2708_alsa_devices[] = {
|
||||||
|
@ -70,3 +72,6 @@ Subject: [PATCH 035/174] Enable multiple ALSA channels
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct resource bcm2708_spi_resources[] = {
|
static struct resource bcm2708_spi_resources[] = {
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 17bb1be5d09fe58cd14084c5eac0052f03d6d71f Mon Sep 17 00:00:00 2001
|
From ec78c7da4fe9f7289cdc3e948b70a43c900f2be4 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 3 Oct 2012 20:08:19 +0100
|
Date: Wed, 3 Oct 2012 20:08:19 +0100
|
||||||
Subject: [PATCH 036/174] set i2c speed via module-parameter or menuconfig.
|
Subject: [PATCH 036/196] set i2c speed via module-parameter or menuconfig.
|
||||||
Thanks FrankBoesing
|
Thanks FrankBoesing
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -9,9 +9,11 @@ Subject: [PATCH 036/174] set i2c speed via module-parameter or menuconfig.
|
||||||
drivers/i2c/busses/i2c-bcm2708.c | 12 ++++++++----
|
drivers/i2c/busses/i2c-bcm2708.c | 12 ++++++++----
|
||||||
2 files changed, 19 insertions(+), 4 deletions(-)
|
2 files changed, 19 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
|
||||||
|
index 290aee4..abaff1a 100644
|
||||||
--- a/drivers/i2c/busses/Kconfig
|
--- a/drivers/i2c/busses/Kconfig
|
||||||
+++ b/drivers/i2c/busses/Kconfig
|
+++ b/drivers/i2c/busses/Kconfig
|
||||||
@@ -353,6 +353,17 @@ config I2C_BCM2708
|
@@ -355,6 +355,17 @@ config I2C_BCM2708
|
||||||
support for the BCM2708. BSC is a Broadcom proprietary bus compatible
|
support for the BCM2708. BSC is a Broadcom proprietary bus compatible
|
||||||
with I2C/TWI/SMBus.
|
with I2C/TWI/SMBus.
|
||||||
|
|
||||||
|
@ -29,6 +31,8 @@ Subject: [PATCH 036/174] set i2c speed via module-parameter or menuconfig.
|
||||||
config I2C_BLACKFIN_TWI
|
config I2C_BLACKFIN_TWI
|
||||||
tristate "Blackfin TWI I2C support"
|
tristate "Blackfin TWI I2C support"
|
||||||
depends on BLACKFIN
|
depends on BLACKFIN
|
||||||
|
diff --git a/drivers/i2c/busses/i2c-bcm2708.c b/drivers/i2c/busses/i2c-bcm2708.c
|
||||||
|
index 7cae615..3391889 100644
|
||||||
--- a/drivers/i2c/busses/i2c-bcm2708.c
|
--- a/drivers/i2c/busses/i2c-bcm2708.c
|
||||||
+++ b/drivers/i2c/busses/i2c-bcm2708.c
|
+++ b/drivers/i2c/busses/i2c-bcm2708.c
|
||||||
@@ -66,11 +66,15 @@
|
@@ -66,11 +66,15 @@
|
||||||
|
@ -48,7 +52,7 @@ Subject: [PATCH 036/174] set i2c speed via module-parameter or menuconfig.
|
||||||
struct bcm2708_i2c {
|
struct bcm2708_i2c {
|
||||||
struct i2c_adapter adapter;
|
struct i2c_adapter adapter;
|
||||||
|
|
||||||
@@ -148,7 +152,7 @@ static inline void bcm2708_bsc_setup(str
|
@@ -148,7 +152,7 @@ static inline void bcm2708_bsc_setup(struct bcm2708_i2c *bi)
|
||||||
u32 c = BSC_C_I2CEN | BSC_C_INTD | BSC_C_ST | BSC_C_CLEAR_1;
|
u32 c = BSC_C_I2CEN | BSC_C_INTD | BSC_C_ST | BSC_C_CLEAR_1;
|
||||||
|
|
||||||
bus_hz = clk_get_rate(bi->clk);
|
bus_hz = clk_get_rate(bi->clk);
|
||||||
|
@ -57,7 +61,7 @@ Subject: [PATCH 036/174] set i2c speed via module-parameter or menuconfig.
|
||||||
|
|
||||||
if (bi->msg->flags & I2C_M_RD)
|
if (bi->msg->flags & I2C_M_RD)
|
||||||
c |= BSC_C_INTR | BSC_C_READ;
|
c |= BSC_C_INTR | BSC_C_READ;
|
||||||
@@ -331,8 +335,8 @@ static int bcm2708_i2c_probe(struct plat
|
@@ -331,8 +335,8 @@ static int bcm2708_i2c_probe(struct platform_device *pdev)
|
||||||
goto out_free_irq;
|
goto out_free_irq;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,3 +72,6 @@ Subject: [PATCH 036/174] set i2c speed via module-parameter or menuconfig.
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From addefb978a42b1699979ef8ecef08a01977dfd7d Mon Sep 17 00:00:00 2001
|
From 674d82a3db9b47a7772ac732a560979ea22d5c3d Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 3 Oct 2012 21:31:48 +0100
|
Date: Wed, 3 Oct 2012 21:31:48 +0100
|
||||||
Subject: [PATCH 037/174] Allow the number of cycles delay between sdcard
|
Subject: [PATCH 037/196] Allow the number of cycles delay between sdcard
|
||||||
peripheral writes to be specified on command line with
|
peripheral writes to be specified on command line with
|
||||||
sdhci-bcm2708.cycle_delay
|
sdhci-bcm2708.cycle_delay
|
||||||
|
|
||||||
|
@ -9,6 +9,8 @@ Subject: [PATCH 037/174] Allow the number of cycles delay between sdcard
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 5 ++++-
|
drivers/mmc/host/sdhci-bcm2708.c | 5 ++++-
|
||||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index 7ce2829..ffd7310 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -77,6 +77,8 @@
|
@@ -77,6 +77,8 @@
|
||||||
|
@ -20,7 +22,7 @@ Subject: [PATCH 037/174] Allow the number of cycles delay between sdcard
|
||||||
/*****************************************************************************\
|
/*****************************************************************************\
|
||||||
* *
|
* *
|
||||||
* Debug *
|
* Debug *
|
||||||
@@ -249,7 +251,7 @@ static void sdhci_bcm2708_raw_writel(str
|
@@ -249,7 +251,7 @@ static void sdhci_bcm2708_raw_writel(struct sdhci_host *host, u32 val, int reg)
|
||||||
/* host->clock is the clock freq in Hz */
|
/* host->clock is the clock freq in Hz */
|
||||||
static hptime_t last_write_hpt;
|
static hptime_t last_write_hpt;
|
||||||
hptime_t now = hptime();
|
hptime_t now = hptime();
|
||||||
|
@ -29,7 +31,7 @@ Subject: [PATCH 037/174] Allow the number of cycles delay between sdcard
|
||||||
|
|
||||||
if (now == last_write_hpt || now == last_write_hpt+1) {
|
if (now == last_write_hpt || now == last_write_hpt+1) {
|
||||||
/* we can't guarantee any significant time has
|
/* we can't guarantee any significant time has
|
||||||
@@ -1388,6 +1390,7 @@ module_param(emmc_clock_freq, int, 0444)
|
@@ -1388,6 +1390,7 @@ module_param(emmc_clock_freq, int, 0444);
|
||||||
module_param(sync_after_dma, bool, 0444);
|
module_param(sync_after_dma, bool, 0444);
|
||||||
module_param(missing_status, bool, 0444);
|
module_param(missing_status, bool, 0444);
|
||||||
module_param(enable_llm, bool, 0444);
|
module_param(enable_llm, bool, 0444);
|
||||||
|
@ -37,3 +39,6 @@ Subject: [PATCH 037/174] Allow the number of cycles delay between sdcard
|
||||||
|
|
||||||
MODULE_DESCRIPTION("Secure Digital Host Controller Interface platform driver");
|
MODULE_DESCRIPTION("Secure Digital Host Controller Interface platform driver");
|
||||||
MODULE_AUTHOR("Broadcom <info@broadcom.com>");
|
MODULE_AUTHOR("Broadcom <info@broadcom.com>");
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From d6442f505a7bf1bebe9bd4689d021f007a269cd6 Mon Sep 17 00:00:00 2001
|
From d94e2bd60b27f2ff7d6e9ff7ee43848bb2090c06 Mon Sep 17 00:00:00 2001
|
||||||
From: dero <de@ro>
|
From: dero <de@ro>
|
||||||
Date: Mon, 19 Nov 2012 12:46:06 +0100
|
Date: Mon, 19 Nov 2012 12:46:06 +0100
|
||||||
Subject: [PATCH 038/174] Lazy CRC quirk: Implemented retrying mechanisms for
|
Subject: [PATCH 038/196] Lazy CRC quirk: Implemented retrying mechanisms for
|
||||||
SD SSR and SCR, disabled missing_status and spurious CRC ACMD51 quirks by
|
SD SSR and SCR, disabled missing_status and spurious CRC ACMD51 quirks by
|
||||||
default (should be fixed by the retrying-mechanishm)
|
default (should be fixed by the retrying-mechanishm)
|
||||||
|
|
||||||
|
@ -10,6 +10,8 @@ Subject: [PATCH 038/174] Lazy CRC quirk: Implemented retrying mechanisms for
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 11 +++-
|
drivers/mmc/host/sdhci-bcm2708.c | 11 +++-
|
||||||
2 files changed, 108 insertions(+), 18 deletions(-)
|
2 files changed, 108 insertions(+), 18 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
|
||||||
|
index 9e645e1..1ee6cf3 100644
|
||||||
--- a/drivers/mmc/core/sd.c
|
--- a/drivers/mmc/core/sd.c
|
||||||
+++ b/drivers/mmc/core/sd.c
|
+++ b/drivers/mmc/core/sd.c
|
||||||
@@ -13,6 +13,8 @@
|
@@ -13,6 +13,8 @@
|
||||||
|
@ -21,7 +23,7 @@ Subject: [PATCH 038/174] Lazy CRC quirk: Implemented retrying mechanisms for
|
||||||
|
|
||||||
#include <linux/mmc/host.h>
|
#include <linux/mmc/host.h>
|
||||||
#include <linux/mmc/card.h>
|
#include <linux/mmc/card.h>
|
||||||
@@ -58,6 +60,15 @@ static const unsigned int tacc_mant[] =
|
@@ -58,6 +60,15 @@ static const unsigned int tacc_mant[] = {
|
||||||
__res & __mask; \
|
__res & __mask; \
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -37,7 +39,7 @@ Subject: [PATCH 038/174] Lazy CRC quirk: Implemented retrying mechanisms for
|
||||||
/*
|
/*
|
||||||
* Given the decoded CSD structure, decode the raw CID to our CID structure.
|
* Given the decoded CSD structure, decode the raw CID to our CID structure.
|
||||||
*/
|
*/
|
||||||
@@ -210,12 +221,62 @@ static int mmc_decode_scr(struct mmc_car
|
@@ -210,12 +221,62 @@ static int mmc_decode_scr(struct mmc_card *card)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -102,7 +104,7 @@ Subject: [PATCH 038/174] Lazy CRC quirk: Implemented retrying mechanisms for
|
||||||
u32 *ssr;
|
u32 *ssr;
|
||||||
|
|
||||||
if (!(card->csd.cmdclass & CCC_APP_SPEC)) {
|
if (!(card->csd.cmdclass & CCC_APP_SPEC)) {
|
||||||
@@ -227,15 +288,41 @@ static int mmc_read_ssr(struct mmc_card
|
@@ -227,15 +288,41 @@ static int mmc_read_ssr(struct mmc_card *card)
|
||||||
ssr = kmalloc(64, GFP_KERNEL);
|
ssr = kmalloc(64, GFP_KERNEL);
|
||||||
if (!ssr)
|
if (!ssr)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -150,7 +152,7 @@ Subject: [PATCH 038/174] Lazy CRC quirk: Implemented retrying mechanisms for
|
||||||
for (i = 0; i < 16; i++)
|
for (i = 0; i < 16; i++)
|
||||||
ssr[i] = be32_to_cpu(ssr[i]);
|
ssr[i] = be32_to_cpu(ssr[i]);
|
||||||
|
|
||||||
@@ -808,15 +895,11 @@ int mmc_sd_setup_card(struct mmc_host *h
|
@@ -808,15 +895,11 @@ int mmc_sd_setup_card(struct mmc_host *host, struct mmc_card *card,
|
||||||
|
|
||||||
if (!reinit) {
|
if (!reinit) {
|
||||||
/*
|
/*
|
||||||
|
@ -170,6 +172,8 @@ Subject: [PATCH 038/174] Lazy CRC quirk: Implemented retrying mechanisms for
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fetch and process SD Status register.
|
* Fetch and process SD Status register.
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index ffd7310..3556ed3 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -137,6 +137,7 @@ static bool allow_highspeed = 1;
|
@@ -137,6 +137,7 @@ static bool allow_highspeed = 1;
|
||||||
|
@ -180,7 +184,7 @@ Subject: [PATCH 038/174] Lazy CRC quirk: Implemented retrying mechanisms for
|
||||||
bool enable_llm = 1;
|
bool enable_llm = 1;
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
@@ -1103,7 +1104,7 @@ static unsigned int sdhci_bcm2708_quirk_
|
@@ -1103,7 +1104,7 @@ static unsigned int sdhci_bcm2708_quirk_extra_ints(struct sdhci_host *host)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,7 +193,7 @@ Subject: [PATCH 038/174] Lazy CRC quirk: Implemented retrying mechanisms for
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -1149,7 +1150,6 @@ static struct sdhci_ops sdhci_bcm2708_op
|
@@ -1149,7 +1150,6 @@ static struct sdhci_ops sdhci_bcm2708_ops = {
|
||||||
.pdma_reset = sdhci_bcm2708_platdma_reset,
|
.pdma_reset = sdhci_bcm2708_platdma_reset,
|
||||||
#endif
|
#endif
|
||||||
.extra_ints = sdhci_bcm2708_quirk_extra_ints,
|
.extra_ints = sdhci_bcm2708_quirk_extra_ints,
|
||||||
|
@ -197,7 +201,7 @@ Subject: [PATCH 038/174] Lazy CRC quirk: Implemented retrying mechanisms for
|
||||||
.voltage_broken = sdhci_bcm2708_quirk_voltage_broken,
|
.voltage_broken = sdhci_bcm2708_quirk_voltage_broken,
|
||||||
.uhs_broken = sdhci_bcm2708_uhs_broken,
|
.uhs_broken = sdhci_bcm2708_uhs_broken,
|
||||||
};
|
};
|
||||||
@@ -1194,6 +1194,11 @@ static int sdhci_bcm2708_probe(struct pl
|
@@ -1194,6 +1194,11 @@ static int sdhci_bcm2708_probe(struct platform_device *pdev)
|
||||||
sdhci_bcm2708_ops.missing_status = sdhci_bcm2708_missing_status;
|
sdhci_bcm2708_ops.missing_status = sdhci_bcm2708_missing_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -209,7 +213,7 @@ Subject: [PATCH 038/174] Lazy CRC quirk: Implemented retrying mechanisms for
|
||||||
printk("sdhci: %s low-latency mode\n",enable_llm?"Enable":"Disable");
|
printk("sdhci: %s low-latency mode\n",enable_llm?"Enable":"Disable");
|
||||||
|
|
||||||
host->hw_name = "BCM2708_Arasan";
|
host->hw_name = "BCM2708_Arasan";
|
||||||
@@ -1389,6 +1394,7 @@ module_param(allow_highspeed, bool, 0444
|
@@ -1389,6 +1394,7 @@ module_param(allow_highspeed, bool, 0444);
|
||||||
module_param(emmc_clock_freq, int, 0444);
|
module_param(emmc_clock_freq, int, 0444);
|
||||||
module_param(sync_after_dma, bool, 0444);
|
module_param(sync_after_dma, bool, 0444);
|
||||||
module_param(missing_status, bool, 0444);
|
module_param(missing_status, bool, 0444);
|
||||||
|
@ -217,7 +221,7 @@ Subject: [PATCH 038/174] Lazy CRC quirk: Implemented retrying mechanisms for
|
||||||
module_param(enable_llm, bool, 0444);
|
module_param(enable_llm, bool, 0444);
|
||||||
module_param(cycle_delay, int, 0444);
|
module_param(cycle_delay, int, 0444);
|
||||||
|
|
||||||
@@ -1401,6 +1407,7 @@ MODULE_PARM_DESC(allow_highspeed, "Allow
|
@@ -1401,6 +1407,7 @@ MODULE_PARM_DESC(allow_highspeed, "Allow high speed transfers modes");
|
||||||
MODULE_PARM_DESC(emmc_clock_freq, "Specify the speed of emmc clock");
|
MODULE_PARM_DESC(emmc_clock_freq, "Specify the speed of emmc clock");
|
||||||
MODULE_PARM_DESC(sync_after_dma, "Block in driver until dma complete");
|
MODULE_PARM_DESC(sync_after_dma, "Block in driver until dma complete");
|
||||||
MODULE_PARM_DESC(missing_status, "Use the missing status quirk");
|
MODULE_PARM_DESC(missing_status, "Use the missing status quirk");
|
||||||
|
@ -225,3 +229,6 @@ Subject: [PATCH 038/174] Lazy CRC quirk: Implemented retrying mechanisms for
|
||||||
MODULE_PARM_DESC(enable_llm, "Enable low-latency mode");
|
MODULE_PARM_DESC(enable_llm, "Enable low-latency mode");
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
From bf571a571b090c16cd49458126e996243d8a2626 Mon Sep 17 00:00:00 2001
|
From 4998fad71d9539a6f6e28c7ad54142950c85cbe5 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Thu, 28 Mar 2013 00:10:32 +0000
|
Date: Thu, 28 Mar 2013 00:10:32 +0000
|
||||||
Subject: [PATCH 039/174] bcm2708: Add vc_cma driver to enable use of CMA
|
Subject: [PATCH 039/196] bcm2708: Add vc_cma driver to enable use of CMA
|
||||||
|
|
||||||
---
|
---
|
||||||
arch/arm/mach-bcm2708/bcm2708.c | 16 ++++++++++++++++
|
arch/arm/mach-bcm2708/bcm2708.c | 16 ++++++++++++++++
|
||||||
1 file changed, 16 insertions(+)
|
1 file changed, 16 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/bcm2708.c b/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
|
index 5a7437b..13b91de 100644
|
||||||
--- a/arch/arm/mach-bcm2708/bcm2708.c
|
--- a/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
+++ b/arch/arm/mach-bcm2708/bcm2708.c
|
+++ b/arch/arm/mach-bcm2708/bcm2708.c
|
||||||
@@ -60,6 +60,11 @@
|
@@ -60,6 +60,11 @@
|
||||||
|
@ -53,3 +55,6 @@ Subject: [PATCH 039/174] bcm2708: Add vc_cma driver to enable use of CMA
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
||||||
module_param(boardrev, uint, 0644);
|
module_param(boardrev, uint, 0644);
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
From c7502584abba164c1cda1378c86e95cd879e1e1a Mon Sep 17 00:00:00 2001
|
From 6b194b997f5deb970901d3aaabd9effe4a5d5071 Mon Sep 17 00:00:00 2001
|
||||||
From: Gordon Hollingworth <gordon@holliweb.co.uk>
|
From: Gordon Hollingworth <gordon@holliweb.co.uk>
|
||||||
Date: Sun, 4 Nov 2012 15:55:01 +0000
|
Date: Sun, 4 Nov 2012 15:55:01 +0000
|
||||||
Subject: [PATCH 040/174] Make sure we wait for the reset to finish
|
Subject: [PATCH 040/196] Make sure we wait for the reset to finish
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 2 ++
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 2 ++
|
||||||
1 file changed, 2 insertions(+)
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index 3e762e2..e8c91e7 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -232,6 +232,8 @@ exit_handler_routine:
|
@@ -232,6 +232,8 @@ exit_handler_routine:
|
||||||
|
@ -18,3 +20,6 @@ Subject: [PATCH 040/174] Make sure we wait for the reset to finish
|
||||||
DWC_WRITE_REG32(c_mphi_regs.ctrl, (1<<31));
|
DWC_WRITE_REG32(c_mphi_regs.ctrl, (1<<31));
|
||||||
mphi_int_count = 0;
|
mphi_int_count = 0;
|
||||||
}
|
}
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 87b48ac64b6b2aeb97b53eee080e74cb83ff25fe Mon Sep 17 00:00:00 2001
|
From ed83da894caf28e267eab3a01ef037a7198391a1 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Mon, 19 Nov 2012 18:27:05 +0000
|
Date: Mon, 19 Nov 2012 18:27:05 +0000
|
||||||
Subject: [PATCH 041/174] Add Simon Hall's dma helper module, useful in future
|
Subject: [PATCH 041/196] Add Simon Hall's dma helper module, useful in future
|
||||||
for X acceleration
|
for X acceleration
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -15,6 +15,8 @@ Subject: [PATCH 041/174] Add Simon Hall's dma helper module, useful in future
|
||||||
create mode 100755 arch/arm/mach-bcm2708/include/mach/vc_support.h
|
create mode 100755 arch/arm/mach-bcm2708/include/mach/vc_support.h
|
||||||
create mode 100755 arch/arm/mach-bcm2708/vc_support.c
|
create mode 100755 arch/arm/mach-bcm2708/vc_support.c
|
||||||
|
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/Kconfig b/arch/arm/mach-bcm2708/Kconfig
|
||||||
|
index a35ff89..b85bb8d 100644
|
||||||
--- a/arch/arm/mach-bcm2708/Kconfig
|
--- a/arch/arm/mach-bcm2708/Kconfig
|
||||||
+++ b/arch/arm/mach-bcm2708/Kconfig
|
+++ b/arch/arm/mach-bcm2708/Kconfig
|
||||||
@@ -38,4 +38,12 @@ config BCM2708_SPIDEV
|
@@ -38,4 +38,12 @@ config BCM2708_SPIDEV
|
||||||
|
@ -30,15 +32,20 @@ Subject: [PATCH 041/174] Add Simon Hall's dma helper module, useful in future
|
||||||
+ Enable DMA helper for accelerating X composition
|
+ Enable DMA helper for accelerating X composition
|
||||||
+
|
+
|
||||||
endmenu
|
endmenu
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/Makefile b/arch/arm/mach-bcm2708/Makefile
|
||||||
|
index 164ecb2..0da162c 100644
|
||||||
--- a/arch/arm/mach-bcm2708/Makefile
|
--- a/arch/arm/mach-bcm2708/Makefile
|
||||||
+++ b/arch/arm/mach-bcm2708/Makefile
|
+++ b/arch/arm/mach-bcm2708/Makefile
|
||||||
@@ -6,3 +6,6 @@ obj-$(CONFIG_MACH_BCM2708) += clock.o b
|
@@ -6,3 +6,6 @@ obj-$(CONFIG_MACH_BCM2708) += clock.o bcm2708.o armctrl.o vcio.o power.o dma.o
|
||||||
obj-$(CONFIG_BCM2708_GPIO) += bcm2708_gpio.o
|
obj-$(CONFIG_BCM2708_GPIO) += bcm2708_gpio.o
|
||||||
obj-$(CONFIG_BCM2708_VCMEM) += vc_mem.o
|
obj-$(CONFIG_BCM2708_VCMEM) += vc_mem.o
|
||||||
|
|
||||||
+obj-$(CONFIG_BCM2708_DMAER) += dmaer_master.o
|
+obj-$(CONFIG_BCM2708_DMAER) += dmaer_master.o
|
||||||
+dmaer_master-objs := dmaer.o vc_support.o
|
+dmaer_master-objs := dmaer.o vc_support.o
|
||||||
+
|
+
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/dmaer.c b/arch/arm/mach-bcm2708/dmaer.c
|
||||||
|
new file mode 100755
|
||||||
|
index 0000000..d1bc0fa
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/dmaer.c
|
+++ b/arch/arm/mach-bcm2708/dmaer.c
|
||||||
@@ -0,0 +1,887 @@
|
@@ -0,0 +1,887 @@
|
||||||
|
@ -929,6 +936,9 @@ Subject: [PATCH 041/174] Add Simon Hall's dma helper module, useful in future
|
||||||
+module_init(dmaer_init);
|
+module_init(dmaer_init);
|
||||||
+module_exit(dmaer_exit);
|
+module_exit(dmaer_exit);
|
||||||
+
|
+
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/vc_support.h b/arch/arm/mach-bcm2708/include/mach/vc_support.h
|
||||||
|
new file mode 100755
|
||||||
|
index 0000000..70e809f
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/vc_support.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/vc_support.h
|
||||||
@@ -0,0 +1,69 @@
|
@@ -0,0 +1,69 @@
|
||||||
|
@ -1001,6 +1011,9 @@ Subject: [PATCH 041/174] Add Simon Hall's dma helper module, useful in future
|
||||||
+ unsigned int r0, unsigned int r1, unsigned int r2, unsigned int r3, unsigned int r4, unsigned int r5);
|
+ unsigned int r0, unsigned int r1, unsigned int r2, unsigned int r3, unsigned int r4, unsigned int r5);
|
||||||
+
|
+
|
||||||
+#endif
|
+#endif
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/vc_support.c b/arch/arm/mach-bcm2708/vc_support.c
|
||||||
|
new file mode 100755
|
||||||
|
index 0000000..5cb1335
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/mach-bcm2708/vc_support.c
|
+++ b/arch/arm/mach-bcm2708/vc_support.c
|
||||||
@@ -0,0 +1,319 @@
|
@@ -0,0 +1,319 @@
|
||||||
|
@ -1323,3 +1336,6 @@ Subject: [PATCH 041/174] Add Simon Hall's dma helper module, useful in future
|
||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From b7496d2df33f324ee6854c600944b50a011d95e0 Mon Sep 17 00:00:00 2001
|
From d00af9c32e369be7d5f270cc18cbc10950213727 Mon Sep 17 00:00:00 2001
|
||||||
From: Aron Szabo <aron@aron.ws>
|
From: Aron Szabo <aron@aron.ws>
|
||||||
Date: Sat, 16 Jun 2012 12:15:55 +0200
|
Date: Sat, 16 Jun 2012 12:15:55 +0200
|
||||||
Subject: [PATCH 042/174] lirc: added support for RaspberryPi GPIO
|
Subject: [PATCH 042/196] lirc: added support for RaspberryPi GPIO
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/staging/media/lirc/Kconfig | 6 +
|
drivers/staging/media/lirc/Kconfig | 6 +
|
||||||
|
@ -10,6 +10,8 @@ Subject: [PATCH 042/174] lirc: added support for RaspberryPi GPIO
|
||||||
3 files changed, 694 insertions(+)
|
3 files changed, 694 insertions(+)
|
||||||
create mode 100644 drivers/staging/media/lirc/lirc_rpi.c
|
create mode 100644 drivers/staging/media/lirc/lirc_rpi.c
|
||||||
|
|
||||||
|
diff --git a/drivers/staging/media/lirc/Kconfig b/drivers/staging/media/lirc/Kconfig
|
||||||
|
index e60a59f..6b7ff70 100644
|
||||||
--- a/drivers/staging/media/lirc/Kconfig
|
--- a/drivers/staging/media/lirc/Kconfig
|
||||||
+++ b/drivers/staging/media/lirc/Kconfig
|
+++ b/drivers/staging/media/lirc/Kconfig
|
||||||
@@ -38,6 +38,12 @@ config LIRC_PARALLEL
|
@@ -38,6 +38,12 @@ config LIRC_PARALLEL
|
||||||
|
@ -25,6 +27,8 @@ Subject: [PATCH 042/174] lirc: added support for RaspberryPi GPIO
|
||||||
config LIRC_SASEM
|
config LIRC_SASEM
|
||||||
tristate "Sasem USB IR Remote"
|
tristate "Sasem USB IR Remote"
|
||||||
depends on LIRC && USB
|
depends on LIRC && USB
|
||||||
|
diff --git a/drivers/staging/media/lirc/Makefile b/drivers/staging/media/lirc/Makefile
|
||||||
|
index b90fcab..2b227fd 100644
|
||||||
--- a/drivers/staging/media/lirc/Makefile
|
--- a/drivers/staging/media/lirc/Makefile
|
||||||
+++ b/drivers/staging/media/lirc/Makefile
|
+++ b/drivers/staging/media/lirc/Makefile
|
||||||
@@ -7,6 +7,7 @@ obj-$(CONFIG_LIRC_BT829) += lirc_bt829.o
|
@@ -7,6 +7,7 @@ obj-$(CONFIG_LIRC_BT829) += lirc_bt829.o
|
||||||
|
@ -35,6 +39,9 @@ Subject: [PATCH 042/174] lirc: added support for RaspberryPi GPIO
|
||||||
obj-$(CONFIG_LIRC_SASEM) += lirc_sasem.o
|
obj-$(CONFIG_LIRC_SASEM) += lirc_sasem.o
|
||||||
obj-$(CONFIG_LIRC_SERIAL) += lirc_serial.o
|
obj-$(CONFIG_LIRC_SERIAL) += lirc_serial.o
|
||||||
obj-$(CONFIG_LIRC_SIR) += lirc_sir.o
|
obj-$(CONFIG_LIRC_SIR) += lirc_sir.o
|
||||||
|
diff --git a/drivers/staging/media/lirc/lirc_rpi.c b/drivers/staging/media/lirc/lirc_rpi.c
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..96acab0
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/staging/media/lirc/lirc_rpi.c
|
+++ b/drivers/staging/media/lirc/lirc_rpi.c
|
||||||
@@ -0,0 +1,687 @@
|
@@ -0,0 +1,687 @@
|
||||||
|
@ -725,3 +732,6 @@ Subject: [PATCH 042/174] lirc: added support for RaspberryPi GPIO
|
||||||
+
|
+
|
||||||
+module_param(debug, bool, S_IRUGO | S_IWUSR);
|
+module_param(debug, bool, S_IRUGO | S_IWUSR);
|
||||||
+MODULE_PARM_DESC(debug, "Enable debugging messages");
|
+MODULE_PARM_DESC(debug, "Enable debugging messages");
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
From 2a720d265e89fc6145b87420c4cefec1582afa80 Mon Sep 17 00:00:00 2001
|
From c634eb696026a3e9d36f2604d6d117ba6af9ceeb Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Tue, 11 Dec 2012 18:23:03 +0000
|
Date: Tue, 11 Dec 2012 18:23:03 +0000
|
||||||
Subject: [PATCH 043/174] Default to dwc_otp.lpm_enable=0
|
Subject: [PATCH 043/196] Default to dwc_otp.lpm_enable=0
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_driver.c | 2 +-
|
drivers/usb/host/dwc_otg/dwc_otg_driver.c | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_driver.c b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
|
index d353a9a..cea8fcb 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
@@ -228,7 +228,7 @@ static struct dwc_otg_driver_module_para
|
@@ -228,7 +228,7 @@ static struct dwc_otg_driver_module_params dwc_otg_module_params = {
|
||||||
.rx_thr_length = -1,
|
.rx_thr_length = -1,
|
||||||
.pti_enable = -1,
|
.pti_enable = -1,
|
||||||
.mpi_enable = -1,
|
.mpi_enable = -1,
|
||||||
|
@ -18,3 +20,6 @@ Subject: [PATCH 043/174] Default to dwc_otp.lpm_enable=0
|
||||||
.ic_usb_cap = -1,
|
.ic_usb_cap = -1,
|
||||||
.ahb_thr_ratio = -1,
|
.ahb_thr_ratio = -1,
|
||||||
.power_down = -1,
|
.power_down = -1,
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 17b1eb8e7fdbca81bc6d74c003b02ca3b08f1fa4 Mon Sep 17 00:00:00 2001
|
From 9ffc237e5d245d9eda21b10b82dab448ec920620 Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Wed, 9 Jan 2013 16:12:04 +0000
|
Date: Wed, 9 Jan 2013 16:12:04 +0000
|
||||||
Subject: [PATCH 044/174] dwc_otg: fix bug in dwc_otg_hcd.c resulting in silent
|
Subject: [PATCH 044/196] dwc_otg: fix bug in dwc_otg_hcd.c resulting in silent
|
||||||
kernel memory corruption, escalating to OOPS under high USB load.
|
kernel memory corruption, escalating to OOPS under high USB load.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -9,9 +9,11 @@ Subject: [PATCH 044/174] dwc_otg: fix bug in dwc_otg_hcd.c resulting in silent
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c | 1 +
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c | 1 +
|
||||||
2 files changed, 1 insertion(+), 2 deletions(-)
|
2 files changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
index 2b7945a..d5c94f4 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -500,8 +500,6 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_
|
@@ -500,8 +500,6 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_t * hcd,
|
||||||
DWC_ERROR("DWC OTG HCD URB Enqueue failed adding QTD. "
|
DWC_ERROR("DWC OTG HCD URB Enqueue failed adding QTD. "
|
||||||
"Error status %d\n", retval);
|
"Error status %d\n", retval);
|
||||||
dwc_otg_hcd_qtd_free(qtd);
|
dwc_otg_hcd_qtd_free(qtd);
|
||||||
|
@ -20,9 +22,11 @@ Subject: [PATCH 044/174] dwc_otg: fix bug in dwc_otg_hcd.c resulting in silent
|
||||||
}
|
}
|
||||||
intr_mask.d32 = DWC_READ_REG32(&hcd->core_if->core_global_regs->gintmsk);
|
intr_mask.d32 = DWC_READ_REG32(&hcd->core_if->core_global_regs->gintmsk);
|
||||||
if (!intr_mask.b.sofintr && retval == 0) {
|
if (!intr_mask.b.sofintr && retval == 0) {
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
|
index e6b2a7b..b337e1b 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
@@ -946,6 +946,7 @@ int dwc_otg_hcd_qtd_add(dwc_otg_qtd_t *
|
@@ -946,6 +946,7 @@ int dwc_otg_hcd_qtd_add(dwc_otg_qtd_t * qtd,
|
||||||
if (retval == 0) {
|
if (retval == 0) {
|
||||||
DWC_CIRCLEQ_INSERT_TAIL(&((*qh)->qtd_list), qtd,
|
DWC_CIRCLEQ_INSERT_TAIL(&((*qh)->qtd_list), qtd,
|
||||||
qtd_list_entry);
|
qtd_list_entry);
|
||||||
|
@ -30,3 +34,6 @@ Subject: [PATCH 044/174] dwc_otg: fix bug in dwc_otg_hcd.c resulting in silent
|
||||||
}
|
}
|
||||||
DWC_SPINUNLOCK_IRQRESTORE(hcd->lock, flags);
|
DWC_SPINUNLOCK_IRQRESTORE(hcd->lock, flags);
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,18 @@
|
||||||
From 96bf154aade59a5527611b93bdc3ff5faf8ecc10 Mon Sep 17 00:00:00 2001
|
From 3edf2fdaaf5c1b126e3e93519dcc1fea2e7954c5 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Mon, 21 Jan 2013 23:03:53 +0000
|
Date: Mon, 21 Jan 2013 23:03:53 +0000
|
||||||
Subject: [PATCH 045/174] Return error value from bcm2708_setup_state. Thanks
|
Subject: [PATCH 045/196] Return error value from bcm2708_setup_state. Thanks
|
||||||
notro
|
notro
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/spi/spi-bcm2708.c | 1 +
|
drivers/spi/spi-bcm2708.c | 1 +
|
||||||
1 file changed, 1 insertion(+)
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/spi/spi-bcm2708.c b/drivers/spi/spi-bcm2708.c
|
||||||
|
index 9f1580e..8513704 100644
|
||||||
--- a/drivers/spi/spi-bcm2708.c
|
--- a/drivers/spi/spi-bcm2708.c
|
||||||
+++ b/drivers/spi/spi-bcm2708.c
|
+++ b/drivers/spi/spi-bcm2708.c
|
||||||
@@ -378,6 +378,7 @@ static int bcm2708_spi_setup(struct spi_
|
@@ -378,6 +378,7 @@ static int bcm2708_spi_setup(struct spi_device *spi)
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
kfree(state);
|
kfree(state);
|
||||||
spi->controller_state = NULL;
|
spi->controller_state = NULL;
|
||||||
|
@ -18,3 +20,6 @@ Subject: [PATCH 045/174] Return error value from bcm2708_setup_state. Thanks
|
||||||
}
|
}
|
||||||
|
|
||||||
dev_dbg(&spi->dev,
|
dev_dbg(&spi->dev,
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 444149f35455bfe551ce9dfa21d00b5b34ffb04f Mon Sep 17 00:00:00 2001
|
From 78948302252dcffa18716390f784ba03e4320c67 Mon Sep 17 00:00:00 2001
|
||||||
From: Kamal Mostafa <kamal@whence.com>
|
From: Kamal Mostafa <kamal@whence.com>
|
||||||
Date: Mon, 22 Oct 2012 15:52:44 -0700
|
Date: Mon, 22 Oct 2012 15:52:44 -0700
|
||||||
Subject: [PATCH 046/174] spi/spi-bcm2708: respect per-transfer SPI clock
|
Subject: [PATCH 046/196] spi/spi-bcm2708: respect per-transfer SPI clock
|
||||||
speed_hz value
|
speed_hz value
|
||||||
|
|
||||||
The bcm2708 SPI driver's bcm2708_process_transfer() was ignoring the
|
The bcm2708 SPI driver's bcm2708_process_transfer() was ignoring the
|
||||||
|
@ -17,9 +17,11 @@ Signed-off-by: Kamal Mostafa <kamal@whence.com>
|
||||||
drivers/spi/spi-bcm2708.c | 7 ++++++-
|
drivers/spi/spi-bcm2708.c | 7 ++++++-
|
||||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/spi/spi-bcm2708.c b/drivers/spi/spi-bcm2708.c
|
||||||
|
index 8513704..b74aa32 100644
|
||||||
--- a/drivers/spi/spi-bcm2708.c
|
--- a/drivers/spi/spi-bcm2708.c
|
||||||
+++ b/drivers/spi/spi-bcm2708.c
|
+++ b/drivers/spi/spi-bcm2708.c
|
||||||
@@ -259,6 +259,10 @@ static int bcm2708_setup_state(struct sp
|
@@ -259,6 +259,10 @@ static int bcm2708_setup_state(struct spi_master *master,
|
||||||
if (state) {
|
if (state) {
|
||||||
state->cs = cs;
|
state->cs = cs;
|
||||||
state->cdiv = cdiv;
|
state->cdiv = cdiv;
|
||||||
|
@ -30,7 +32,7 @@ Signed-off-by: Kamal Mostafa <kamal@whence.com>
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -277,7 +281,8 @@ static int bcm2708_process_transfer(stru
|
@@ -277,7 +281,8 @@ static int bcm2708_process_transfer(struct bcm2708_spi *bs,
|
||||||
|
|
||||||
if (xfer->bits_per_word || xfer->speed_hz) {
|
if (xfer->bits_per_word || xfer->speed_hz) {
|
||||||
ret = bcm2708_setup_state(spi->master, &spi->dev, &state,
|
ret = bcm2708_setup_state(spi->master, &spi->dev, &state,
|
||||||
|
@ -40,3 +42,6 @@ Signed-off-by: Kamal Mostafa <kamal@whence.com>
|
||||||
spi->bits_per_word);
|
spi->bits_per_word);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 8a467ffd4cdce4f87c363c24be193b99b2688126 Mon Sep 17 00:00:00 2001
|
From 1ecfdf8a7a08d52d238dc132c85d37966ca58737 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 3 Jul 2013 00:51:55 +0100
|
Date: Wed, 3 Jul 2013 00:51:55 +0100
|
||||||
Subject: [PATCH 047/174] Add hwrng (hardware random number generator) driver
|
Subject: [PATCH 047/196] Add hwrng (hardware random number generator) driver
|
||||||
|
|
||||||
---
|
---
|
||||||
arch/arm/mach-bcm2708/include/mach/platform.h | 1 +
|
arch/arm/mach-bcm2708/include/mach/platform.h | 1 +
|
||||||
|
@ -11,6 +11,8 @@ Subject: [PATCH 047/174] Add hwrng (hardware random number generator) driver
|
||||||
4 files changed, 131 insertions(+)
|
4 files changed, 131 insertions(+)
|
||||||
create mode 100755 drivers/char/hw_random/bcm2708-rng.c
|
create mode 100755 drivers/char/hw_random/bcm2708-rng.c
|
||||||
|
|
||||||
|
diff --git a/arch/arm/mach-bcm2708/include/mach/platform.h b/arch/arm/mach-bcm2708/include/mach/platform.h
|
||||||
|
index 89e72d1..992a630 100644
|
||||||
--- a/arch/arm/mach-bcm2708/include/mach/platform.h
|
--- a/arch/arm/mach-bcm2708/include/mach/platform.h
|
||||||
+++ b/arch/arm/mach-bcm2708/include/mach/platform.h
|
+++ b/arch/arm/mach-bcm2708/include/mach/platform.h
|
||||||
@@ -62,6 +62,7 @@
|
@@ -62,6 +62,7 @@
|
||||||
|
@ -21,6 +23,8 @@ Subject: [PATCH 047/174] Add hwrng (hardware random number generator) driver
|
||||||
#define GPIO_BASE (BCM2708_PERI_BASE + 0x200000) /* GPIO */
|
#define GPIO_BASE (BCM2708_PERI_BASE + 0x200000) /* GPIO */
|
||||||
#define UART0_BASE (BCM2708_PERI_BASE + 0x201000) /* Uart 0 */
|
#define UART0_BASE (BCM2708_PERI_BASE + 0x201000) /* Uart 0 */
|
||||||
#define MMCI0_BASE (BCM2708_PERI_BASE + 0x202000) /* MMC interface */
|
#define MMCI0_BASE (BCM2708_PERI_BASE + 0x202000) /* MMC interface */
|
||||||
|
diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig
|
||||||
|
index 2f9dbf7..d725a53 100644
|
||||||
--- a/drivers/char/hw_random/Kconfig
|
--- a/drivers/char/hw_random/Kconfig
|
||||||
+++ b/drivers/char/hw_random/Kconfig
|
+++ b/drivers/char/hw_random/Kconfig
|
||||||
@@ -314,3 +314,15 @@ config HW_RANDOM_TPM
|
@@ -314,3 +314,15 @@ config HW_RANDOM_TPM
|
||||||
|
@ -39,13 +43,18 @@ Subject: [PATCH 047/174] Add hwrng (hardware random number generator) driver
|
||||||
+
|
+
|
||||||
+ If unsure, say N.
|
+ If unsure, say N.
|
||||||
+
|
+
|
||||||
|
diff --git a/drivers/char/hw_random/Makefile b/drivers/char/hw_random/Makefile
|
||||||
|
index bed467c..18fc4d4 100644
|
||||||
--- a/drivers/char/hw_random/Makefile
|
--- a/drivers/char/hw_random/Makefile
|
||||||
+++ b/drivers/char/hw_random/Makefile
|
+++ b/drivers/char/hw_random/Makefile
|
||||||
@@ -27,3 +27,4 @@ obj-$(CONFIG_HW_RANDOM_PSERIES) += pseri
|
@@ -27,3 +27,4 @@ obj-$(CONFIG_HW_RANDOM_PSERIES) += pseries-rng.o
|
||||||
obj-$(CONFIG_HW_RANDOM_EXYNOS) += exynos-rng.o
|
obj-$(CONFIG_HW_RANDOM_EXYNOS) += exynos-rng.o
|
||||||
obj-$(CONFIG_HW_RANDOM_TPM) += tpm-rng.o
|
obj-$(CONFIG_HW_RANDOM_TPM) += tpm-rng.o
|
||||||
obj-$(CONFIG_HW_RANDOM_BCM2835) += bcm2835-rng.o
|
obj-$(CONFIG_HW_RANDOM_BCM2835) += bcm2835-rng.o
|
||||||
+obj-$(CONFIG_HW_RANDOM_BCM2708) += bcm2708-rng.o
|
+obj-$(CONFIG_HW_RANDOM_BCM2708) += bcm2708-rng.o
|
||||||
|
diff --git a/drivers/char/hw_random/bcm2708-rng.c b/drivers/char/hw_random/bcm2708-rng.c
|
||||||
|
new file mode 100755
|
||||||
|
index 0000000..1ffa7d7
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/char/hw_random/bcm2708-rng.c
|
+++ b/drivers/char/hw_random/bcm2708-rng.c
|
||||||
@@ -0,0 +1,117 @@
|
@@ -0,0 +1,117 @@
|
||||||
|
@ -166,3 +175,6 @@ Subject: [PATCH 047/174] Add hwrng (hardware random number generator) driver
|
||||||
+
|
+
|
||||||
+MODULE_DESCRIPTION("BCM2708 H/W Random Number Generator (RNG) driver");
|
+MODULE_DESCRIPTION("BCM2708 H/W Random Number Generator (RNG) driver");
|
||||||
+MODULE_LICENSE("GPL and additional rights");
|
+MODULE_LICENSE("GPL and additional rights");
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 2d37b2d242b41270a7ae1aeccfe06fc253e8d180 Mon Sep 17 00:00:00 2001
|
From 054157625ec6b69ba0f66d4337986122ce9e8d82 Mon Sep 17 00:00:00 2001
|
||||||
From: Technion <Technion>
|
From: Technion <Technion>
|
||||||
Date: Mon, 11 Feb 2013 22:08:53 +1100
|
Date: Mon, 11 Feb 2013 22:08:53 +1100
|
||||||
Subject: [PATCH 048/174] Changed wording on logging. Previously, we received
|
Subject: [PATCH 048/196] Changed wording on logging. Previously, we received
|
||||||
errors like this: mmc0: could read SD Status register (SSR) at the 3th
|
errors like this: mmc0: could read SD Status register (SSR) at the 3th
|
||||||
attempt A more sensible response is now returned. A typo also fixed in
|
attempt A more sensible response is now returned. A typo also fixed in
|
||||||
comments.
|
comments.
|
||||||
|
@ -10,9 +10,11 @@ Subject: [PATCH 048/174] Changed wording on logging. Previously, we received
|
||||||
drivers/mmc/core/sd.c | 4 ++--
|
drivers/mmc/core/sd.c | 4 ++--
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
|
||||||
|
index 1ee6cf3..90228f9 100644
|
||||||
--- a/drivers/mmc/core/sd.c
|
--- a/drivers/mmc/core/sd.c
|
||||||
+++ b/drivers/mmc/core/sd.c
|
+++ b/drivers/mmc/core/sd.c
|
||||||
@@ -238,7 +238,7 @@ static int mmc_read_scr(struct mmc_card
|
@@ -238,7 +238,7 @@ static int mmc_read_scr(struct mmc_card *card)
|
||||||
|
|
||||||
err = mmc_app_send_scr(card, card->raw_scr);
|
err = mmc_app_send_scr(card, card->raw_scr);
|
||||||
if( !err )
|
if( !err )
|
||||||
|
@ -21,7 +23,7 @@ Subject: [PATCH 048/174] Changed wording on logging. Previously, we received
|
||||||
|
|
||||||
touch_nmi_watchdog(); // we are still alive!
|
touch_nmi_watchdog(); // we are still alive!
|
||||||
|
|
||||||
@@ -320,7 +320,7 @@ static int mmc_read_ssr(struct mmc_card
|
@@ -320,7 +320,7 @@ static int mmc_read_ssr(struct mmc_card *card)
|
||||||
|
|
||||||
if( tries > 1 )
|
if( tries > 1 )
|
||||||
{
|
{
|
||||||
|
@ -30,3 +32,6 @@ Subject: [PATCH 048/174] Changed wording on logging. Previously, we received
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < 16; i++)
|
for (i = 0; i < 16; i++)
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 08e3e98d28e32852e43bf25fb3e64bb3f5e6af4d Mon Sep 17 00:00:00 2001
|
From 1ef8aaf1ef348a22b72ba4367c5e2e5727542f59 Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Fri, 15 Feb 2013 22:36:47 +0000
|
Date: Fri, 15 Feb 2013 22:36:47 +0000
|
||||||
Subject: [PATCH 049/174] dwc_otg: Fix unsafe access of QTD during URB enqueue
|
Subject: [PATCH 049/196] dwc_otg: Fix unsafe access of QTD during URB enqueue
|
||||||
|
|
||||||
In dwc_otg_hcd_urb_enqueue during qtd creation, it was possible that the
|
In dwc_otg_hcd_urb_enqueue during qtd creation, it was possible that the
|
||||||
transaction could complete almost immediately after the qtd was assigned
|
transaction could complete almost immediately after the qtd was assigned
|
||||||
|
@ -17,9 +17,11 @@ that had no periodic endpoints (e.g. USB pendrive or some wlan devices).
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c | 2 +-
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c | 2 +-
|
||||||
2 files changed, 13 insertions(+), 12 deletions(-)
|
2 files changed, 13 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
index d5c94f4..e653d84 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -462,6 +462,8 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_
|
@@ -462,6 +462,8 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_t * hcd,
|
||||||
{
|
{
|
||||||
dwc_irqflags_t flags;
|
dwc_irqflags_t flags;
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
|
@ -28,7 +30,7 @@ that had no periodic endpoints (e.g. USB pendrive or some wlan devices).
|
||||||
dwc_otg_qtd_t *qtd;
|
dwc_otg_qtd_t *qtd;
|
||||||
gintmsk_data_t intr_mask = {.d32 = 0 };
|
gintmsk_data_t intr_mask = {.d32 = 0 };
|
||||||
|
|
||||||
@@ -493,22 +495,22 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_
|
@@ -493,22 +495,22 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_t * hcd,
|
||||||
return -DWC_E_NO_MEMORY;
|
return -DWC_E_NO_MEMORY;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -61,7 +63,7 @@ that had no periodic endpoints (e.g. USB pendrive or some wlan devices).
|
||||||
DWC_SPINLOCK_IRQSAVE(hcd->lock, &flags);
|
DWC_SPINLOCK_IRQSAVE(hcd->lock, &flags);
|
||||||
tr_type = dwc_otg_hcd_select_transactions(hcd);
|
tr_type = dwc_otg_hcd_select_transactions(hcd);
|
||||||
if (tr_type != DWC_OTG_TRANSACTION_NONE) {
|
if (tr_type != DWC_OTG_TRANSACTION_NONE) {
|
||||||
@@ -516,7 +518,6 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_
|
@@ -516,7 +518,6 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_t * hcd,
|
||||||
}
|
}
|
||||||
DWC_SPINUNLOCK_IRQRESTORE(hcd->lock, flags);
|
DWC_SPINUNLOCK_IRQRESTORE(hcd->lock, flags);
|
||||||
}
|
}
|
||||||
|
@ -69,9 +71,11 @@ that had no periodic endpoints (e.g. USB pendrive or some wlan devices).
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
|
index b337e1b..b3e6e52 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
@@ -937,7 +937,7 @@ int dwc_otg_hcd_qtd_add(dwc_otg_qtd_t *
|
@@ -937,7 +937,7 @@ int dwc_otg_hcd_qtd_add(dwc_otg_qtd_t * qtd,
|
||||||
if (*qh == NULL) {
|
if (*qh == NULL) {
|
||||||
*qh = dwc_otg_hcd_qh_create(hcd, urb, atomic_alloc);
|
*qh = dwc_otg_hcd_qh_create(hcd, urb, atomic_alloc);
|
||||||
if (*qh == NULL) {
|
if (*qh == NULL) {
|
||||||
|
@ -80,3 +84,6 @@ that had no periodic endpoints (e.g. USB pendrive or some wlan devices).
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From e3e9b6dbd5507ea5e571acae3ef6ed2e2d5dadcf Mon Sep 17 00:00:00 2001
|
From 65eba02bb428a4c572b5d3109e939a5e84a54747 Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Fri, 15 Feb 2013 22:38:40 +0000
|
Date: Fri, 15 Feb 2013 22:38:40 +0000
|
||||||
Subject: [PATCH 050/174] dwc_otg: Fix incorrect URB allocation error handling
|
Subject: [PATCH 050/196] dwc_otg: Fix incorrect URB allocation error handling
|
||||||
|
|
||||||
If the memory allocation for a dwc_otg_urb failed, the kernel would OOPS
|
If the memory allocation for a dwc_otg_urb failed, the kernel would OOPS
|
||||||
because for some reason a member of the *unallocated* struct was set to
|
because for some reason a member of the *unallocated* struct was set to
|
||||||
|
@ -10,9 +10,11 @@ zero. Error handling changed to fail correctly.
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 16 ++++++----------
|
drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 16 ++++++----------
|
||||||
1 file changed, 6 insertions(+), 10 deletions(-)
|
1 file changed, 6 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
index e653d84..fcec97f 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -3136,17 +3136,13 @@ dwc_otg_hcd_urb_t *dwc_otg_hcd_urb_alloc
|
@@ -3136,17 +3136,13 @@ dwc_otg_hcd_urb_t *dwc_otg_hcd_urb_alloc(dwc_otg_hcd_t * hcd,
|
||||||
else
|
else
|
||||||
dwc_otg_urb = DWC_ALLOC(size);
|
dwc_otg_urb = DWC_ALLOC(size);
|
||||||
|
|
||||||
|
@ -36,3 +38,6 @@ zero. Error handling changed to fail correctly.
|
||||||
return dwc_otg_urb;
|
return dwc_otg_urb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
From f1f13a6b3798161ccc3852320bd2184b85c9209b Mon Sep 17 00:00:00 2001
|
From 09eb4e8210da3acb95f874f3ed2292f13e1f6ad3 Mon Sep 17 00:00:00 2001
|
||||||
From: pjennings <pjennings-git@pjennings.net>
|
From: pjennings <pjennings-git@pjennings.net>
|
||||||
Date: Wed, 20 Feb 2013 17:51:43 -0600
|
Date: Wed, 20 Feb 2013 17:51:43 -0600
|
||||||
Subject: [PATCH 051/174] Added inverted transmitter support
|
Subject: [PATCH 051/196] Added inverted transmitter support
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/staging/media/lirc/lirc_rpi.c | 17 +++++++++++------
|
drivers/staging/media/lirc/lirc_rpi.c | 17 +++++++++++------
|
||||||
1 file changed, 11 insertions(+), 6 deletions(-)
|
1 file changed, 11 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/staging/media/lirc/lirc_rpi.c b/drivers/staging/media/lirc/lirc_rpi.c
|
||||||
|
index 96acab0..5bb0dfe 100644
|
||||||
--- a/drivers/staging/media/lirc/lirc_rpi.c
|
--- a/drivers/staging/media/lirc/lirc_rpi.c
|
||||||
+++ b/drivers/staging/media/lirc/lirc_rpi.c
|
+++ b/drivers/staging/media/lirc/lirc_rpi.c
|
||||||
@@ -68,6 +68,8 @@ static int debug;
|
@@ -68,6 +68,8 @@ static int debug;
|
||||||
|
@ -18,7 +20,7 @@ Subject: [PATCH 051/174] Added inverted transmitter support
|
||||||
|
|
||||||
struct gpio_chip *gpiochip;
|
struct gpio_chip *gpiochip;
|
||||||
struct irq_chip *irqchip;
|
struct irq_chip *irqchip;
|
||||||
@@ -135,10 +137,10 @@ static long send_pulse_softcarrier(unsig
|
@@ -135,10 +137,10 @@ static long send_pulse_softcarrier(unsigned long length)
|
||||||
actual = 0; target = 0; flag = 0;
|
actual = 0; target = 0; flag = 0;
|
||||||
while (actual < length) {
|
while (actual < length) {
|
||||||
if (flag) {
|
if (flag) {
|
||||||
|
@ -31,7 +33,7 @@ Subject: [PATCH 051/174] Added inverted transmitter support
|
||||||
target += pulse_width;
|
target += pulse_width;
|
||||||
}
|
}
|
||||||
d = (target - actual -
|
d = (target - actual -
|
||||||
@@ -162,7 +164,7 @@ static long send_pulse(unsigned long len
|
@@ -162,7 +164,7 @@ static long send_pulse(unsigned long length)
|
||||||
if (softcarrier) {
|
if (softcarrier) {
|
||||||
return send_pulse_softcarrier(length);
|
return send_pulse_softcarrier(length);
|
||||||
} else {
|
} else {
|
||||||
|
@ -40,7 +42,7 @@ Subject: [PATCH 051/174] Added inverted transmitter support
|
||||||
safe_udelay(length);
|
safe_udelay(length);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -170,7 +172,7 @@ static long send_pulse(unsigned long len
|
@@ -170,7 +172,7 @@ static long send_pulse(unsigned long length)
|
||||||
|
|
||||||
static void send_space(long length)
|
static void send_space(long length)
|
||||||
{
|
{
|
||||||
|
@ -58,7 +60,7 @@ Subject: [PATCH 051/174] Added inverted transmitter support
|
||||||
|
|
||||||
irq = gpiochip->to_irq(gpiochip, gpio_in_pin);
|
irq = gpiochip->to_irq(gpiochip, gpio_in_pin);
|
||||||
dprintk("to_irq %d\n", irq);
|
dprintk("to_irq %d\n", irq);
|
||||||
@@ -457,7 +459,7 @@ static ssize_t lirc_write(struct file *f
|
@@ -457,7 +459,7 @@ static ssize_t lirc_write(struct file *file, const char *buf,
|
||||||
else
|
else
|
||||||
delta = send_pulse(wbuf[i]);
|
delta = send_pulse(wbuf[i]);
|
||||||
}
|
}
|
||||||
|
@ -67,7 +69,7 @@ Subject: [PATCH 051/174] Added inverted transmitter support
|
||||||
|
|
||||||
spin_unlock_irqrestore(&lock, flags);
|
spin_unlock_irqrestore(&lock, flags);
|
||||||
kfree(wbuf);
|
kfree(wbuf);
|
||||||
@@ -683,5 +685,8 @@ MODULE_PARM_DESC(sense, "Override autode
|
@@ -683,5 +685,8 @@ MODULE_PARM_DESC(sense, "Override autodetection of IR receiver circuit"
|
||||||
module_param(softcarrier, bool, S_IRUGO);
|
module_param(softcarrier, bool, S_IRUGO);
|
||||||
MODULE_PARM_DESC(softcarrier, "Software carrier (0 = off, 1 = on, default on)");
|
MODULE_PARM_DESC(softcarrier, "Software carrier (0 = off, 1 = on, default on)");
|
||||||
|
|
||||||
|
@ -76,3 +78,6 @@ Subject: [PATCH 051/174] Added inverted transmitter support
|
||||||
+
|
+
|
||||||
module_param(debug, bool, S_IRUGO | S_IWUSR);
|
module_param(debug, bool, S_IRUGO | S_IWUSR);
|
||||||
MODULE_PARM_DESC(debug, "Enable debugging messages");
|
MODULE_PARM_DESC(debug, "Enable debugging messages");
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
From 2e7a6ee154b800b1e749e99d20a29673eea70aa1 Mon Sep 17 00:00:00 2001
|
From 1234701636ab3dca340a336aa9ddfadd64914e58 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Sun, 24 Feb 2013 16:30:57 +0000
|
Date: Sun, 24 Feb 2013 16:30:57 +0000
|
||||||
Subject: [PATCH 052/174] Add retry on error and tidy of temperature driver
|
Subject: [PATCH 052/196] Add retry on error and tidy of temperature driver
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/thermal/bcm2835-thermal.c | 78 ++++++++++++++-------------------------
|
drivers/thermal/bcm2835-thermal.c | 78 ++++++++++++++-------------------------
|
||||||
1 file changed, 27 insertions(+), 51 deletions(-)
|
1 file changed, 27 insertions(+), 51 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/thermal/bcm2835-thermal.c b/drivers/thermal/bcm2835-thermal.c
|
||||||
|
index 3f9a733..85fceb5 100644
|
||||||
--- a/drivers/thermal/bcm2835-thermal.c
|
--- a/drivers/thermal/bcm2835-thermal.c
|
||||||
+++ b/drivers/thermal/bcm2835-thermal.c
|
+++ b/drivers/thermal/bcm2835-thermal.c
|
||||||
@@ -33,7 +33,6 @@
|
@@ -33,7 +33,6 @@
|
||||||
|
@ -30,7 +32,7 @@ Subject: [PATCH 052/174] Add retry on error and tidy of temperature driver
|
||||||
/* --- GLOBALS --- */
|
/* --- GLOBALS --- */
|
||||||
static struct bcm2835_thermal_data bcm2835_data;
|
static struct bcm2835_thermal_data bcm2835_data;
|
||||||
|
|
||||||
@@ -79,64 +72,47 @@ static struct bcm2835_thermal_data bcm28
|
@@ -79,64 +72,47 @@ static struct bcm2835_thermal_data bcm2835_data;
|
||||||
static struct thermal_zone_device_ops ops;
|
static struct thermal_zone_device_ops ops;
|
||||||
|
|
||||||
/* --- FUNCTIONS --- */
|
/* --- FUNCTIONS --- */
|
||||||
|
@ -122,3 +124,6 @@ Subject: [PATCH 052/174] Add retry on error and tidy of temperature driver
|
||||||
|
|
||||||
static int bcm2835_get_trip_type(struct thermal_zone_device * thermal_dev, int trip_num, enum thermal_trip_type *trip_type)
|
static int bcm2835_get_trip_type(struct thermal_zone_device * thermal_dev, int trip_num, enum thermal_trip_type *trip_type)
|
||||||
{
|
{
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 51d7ae6f936ea32dedbe423fab97e3281994fe82 Mon Sep 17 00:00:00 2001
|
From 898039471876ec67191d7afcabea38ac5e90285a Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Thu, 28 Feb 2013 16:52:51 +0000
|
Date: Thu, 28 Feb 2013 16:52:51 +0000
|
||||||
Subject: [PATCH 053/174] dwc_otg: fix potential use-after-free case in
|
Subject: [PATCH 053/196] dwc_otg: fix potential use-after-free case in
|
||||||
interrupt handler
|
interrupt handler
|
||||||
|
|
||||||
If a transaction had previously aborted, certain interrupts are
|
If a transaction had previously aborted, certain interrupts are
|
||||||
|
@ -15,9 +15,11 @@ the QTD memory space with a 1-byte length being overwritten to
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 3 ++-
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 3 ++-
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index e8c91e7..0c81a64 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -2223,7 +2223,8 @@ int32_t dwc_otg_hcd_handle_hc_n_intr(dwc
|
@@ -2223,7 +2223,8 @@ int32_t dwc_otg_hcd_handle_hc_n_intr(dwc_otg_hcd_t * dwc_otg_hcd, uint32_t num)
|
||||||
retval |= handle_hc_nak_intr(dwc_otg_hcd, hc, hc_regs, qtd);
|
retval |= handle_hc_nak_intr(dwc_otg_hcd, hc, hc_regs, qtd);
|
||||||
}
|
}
|
||||||
if (hcint.b.ack) {
|
if (hcint.b.ack) {
|
||||||
|
@ -27,3 +29,6 @@ the QTD memory space with a 1-byte length being overwritten to
|
||||||
}
|
}
|
||||||
if (hcint.b.nyet) {
|
if (hcint.b.nyet) {
|
||||||
retval |= handle_hc_nyet_intr(dwc_otg_hcd, hc, hc_regs, qtd);
|
retval |= handle_hc_nyet_intr(dwc_otg_hcd, hc, hc_regs, qtd);
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From f90755cd13b722cd3ea79bee92c29d2828b3905f Mon Sep 17 00:00:00 2001
|
From 70303c1e07d940f6f0b2b8b9359930be1c0f566e Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Sun, 3 Mar 2013 14:45:53 +0000
|
Date: Sun, 3 Mar 2013 14:45:53 +0000
|
||||||
Subject: [PATCH 054/174] dwc_otg: add handling of SPLIT transaction data
|
Subject: [PATCH 054/196] dwc_otg: add handling of SPLIT transaction data
|
||||||
toggle errors
|
toggle errors
|
||||||
|
|
||||||
Previously a data toggle error on packets from a USB1.1 device behind
|
Previously a data toggle error on packets from a USB1.1 device behind
|
||||||
|
@ -13,9 +13,11 @@ for devices that have a broken initial toggle state (FT8U232/FT232BM).
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 19 ++++++++++++++-----
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 19 ++++++++++++++-----
|
||||||
1 file changed, 14 insertions(+), 5 deletions(-)
|
1 file changed, 14 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index 0c81a64..16e8c6c 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -1921,13 +1921,20 @@ static int32_t handle_hc_datatglerr_intr
|
@@ -1921,13 +1921,20 @@ static int32_t handle_hc_datatglerr_intr(dwc_otg_hcd_t * hcd,
|
||||||
dwc_otg_qtd_t * qtd)
|
dwc_otg_qtd_t * qtd)
|
||||||
{
|
{
|
||||||
DWC_DEBUGPL(DBG_HCDI, "--Host Channel %d Interrupt: "
|
DWC_DEBUGPL(DBG_HCDI, "--Host Channel %d Interrupt: "
|
||||||
|
@ -41,7 +43,7 @@ for devices that have a broken initial toggle state (FT8U232/FT232BM).
|
||||||
}
|
}
|
||||||
|
|
||||||
disable_hc_int(hc_regs, datatglerr);
|
disable_hc_int(hc_regs, datatglerr);
|
||||||
@@ -2080,6 +2087,8 @@ static void handle_hc_chhltd_intr_dma(dw
|
@@ -2080,6 +2087,8 @@ static void handle_hc_chhltd_intr_dma(dwc_otg_hcd_t * hcd,
|
||||||
handle_hc_babble_intr(hcd, hc, hc_regs, qtd);
|
handle_hc_babble_intr(hcd, hc, hc_regs, qtd);
|
||||||
} else if (hcint.b.frmovrun) {
|
} else if (hcint.b.frmovrun) {
|
||||||
handle_hc_frmovrun_intr(hcd, hc, hc_regs, qtd);
|
handle_hc_frmovrun_intr(hcd, hc, hc_regs, qtd);
|
||||||
|
@ -50,3 +52,6 @@ for devices that have a broken initial toggle state (FT8U232/FT232BM).
|
||||||
} else if (!out_nak_enh) {
|
} else if (!out_nak_enh) {
|
||||||
if (hcint.b.nyet) {
|
if (hcint.b.nyet) {
|
||||||
/*
|
/*
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 28ca85a46bbdae4152b48a669872ac205d053856 Mon Sep 17 00:00:00 2001
|
From 0a2fa5a85c2ed9599acb2215f24e06db0379a133 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 1 May 2013 21:14:28 +0100
|
Date: Wed, 1 May 2013 21:14:28 +0100
|
||||||
Subject: [PATCH 055/174] Add bitbanging pullups, use them for w1-gpio
|
Subject: [PATCH 055/196] Add bitbanging pullups, use them for w1-gpio
|
||||||
|
|
||||||
Allows parasite power to work, uses module option pullup=1
|
Allows parasite power to work, uses module option pullup=1
|
||||||
---
|
---
|
||||||
|
@ -11,6 +11,8 @@ Allows parasite power to work, uses module option pullup=1
|
||||||
drivers/w1/w1_io.c | 18 +++++++++++++++---
|
drivers/w1/w1_io.c | 18 +++++++++++++++---
|
||||||
4 files changed, 50 insertions(+), 10 deletions(-)
|
4 files changed, 50 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/w1/masters/w1-gpio.c b/drivers/w1/masters/w1-gpio.c
|
||||||
|
index 46d9701..f615f80 100644
|
||||||
--- a/drivers/w1/masters/w1-gpio.c
|
--- a/drivers/w1/masters/w1-gpio.c
|
||||||
+++ b/drivers/w1/masters/w1-gpio.c
|
+++ b/drivers/w1/masters/w1-gpio.c
|
||||||
@@ -23,6 +23,9 @@
|
@@ -23,6 +23,9 @@
|
||||||
|
@ -40,7 +42,7 @@ Allows parasite power to work, uses module option pullup=1
|
||||||
#if defined(CONFIG_OF)
|
#if defined(CONFIG_OF)
|
||||||
static struct of_device_id w1_gpio_dt_ids[] = {
|
static struct of_device_id w1_gpio_dt_ids[] = {
|
||||||
{ .compatible = "w1-gpio" },
|
{ .compatible = "w1-gpio" },
|
||||||
@@ -133,6 +146,13 @@ static int w1_gpio_probe(struct platform
|
@@ -133,6 +146,13 @@ static int w1_gpio_probe(struct platform_device *pdev)
|
||||||
master->write_bit = w1_gpio_write_bit_dir;
|
master->write_bit = w1_gpio_write_bit_dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,6 +56,8 @@ Allows parasite power to work, uses module option pullup=1
|
||||||
err = w1_add_master_device(master);
|
err = w1_add_master_device(master);
|
||||||
if (err) {
|
if (err) {
|
||||||
dev_err(&pdev->dev, "w1_add_master device failed\n");
|
dev_err(&pdev->dev, "w1_add_master device failed\n");
|
||||||
|
diff --git a/drivers/w1/w1.h b/drivers/w1/w1.h
|
||||||
|
index 45908e5..0ba75f6 100644
|
||||||
--- a/drivers/w1/w1.h
|
--- a/drivers/w1/w1.h
|
||||||
+++ b/drivers/w1/w1.h
|
+++ b/drivers/w1/w1.h
|
||||||
@@ -148,6 +148,12 @@ struct w1_bus_master
|
@@ -148,6 +148,12 @@ struct w1_bus_master
|
||||||
|
@ -69,9 +73,11 @@ Allows parasite power to work, uses module option pullup=1
|
||||||
/** Really nice hardware can handles the different types of ROM search
|
/** Really nice hardware can handles the different types of ROM search
|
||||||
* w1_master* is passed to the slave found callback.
|
* w1_master* is passed to the slave found callback.
|
||||||
*/
|
*/
|
||||||
|
diff --git a/drivers/w1/w1_int.c b/drivers/w1/w1_int.c
|
||||||
|
index 5a98649..a4d69b6 100644
|
||||||
--- a/drivers/w1/w1_int.c
|
--- a/drivers/w1/w1_int.c
|
||||||
+++ b/drivers/w1/w1_int.c
|
+++ b/drivers/w1/w1_int.c
|
||||||
@@ -117,19 +117,21 @@ int w1_add_master_device(struct w1_bus_m
|
@@ -117,19 +117,21 @@ int w1_add_master_device(struct w1_bus_master *master)
|
||||||
printk(KERN_ERR "w1_add_master_device: invalid function set\n");
|
printk(KERN_ERR "w1_add_master_device: invalid function set\n");
|
||||||
return(-EINVAL);
|
return(-EINVAL);
|
||||||
}
|
}
|
||||||
|
@ -100,9 +106,11 @@ Allows parasite power to work, uses module option pullup=1
|
||||||
/* Lock until the device is added (or not) to w1_masters. */
|
/* Lock until the device is added (or not) to w1_masters. */
|
||||||
mutex_lock(&w1_mlock);
|
mutex_lock(&w1_mlock);
|
||||||
/* Search for the first available id (starting at 1). */
|
/* Search for the first available id (starting at 1). */
|
||||||
|
diff --git a/drivers/w1/w1_io.c b/drivers/w1/w1_io.c
|
||||||
|
index e10acc2..667fdd5 100644
|
||||||
--- a/drivers/w1/w1_io.c
|
--- a/drivers/w1/w1_io.c
|
||||||
+++ b/drivers/w1/w1_io.c
|
+++ b/drivers/w1/w1_io.c
|
||||||
@@ -127,10 +127,22 @@ static void w1_pre_write(struct w1_maste
|
@@ -127,10 +127,22 @@ static void w1_pre_write(struct w1_master *dev)
|
||||||
static void w1_post_write(struct w1_master *dev)
|
static void w1_post_write(struct w1_master *dev)
|
||||||
{
|
{
|
||||||
if (dev->pullup_duration) {
|
if (dev->pullup_duration) {
|
||||||
|
@ -117,14 +125,17 @@ Allows parasite power to work, uses module option pullup=1
|
||||||
+ } else if (dev->bus_master->bitbang_pullup) {
|
+ } else if (dev->bus_master->bitbang_pullup) {
|
||||||
+ dev->bus_master->
|
+ dev->bus_master->
|
||||||
+ bitbang_pullup(dev->bus_master->data, 1);
|
+ bitbang_pullup(dev->bus_master->data, 1);
|
||||||
msleep(dev->pullup_duration);
|
+ msleep(dev->pullup_duration);
|
||||||
+ dev->bus_master->
|
+ dev->bus_master->
|
||||||
+ bitbang_pullup(dev->bus_master->data, 0);
|
+ bitbang_pullup(dev->bus_master->data, 0);
|
||||||
+ }
|
+ }
|
||||||
+ } else {
|
+ } else {
|
||||||
+ msleep(dev->pullup_duration);
|
msleep(dev->pullup_duration);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
dev->pullup_duration = 0;
|
dev->pullup_duration = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
From 75c9b03f90ca974cb072d96f423884b773ca5425 Mon Sep 17 00:00:00 2001
|
From 4b64ce34aaf88c2869c74efad7cbe5167920625b Mon Sep 17 00:00:00 2001
|
||||||
From: notro <notro@tronnes.org>
|
From: notro <notro@tronnes.org>
|
||||||
Date: Sat, 26 Jan 2013 20:38:03 +0100
|
Date: Sat, 26 Jan 2013 20:38:03 +0100
|
||||||
Subject: [PATCH 056/174] spi-bcm2708: add 9-bit support using LoSSI mode
|
Subject: [PATCH 056/196] spi-bcm2708: add 9-bit support using LoSSI mode
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/spi/spi-bcm2708.c | 30 ++++++++++++++++++++++++++++--
|
drivers/spi/spi-bcm2708.c | 30 ++++++++++++++++++++++++++++--
|
||||||
1 file changed, 28 insertions(+), 2 deletions(-)
|
1 file changed, 28 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/spi/spi-bcm2708.c b/drivers/spi/spi-bcm2708.c
|
||||||
|
index b74aa32..abaa5a6 100644
|
||||||
--- a/drivers/spi/spi-bcm2708.c
|
--- a/drivers/spi/spi-bcm2708.c
|
||||||
+++ b/drivers/spi/spi-bcm2708.c
|
+++ b/drivers/spi/spi-bcm2708.c
|
||||||
@@ -146,10 +146,31 @@ static inline void bcm2708_rd_fifo(struc
|
@@ -146,10 +146,31 @@ static inline void bcm2708_rd_fifo(struct bcm2708_spi *bs, int len)
|
||||||
static inline void bcm2708_wr_fifo(struct bcm2708_spi *bs, int len)
|
static inline void bcm2708_wr_fifo(struct bcm2708_spi *bs, int len)
|
||||||
{
|
{
|
||||||
u8 byte;
|
u8 byte;
|
||||||
|
@ -41,7 +43,7 @@ Subject: [PATCH 056/174] spi-bcm2708: add 9-bit support using LoSSI mode
|
||||||
while (len--) {
|
while (len--) {
|
||||||
byte = bs->tx_buf ? *bs->tx_buf++ : 0;
|
byte = bs->tx_buf ? *bs->tx_buf++ : 0;
|
||||||
bcm2708_wr(bs, SPI_FIFO, byte);
|
bcm2708_wr(bs, SPI_FIFO, byte);
|
||||||
@@ -234,8 +255,12 @@ static int bcm2708_setup_state(struct sp
|
@@ -234,8 +255,12 @@ static int bcm2708_setup_state(struct spi_master *master,
|
||||||
switch (bpw) {
|
switch (bpw) {
|
||||||
case 8:
|
case 8:
|
||||||
break;
|
break;
|
||||||
|
@ -55,7 +57,7 @@ Subject: [PATCH 056/174] spi-bcm2708: add 9-bit support using LoSSI mode
|
||||||
bpw);
|
bpw);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
@@ -283,7 +308,8 @@ static int bcm2708_process_transfer(stru
|
@@ -283,7 +308,8 @@ static int bcm2708_process_transfer(struct bcm2708_spi *bs,
|
||||||
ret = bcm2708_setup_state(spi->master, &spi->dev, &state,
|
ret = bcm2708_setup_state(spi->master, &spi->dev, &state,
|
||||||
xfer->speed_hz ? xfer->speed_hz : spi->max_speed_hz,
|
xfer->speed_hz ? xfer->speed_hz : spi->max_speed_hz,
|
||||||
spi->chip_select, spi->mode,
|
spi->chip_select, spi->mode,
|
||||||
|
@ -65,3 +67,6 @@ Subject: [PATCH 056/174] spi-bcm2708: add 9-bit support using LoSSI mode
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 71109f7d314b6205259d5cecf8314708f84fb9e6 Mon Sep 17 00:00:00 2001
|
From f5908d1de6a9231622ebe7ae174749305a69878f Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Thu, 21 Mar 2013 19:36:17 +0000
|
Date: Thu, 21 Mar 2013 19:36:17 +0000
|
||||||
Subject: [PATCH 057/174] dwc_otg: implement tasklet for returning URBs to
|
Subject: [PATCH 057/196] dwc_otg: implement tasklet for returning URBs to
|
||||||
usbcore hcd layer
|
usbcore hcd layer
|
||||||
|
|
||||||
The dwc_otg driver interrupt handler for transfer completion will spend
|
The dwc_otg driver interrupt handler for transfer completion will spend
|
||||||
|
@ -25,9 +25,11 @@ devices are active at once.
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 25 ++++++++++------
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 25 ++++++++++------
|
||||||
6 files changed, 73 insertions(+), 17 deletions(-)
|
6 files changed, 73 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_common_linux.c b/drivers/usb/host/dwc_common_port/dwc_common_linux.c
|
||||||
|
index f00a9ff..6814e51 100644
|
||||||
--- a/drivers/usb/host/dwc_common_port/dwc_common_linux.c
|
--- a/drivers/usb/host/dwc_common_port/dwc_common_linux.c
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_common_linux.c
|
+++ b/drivers/usb/host/dwc_common_port/dwc_common_linux.c
|
||||||
@@ -991,6 +991,11 @@ void DWC_TASK_SCHEDULE(dwc_tasklet_t *ta
|
@@ -991,6 +991,11 @@ void DWC_TASK_SCHEDULE(dwc_tasklet_t *task)
|
||||||
tasklet_schedule(&task->t);
|
tasklet_schedule(&task->t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,6 +41,8 @@ devices are active at once.
|
||||||
|
|
||||||
/* workqueues
|
/* workqueues
|
||||||
- run in process context (can sleep)
|
- run in process context (can sleep)
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_list.h b/drivers/usb/host/dwc_common_port/dwc_list.h
|
||||||
|
index 89cc325..4ce560d 100644
|
||||||
--- a/drivers/usb/host/dwc_common_port/dwc_list.h
|
--- a/drivers/usb/host/dwc_common_port/dwc_list.h
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_list.h
|
+++ b/drivers/usb/host/dwc_common_port/dwc_list.h
|
||||||
@@ -384,17 +384,17 @@ struct { \
|
@@ -384,17 +384,17 @@ struct { \
|
||||||
|
@ -66,9 +70,11 @@ devices are active at once.
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Tail queue functions.
|
* Tail queue functions.
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_os.h b/drivers/usb/host/dwc_common_port/dwc_os.h
|
||||||
|
index 308ddd5..8eb24ea 100644
|
||||||
--- a/drivers/usb/host/dwc_common_port/dwc_os.h
|
--- a/drivers/usb/host/dwc_common_port/dwc_os.h
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_os.h
|
+++ b/drivers/usb/host/dwc_common_port/dwc_os.h
|
||||||
@@ -981,6 +981,8 @@ extern void DWC_TASK_FREE(dwc_tasklet_t
|
@@ -981,6 +981,8 @@ extern void DWC_TASK_FREE(dwc_tasklet_t *task);
|
||||||
extern void DWC_TASK_SCHEDULE(dwc_tasklet_t *task);
|
extern void DWC_TASK_SCHEDULE(dwc_tasklet_t *task);
|
||||||
#define dwc_task_schedule DWC_TASK_SCHEDULE
|
#define dwc_task_schedule DWC_TASK_SCHEDULE
|
||||||
|
|
||||||
|
@ -77,6 +83,8 @@ devices are active at once.
|
||||||
|
|
||||||
/** @name Timer
|
/** @name Timer
|
||||||
*
|
*
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
index fcec97f..91eefec 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -40,6 +40,9 @@
|
@@ -40,6 +40,9 @@
|
||||||
|
@ -89,7 +97,7 @@ devices are active at once.
|
||||||
#include "dwc_otg_hcd.h"
|
#include "dwc_otg_hcd.h"
|
||||||
#include "dwc_otg_regs.h"
|
#include "dwc_otg_regs.h"
|
||||||
|
|
||||||
@@ -694,6 +697,31 @@ static void reset_tasklet_func(void *dat
|
@@ -694,6 +697,31 @@ static void reset_tasklet_func(void *data)
|
||||||
dwc_otg_hcd->flags.b.port_reset_change = 1;
|
dwc_otg_hcd->flags.b.port_reset_change = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,7 +129,7 @@ devices are active at once.
|
||||||
static void qh_list_free(dwc_otg_hcd_t * hcd, dwc_list_link_t * qh_list)
|
static void qh_list_free(dwc_otg_hcd_t * hcd, dwc_list_link_t * qh_list)
|
||||||
{
|
{
|
||||||
dwc_list_link_t *item;
|
dwc_list_link_t *item;
|
||||||
@@ -833,6 +861,7 @@ static void dwc_otg_hcd_free(dwc_otg_hcd
|
@@ -833,6 +861,7 @@ static void dwc_otg_hcd_free(dwc_otg_hcd_t * dwc_otg_hcd)
|
||||||
|
|
||||||
DWC_TIMER_FREE(dwc_otg_hcd->conn_timer);
|
DWC_TIMER_FREE(dwc_otg_hcd->conn_timer);
|
||||||
DWC_TASK_FREE(dwc_otg_hcd->reset_tasklet);
|
DWC_TASK_FREE(dwc_otg_hcd->reset_tasklet);
|
||||||
|
@ -129,7 +137,7 @@ devices are active at once.
|
||||||
|
|
||||||
#ifdef DWC_DEV_SRPCAP
|
#ifdef DWC_DEV_SRPCAP
|
||||||
if (dwc_otg_hcd->core_if->power_down == 2 &&
|
if (dwc_otg_hcd->core_if->power_down == 2 &&
|
||||||
@@ -877,7 +906,7 @@ int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd
|
@@ -877,7 +906,7 @@ int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd, dwc_otg_core_if_t * core_if)
|
||||||
DWC_LIST_INIT(&hcd->periodic_sched_ready);
|
DWC_LIST_INIT(&hcd->periodic_sched_ready);
|
||||||
DWC_LIST_INIT(&hcd->periodic_sched_assigned);
|
DWC_LIST_INIT(&hcd->periodic_sched_assigned);
|
||||||
DWC_LIST_INIT(&hcd->periodic_sched_queued);
|
DWC_LIST_INIT(&hcd->periodic_sched_queued);
|
||||||
|
@ -138,7 +146,7 @@ devices are active at once.
|
||||||
/*
|
/*
|
||||||
* Create a host channel descriptor for each host channel implemented
|
* Create a host channel descriptor for each host channel implemented
|
||||||
* in the controller. Initialize the channel descriptor array.
|
* in the controller. Initialize the channel descriptor array.
|
||||||
@@ -915,6 +944,9 @@ int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd
|
@@ -915,6 +944,9 @@ int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd, dwc_otg_core_if_t * core_if)
|
||||||
|
|
||||||
/* Initialize reset tasklet. */
|
/* Initialize reset tasklet. */
|
||||||
hcd->reset_tasklet = DWC_TASK_ALLOC("reset_tasklet", reset_tasklet_func, hcd);
|
hcd->reset_tasklet = DWC_TASK_ALLOC("reset_tasklet", reset_tasklet_func, hcd);
|
||||||
|
@ -148,6 +156,8 @@ devices are active at once.
|
||||||
#ifdef DWC_DEV_SRPCAP
|
#ifdef DWC_DEV_SRPCAP
|
||||||
if (hcd->core_if->power_down == 2) {
|
if (hcd->core_if->power_down == 2) {
|
||||||
/* Initialize Power on timer for Host power up in case hibernation */
|
/* Initialize Power on timer for Host power up in case hibernation */
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
|
index 45e44ea..0493dbf 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
@@ -374,6 +374,13 @@ typedef struct dwc_otg_qh {
|
@@ -374,6 +374,13 @@ typedef struct dwc_otg_qh {
|
||||||
|
@ -174,9 +184,11 @@ devices are active at once.
|
||||||
/* */
|
/* */
|
||||||
dwc_spinlock_t *lock;
|
dwc_spinlock_t *lock;
|
||||||
dwc_spinlock_t *channel_lock;
|
dwc_spinlock_t *channel_lock;
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
|
index 9702f81..7bb133a 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
@@ -271,7 +271,7 @@ static int _complete(dwc_otg_hcd_t * hcd
|
@@ -271,7 +271,7 @@ static int _complete(dwc_otg_hcd_t * hcd, void *urb_handle,
|
||||||
dwc_otg_hcd_urb_t * dwc_otg_urb, int32_t status)
|
dwc_otg_hcd_urb_t * dwc_otg_urb, int32_t status)
|
||||||
{
|
{
|
||||||
struct urb *urb = (struct urb *)urb_handle;
|
struct urb *urb = (struct urb *)urb_handle;
|
||||||
|
@ -185,7 +197,7 @@ devices are active at once.
|
||||||
if (CHK_DEBUG_LEVEL(DBG_HCDV | DBG_HCD_URB)) {
|
if (CHK_DEBUG_LEVEL(DBG_HCDV | DBG_HCD_URB)) {
|
||||||
DWC_PRINTF("%s: urb %p, device %d, ep %d %s, status=%d\n",
|
DWC_PRINTF("%s: urb %p, device %d, ep %d %s, status=%d\n",
|
||||||
__func__, urb, usb_pipedevice(urb->pipe),
|
__func__, urb, usb_pipedevice(urb->pipe),
|
||||||
@@ -285,7 +285,7 @@ static int _complete(dwc_otg_hcd_t * hcd
|
@@ -285,7 +285,7 @@ static int _complete(dwc_otg_hcd_t * hcd, void *urb_handle,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -194,7 +206,7 @@ devices are active at once.
|
||||||
urb->actual_length = dwc_otg_hcd_urb_get_actual_length(dwc_otg_urb);
|
urb->actual_length = dwc_otg_hcd_urb_get_actual_length(dwc_otg_urb);
|
||||||
/* Convert status value. */
|
/* Convert status value. */
|
||||||
switch (status) {
|
switch (status) {
|
||||||
@@ -348,18 +348,25 @@ static int _complete(dwc_otg_hcd_t * hcd
|
@@ -348,18 +348,25 @@ static int _complete(dwc_otg_hcd_t * hcd, void *urb_handle,
|
||||||
}
|
}
|
||||||
|
|
||||||
DWC_FREE(dwc_otg_urb);
|
DWC_FREE(dwc_otg_urb);
|
||||||
|
@ -227,3 +239,6 @@ devices are active at once.
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
From 4013559fb9dca2beff1fa59a87ac1d1578408ad0 Mon Sep 17 00:00:00 2001
|
From a7f5e84afb763c30050797fb4cd01d536dbb7c11 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 3 Jul 2013 00:54:08 +0100
|
Date: Wed, 3 Jul 2013 00:54:08 +0100
|
||||||
Subject: [PATCH 058/174] Added Device IDs for August DVB-T 205
|
Subject: [PATCH 058/196] Added Device IDs for August DVB-T 205
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 4 ++++
|
drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 4 ++++
|
||||||
1 file changed, 4 insertions(+)
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
|
||||||
|
index 2cc8ec7..25e8553 100644
|
||||||
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
|
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
|
||||||
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
|
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
|
||||||
@@ -1408,6 +1408,10 @@ static const struct usb_device_id rtl28x
|
@@ -1408,6 +1408,10 @@ static const struct usb_device_id rtl28xxu_id_table[] = {
|
||||||
&rtl2832u_props, "Compro VideoMate U620F", NULL) },
|
&rtl2832u_props, "Compro VideoMate U620F", NULL) },
|
||||||
{ DVB_USB_DEVICE(USB_VID_KWORLD_2, 0xd394,
|
{ DVB_USB_DEVICE(USB_VID_KWORLD_2, 0xd394,
|
||||||
&rtl2832u_props, "MaxMedia HU394-T", NULL) },
|
&rtl2832u_props, "MaxMedia HU394-T", NULL) },
|
||||||
|
@ -20,3 +22,6 @@ Subject: [PATCH 058/174] Added Device IDs for August DVB-T 205
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table);
|
MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table);
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
From f7d501dfb97c2af4dd1f60f85e94bf110f69834c Mon Sep 17 00:00:00 2001
|
From b9155aba8ba7b46ee8cc96c6479adf01b1e0e849 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Tue, 16 Apr 2013 15:36:01 +0100
|
Date: Tue, 16 Apr 2013 15:36:01 +0100
|
||||||
Subject: [PATCH 059/174] Add v6wbi_flush_kern_tlb_range to allow zsmalloc to
|
Subject: [PATCH 059/196] Add v6wbi_flush_kern_tlb_range to allow zsmalloc to
|
||||||
be built as a module
|
be built as a module
|
||||||
|
|
||||||
---
|
---
|
||||||
arch/arm/kernel/armksyms.c | 4 ++++
|
arch/arm/kernel/armksyms.c | 4 ++++
|
||||||
1 file changed, 4 insertions(+)
|
1 file changed, 4 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
|
||||||
|
index 60d3b73..cba4d28 100644
|
||||||
--- a/arch/arm/kernel/armksyms.c
|
--- a/arch/arm/kernel/armksyms.c
|
||||||
+++ b/arch/arm/kernel/armksyms.c
|
+++ b/arch/arm/kernel/armksyms.c
|
||||||
@@ -156,3 +156,7 @@ EXPORT_SYMBOL(__gnu_mcount_nc);
|
@@ -156,3 +156,7 @@ EXPORT_SYMBOL(__gnu_mcount_nc);
|
||||||
|
@ -18,3 +20,6 @@ Subject: [PATCH 059/174] Add v6wbi_flush_kern_tlb_range to allow zsmalloc to
|
||||||
+extern void v6wbi_flush_kern_tlb_range(void);
|
+extern void v6wbi_flush_kern_tlb_range(void);
|
||||||
+EXPORT_SYMBOL(v6wbi_flush_kern_tlb_range);
|
+EXPORT_SYMBOL(v6wbi_flush_kern_tlb_range);
|
||||||
+
|
+
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 370cbdb4a5ec521d9312b02bbaf269ed520b1451 Mon Sep 17 00:00:00 2001
|
From 3cb2c23c6dba5ae74976e85329b880876fadd787 Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Mon, 22 Apr 2013 00:08:36 +0100
|
Date: Mon, 22 Apr 2013 00:08:36 +0100
|
||||||
Subject: [PATCH 060/174] dwc_otg: fix NAK holdoff and allow on split
|
Subject: [PATCH 060/196] dwc_otg: fix NAK holdoff and allow on split
|
||||||
transactions only
|
transactions only
|
||||||
|
|
||||||
This corrects a bug where if a single active non-periodic endpoint
|
This corrects a bug where if a single active non-periodic endpoint
|
||||||
|
@ -18,6 +18,8 @@ only split transactions get held off.
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 28 ++++++++++++++++++----------
|
drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 28 ++++++++++++++++++----------
|
||||||
1 file changed, 18 insertions(+), 10 deletions(-)
|
1 file changed, 18 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
index 91eefec..eaa8f38 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -46,7 +46,7 @@
|
@@ -46,7 +46,7 @@
|
||||||
|
@ -29,7 +31,7 @@ only split transactions get held off.
|
||||||
|
|
||||||
//#define DEBUG_HOST_CHANNELS
|
//#define DEBUG_HOST_CHANNELS
|
||||||
#ifdef DEBUG_HOST_CHANNELS
|
#ifdef DEBUG_HOST_CHANNELS
|
||||||
@@ -1349,18 +1349,26 @@ dwc_otg_transaction_type_e dwc_otg_hcd_s
|
@@ -1349,18 +1349,26 @@ dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t * hcd)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Check to see if this is a NAK'd retransmit, in which case ignore for retransmission
|
* Check to see if this is a NAK'd retransmit, in which case ignore for retransmission
|
||||||
|
@ -65,3 +67,6 @@ only split transactions get held off.
|
||||||
if (microframe_schedule) {
|
if (microframe_schedule) {
|
||||||
DWC_SPINLOCK_IRQSAVE(channel_lock, &flags);
|
DWC_SPINLOCK_IRQSAVE(channel_lock, &flags);
|
||||||
if (hcd->available_host_channels < 1) {
|
if (hcd->available_host_channels < 1) {
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 5d42dfcf42ba987a03d8b5f2dfa30e9cb2dc4721 Mon Sep 17 00:00:00 2001
|
From 46b48162ae7d5323a73eea61c29f3f1e18e12b0c Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Fri, 26 Apr 2013 10:08:31 -0700
|
Date: Fri, 26 Apr 2013 10:08:31 -0700
|
||||||
Subject: [PATCH 061/174] Merge pull request #286 from
|
Subject: [PATCH 061/196] Merge pull request #286 from
|
||||||
martinezjavier/rpi-3.6.y-dev
|
martinezjavier/rpi-3.6.y-dev
|
||||||
|
|
||||||
add mmap support and some cleanups to bcm2835 ALSA driver
|
add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
|
@ -12,6 +12,8 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
sound/arm/bcm2835.h | 2 ++
|
sound/arm/bcm2835.h | 2 ++
|
||||||
4 files changed, 124 insertions(+), 70 deletions(-)
|
4 files changed, 124 insertions(+), 70 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/sound/arm/bcm2835-pcm.c b/sound/arm/bcm2835-pcm.c
|
||||||
|
index 4206b7e..21e435b 100755
|
||||||
--- a/sound/arm/bcm2835-pcm.c
|
--- a/sound/arm/bcm2835-pcm.c
|
||||||
+++ b/sound/arm/bcm2835-pcm.c
|
+++ b/sound/arm/bcm2835-pcm.c
|
||||||
@@ -19,7 +19,8 @@
|
@@ -19,7 +19,8 @@
|
||||||
|
@ -24,7 +26,7 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
.formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
|
.formats = SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
|
||||||
.rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
|
.rates = SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
|
||||||
.rate_min = 8000,
|
.rate_min = 8000,
|
||||||
@@ -251,6 +252,12 @@ static int snd_bcm2835_pcm_prepare(struc
|
@@ -251,6 +252,12 @@ static int snd_bcm2835_pcm_prepare(struct snd_pcm_substream *substream)
|
||||||
|
|
||||||
audio_info(" .. IN\n");
|
audio_info(" .. IN\n");
|
||||||
|
|
||||||
|
@ -37,7 +39,7 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
alsa_stream->buffer_size = snd_pcm_lib_buffer_bytes(substream);
|
alsa_stream->buffer_size = snd_pcm_lib_buffer_bytes(substream);
|
||||||
alsa_stream->period_size = snd_pcm_lib_period_bytes(substream);
|
alsa_stream->period_size = snd_pcm_lib_period_bytes(substream);
|
||||||
alsa_stream->pos = 0;
|
alsa_stream->pos = 0;
|
||||||
@@ -263,6 +270,32 @@ static int snd_bcm2835_pcm_prepare(struc
|
@@ -263,6 +270,32 @@ static int snd_bcm2835_pcm_prepare(struct snd_pcm_substream *substream)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +72,7 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
/* trigger callback */
|
/* trigger callback */
|
||||||
static int snd_bcm2835_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
|
static int snd_bcm2835_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
|
||||||
{
|
{
|
||||||
@@ -279,6 +312,11 @@ static int snd_bcm2835_pcm_trigger(struc
|
@@ -279,6 +312,11 @@ static int snd_bcm2835_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
|
||||||
if (!alsa_stream->running) {
|
if (!alsa_stream->running) {
|
||||||
err = bcm2835_audio_start(alsa_stream);
|
err = bcm2835_audio_start(alsa_stream);
|
||||||
if (err == 0) {
|
if (err == 0) {
|
||||||
|
@ -82,7 +84,7 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
alsa_stream->running = 1;
|
alsa_stream->running = 1;
|
||||||
alsa_stream->draining = 1;
|
alsa_stream->draining = 1;
|
||||||
} else {
|
} else {
|
||||||
@@ -327,30 +365,9 @@ snd_bcm2835_pcm_pointer(struct snd_pcm_s
|
@@ -327,30 +365,9 @@ snd_bcm2835_pcm_pointer(struct snd_pcm_substream *substream)
|
||||||
alsa_stream->pos);
|
alsa_stream->pos);
|
||||||
|
|
||||||
audio_info(" .. OUT\n");
|
audio_info(" .. OUT\n");
|
||||||
|
@ -116,7 +118,7 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
}
|
}
|
||||||
|
|
||||||
static int snd_bcm2835_pcm_lib_ioctl(struct snd_pcm_substream *substream,
|
static int snd_bcm2835_pcm_lib_ioctl(struct snd_pcm_substream *substream,
|
||||||
@@ -372,7 +389,7 @@ static struct snd_pcm_ops snd_bcm2835_pl
|
@@ -372,7 +389,7 @@ static struct snd_pcm_ops snd_bcm2835_playback_ops = {
|
||||||
.prepare = snd_bcm2835_pcm_prepare,
|
.prepare = snd_bcm2835_pcm_prepare,
|
||||||
.trigger = snd_bcm2835_pcm_trigger,
|
.trigger = snd_bcm2835_pcm_trigger,
|
||||||
.pointer = snd_bcm2835_pcm_pointer,
|
.pointer = snd_bcm2835_pcm_pointer,
|
||||||
|
@ -125,6 +127,8 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
};
|
};
|
||||||
|
|
||||||
/* create a pcm device */
|
/* create a pcm device */
|
||||||
|
diff --git a/sound/arm/bcm2835-vchiq.c b/sound/arm/bcm2835-vchiq.c
|
||||||
|
index 9ecb2d6..169d899 100755
|
||||||
--- a/sound/arm/bcm2835-vchiq.c
|
--- a/sound/arm/bcm2835-vchiq.c
|
||||||
+++ b/sound/arm/bcm2835-vchiq.c
|
+++ b/sound/arm/bcm2835-vchiq.c
|
||||||
@@ -27,6 +27,7 @@
|
@@ -27,6 +27,7 @@
|
||||||
|
@ -197,7 +201,7 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
kfree((void *)work);
|
kfree((void *)work);
|
||||||
@@ -107,7 +120,7 @@ int bcm2835_audio_start(bcm2835_alsa_str
|
@@ -107,7 +120,7 @@ int bcm2835_audio_start(bcm2835_alsa_stream_t * alsa_stream)
|
||||||
if (work) {
|
if (work) {
|
||||||
INIT_WORK((struct work_struct *)work, my_wq_function);
|
INIT_WORK((struct work_struct *)work, my_wq_function);
|
||||||
work->alsa_stream = alsa_stream;
|
work->alsa_stream = alsa_stream;
|
||||||
|
@ -206,7 +210,7 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
if (queue_work
|
if (queue_work
|
||||||
(alsa_stream->my_wq, (struct work_struct *)work))
|
(alsa_stream->my_wq, (struct work_struct *)work))
|
||||||
ret = 0;
|
ret = 0;
|
||||||
@@ -128,7 +141,31 @@ int bcm2835_audio_stop(bcm2835_alsa_stre
|
@@ -128,7 +141,31 @@ int bcm2835_audio_stop(bcm2835_alsa_stream_t * alsa_stream)
|
||||||
if (work) {
|
if (work) {
|
||||||
INIT_WORK((struct work_struct *)work, my_wq_function);
|
INIT_WORK((struct work_struct *)work, my_wq_function);
|
||||||
work->alsa_stream = alsa_stream;
|
work->alsa_stream = alsa_stream;
|
||||||
|
@ -239,7 +243,7 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
if (queue_work
|
if (queue_work
|
||||||
(alsa_stream->my_wq, (struct work_struct *)work))
|
(alsa_stream->my_wq, (struct work_struct *)work))
|
||||||
ret = 0;
|
ret = 0;
|
||||||
@@ -178,7 +215,7 @@ static void audio_vchi_callback(void *pa
|
@@ -178,7 +215,7 @@ static void audio_vchi_callback(void *param,
|
||||||
(" .. instance=%p, m.type=VC_AUDIO_MSG_TYPE_RESULT, success=%d\n",
|
(" .. instance=%p, m.type=VC_AUDIO_MSG_TYPE_RESULT, success=%d\n",
|
||||||
instance, m.u.result.success);
|
instance, m.u.result.success);
|
||||||
instance->result = m.u.result.success;
|
instance->result = m.u.result.success;
|
||||||
|
@ -248,7 +252,7 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
} else if (m.type == VC_AUDIO_MSG_TYPE_COMPLETE) {
|
} else if (m.type == VC_AUDIO_MSG_TYPE_COMPLETE) {
|
||||||
irq_handler_t callback = (irq_handler_t) m.u.complete.callback;
|
irq_handler_t callback = (irq_handler_t) m.u.complete.callback;
|
||||||
LOG_DBG
|
LOG_DBG
|
||||||
@@ -435,8 +472,8 @@ static int bcm2835_audio_set_ctls_chan(b
|
@@ -435,8 +472,8 @@ static int bcm2835_audio_set_ctls_chan(bcm2835_alsa_stream_t * alsa_stream,
|
||||||
m.u.control.dest = chip->dest;
|
m.u.control.dest = chip->dest;
|
||||||
m.u.control.volume = chip->volume;
|
m.u.control.volume = chip->volume;
|
||||||
|
|
||||||
|
@ -259,7 +263,7 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
|
|
||||||
/* Send the message to the videocore */
|
/* Send the message to the videocore */
|
||||||
success = vchi_msg_queue(instance->vchi_handle[0],
|
success = vchi_msg_queue(instance->vchi_handle[0],
|
||||||
@@ -452,11 +489,10 @@ static int bcm2835_audio_set_ctls_chan(b
|
@@ -452,11 +489,10 @@ static int bcm2835_audio_set_ctls_chan(bcm2835_alsa_stream_t * alsa_stream,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We are expecting a reply from the videocore */
|
/* We are expecting a reply from the videocore */
|
||||||
|
@ -273,7 +277,7 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
goto unlock;
|
goto unlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -539,8 +575,8 @@ int bcm2835_audio_set_params(bcm2835_als
|
@@ -539,8 +575,8 @@ int bcm2835_audio_set_params(bcm2835_alsa_stream_t * alsa_stream,
|
||||||
m.u.config.samplerate = samplerate;
|
m.u.config.samplerate = samplerate;
|
||||||
m.u.config.bps = bps;
|
m.u.config.bps = bps;
|
||||||
|
|
||||||
|
@ -284,7 +288,7 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
|
|
||||||
/* Send the message to the videocore */
|
/* Send the message to the videocore */
|
||||||
success = vchi_msg_queue(instance->vchi_handle[0],
|
success = vchi_msg_queue(instance->vchi_handle[0],
|
||||||
@@ -556,11 +592,10 @@ int bcm2835_audio_set_params(bcm2835_als
|
@@ -556,11 +592,10 @@ int bcm2835_audio_set_params(bcm2835_alsa_stream_t * alsa_stream,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We are expecting a reply from the videocore */
|
/* We are expecting a reply from the videocore */
|
||||||
|
@ -298,7 +302,7 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
goto unlock;
|
goto unlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -688,8 +723,8 @@ int bcm2835_audio_close(bcm2835_alsa_str
|
@@ -688,8 +723,8 @@ int bcm2835_audio_close(bcm2835_alsa_stream_t * alsa_stream)
|
||||||
|
|
||||||
m.type = VC_AUDIO_MSG_TYPE_CLOSE;
|
m.type = VC_AUDIO_MSG_TYPE_CLOSE;
|
||||||
|
|
||||||
|
@ -309,7 +313,7 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
|
|
||||||
/* Send the message to the videocore */
|
/* Send the message to the videocore */
|
||||||
success = vchi_msg_queue(instance->vchi_handle[0],
|
success = vchi_msg_queue(instance->vchi_handle[0],
|
||||||
@@ -702,11 +737,11 @@ int bcm2835_audio_close(bcm2835_alsa_str
|
@@ -702,11 +737,11 @@ int bcm2835_audio_close(bcm2835_alsa_stream_t * alsa_stream)
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto unlock;
|
goto unlock;
|
||||||
}
|
}
|
||||||
|
@ -335,9 +339,11 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
{
|
{
|
||||||
VC_AUDIO_MSG_T m;
|
VC_AUDIO_MSG_T m;
|
||||||
AUDIO_INSTANCE_T *instance = alsa_stream->instance;
|
AUDIO_INSTANCE_T *instance = alsa_stream->instance;
|
||||||
|
diff --git a/sound/arm/bcm2835.c b/sound/arm/bcm2835.c
|
||||||
|
index e5ac894..d5ad830 100755
|
||||||
--- a/sound/arm/bcm2835.c
|
--- a/sound/arm/bcm2835.c
|
||||||
+++ b/sound/arm/bcm2835.c
|
+++ b/sound/arm/bcm2835.c
|
||||||
@@ -110,20 +110,20 @@ static int snd_bcm2835_alsa_probe(struct
|
@@ -110,20 +110,20 @@ static int snd_bcm2835_alsa_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
err = snd_bcm2835_create(g_card, pdev, &chip);
|
err = snd_bcm2835_create(g_card, pdev, &chip);
|
||||||
if (err < 0) {
|
if (err < 0) {
|
||||||
|
@ -394,7 +400,7 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -326,49 +326,49 @@ static int bcm2835_alsa_device_init(void
|
@@ -326,49 +326,49 @@ static int bcm2835_alsa_device_init(void)
|
||||||
int err;
|
int err;
|
||||||
err = platform_driver_register(&bcm2835_alsa0_driver);
|
err = platform_driver_register(&bcm2835_alsa0_driver);
|
||||||
if (err) {
|
if (err) {
|
||||||
|
@ -452,6 +458,8 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
goto unregister_6;
|
goto unregister_6;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
diff --git a/sound/arm/bcm2835.h b/sound/arm/bcm2835.h
|
||||||
|
index b966e28..08c763d 100755
|
||||||
--- a/sound/arm/bcm2835.h
|
--- a/sound/arm/bcm2835.h
|
||||||
+++ b/sound/arm/bcm2835.h
|
+++ b/sound/arm/bcm2835.h
|
||||||
@@ -23,6 +23,7 @@
|
@@ -23,6 +23,7 @@
|
||||||
|
@ -470,3 +478,6 @@ add mmap support and some cleanups to bcm2835 ALSA driver
|
||||||
|
|
||||||
struct semaphore buffers_update_sem;
|
struct semaphore buffers_update_sem;
|
||||||
struct semaphore control_sem;
|
struct semaphore control_sem;
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 353d37b0b26870a4bfd3e0cac6e535895ba4a01e Mon Sep 17 00:00:00 2001
|
From b339e078538e1470dc5d88a34f927ec1dd44151f Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Tue, 7 May 2013 22:20:24 +0100
|
Date: Tue, 7 May 2013 22:20:24 +0100
|
||||||
Subject: [PATCH 062/174] Add quick config.
|
Subject: [PATCH 062/196] Add quick config.
|
||||||
|
|
||||||
This is designed for quick compiling when developing.
|
This is designed for quick compiling when developing.
|
||||||
No modules are needed and it includes all Pi specific drivers
|
No modules are needed and it includes all Pi specific drivers
|
||||||
|
@ -10,6 +10,9 @@ No modules are needed and it includes all Pi specific drivers
|
||||||
1 file changed, 197 insertions(+)
|
1 file changed, 197 insertions(+)
|
||||||
create mode 100644 arch/arm/configs/bcmrpi_quick_defconfig
|
create mode 100644 arch/arm/configs/bcmrpi_quick_defconfig
|
||||||
|
|
||||||
|
diff --git a/arch/arm/configs/bcmrpi_quick_defconfig b/arch/arm/configs/bcmrpi_quick_defconfig
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..e5efe75
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/arch/arm/configs/bcmrpi_quick_defconfig
|
+++ b/arch/arm/configs/bcmrpi_quick_defconfig
|
||||||
@@ -0,0 +1,197 @@
|
@@ -0,0 +1,197 @@
|
||||||
|
@ -210,3 +213,6 @@ No modules are needed and it includes all Pi specific drivers
|
||||||
+# CONFIG_CRYPTO_HW is not set
|
+# CONFIG_CRYPTO_HW is not set
|
||||||
+CONFIG_CRC_ITU_T=y
|
+CONFIG_CRC_ITU_T=y
|
||||||
+CONFIG_LIBCRC32C=y
|
+CONFIG_LIBCRC32C=y
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
From dfe5d158300e7500873f1f81d89a05842460befc Mon Sep 17 00:00:00 2001
|
From c20b5189fa65427d6a9f2e70f7f8f2c485d21296 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Fri, 10 May 2013 19:42:38 +0100
|
Date: Fri, 10 May 2013 19:42:38 +0100
|
||||||
Subject: [PATCH 063/174] mmc: suppress sdcard warnings we are happy about by
|
Subject: [PATCH 063/196] mmc: suppress sdcard warnings we are happy about by
|
||||||
default
|
default
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 11 +++++++++--
|
drivers/mmc/host/sdhci-bcm2708.c | 11 +++++++++--
|
||||||
1 file changed, 9 insertions(+), 2 deletions(-)
|
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index 3556ed3..c2409b9 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -139,6 +139,7 @@ static bool sync_after_dma = 1;
|
@@ -139,6 +139,7 @@ static bool sync_after_dma = 1;
|
||||||
|
@ -18,7 +20,7 @@ Subject: [PATCH 063/174] mmc: suppress sdcard warnings we are happy about by
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
static void hptime_test(void)
|
static void hptime_test(void)
|
||||||
@@ -672,13 +673,16 @@ sdhci_bcm2708_platdma_reset(struct sdhci
|
@@ -672,13 +673,16 @@ sdhci_bcm2708_platdma_reset(struct sdhci_host *host, struct mmc_data *data)
|
||||||
cs = readl(host_priv->dma_chan_base + BCM2708_DMA_CS);
|
cs = readl(host_priv->dma_chan_base + BCM2708_DMA_CS);
|
||||||
|
|
||||||
if (!(BCM2708_DMA_ACTIVE & cs))
|
if (!(BCM2708_DMA_ACTIVE & cs))
|
||||||
|
@ -36,7 +38,7 @@ Subject: [PATCH 063/174] mmc: suppress sdcard warnings we are happy about by
|
||||||
else
|
else
|
||||||
printk(KERN_INFO "%s: resetting ongoing cmd %d"
|
printk(KERN_INFO "%s: resetting ongoing cmd %d"
|
||||||
"DMA before %d/%d [%d]/[%d] complete\n",
|
"DMA before %d/%d [%d]/[%d] complete\n",
|
||||||
@@ -903,7 +907,8 @@ static irqreturn_t sdhci_bcm2708_dma_irq
|
@@ -903,7 +907,8 @@ static irqreturn_t sdhci_bcm2708_dma_irq(int irq, void *dev_id)
|
||||||
|
|
||||||
if (!host_priv->dma_wanted) {
|
if (!host_priv->dma_wanted) {
|
||||||
/* ignore this interrupt - it was reset */
|
/* ignore this interrupt - it was reset */
|
||||||
|
@ -46,7 +48,7 @@ Subject: [PATCH 063/174] mmc: suppress sdcard warnings we are happy about by
|
||||||
"results were reset\n",
|
"results were reset\n",
|
||||||
mmc_hostname(host->mmc), dma_cs);
|
mmc_hostname(host->mmc), dma_cs);
|
||||||
#ifdef CHECK_DMA_USE
|
#ifdef CHECK_DMA_USE
|
||||||
@@ -1397,6 +1402,7 @@ module_param(missing_status, bool, 0444)
|
@@ -1397,6 +1402,7 @@ module_param(missing_status, bool, 0444);
|
||||||
module_param(spurious_crc_acmd51, bool, 0444);
|
module_param(spurious_crc_acmd51, bool, 0444);
|
||||||
module_param(enable_llm, bool, 0444);
|
module_param(enable_llm, bool, 0444);
|
||||||
module_param(cycle_delay, int, 0444);
|
module_param(cycle_delay, int, 0444);
|
||||||
|
@ -54,10 +56,13 @@ Subject: [PATCH 063/174] mmc: suppress sdcard warnings we are happy about by
|
||||||
|
|
||||||
MODULE_DESCRIPTION("Secure Digital Host Controller Interface platform driver");
|
MODULE_DESCRIPTION("Secure Digital Host Controller Interface platform driver");
|
||||||
MODULE_AUTHOR("Broadcom <info@broadcom.com>");
|
MODULE_AUTHOR("Broadcom <info@broadcom.com>");
|
||||||
@@ -1409,5 +1415,6 @@ MODULE_PARM_DESC(sync_after_dma, "Block
|
@@ -1409,5 +1415,6 @@ MODULE_PARM_DESC(sync_after_dma, "Block in driver until dma complete");
|
||||||
MODULE_PARM_DESC(missing_status, "Use the missing status quirk");
|
MODULE_PARM_DESC(missing_status, "Use the missing status quirk");
|
||||||
MODULE_PARM_DESC(spurious_crc_acmd51, "Use the spurious crc quirk for reading SCR (ACMD51)");
|
MODULE_PARM_DESC(spurious_crc_acmd51, "Use the spurious crc quirk for reading SCR (ACMD51)");
|
||||||
MODULE_PARM_DESC(enable_llm, "Enable low-latency mode");
|
MODULE_PARM_DESC(enable_llm, "Enable low-latency mode");
|
||||||
+MODULE_PARM_DESC(extra_messages, "Enable more sdcard warning messages");
|
+MODULE_PARM_DESC(extra_messages, "Enable more sdcard warning messages");
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
From b74d345f074c12d21e8dda2807750e8559588822 Mon Sep 17 00:00:00 2001
|
From c8b4c6968c3a8c1b195de2dc522268e0ce81b6c7 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Fri, 17 May 2013 15:19:49 +0100
|
Date: Fri, 17 May 2013 15:19:49 +0100
|
||||||
Subject: [PATCH 064/174] Add missing ids for Netgear WNA1000N and D-Link Alpha
|
Subject: [PATCH 064/196] Add missing ids for Netgear WNA1000N and D-Link Alpha
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c | 1 +
|
drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c | 1 +
|
||||||
1 file changed, 1 insertion(+)
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c b/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
|
||||||
|
index 9d303f4..2e54e74 100644
|
||||||
--- a/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
|
--- a/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
|
||||||
+++ b/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
|
+++ b/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
|
||||||
@@ -114,6 +114,7 @@ static struct usb_device_id rtw_usb_id_t
|
@@ -114,6 +114,7 @@ static struct usb_device_id rtw_usb_id_tbl[] ={
|
||||||
{USB_DEVICE(0x4856, 0x0091)},//NetweeN - Feixun
|
{USB_DEVICE(0x4856, 0x0091)},//NetweeN - Feixun
|
||||||
{USB_DEVICE(0x2019, 0x4902)},//Planex - Etop
|
{USB_DEVICE(0x2019, 0x4902)},//Planex - Etop
|
||||||
{USB_DEVICE(0x2019, 0xAB2E)},//SW-WF02-AD15 -Abocom
|
{USB_DEVICE(0x2019, 0xAB2E)},//SW-WF02-AD15 -Abocom
|
||||||
|
@ -17,3 +19,6 @@ Subject: [PATCH 064/174] Add missing ids for Netgear WNA1000N and D-Link Alpha
|
||||||
|
|
||||||
/****** 8188 RU ********/
|
/****** 8188 RU ********/
|
||||||
{USB_DEVICE(0x0BDA, 0x317F)},//Netcore,Netcore
|
{USB_DEVICE(0x0BDA, 0x317F)},//Netcore,Netcore
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
From 2d491bef93b86787eb5b5e83c46d1f4d87edf84f Mon Sep 17 00:00:00 2001
|
From 0ff0d5f9c59d1d9cde9bcc56f6bfa163fd1b15a3 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Fri, 31 May 2013 14:50:09 +0100
|
Date: Fri, 31 May 2013 14:50:09 +0100
|
||||||
Subject: [PATCH 065/174] rtl8192cu: select required config options to allow
|
Subject: [PATCH 065/196] rtl8192cu: select required config options to allow
|
||||||
builds without other wifi modules. Thanks UrsusArctos
|
builds without other wifi modules. Thanks UrsusArctos
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/net/wireless/rtl8192cu/Kconfig | 4 +++-
|
drivers/net/wireless/rtl8192cu/Kconfig | 4 +++-
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/rtl8192cu/Kconfig b/drivers/net/wireless/rtl8192cu/Kconfig
|
||||||
|
index bee5ed6..ef46361 100644
|
||||||
--- a/drivers/net/wireless/rtl8192cu/Kconfig
|
--- a/drivers/net/wireless/rtl8192cu/Kconfig
|
||||||
+++ b/drivers/net/wireless/rtl8192cu/Kconfig
|
+++ b/drivers/net/wireless/rtl8192cu/Kconfig
|
||||||
@@ -1,6 +1,8 @@
|
@@ -1,6 +1,8 @@
|
||||||
|
@ -20,3 +22,6 @@ Subject: [PATCH 065/174] rtl8192cu: select required config options to allow
|
||||||
- Help message of RTL8192CU
|
- Help message of RTL8192CU
|
||||||
+ Enable wireless network adapters based on Realtek RTL8192C chipset family, such as EDUP nano series
|
+ Enable wireless network adapters based on Realtek RTL8192C chipset family, such as EDUP nano series
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
From 7776b6ebf1063d2f9fac33313c8d049b424fce46 Mon Sep 17 00:00:00 2001
|
From f038d0681b072b929bb026bbb539cc8575d30c4f Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Sat, 8 Jun 2013 22:14:13 +0100
|
Date: Sat, 8 Jun 2013 22:14:13 +0100
|
||||||
Subject: [PATCH 066/174] Only init gpio pins of selected i2c bus
|
Subject: [PATCH 066/196] Only init gpio pins of selected i2c bus
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/i2c/busses/i2c-bcm2708.c | 8 +++++---
|
drivers/i2c/busses/i2c-bcm2708.c | 8 +++++---
|
||||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/i2c/busses/i2c-bcm2708.c b/drivers/i2c/busses/i2c-bcm2708.c
|
||||||
|
index 3391889..edc90c0 100644
|
||||||
--- a/drivers/i2c/busses/i2c-bcm2708.c
|
--- a/drivers/i2c/busses/i2c-bcm2708.c
|
||||||
+++ b/drivers/i2c/busses/i2c-bcm2708.c
|
+++ b/drivers/i2c/busses/i2c-bcm2708.c
|
||||||
@@ -97,7 +97,7 @@ struct bcm2708_i2c {
|
@@ -97,7 +97,7 @@ struct bcm2708_i2c {
|
||||||
|
@ -18,7 +20,7 @@ Subject: [PATCH 066/174] Only init gpio pins of selected i2c bus
|
||||||
{
|
{
|
||||||
#define INP_GPIO(g) *(gpio+((g)/10)) &= ~(7<<(((g)%10)*3))
|
#define INP_GPIO(g) *(gpio+((g)/10)) &= ~(7<<(((g)%10)*3))
|
||||||
#define SET_GPIO_ALT(g,a) *(gpio+(((g)/10))) |= (((a)<=3?(a)+4:(a)==4?3:2)<<(((g)%10)*3))
|
#define SET_GPIO_ALT(g,a) *(gpio+(((g)/10))) |= (((a)<=3?(a)+4:(a)==4?3:2)<<(((g)%10)*3))
|
||||||
@@ -105,8 +105,10 @@ static void bcm2708_i2c_init_pinmode(voi
|
@@ -105,8 +105,10 @@ static void bcm2708_i2c_init_pinmode(void)
|
||||||
int pin;
|
int pin;
|
||||||
u32 *gpio = ioremap(0x20200000, SZ_16K);
|
u32 *gpio = ioremap(0x20200000, SZ_16K);
|
||||||
|
|
||||||
|
@ -30,7 +32,7 @@ Subject: [PATCH 066/174] Only init gpio pins of selected i2c bus
|
||||||
INP_GPIO(pin); /* set mode to GPIO input first */
|
INP_GPIO(pin); /* set mode to GPIO input first */
|
||||||
SET_GPIO_ALT(pin, 0); /* set mode to ALT 0 */
|
SET_GPIO_ALT(pin, 0); /* set mode to ALT 0 */
|
||||||
}
|
}
|
||||||
@@ -279,7 +281,7 @@ static int bcm2708_i2c_probe(struct plat
|
@@ -279,7 +281,7 @@ static int bcm2708_i2c_probe(struct platform_device *pdev)
|
||||||
return PTR_ERR(clk);
|
return PTR_ERR(clk);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,3 +41,6 @@ Subject: [PATCH 066/174] Only init gpio pins of selected i2c bus
|
||||||
|
|
||||||
bi = kzalloc(sizeof(*bi), GFP_KERNEL);
|
bi = kzalloc(sizeof(*bi), GFP_KERNEL);
|
||||||
if (!bi)
|
if (!bi)
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
From 03f44ba654e40b60ffcec14030abf35152d0b639 Mon Sep 17 00:00:00 2001
|
From ed5a728f2593fbd3950c5c17ab7143bafc295e57 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Thu, 13 Jun 2013 16:46:54 +0100
|
Date: Thu, 13 Jun 2013 16:46:54 +0100
|
||||||
Subject: [PATCH 067/174] Avoid responding to unexpected I2C interrupts
|
Subject: [PATCH 067/196] Avoid responding to unexpected I2C interrupts
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/i2c/busses/i2c-bcm2708.c | 6 ++++++
|
drivers/i2c/busses/i2c-bcm2708.c | 6 ++++++
|
||||||
1 file changed, 6 insertions(+)
|
1 file changed, 6 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/i2c/busses/i2c-bcm2708.c b/drivers/i2c/busses/i2c-bcm2708.c
|
||||||
|
index edc90c0..33f4e7d 100644
|
||||||
--- a/drivers/i2c/busses/i2c-bcm2708.c
|
--- a/drivers/i2c/busses/i2c-bcm2708.c
|
||||||
+++ b/drivers/i2c/busses/i2c-bcm2708.c
|
+++ b/drivers/i2c/busses/i2c-bcm2708.c
|
||||||
@@ -175,6 +175,11 @@ static irqreturn_t bcm2708_i2c_interrupt
|
@@ -175,6 +175,11 @@ static irqreturn_t bcm2708_i2c_interrupt(int irq, void *dev_id)
|
||||||
|
|
||||||
spin_lock(&bi->lock);
|
spin_lock(&bi->lock);
|
||||||
|
|
||||||
|
@ -21,7 +23,7 @@ Subject: [PATCH 067/174] Avoid responding to unexpected I2C interrupts
|
||||||
s = bcm2708_rd(bi, BSC_S);
|
s = bcm2708_rd(bi, BSC_S);
|
||||||
|
|
||||||
if (s & (BSC_S_CLKT | BSC_S_ERR)) {
|
if (s & (BSC_S_CLKT | BSC_S_ERR)) {
|
||||||
@@ -208,6 +213,7 @@ static irqreturn_t bcm2708_i2c_interrupt
|
@@ -208,6 +213,7 @@ static irqreturn_t bcm2708_i2c_interrupt(int irq, void *dev_id)
|
||||||
handled = false;
|
handled = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,3 +31,6 @@ Subject: [PATCH 067/174] Avoid responding to unexpected I2C interrupts
|
||||||
spin_unlock(&bi->lock);
|
spin_unlock(&bi->lock);
|
||||||
|
|
||||||
return handled ? IRQ_HANDLED : IRQ_NONE;
|
return handled ? IRQ_HANDLED : IRQ_NONE;
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 42b4a831d77ee33f67142882b2b68e4138cbf13e Mon Sep 17 00:00:00 2001
|
From aad790d20f7b2f9a90716b33181e8554de10b6a0 Mon Sep 17 00:00:00 2001
|
||||||
From: Harm Hanemaaijer <fgenfb@yahoo.com>
|
From: Harm Hanemaaijer <fgenfb@yahoo.com>
|
||||||
Date: Thu, 20 Jun 2013 20:21:39 +0200
|
Date: Thu, 20 Jun 2013 20:21:39 +0200
|
||||||
Subject: [PATCH 068/174] Speed up console framebuffer imageblit function
|
Subject: [PATCH 068/196] Speed up console framebuffer imageblit function
|
||||||
|
|
||||||
Especially on platforms with a slower CPU but a relatively high
|
Especially on platforms with a slower CPU but a relatively high
|
||||||
framebuffer fill bandwidth, like current ARM devices, the existing
|
framebuffer fill bandwidth, like current ARM devices, the existing
|
||||||
|
@ -32,6 +32,8 @@ Signed-off-by: Harm Hanemaaijer <fgenfb@yahoo.com>
|
||||||
drivers/video/cfbimgblt.c | 152 ++++++++++++++++++++++++++++++++++++++++++++--
|
drivers/video/cfbimgblt.c | 152 ++++++++++++++++++++++++++++++++++++++++++++--
|
||||||
1 file changed, 147 insertions(+), 5 deletions(-)
|
1 file changed, 147 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/video/cfbimgblt.c b/drivers/video/cfbimgblt.c
|
||||||
|
index baed57d..ce91bf2 100644
|
||||||
--- a/drivers/video/cfbimgblt.c
|
--- a/drivers/video/cfbimgblt.c
|
||||||
+++ b/drivers/video/cfbimgblt.c
|
+++ b/drivers/video/cfbimgblt.c
|
||||||
@@ -28,6 +28,11 @@
|
@@ -28,6 +28,11 @@
|
||||||
|
@ -46,7 +48,7 @@ Signed-off-by: Harm Hanemaaijer <fgenfb@yahoo.com>
|
||||||
*/
|
*/
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
@@ -262,6 +267,133 @@ static inline void fast_imageblit(const
|
@@ -262,6 +267,133 @@ static inline void fast_imageblit(const struct fb_image *image, struct fb_info *
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -180,7 +182,7 @@ Signed-off-by: Harm Hanemaaijer <fgenfb@yahoo.com>
|
||||||
void cfb_imageblit(struct fb_info *p, const struct fb_image *image)
|
void cfb_imageblit(struct fb_info *p, const struct fb_image *image)
|
||||||
{
|
{
|
||||||
u32 fgcolor, bgcolor, start_index, bitstart, pitch_index = 0;
|
u32 fgcolor, bgcolor, start_index, bitstart, pitch_index = 0;
|
||||||
@@ -294,11 +426,21 @@ void cfb_imageblit(struct fb_info *p, co
|
@@ -294,11 +426,21 @@ void cfb_imageblit(struct fb_info *p, const struct fb_image *image)
|
||||||
bgcolor = image->bg_color;
|
bgcolor = image->bg_color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -207,3 +209,6 @@ Signed-off-by: Harm Hanemaaijer <fgenfb@yahoo.com>
|
||||||
slow_imageblit(image, p, dst1, fgcolor, bgcolor,
|
slow_imageblit(image, p, dst1, fgcolor, bgcolor,
|
||||||
start_index, pitch_index);
|
start_index, pitch_index);
|
||||||
} else
|
} else
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From bae48dcebc8f847977f6077910afb93f754708d6 Mon Sep 17 00:00:00 2001
|
From 422d5162d6b4e5cd8f7a9470b128577d1b826bdd Mon Sep 17 00:00:00 2001
|
||||||
From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||||
Date: Mon, 17 Jun 2013 13:32:11 +0300
|
Date: Mon, 17 Jun 2013 13:32:11 +0300
|
||||||
Subject: [PATCH 069/174] fbdev: add FBIOCOPYAREA ioctl
|
Subject: [PATCH 069/196] fbdev: add FBIOCOPYAREA ioctl
|
||||||
|
|
||||||
Based on the patch authored by Ali Gholami Rudi at
|
Based on the patch authored by Ali Gholami Rudi at
|
||||||
https://lkml.org/lkml/2009/7/13/153
|
https://lkml.org/lkml/2009/7/13/153
|
||||||
|
@ -15,9 +15,11 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||||
include/uapi/linux/fb.h | 5 +++++
|
include/uapi/linux/fb.h | 5 +++++
|
||||||
2 files changed, 35 insertions(+)
|
2 files changed, 35 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
|
||||||
|
index 098bfc6..da8e53b 100644
|
||||||
--- a/drivers/video/fbmem.c
|
--- a/drivers/video/fbmem.c
|
||||||
+++ b/drivers/video/fbmem.c
|
+++ b/drivers/video/fbmem.c
|
||||||
@@ -1074,6 +1074,25 @@ fb_blank(struct fb_info *info, int blank
|
@@ -1074,6 +1074,25 @@ fb_blank(struct fb_info *info, int blank)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +45,7 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||||
static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
|
static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
|
||||||
unsigned long arg)
|
unsigned long arg)
|
||||||
{
|
{
|
||||||
@@ -1084,6 +1103,7 @@ static long do_fb_ioctl(struct fb_info *
|
@@ -1084,6 +1103,7 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
|
||||||
struct fb_cmap cmap_from;
|
struct fb_cmap cmap_from;
|
||||||
struct fb_cmap_user cmap;
|
struct fb_cmap_user cmap;
|
||||||
struct fb_event event;
|
struct fb_event event;
|
||||||
|
@ -51,7 +53,7 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||||
void __user *argp = (void __user *)arg;
|
void __user *argp = (void __user *)arg;
|
||||||
long ret = 0;
|
long ret = 0;
|
||||||
|
|
||||||
@@ -1193,6 +1213,15 @@ static long do_fb_ioctl(struct fb_info *
|
@@ -1193,6 +1213,15 @@ static long do_fb_ioctl(struct fb_info *info, unsigned int cmd,
|
||||||
console_unlock();
|
console_unlock();
|
||||||
unlock_fb_info(info);
|
unlock_fb_info(info);
|
||||||
break;
|
break;
|
||||||
|
@ -67,7 +69,7 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||||
default:
|
default:
|
||||||
if (!lock_fb_info(info))
|
if (!lock_fb_info(info))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
@@ -1345,6 +1374,7 @@ static long fb_compat_ioctl(struct file
|
@@ -1345,6 +1374,7 @@ static long fb_compat_ioctl(struct file *file, unsigned int cmd,
|
||||||
case FBIOPAN_DISPLAY:
|
case FBIOPAN_DISPLAY:
|
||||||
case FBIOGET_CON2FBMAP:
|
case FBIOGET_CON2FBMAP:
|
||||||
case FBIOPUT_CON2FBMAP:
|
case FBIOPUT_CON2FBMAP:
|
||||||
|
@ -75,6 +77,8 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||||
arg = (unsigned long) compat_ptr(arg);
|
arg = (unsigned long) compat_ptr(arg);
|
||||||
case FBIOBLANK:
|
case FBIOBLANK:
|
||||||
ret = do_fb_ioctl(info, cmd, arg);
|
ret = do_fb_ioctl(info, cmd, arg);
|
||||||
|
diff --git a/include/uapi/linux/fb.h b/include/uapi/linux/fb.h
|
||||||
|
index fb795c3..fa72af0 100644
|
||||||
--- a/include/uapi/linux/fb.h
|
--- a/include/uapi/linux/fb.h
|
||||||
+++ b/include/uapi/linux/fb.h
|
+++ b/include/uapi/linux/fb.h
|
||||||
@@ -34,6 +34,11 @@
|
@@ -34,6 +34,11 @@
|
||||||
|
@ -89,3 +93,6 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||||
|
|
||||||
#define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */
|
#define FB_TYPE_PACKED_PIXELS 0 /* Packed Pixels */
|
||||||
#define FB_TYPE_PLANES 1 /* Non interleaved planes */
|
#define FB_TYPE_PLANES 1 /* Non interleaved planes */
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From ba65074e39e6aee492bd3c077f640b29a0a89c05 Mon Sep 17 00:00:00 2001
|
From 370c8243ec8e7f3abd8171b7d2dde170f4c5e63a Mon Sep 17 00:00:00 2001
|
||||||
From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
From: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||||
Date: Mon, 17 Jun 2013 16:00:25 +0300
|
Date: Mon, 17 Jun 2013 16:00:25 +0300
|
||||||
Subject: [PATCH 070/174] bcm2708_fb: DMA acceleration for fb_copyarea
|
Subject: [PATCH 070/196] bcm2708_fb: DMA acceleration for fb_copyarea
|
||||||
|
|
||||||
Based on http://www.raspberrypi.org/phpBB3/viewtopic.php?p=62425#p62425
|
Based on http://www.raspberrypi.org/phpBB3/viewtopic.php?p=62425#p62425
|
||||||
Also used Simon's dmaer_master module as a reference for tweaking DMA
|
Also used Simon's dmaer_master module as a reference for tweaking DMA
|
||||||
|
@ -23,6 +23,8 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||||
drivers/video/bcm2708_fb.c | 162 ++++++++++++++++++++++++++++++++++++++++++++-
|
drivers/video/bcm2708_fb.c | 162 ++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
1 file changed, 159 insertions(+), 3 deletions(-)
|
1 file changed, 159 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/video/bcm2708_fb.c b/drivers/video/bcm2708_fb.c
|
||||||
|
index 08d9238..c10c5ee 100644
|
||||||
--- a/drivers/video/bcm2708_fb.c
|
--- a/drivers/video/bcm2708_fb.c
|
||||||
+++ b/drivers/video/bcm2708_fb.c
|
+++ b/drivers/video/bcm2708_fb.c
|
||||||
@@ -28,6 +28,7 @@
|
@@ -28,6 +28,7 @@
|
||||||
|
@ -45,7 +47,7 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||||
};
|
};
|
||||||
|
|
||||||
#define to_bcm2708(info) container_of(info, struct bcm2708_fb, fb)
|
#define to_bcm2708(info) container_of(info, struct bcm2708_fb, fb)
|
||||||
@@ -312,11 +318,133 @@ static void bcm2708_fb_fillrect(struct f
|
@@ -312,11 +318,133 @@ static void bcm2708_fb_fillrect(struct fb_info *info,
|
||||||
cfb_fillrect(info, rect);
|
cfb_fillrect(info, rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -181,7 +183,7 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bcm2708_fb_imageblit(struct fb_info *info,
|
static void bcm2708_fb_imageblit(struct fb_info *info,
|
||||||
@@ -359,7 +487,7 @@ static int bcm2708_fb_register(struct bc
|
@@ -359,7 +487,7 @@ static int bcm2708_fb_register(struct bcm2708_fb *fb)
|
||||||
fb->dma = dma;
|
fb->dma = dma;
|
||||||
}
|
}
|
||||||
fb->fb.fbops = &bcm2708_fb_ops;
|
fb->fb.fbops = &bcm2708_fb_ops;
|
||||||
|
@ -190,7 +192,7 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||||
fb->fb.pseudo_palette = fb->cmap;
|
fb->fb.pseudo_palette = fb->cmap;
|
||||||
|
|
||||||
strncpy(fb->fb.fix.id, bcm2708_name, sizeof(fb->fb.fix.id));
|
strncpy(fb->fb.fix.id, bcm2708_name, sizeof(fb->fb.fix.id));
|
||||||
@@ -424,6 +552,28 @@ static int bcm2708_fb_probe(struct platf
|
@@ -424,6 +552,28 @@ static int bcm2708_fb_probe(struct platform_device *dev)
|
||||||
}
|
}
|
||||||
memset(fb, 0, sizeof(struct bcm2708_fb));
|
memset(fb, 0, sizeof(struct bcm2708_fb));
|
||||||
|
|
||||||
|
@ -219,7 +221,7 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||||
fb->dev = dev;
|
fb->dev = dev;
|
||||||
|
|
||||||
ret = bcm2708_fb_register(fb);
|
ret = bcm2708_fb_register(fb);
|
||||||
@@ -432,6 +582,9 @@ static int bcm2708_fb_probe(struct platf
|
@@ -432,6 +582,9 @@ static int bcm2708_fb_probe(struct platform_device *dev)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -229,7 +231,7 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||||
kfree(fb);
|
kfree(fb);
|
||||||
free_region:
|
free_region:
|
||||||
dev_err(&dev->dev, "probe failed, err %d\n", ret);
|
dev_err(&dev->dev, "probe failed, err %d\n", ret);
|
||||||
@@ -449,6 +602,9 @@ static int bcm2708_fb_remove(struct plat
|
@@ -449,6 +602,9 @@ static int bcm2708_fb_remove(struct platform_device *dev)
|
||||||
iounmap(fb->fb.screen_base);
|
iounmap(fb->fb.screen_base);
|
||||||
unregister_framebuffer(&fb->fb);
|
unregister_framebuffer(&fb->fb);
|
||||||
|
|
||||||
|
@ -239,3 +241,6 @@ Signed-off-by: Siarhei Siamashka <siarhei.siamashka@gmail.com>
|
||||||
dma_free_coherent(NULL, PAGE_ALIGN(sizeof(*fb->info)), (void *)fb->info,
|
dma_free_coherent(NULL, PAGE_ALIGN(sizeof(*fb->info)), (void *)fb->info,
|
||||||
fb->dma);
|
fb->dma);
|
||||||
kfree(fb);
|
kfree(fb);
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 9b8c30f46a381533c92a6424ff25f9014d8802b0 Mon Sep 17 00:00:00 2001
|
From f017dca7748948138205b11490d0b345602ce4db Mon Sep 17 00:00:00 2001
|
||||||
From: Mike Bradley <mike.bradley@incanetworks.com>
|
From: Mike Bradley <mike.bradley@incanetworks.com>
|
||||||
Date: Mon, 17 Jun 2013 11:31:42 -0700
|
Date: Mon, 17 Jun 2013 11:31:42 -0700
|
||||||
Subject: [PATCH 071/174] dwc_otg: Call usb_hcd_unlink_urb_from_ep with lock
|
Subject: [PATCH 071/196] dwc_otg: Call usb_hcd_unlink_urb_from_ep with lock
|
||||||
held in completion handler
|
held in completion handler
|
||||||
|
|
||||||
usb_hcd_unlink_urb_from_ep must be called with the HCD lock held. Calling it
|
usb_hcd_unlink_urb_from_ep must be called with the HCD lock held. Calling it
|
||||||
|
@ -22,9 +22,11 @@ eliminated.
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 18 ++++++++++++++----
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 18 ++++++++++++++----
|
||||||
2 files changed, 15 insertions(+), 5 deletions(-)
|
2 files changed, 15 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
index eaa8f38..9c2e71a 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -704,6 +704,7 @@ static void completion_tasklet_func(void
|
@@ -704,6 +704,7 @@ static void completion_tasklet_func(void *ptr)
|
||||||
urb_tq_entry_t *item;
|
urb_tq_entry_t *item;
|
||||||
dwc_irqflags_t flags;
|
dwc_irqflags_t flags;
|
||||||
|
|
||||||
|
@ -32,7 +34,7 @@ eliminated.
|
||||||
DWC_SPINLOCK_IRQSAVE(hcd->lock, &flags);
|
DWC_SPINLOCK_IRQSAVE(hcd->lock, &flags);
|
||||||
while (!DWC_TAILQ_EMPTY(&hcd->completed_urb_list)) {
|
while (!DWC_TAILQ_EMPTY(&hcd->completed_urb_list)) {
|
||||||
item = DWC_TAILQ_FIRST(&hcd->completed_urb_list);
|
item = DWC_TAILQ_FIRST(&hcd->completed_urb_list);
|
||||||
@@ -713,7 +714,6 @@ static void completion_tasklet_func(void
|
@@ -713,7 +714,6 @@ static void completion_tasklet_func(void *ptr)
|
||||||
DWC_SPINUNLOCK_IRQRESTORE(hcd->lock, flags);
|
DWC_SPINUNLOCK_IRQRESTORE(hcd->lock, flags);
|
||||||
DWC_FREE(item);
|
DWC_FREE(item);
|
||||||
|
|
||||||
|
@ -40,9 +42,11 @@ eliminated.
|
||||||
usb_hcd_giveback_urb(hcd->priv, urb, urb->status);
|
usb_hcd_giveback_urb(hcd->priv, urb, urb->status);
|
||||||
|
|
||||||
DWC_SPINLOCK_IRQSAVE(hcd->lock, &flags);
|
DWC_SPINLOCK_IRQSAVE(hcd->lock, &flags);
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
|
index 7bb133a..fef557d 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
@@ -265,13 +265,15 @@ static void free_bus_bandwidth(struct us
|
@@ -265,13 +265,15 @@ static void free_bus_bandwidth(struct usb_hcd *hcd, uint32_t bw,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the final status of an URB and returns it to the device driver. Any
|
* Sets the final status of an URB and returns it to the device driver. Any
|
||||||
|
@ -59,7 +63,7 @@ eliminated.
|
||||||
if (CHK_DEBUG_LEVEL(DBG_HCDV | DBG_HCD_URB)) {
|
if (CHK_DEBUG_LEVEL(DBG_HCDV | DBG_HCD_URB)) {
|
||||||
DWC_PRINTF("%s: urb %p, device %d, ep %d %s, status=%d\n",
|
DWC_PRINTF("%s: urb %p, device %d, ep %d %s, status=%d\n",
|
||||||
__func__, urb, usb_pipedevice(urb->pipe),
|
__func__, urb, usb_pipedevice(urb->pipe),
|
||||||
@@ -363,9 +365,17 @@ static int _complete(dwc_otg_hcd_t * hcd
|
@@ -363,9 +365,17 @@ static int _complete(dwc_otg_hcd_t * hcd, void *urb_handle,
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
new_entry->urb = urb;
|
new_entry->urb = urb;
|
||||||
|
@ -80,3 +84,6 @@ eliminated.
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From d0f04f1be88d3ad42f3c875f9ab45a1cdb2129bd Mon Sep 17 00:00:00 2001
|
From 0b8275da8346466af37b50d5ba687a386df9b0f4 Mon Sep 17 00:00:00 2001
|
||||||
From: Gordon Hollingworth <gordon@holliweb.co.uk>
|
From: Gordon Hollingworth <gordon@holliweb.co.uk>
|
||||||
Date: Thu, 4 Apr 2013 11:05:21 +0100
|
Date: Thu, 4 Apr 2013 11:05:21 +0100
|
||||||
Subject: [PATCH 072/174] USB fix using a FIQ to implement split transactions
|
Subject: [PATCH 072/196] USB fix using a FIQ to implement split transactions
|
||||||
|
|
||||||
This commit adds a FIQ implementaion that schedules
|
This commit adds a FIQ implementaion that schedules
|
||||||
the split transactions using a FIQ so we don't get
|
the split transactions using a FIQ so we don't get
|
||||||
|
@ -19,9 +19,11 @@ held off by the interrupt latency of Linux
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c | 2 +-
|
drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c | 2 +-
|
||||||
10 files changed, 696 insertions(+), 114 deletions(-)
|
10 files changed, 696 insertions(+), 114 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_common_port/dwc_common_linux.c b/drivers/usb/host/dwc_common_port/dwc_common_linux.c
|
||||||
|
index 6814e51..0812d3a 100644
|
||||||
--- a/drivers/usb/host/dwc_common_port/dwc_common_linux.c
|
--- a/drivers/usb/host/dwc_common_port/dwc_common_linux.c
|
||||||
+++ b/drivers/usb/host/dwc_common_port/dwc_common_linux.c
|
+++ b/drivers/usb/host/dwc_common_port/dwc_common_linux.c
|
||||||
@@ -580,7 +580,12 @@ void DWC_WRITE_REG64(uint64_t volatile *
|
@@ -580,7 +580,12 @@ void DWC_WRITE_REG64(uint64_t volatile *reg, uint64_t value)
|
||||||
|
|
||||||
void DWC_MODIFY_REG32(uint32_t volatile *reg, uint32_t clear_mask, uint32_t set_mask)
|
void DWC_MODIFY_REG32(uint32_t volatile *reg, uint32_t clear_mask, uint32_t set_mask)
|
||||||
{
|
{
|
||||||
|
@ -43,6 +45,8 @@ held off by the interrupt latency of Linux
|
||||||
EXPORT_SYMBOL(__DWC_DMA_ALLOC_ATOMIC);
|
EXPORT_SYMBOL(__DWC_DMA_ALLOC_ATOMIC);
|
||||||
EXPORT_SYMBOL(__DWC_DMA_FREE);
|
EXPORT_SYMBOL(__DWC_DMA_FREE);
|
||||||
EXPORT_SYMBOL(__DWC_ALLOC);
|
EXPORT_SYMBOL(__DWC_ALLOC);
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
|
||||||
|
index b861b55..b5a007d 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_cil_intr.c
|
||||||
@@ -47,8 +47,6 @@
|
@@ -47,8 +47,6 @@
|
||||||
|
@ -54,7 +58,7 @@ held off by the interrupt latency of Linux
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
inline const char *op_state_str(dwc_otg_core_if_t * core_if)
|
inline const char *op_state_str(dwc_otg_core_if_t * core_if)
|
||||||
{
|
{
|
||||||
@@ -1321,7 +1319,7 @@ static int32_t dwc_otg_handle_lpm_intr(d
|
@@ -1321,7 +1319,7 @@ static int32_t dwc_otg_handle_lpm_intr(dwc_otg_core_if_t * core_if)
|
||||||
/**
|
/**
|
||||||
* This function returns the Core Interrupt register.
|
* This function returns the Core Interrupt register.
|
||||||
*/
|
*/
|
||||||
|
@ -63,7 +67,7 @@ held off by the interrupt latency of Linux
|
||||||
{
|
{
|
||||||
gahbcfg_data_t gahbcfg = {.d32 = 0 };
|
gahbcfg_data_t gahbcfg = {.d32 = 0 };
|
||||||
gintsts_data_t gintsts;
|
gintsts_data_t gintsts;
|
||||||
@@ -1338,19 +1336,33 @@ static inline uint32_t dwc_otg_read_comm
|
@@ -1338,19 +1336,33 @@ static inline uint32_t dwc_otg_read_common_intr(dwc_otg_core_if_t * core_if)
|
||||||
gintmsk_common.b.lpmtranrcvd = 1;
|
gintmsk_common.b.lpmtranrcvd = 1;
|
||||||
#endif
|
#endif
|
||||||
gintmsk_common.b.restoredone = 1;
|
gintmsk_common.b.restoredone = 1;
|
||||||
|
@ -103,7 +107,7 @@ held off by the interrupt latency of Linux
|
||||||
gintsts.d32, gintmsk.d32);
|
gintsts.d32, gintmsk.d32);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -1394,6 +1406,7 @@ int32_t dwc_otg_handle_common_intr(void
|
@@ -1394,6 +1406,7 @@ int32_t dwc_otg_handle_common_intr(void *dev)
|
||||||
{
|
{
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
gintsts_data_t gintsts;
|
gintsts_data_t gintsts;
|
||||||
|
@ -111,7 +115,7 @@ held off by the interrupt latency of Linux
|
||||||
gpwrdn_data_t gpwrdn = {.d32 = 0 };
|
gpwrdn_data_t gpwrdn = {.d32 = 0 };
|
||||||
dwc_otg_device_t *otg_dev = dev;
|
dwc_otg_device_t *otg_dev = dev;
|
||||||
dwc_otg_core_if_t *core_if = otg_dev->core_if;
|
dwc_otg_core_if_t *core_if = otg_dev->core_if;
|
||||||
@@ -1415,7 +1428,7 @@ int32_t dwc_otg_handle_common_intr(void
|
@@ -1415,7 +1428,7 @@ int32_t dwc_otg_handle_common_intr(void *dev)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (core_if->hibernation_suspend <= 0) {
|
if (core_if->hibernation_suspend <= 0) {
|
||||||
|
@ -120,7 +124,7 @@ held off by the interrupt latency of Linux
|
||||||
|
|
||||||
if (gintsts.b.modemismatch) {
|
if (gintsts.b.modemismatch) {
|
||||||
retval |= dwc_otg_handle_mode_mismatch_intr(core_if);
|
retval |= dwc_otg_handle_mode_mismatch_intr(core_if);
|
||||||
@@ -1512,8 +1525,12 @@ int32_t dwc_otg_handle_common_intr(void
|
@@ -1512,8 +1525,12 @@ int32_t dwc_otg_handle_common_intr(void *dev)
|
||||||
gintsts.b.portintr = 1;
|
gintsts.b.portintr = 1;
|
||||||
DWC_WRITE_REG32(&core_if->core_global_regs->gintsts,gintsts.d32);
|
DWC_WRITE_REG32(&core_if->core_global_regs->gintsts,gintsts.d32);
|
||||||
retval |= 1;
|
retval |= 1;
|
||||||
|
@ -133,9 +137,11 @@ held off by the interrupt latency of Linux
|
||||||
} else {
|
} else {
|
||||||
DWC_DEBUGPL(DBG_ANY, "gpwrdn=%08x\n", gpwrdn.d32);
|
DWC_DEBUGPL(DBG_ANY, "gpwrdn=%08x\n", gpwrdn.d32);
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_driver.c b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
|
index cea8fcb..6c89a69 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
@@ -242,7 +242,8 @@ static struct dwc_otg_driver_module_para
|
@@ -242,7 +242,8 @@ static struct dwc_otg_driver_module_params dwc_otg_module_params = {
|
||||||
|
|
||||||
//Global variable to switch the fiq fix on or off (declared in bcm2708.c)
|
//Global variable to switch the fiq fix on or off (declared in bcm2708.c)
|
||||||
extern bool fiq_fix_enable;
|
extern bool fiq_fix_enable;
|
||||||
|
@ -145,7 +151,7 @@ held off by the interrupt latency of Linux
|
||||||
//Global variable to switch the nak holdoff on or off
|
//Global variable to switch the nak holdoff on or off
|
||||||
bool nak_holdoff_enable = true;
|
bool nak_holdoff_enable = true;
|
||||||
|
|
||||||
@@ -1090,6 +1091,7 @@ static int __init dwc_otg_driver_init(vo
|
@@ -1090,6 +1091,7 @@ static int __init dwc_otg_driver_init(void)
|
||||||
}
|
}
|
||||||
printk(KERN_DEBUG "dwc_otg: FIQ %s\n", fiq_fix_enable ? "enabled":"disabled");
|
printk(KERN_DEBUG "dwc_otg: FIQ %s\n", fiq_fix_enable ? "enabled":"disabled");
|
||||||
printk(KERN_DEBUG "dwc_otg: NAK holdoff %s\n", nak_holdoff_enable ? "enabled":"disabled");
|
printk(KERN_DEBUG "dwc_otg: NAK holdoff %s\n", nak_holdoff_enable ? "enabled":"disabled");
|
||||||
|
@ -153,7 +159,7 @@ held off by the interrupt latency of Linux
|
||||||
|
|
||||||
error = driver_create_file(drv, &driver_attr_version);
|
error = driver_create_file(drv, &driver_attr_version);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
@@ -1374,6 +1376,8 @@ module_param(fiq_fix_enable, bool, 0444)
|
@@ -1374,6 +1376,8 @@ module_param(fiq_fix_enable, bool, 0444);
|
||||||
MODULE_PARM_DESC(fiq_fix_enable, "Enable the fiq fix");
|
MODULE_PARM_DESC(fiq_fix_enable, "Enable the fiq fix");
|
||||||
module_param(nak_holdoff_enable, bool, 0444);
|
module_param(nak_holdoff_enable, bool, 0444);
|
||||||
MODULE_PARM_DESC(nak_holdoff_enable, "Enable the NAK holdoff");
|
MODULE_PARM_DESC(nak_holdoff_enable, "Enable the NAK holdoff");
|
||||||
|
@ -162,6 +168,8 @@ held off by the interrupt latency of Linux
|
||||||
|
|
||||||
/** @page "Module Parameters"
|
/** @page "Module Parameters"
|
||||||
*
|
*
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
index 9c2e71a..af9108c 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -45,6 +45,7 @@
|
@@ -45,6 +45,7 @@
|
||||||
|
@ -172,7 +180,7 @@ held off by the interrupt latency of Linux
|
||||||
|
|
||||||
extern bool microframe_schedule, nak_holdoff_enable;
|
extern bool microframe_schedule, nak_holdoff_enable;
|
||||||
|
|
||||||
@@ -581,6 +582,8 @@ int dwc_otg_hcd_urb_dequeue(dwc_otg_hcd_
|
@@ -581,6 +582,8 @@ int dwc_otg_hcd_urb_dequeue(dwc_otg_hcd_t * hcd,
|
||||||
*/
|
*/
|
||||||
dwc_otg_hc_halt(hcd->core_if, qh->channel,
|
dwc_otg_hc_halt(hcd->core_if, qh->channel,
|
||||||
DWC_OTG_HC_XFER_URB_DEQUEUE);
|
DWC_OTG_HC_XFER_URB_DEQUEUE);
|
||||||
|
@ -181,7 +189,7 @@ held off by the interrupt latency of Linux
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -716,6 +719,8 @@ static void completion_tasklet_func(void
|
@@ -716,6 +719,8 @@ static void completion_tasklet_func(void *ptr)
|
||||||
|
|
||||||
usb_hcd_giveback_urb(hcd->priv, urb, urb->status);
|
usb_hcd_giveback_urb(hcd->priv, urb, urb->status);
|
||||||
|
|
||||||
|
@ -190,7 +198,7 @@ held off by the interrupt latency of Linux
|
||||||
DWC_SPINLOCK_IRQSAVE(hcd->lock, &flags);
|
DWC_SPINLOCK_IRQSAVE(hcd->lock, &flags);
|
||||||
}
|
}
|
||||||
DWC_SPINUNLOCK_IRQRESTORE(hcd->lock, flags);
|
DWC_SPINUNLOCK_IRQRESTORE(hcd->lock, flags);
|
||||||
@@ -979,6 +984,10 @@ int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd
|
@@ -979,6 +984,10 @@ int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd, dwc_otg_core_if_t * core_if)
|
||||||
hcd->frame_list = NULL;
|
hcd->frame_list = NULL;
|
||||||
hcd->frame_list_dma = 0;
|
hcd->frame_list_dma = 0;
|
||||||
hcd->periodic_qh_count = 0;
|
hcd->periodic_qh_count = 0;
|
||||||
|
@ -201,7 +209,7 @@ held off by the interrupt latency of Linux
|
||||||
out:
|
out:
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@@ -1124,7 +1133,12 @@ static void assign_and_init_hc(dwc_otg_h
|
@@ -1124,7 +1133,12 @@ static void assign_and_init_hc(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh)
|
||||||
uint32_t hub_addr, port_addr;
|
uint32_t hub_addr, port_addr;
|
||||||
hc->do_split = 1;
|
hc->do_split = 1;
|
||||||
hc->xact_pos = qtd->isoc_split_pos;
|
hc->xact_pos = qtd->isoc_split_pos;
|
||||||
|
@ -215,7 +223,7 @@ held off by the interrupt latency of Linux
|
||||||
hcd->fops->hub_info(hcd, urb->priv, &hub_addr, &port_addr);
|
hcd->fops->hub_info(hcd, urb->priv, &hub_addr, &port_addr);
|
||||||
hc->hub_addr = (uint8_t) hub_addr;
|
hc->hub_addr = (uint8_t) hub_addr;
|
||||||
hc->port_addr = (uint8_t) port_addr;
|
hc->port_addr = (uint8_t) port_addr;
|
||||||
@@ -1271,6 +1285,62 @@ static void assign_and_init_hc(dwc_otg_h
|
@@ -1271,6 +1285,62 @@ static void assign_and_init_hc(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh)
|
||||||
hc->qh = qh;
|
hc->qh = qh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -278,7 +286,7 @@ held off by the interrupt latency of Linux
|
||||||
/**
|
/**
|
||||||
* This function selects transactions from the HCD transfer schedule and
|
* This function selects transactions from the HCD transfer schedule and
|
||||||
* assigns them to available host channels. It is called from HCD interrupt
|
* assigns them to available host channels. It is called from HCD interrupt
|
||||||
@@ -1304,11 +1374,22 @@ dwc_otg_transaction_type_e dwc_otg_hcd_s
|
@@ -1304,11 +1374,22 @@ dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t * hcd)
|
||||||
|
|
||||||
while (qh_ptr != &hcd->periodic_sched_ready &&
|
while (qh_ptr != &hcd->periodic_sched_ready &&
|
||||||
!DWC_CIRCLEQ_EMPTY(&hcd->free_hc_list)) {
|
!DWC_CIRCLEQ_EMPTY(&hcd->free_hc_list)) {
|
||||||
|
@ -301,7 +309,7 @@ held off by the interrupt latency of Linux
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
hcd->available_host_channels--;
|
hcd->available_host_channels--;
|
||||||
@@ -1329,8 +1410,6 @@ dwc_otg_transaction_type_e dwc_otg_hcd_s
|
@@ -1329,8 +1410,6 @@ dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t * hcd)
|
||||||
DWC_LIST_MOVE_HEAD(&hcd->periodic_sched_assigned,
|
DWC_LIST_MOVE_HEAD(&hcd->periodic_sched_assigned,
|
||||||
&qh->qh_list_entry);
|
&qh->qh_list_entry);
|
||||||
DWC_SPINUNLOCK_IRQRESTORE(channel_lock, flags);
|
DWC_SPINUNLOCK_IRQRESTORE(channel_lock, flags);
|
||||||
|
@ -310,7 +318,7 @@ held off by the interrupt latency of Linux
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1369,10 +1448,19 @@ dwc_otg_transaction_type_e dwc_otg_hcd_s
|
@@ -1369,10 +1448,19 @@ dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t * hcd)
|
||||||
qh->nak_frame = 0xffff;
|
qh->nak_frame = 0xffff;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -330,7 +338,7 @@ held off by the interrupt latency of Linux
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
hcd->available_host_channels--;
|
hcd->available_host_channels--;
|
||||||
@@ -1396,16 +1484,17 @@ dwc_otg_transaction_type_e dwc_otg_hcd_s
|
@@ -1396,16 +1484,17 @@ dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t * hcd)
|
||||||
|
|
||||||
g_np_sent++;
|
g_np_sent++;
|
||||||
|
|
||||||
|
@ -354,7 +362,7 @@ held off by the interrupt latency of Linux
|
||||||
#ifdef DEBUG_HOST_CHANNELS
|
#ifdef DEBUG_HOST_CHANNELS
|
||||||
last_sel_trans_num_avail_hc_at_end = hcd->available_host_channels;
|
last_sel_trans_num_avail_hc_at_end = hcd->available_host_channels;
|
||||||
#endif /* DEBUG_HOST_CHANNELS */
|
#endif /* DEBUG_HOST_CHANNELS */
|
||||||
@@ -1522,6 +1611,15 @@ static void process_periodic_channels(dw
|
@@ -1522,6 +1611,15 @@ static void process_periodic_channels(dwc_otg_hcd_t * hcd)
|
||||||
|
|
||||||
qh = DWC_LIST_ENTRY(qh_ptr, dwc_otg_qh_t, qh_list_entry);
|
qh = DWC_LIST_ENTRY(qh_ptr, dwc_otg_qh_t, qh_list_entry);
|
||||||
|
|
||||||
|
@ -370,7 +378,7 @@ held off by the interrupt latency of Linux
|
||||||
/*
|
/*
|
||||||
* Set a flag if we're queuing high-bandwidth in slave mode.
|
* Set a flag if we're queuing high-bandwidth in slave mode.
|
||||||
* The flag prevents any halts to get into the request queue in
|
* The flag prevents any halts to get into the request queue in
|
||||||
@@ -1651,6 +1749,15 @@ static void process_non_periodic_channel
|
@@ -1651,6 +1749,15 @@ static void process_non_periodic_channels(dwc_otg_hcd_t * hcd)
|
||||||
|
|
||||||
qh = DWC_LIST_ENTRY(hcd->non_periodic_qh_ptr, dwc_otg_qh_t,
|
qh = DWC_LIST_ENTRY(hcd->non_periodic_qh_ptr, dwc_otg_qh_t,
|
||||||
qh_list_entry);
|
qh_list_entry);
|
||||||
|
@ -386,6 +394,8 @@ held off by the interrupt latency of Linux
|
||||||
status =
|
status =
|
||||||
queue_transaction(hcd, qh->channel,
|
queue_transaction(hcd, qh->channel,
|
||||||
tx_status.b.nptxfspcavail);
|
tx_status.b.nptxfspcavail);
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
|
index 0493dbf..d3d6e997 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
@@ -168,10 +168,10 @@ typedef enum dwc_otg_control_phase {
|
@@ -168,10 +168,10 @@ typedef enum dwc_otg_control_phase {
|
||||||
|
@ -423,7 +433,7 @@ held off by the interrupt latency of Linux
|
||||||
/** Frame List DMA address */
|
/** Frame List DMA address */
|
||||||
dma_addr_t frame_list_dma;
|
dma_addr_t frame_list_dma;
|
||||||
|
|
||||||
@@ -604,12 +610,16 @@ extern dwc_otg_transaction_type_e dwc_ot
|
@@ -604,12 +610,16 @@ extern dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t
|
||||||
extern void dwc_otg_hcd_queue_transactions(dwc_otg_hcd_t * hcd,
|
extern void dwc_otg_hcd_queue_transactions(dwc_otg_hcd_t * hcd,
|
||||||
dwc_otg_transaction_type_e tr_type);
|
dwc_otg_transaction_type_e tr_type);
|
||||||
|
|
||||||
|
@ -441,6 +451,8 @@ held off by the interrupt latency of Linux
|
||||||
extern int32_t dwc_otg_hcd_handle_rx_status_q_level_intr(dwc_otg_hcd_t *
|
extern int32_t dwc_otg_hcd_handle_rx_status_q_level_intr(dwc_otg_hcd_t *
|
||||||
dwc_otg_hcd);
|
dwc_otg_hcd);
|
||||||
extern int32_t dwc_otg_hcd_handle_np_tx_fifo_empty_intr(dwc_otg_hcd_t *
|
extern int32_t dwc_otg_hcd_handle_np_tx_fifo_empty_intr(dwc_otg_hcd_t *
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index 16e8c6c..e8b4d35 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -38,6 +38,7 @@
|
@@ -38,6 +38,7 @@
|
||||||
|
@ -752,7 +764,7 @@ held off by the interrupt latency of Linux
|
||||||
|
|
||||||
/* entry takes care to store registers we will be treading on here */
|
/* entry takes care to store registers we will be treading on here */
|
||||||
asm __volatile__ (
|
asm __volatile__ (
|
||||||
@@ -74,43 +349,112 @@ void __attribute__ ((naked)) dwc_otg_hcd
|
@@ -74,43 +349,112 @@ void __attribute__ ((naked)) dwc_otg_hcd_handle_fiq(void)
|
||||||
/* stash FIQ and normal regs */
|
/* stash FIQ and normal regs */
|
||||||
"stmdb sp!, {r0-r12, lr};"
|
"stmdb sp!, {r0-r12, lr};"
|
||||||
/* !! THIS SETS THE FRAME, adjust to > sizeof locals */
|
/* !! THIS SETS THE FRAME, adjust to > sizeof locals */
|
||||||
|
@ -888,7 +900,7 @@ held off by the interrupt latency of Linux
|
||||||
mb();
|
mb();
|
||||||
|
|
||||||
/* exit back to normal mode restoring everything */
|
/* exit back to normal mode restoring everything */
|
||||||
@@ -133,6 +477,7 @@ int32_t dwc_otg_hcd_handle_intr(dwc_otg_
|
@@ -133,6 +477,7 @@ int32_t dwc_otg_hcd_handle_intr(dwc_otg_hcd_t * dwc_otg_hcd)
|
||||||
|
|
||||||
dwc_otg_core_if_t *core_if = dwc_otg_hcd->core_if;
|
dwc_otg_core_if_t *core_if = dwc_otg_hcd->core_if;
|
||||||
gintsts_data_t gintsts;
|
gintsts_data_t gintsts;
|
||||||
|
@ -896,7 +908,7 @@ held off by the interrupt latency of Linux
|
||||||
hfnum_data_t hfnum;
|
hfnum_data_t hfnum;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
@@ -140,6 +485,9 @@ int32_t dwc_otg_hcd_handle_intr(dwc_otg_
|
@@ -140,6 +485,9 @@ int32_t dwc_otg_hcd_handle_intr(dwc_otg_hcd_t * dwc_otg_hcd)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -906,7 +918,7 @@ held off by the interrupt latency of Linux
|
||||||
/* Exit from ISR if core is hibernated */
|
/* Exit from ISR if core is hibernated */
|
||||||
if (core_if->hibernation_suspend == 1) {
|
if (core_if->hibernation_suspend == 1) {
|
||||||
goto exit_handler_routine;
|
goto exit_handler_routine;
|
||||||
@@ -147,11 +495,18 @@ int32_t dwc_otg_hcd_handle_intr(dwc_otg_
|
@@ -147,11 +495,18 @@ int32_t dwc_otg_hcd_handle_intr(dwc_otg_hcd_t * dwc_otg_hcd)
|
||||||
DWC_SPINLOCK(dwc_otg_hcd->lock);
|
DWC_SPINLOCK(dwc_otg_hcd->lock);
|
||||||
/* Check if HOST Mode */
|
/* Check if HOST Mode */
|
||||||
if (dwc_otg_is_host_mode(core_if)) {
|
if (dwc_otg_is_host_mode(core_if)) {
|
||||||
|
@ -926,7 +938,7 @@ held off by the interrupt latency of Linux
|
||||||
/* Don't print debug message in the interrupt handler on SOF */
|
/* Don't print debug message in the interrupt handler on SOF */
|
||||||
#ifndef DEBUG_SOF
|
#ifndef DEBUG_SOF
|
||||||
if (gintsts.d32 != DWC_SOF_INTR_MASK)
|
if (gintsts.d32 != DWC_SOF_INTR_MASK)
|
||||||
@@ -171,11 +526,12 @@ int32_t dwc_otg_hcd_handle_intr(dwc_otg_
|
@@ -171,11 +526,12 @@ int32_t dwc_otg_hcd_handle_intr(dwc_otg_hcd_t * dwc_otg_hcd)
|
||||||
if (gintsts.b.sofintr && g_np_count == g_np_sent && dwc_frame_num_gt(g_next_sched_frame, hfnum.b.frnum))
|
if (gintsts.b.sofintr && g_np_count == g_np_sent && dwc_frame_num_gt(g_next_sched_frame, hfnum.b.frnum))
|
||||||
{
|
{
|
||||||
/* Note, we should never get here if the FIQ is doing it's job properly*/
|
/* Note, we should never get here if the FIQ is doing it's job properly*/
|
||||||
|
@ -941,7 +953,7 @@ held off by the interrupt latency of Linux
|
||||||
if (gintsts.b.rxstsqlvl) {
|
if (gintsts.b.rxstsqlvl) {
|
||||||
retval |=
|
retval |=
|
||||||
dwc_otg_hcd_handle_rx_status_q_level_intr
|
dwc_otg_hcd_handle_rx_status_q_level_intr
|
||||||
@@ -190,7 +546,10 @@ int32_t dwc_otg_hcd_handle_intr(dwc_otg_
|
@@ -190,7 +546,10 @@ int32_t dwc_otg_hcd_handle_intr(dwc_otg_hcd_t * dwc_otg_hcd)
|
||||||
/** @todo Implement i2cintr handler. */
|
/** @todo Implement i2cintr handler. */
|
||||||
}
|
}
|
||||||
if (gintsts.b.portintr) {
|
if (gintsts.b.portintr) {
|
||||||
|
@ -1000,7 +1012,7 @@ held off by the interrupt latency of Linux
|
||||||
}
|
}
|
||||||
|
|
||||||
DWC_SPINUNLOCK(dwc_otg_hcd->lock);
|
DWC_SPINUNLOCK(dwc_otg_hcd->lock);
|
||||||
@@ -294,13 +662,12 @@ static inline void track_missed_sofs(uin
|
@@ -294,13 +662,12 @@ static inline void track_missed_sofs(uint16_t curr_frame_number)
|
||||||
* (micro)frame. Periodic transactions may be queued to the controller for the
|
* (micro)frame. Periodic transactions may be queued to the controller for the
|
||||||
* next (micro)frame.
|
* next (micro)frame.
|
||||||
*/
|
*/
|
||||||
|
@ -1015,7 +1027,7 @@ held off by the interrupt latency of Linux
|
||||||
int did_something = 0;
|
int did_something = 0;
|
||||||
int32_t next_sched_frame = -1;
|
int32_t next_sched_frame = -1;
|
||||||
|
|
||||||
@@ -326,6 +693,7 @@ int32_t dwc_otg_hcd_handle_sof_intr(dwc_
|
@@ -326,6 +693,7 @@ int32_t dwc_otg_hcd_handle_sof_intr(dwc_otg_hcd_t * hcd, int32_t work_expected)
|
||||||
qh = DWC_LIST_ENTRY(qh_entry, dwc_otg_qh_t, qh_list_entry);
|
qh = DWC_LIST_ENTRY(qh_entry, dwc_otg_qh_t, qh_list_entry);
|
||||||
qh_entry = qh_entry->next;
|
qh_entry = qh_entry->next;
|
||||||
if (dwc_frame_num_le(qh->sched_frame, hcd->frame_number)) {
|
if (dwc_frame_num_le(qh->sched_frame, hcd->frame_number)) {
|
||||||
|
@ -1023,7 +1035,7 @@ held off by the interrupt latency of Linux
|
||||||
/*
|
/*
|
||||||
* Move QH to the ready list to be executed next
|
* Move QH to the ready list to be executed next
|
||||||
* (micro)frame.
|
* (micro)frame.
|
||||||
@@ -351,15 +719,10 @@ int32_t dwc_otg_hcd_handle_sof_intr(dwc_
|
@@ -351,15 +719,10 @@ int32_t dwc_otg_hcd_handle_sof_intr(dwc_otg_hcd_t * hcd, int32_t work_expected)
|
||||||
dwc_otg_hcd_queue_transactions(hcd, tr_type);
|
dwc_otg_hcd_queue_transactions(hcd, tr_type);
|
||||||
did_something = 1;
|
did_something = 1;
|
||||||
}
|
}
|
||||||
|
@ -1041,7 +1053,7 @@ held off by the interrupt latency of Linux
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -643,6 +1006,15 @@ int32_t dwc_otg_hcd_handle_hc_intr(dwc_o
|
@@ -643,6 +1006,15 @@ int32_t dwc_otg_hcd_handle_hc_intr(dwc_otg_hcd_t * dwc_otg_hcd)
|
||||||
|
|
||||||
haint.d32 = dwc_otg_read_host_all_channels_intr(dwc_otg_hcd->core_if);
|
haint.d32 = dwc_otg_read_host_all_channels_intr(dwc_otg_hcd->core_if);
|
||||||
|
|
||||||
|
@ -1057,7 +1069,7 @@ held off by the interrupt latency of Linux
|
||||||
for (i = 0; i < dwc_otg_hcd->core_if->core_params->host_channels; i++) {
|
for (i = 0; i < dwc_otg_hcd->core_if->core_params->host_channels; i++) {
|
||||||
if (haint.b2.chint & (1 << i)) {
|
if (haint.b2.chint & (1 << i)) {
|
||||||
retval |= dwc_otg_hcd_handle_hc_n_intr(dwc_otg_hcd, i);
|
retval |= dwc_otg_hcd_handle_hc_n_intr(dwc_otg_hcd, i);
|
||||||
@@ -683,7 +1055,10 @@ static uint32_t get_actual_xfer_length(d
|
@@ -683,7 +1055,10 @@ static uint32_t get_actual_xfer_length(dwc_hc_t * hc,
|
||||||
*short_read = (hctsiz.b.xfersize != 0);
|
*short_read = (hctsiz.b.xfersize != 0);
|
||||||
}
|
}
|
||||||
} else if (hc->qh->do_split) {
|
} else if (hc->qh->do_split) {
|
||||||
|
@ -1069,7 +1081,7 @@ held off by the interrupt latency of Linux
|
||||||
} else {
|
} else {
|
||||||
length = hc->xfer_len;
|
length = hc->xfer_len;
|
||||||
}
|
}
|
||||||
@@ -727,7 +1102,6 @@ static int update_urb_state_xfer_comp(dw
|
@@ -727,7 +1102,6 @@ static int update_urb_state_xfer_comp(dwc_hc_t * hc,
|
||||||
DWC_OTG_HC_XFER_COMPLETE,
|
DWC_OTG_HC_XFER_COMPLETE,
|
||||||
&short_read);
|
&short_read);
|
||||||
|
|
||||||
|
@ -1077,7 +1089,7 @@ held off by the interrupt latency of Linux
|
||||||
/* non DWORD-aligned buffer case handling. */
|
/* non DWORD-aligned buffer case handling. */
|
||||||
if (hc->align_buff && xfer_length && hc->ep_is_in) {
|
if (hc->align_buff && xfer_length && hc->ep_is_in) {
|
||||||
dwc_memcpy(urb->buf + urb->actual_length, hc->qh->dw_align_buf,
|
dwc_memcpy(urb->buf + urb->actual_length, hc->qh->dw_align_buf,
|
||||||
@@ -930,6 +1304,9 @@ static void release_channel(dwc_otg_hcd_
|
@@ -930,6 +1304,9 @@ static void release_channel(dwc_otg_hcd_t * hcd,
|
||||||
int free_qtd;
|
int free_qtd;
|
||||||
dwc_irqflags_t flags;
|
dwc_irqflags_t flags;
|
||||||
dwc_spinlock_t *channel_lock = hcd->channel_lock;
|
dwc_spinlock_t *channel_lock = hcd->channel_lock;
|
||||||
|
@ -1112,7 +1124,7 @@ held off by the interrupt latency of Linux
|
||||||
/* Try to queue more transfers now that there's a free channel. */
|
/* Try to queue more transfers now that there's a free channel. */
|
||||||
tr_type = dwc_otg_hcd_select_transactions(hcd);
|
tr_type = dwc_otg_hcd_select_transactions(hcd);
|
||||||
if (tr_type != DWC_OTG_TRANSACTION_NONE) {
|
if (tr_type != DWC_OTG_TRANSACTION_NONE) {
|
||||||
@@ -1633,8 +2025,10 @@ static int32_t handle_hc_nyet_intr(dwc_o
|
@@ -1633,8 +2025,10 @@ static int32_t handle_hc_nyet_intr(dwc_otg_hcd_t * hcd,
|
||||||
hc->ep_type == DWC_OTG_EP_TYPE_ISOC) {
|
hc->ep_type == DWC_OTG_EP_TYPE_ISOC) {
|
||||||
int frnum = dwc_otg_hcd_get_frame_number(hcd);
|
int frnum = dwc_otg_hcd_get_frame_number(hcd);
|
||||||
|
|
||||||
|
@ -1124,7 +1136,7 @@ held off by the interrupt latency of Linux
|
||||||
/*
|
/*
|
||||||
* No longer in the same full speed frame.
|
* No longer in the same full speed frame.
|
||||||
* Treat this as a transaction error.
|
* Treat this as a transaction error.
|
||||||
@@ -2012,10 +2406,10 @@ static inline int halt_status_ok(dwc_otg
|
@@ -2012,10 +2406,10 @@ static inline int halt_status_ok(dwc_otg_hcd_t * hcd,
|
||||||
static void handle_hc_chhltd_intr_dma(dwc_otg_hcd_t * hcd,
|
static void handle_hc_chhltd_intr_dma(dwc_otg_hcd_t * hcd,
|
||||||
dwc_hc_t * hc,
|
dwc_hc_t * hc,
|
||||||
dwc_otg_hc_regs_t * hc_regs,
|
dwc_otg_hc_regs_t * hc_regs,
|
||||||
|
@ -1138,7 +1150,7 @@ held off by the interrupt latency of Linux
|
||||||
int out_nak_enh = 0;
|
int out_nak_enh = 0;
|
||||||
|
|
||||||
/* For core with OUT NAK enhancement, the flow for high-
|
/* For core with OUT NAK enhancement, the flow for high-
|
||||||
@@ -2047,8 +2441,11 @@ static void handle_hc_chhltd_intr_dma(dw
|
@@ -2047,8 +2441,11 @@ static void handle_hc_chhltd_intr_dma(dwc_otg_hcd_t * hcd,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Read the HCINTn register to determine the cause for the halt. */
|
/* Read the HCINTn register to determine the cause for the halt. */
|
||||||
|
@ -1152,7 +1164,7 @@ held off by the interrupt latency of Linux
|
||||||
|
|
||||||
if (hcint.b.xfercomp) {
|
if (hcint.b.xfercomp) {
|
||||||
/** @todo This is here because of a possible hardware bug. Spec
|
/** @todo This is here because of a possible hardware bug. Spec
|
||||||
@@ -2161,13 +2558,15 @@ static void handle_hc_chhltd_intr_dma(dw
|
@@ -2161,13 +2558,15 @@ static void handle_hc_chhltd_intr_dma(dwc_otg_hcd_t * hcd,
|
||||||
static int32_t handle_hc_chhltd_intr(dwc_otg_hcd_t * hcd,
|
static int32_t handle_hc_chhltd_intr(dwc_otg_hcd_t * hcd,
|
||||||
dwc_hc_t * hc,
|
dwc_hc_t * hc,
|
||||||
dwc_otg_hc_regs_t * hc_regs,
|
dwc_otg_hc_regs_t * hc_regs,
|
||||||
|
@ -1170,7 +1182,7 @@ held off by the interrupt latency of Linux
|
||||||
} else {
|
} else {
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if (!halt_status_ok(hcd, hc, hc_regs, qtd)) {
|
if (!halt_status_ok(hcd, hc, hc_regs, qtd)) {
|
||||||
@@ -2184,7 +2583,7 @@ static int32_t handle_hc_chhltd_intr(dwc
|
@@ -2184,7 +2583,7 @@ static int32_t handle_hc_chhltd_intr(dwc_otg_hcd_t * hcd,
|
||||||
int32_t dwc_otg_hcd_handle_hc_n_intr(dwc_otg_hcd_t * dwc_otg_hcd, uint32_t num)
|
int32_t dwc_otg_hcd_handle_hc_n_intr(dwc_otg_hcd_t * dwc_otg_hcd, uint32_t num)
|
||||||
{
|
{
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
|
@ -1179,7 +1191,7 @@ held off by the interrupt latency of Linux
|
||||||
hcintmsk_data_t hcintmsk;
|
hcintmsk_data_t hcintmsk;
|
||||||
dwc_hc_t *hc;
|
dwc_hc_t *hc;
|
||||||
dwc_otg_hc_regs_t *hc_regs;
|
dwc_otg_hc_regs_t *hc_regs;
|
||||||
@@ -2197,12 +2596,23 @@ int32_t dwc_otg_hcd_handle_hc_n_intr(dwc
|
@@ -2197,12 +2596,23 @@ int32_t dwc_otg_hcd_handle_hc_n_intr(dwc_otg_hcd_t * dwc_otg_hcd, uint32_t num)
|
||||||
qtd = DWC_CIRCLEQ_FIRST(&hc->qh->qtd_list);
|
qtd = DWC_CIRCLEQ_FIRST(&hc->qh->qtd_list);
|
||||||
|
|
||||||
hcint.d32 = DWC_READ_REG32(&hc_regs->hcint);
|
hcint.d32 = DWC_READ_REG32(&hc_regs->hcint);
|
||||||
|
@ -1203,7 +1215,7 @@ held off by the interrupt latency of Linux
|
||||||
if (!dwc_otg_hcd->core_if->dma_enable) {
|
if (!dwc_otg_hcd->core_if->dma_enable) {
|
||||||
if (hcint.b.chhltd && hcint.d32 != 0x2) {
|
if (hcint.b.chhltd && hcint.d32 != 0x2) {
|
||||||
hcint.b.chhltd = 0;
|
hcint.b.chhltd = 0;
|
||||||
@@ -2220,7 +2630,7 @@ int32_t dwc_otg_hcd_handle_hc_n_intr(dwc
|
@@ -2220,7 +2630,7 @@ int32_t dwc_otg_hcd_handle_hc_n_intr(dwc_otg_hcd_t * dwc_otg_hcd, uint32_t num)
|
||||||
hcint.b.nyet = 0;
|
hcint.b.nyet = 0;
|
||||||
}
|
}
|
||||||
if (hcint.b.chhltd) {
|
if (hcint.b.chhltd) {
|
||||||
|
@ -1212,9 +1224,11 @@ held off by the interrupt latency of Linux
|
||||||
}
|
}
|
||||||
if (hcint.b.ahberr) {
|
if (hcint.b.ahberr) {
|
||||||
retval |= handle_hc_ahberr_intr(dwc_otg_hcd, hc, hc_regs, qtd);
|
retval |= handle_hc_ahberr_intr(dwc_otg_hcd, hc, hc_regs, qtd);
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
|
index fef557d..0d6f5f4 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
@@ -392,7 +392,11 @@ static struct dwc_otg_hcd_function_ops h
|
@@ -392,7 +392,11 @@ static struct dwc_otg_hcd_function_ops hcd_fops = {
|
||||||
static struct fiq_handler fh = {
|
static struct fiq_handler fh = {
|
||||||
.name = "usb_fiq",
|
.name = "usb_fiq",
|
||||||
};
|
};
|
||||||
|
@ -1259,7 +1273,7 @@ held off by the interrupt latency of Linux
|
||||||
//Enable mphi peripheral
|
//Enable mphi peripheral
|
||||||
writel((1<<31),c_mphi_regs.ctrl);
|
writel((1<<31),c_mphi_regs.ctrl);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
@@ -839,6 +849,8 @@ static int dwc_otg_urb_dequeue(struct us
|
@@ -839,6 +849,8 @@ static int dwc_otg_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
|
||||||
usb_hcd_unlink_urb_from_ep(hcd, urb);
|
usb_hcd_unlink_urb_from_ep(hcd, urb);
|
||||||
#endif
|
#endif
|
||||||
DWC_SPINUNLOCK_IRQRESTORE(dwc_otg_hcd->lock, flags);
|
DWC_SPINUNLOCK_IRQRESTORE(dwc_otg_hcd->lock, flags);
|
||||||
|
@ -1268,6 +1282,8 @@ held off by the interrupt latency of Linux
|
||||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
|
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
|
||||||
usb_hcd_giveback_urb(hcd, urb);
|
usb_hcd_giveback_urb(hcd, urb);
|
||||||
#else
|
#else
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
|
index b3e6e52..8125307 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
@@ -41,6 +41,7 @@
|
@@ -41,6 +41,7 @@
|
||||||
|
@ -1278,7 +1294,7 @@ held off by the interrupt latency of Linux
|
||||||
|
|
||||||
extern bool microframe_schedule;
|
extern bool microframe_schedule;
|
||||||
|
|
||||||
@@ -191,6 +192,7 @@ void qh_init(dwc_otg_hcd_t * hcd, dwc_ot
|
@@ -191,6 +192,7 @@ void qh_init(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh, dwc_otg_hcd_urb_t * urb)
|
||||||
dwc_otg_hcd_get_ep_num(&urb->pipe_info), hub_addr,
|
dwc_otg_hcd_get_ep_num(&urb->pipe_info), hub_addr,
|
||||||
hub_port);
|
hub_port);
|
||||||
qh->do_split = 1;
|
qh->do_split = 1;
|
||||||
|
@ -1286,7 +1302,7 @@ held off by the interrupt latency of Linux
|
||||||
}
|
}
|
||||||
|
|
||||||
if (qh->ep_type == UE_INTERRUPT || qh->ep_type == UE_ISOCHRONOUS) {
|
if (qh->ep_type == UE_INTERRUPT || qh->ep_type == UE_ISOCHRONOUS) {
|
||||||
@@ -737,6 +739,9 @@ void dwc_otg_hcd_qh_remove(dwc_otg_hcd_t
|
@@ -737,6 +739,9 @@ void dwc_otg_hcd_qh_remove(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh)
|
||||||
hcd->non_periodic_qh_ptr->next;
|
hcd->non_periodic_qh_ptr->next;
|
||||||
}
|
}
|
||||||
DWC_LIST_REMOVE_INIT(&qh->qh_list_entry);
|
DWC_LIST_REMOVE_INIT(&qh->qh_list_entry);
|
||||||
|
@ -1296,7 +1312,7 @@ held off by the interrupt latency of Linux
|
||||||
} else {
|
} else {
|
||||||
deschedule_periodic(hcd, qh);
|
deschedule_periodic(hcd, qh);
|
||||||
hcd->periodic_qh_count--;
|
hcd->periodic_qh_count--;
|
||||||
@@ -766,21 +771,21 @@ void dwc_otg_hcd_qh_deactivate(dwc_otg_h
|
@@ -766,21 +771,21 @@ void dwc_otg_hcd_qh_deactivate(dwc_otg_hcd_t * hcd, dwc_otg_qh_t * qh,
|
||||||
{
|
{
|
||||||
if (dwc_qh_is_non_per(qh)) {
|
if (dwc_qh_is_non_per(qh)) {
|
||||||
|
|
||||||
|
@ -1331,6 +1347,8 @@ held off by the interrupt latency of Linux
|
||||||
|
|
||||||
|
|
||||||
dwc_otg_hcd_qh_remove(hcd, qh);
|
dwc_otg_hcd_qh_remove(hcd, qh);
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h b/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h
|
||||||
|
index 22f28e1..ca17379 100755
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_mphi_fix.h
|
||||||
@@ -1,10 +1,7 @@
|
@@ -1,10 +1,7 @@
|
||||||
|
@ -1362,19 +1380,19 @@ held off by the interrupt latency of Linux
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
#define DWC_DBG_PRINT_CORE_INT(_arg_) dwc_debug_print_core_int_reg(_arg_,__func__)
|
#define DWC_DBG_PRINT_CORE_INT(_arg_) dwc_debug_print_core_int_reg(_arg_,__func__)
|
||||||
@@ -30,7 +27,22 @@ void dwc_debug_otg_int(gotgint_data_t go
|
@@ -30,7 +27,22 @@ void dwc_debug_otg_int(gotgint_data_t gotgint, const char* function_name);
|
||||||
#define DWC_DBG_PRINT_CORE_INT_MASK(_arg_)
|
#define DWC_DBG_PRINT_CORE_INT_MASK(_arg_)
|
||||||
#define DWC_DBG_PRINT_OTG_INT(_arg_)
|
#define DWC_DBG_PRINT_OTG_INT(_arg_)
|
||||||
|
|
||||||
+#endif
|
+#endif
|
||||||
|
+
|
||||||
+typedef enum {
|
+typedef enum {
|
||||||
+ FIQDBG_SCHED = (1 << 0),
|
+ FIQDBG_SCHED = (1 << 0),
|
||||||
+ FIQDBG_INT = (1 << 1),
|
+ FIQDBG_INT = (1 << 1),
|
||||||
+ FIQDBG_ERR = (1 << 2),
|
+ FIQDBG_ERR = (1 << 2),
|
||||||
+ FIQDBG_PORTHUB = (1 << 3),
|
+ FIQDBG_PORTHUB = (1 << 3),
|
||||||
+} FIQDBG_T;
|
+} FIQDBG_T;
|
||||||
+
|
|
||||||
+void _fiq_print(FIQDBG_T dbg_lvl, char *fmt, ...);
|
+void _fiq_print(FIQDBG_T dbg_lvl, char *fmt, ...);
|
||||||
+#ifdef FIQ_DEBUG
|
+#ifdef FIQ_DEBUG
|
||||||
+#define fiq_print _fiq_print
|
+#define fiq_print _fiq_print
|
||||||
|
@ -1385,6 +1403,8 @@ held off by the interrupt latency of Linux
|
||||||
+extern bool fiq_fix_enable, nak_holdoff_enable, fiq_split_enable;
|
+extern bool fiq_fix_enable, nak_holdoff_enable, fiq_split_enable;
|
||||||
+
|
+
|
||||||
#endif
|
#endif
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c
|
||||||
|
index 27061d3..9720937 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_pcd_intr.c
|
||||||
@@ -4276,7 +4276,7 @@ do { \
|
@@ -4276,7 +4276,7 @@ do { \
|
||||||
|
@ -1396,3 +1416,6 @@ held off by the interrupt latency of Linux
|
||||||
out_desc_addr->status.d32;
|
out_desc_addr->status.d32;
|
||||||
|
|
||||||
if (status.b.sr) {
|
if (status.b.sr) {
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,18 @@
|
||||||
From 7653ccf871836bc9a49f55df82d7f14596115146 Mon Sep 17 00:00:00 2001
|
From 7f68345942e44b3ff6b922d00d9650abae485eac Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 3 Jul 2013 11:39:46 +0100
|
Date: Wed, 3 Jul 2013 11:39:46 +0100
|
||||||
Subject: [PATCH 073/174] dwc_otg: fix device attributes and avoid kernel
|
Subject: [PATCH 073/196] dwc_otg: fix device attributes and avoid kernel
|
||||||
warnings on boot
|
warnings on boot
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_attr.c | 12 ++++++------
|
drivers/usb/host/dwc_otg/dwc_otg_attr.c | 12 ++++++------
|
||||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_attr.c b/drivers/usb/host/dwc_otg/dwc_otg_attr.c
|
||||||
|
index 95eb7f8..9602fda 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_attr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_attr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_attr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_attr.c
|
||||||
@@ -909,7 +909,7 @@ static ssize_t regdump_show(struct devic
|
@@ -909,7 +909,7 @@ static ssize_t regdump_show(struct device *_dev,
|
||||||
return sprintf(buf, "Register Dump\n");
|
return sprintf(buf, "Register Dump\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +21,7 @@ Subject: [PATCH 073/174] dwc_otg: fix device attributes and avoid kernel
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dump global registers and either host or device registers (depending on the
|
* Dump global registers and either host or device registers (depending on the
|
||||||
@@ -925,7 +925,7 @@ static ssize_t spramdump_show(struct dev
|
@@ -925,7 +925,7 @@ static ssize_t spramdump_show(struct device *_dev,
|
||||||
return sprintf(buf, "SPRAM Dump\n");
|
return sprintf(buf, "SPRAM Dump\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,7 +30,7 @@ Subject: [PATCH 073/174] dwc_otg: fix device attributes and avoid kernel
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dump the current hcd state.
|
* Dump the current hcd state.
|
||||||
@@ -940,7 +940,7 @@ static ssize_t hcddump_show(struct devic
|
@@ -940,7 +940,7 @@ static ssize_t hcddump_show(struct device *_dev,
|
||||||
return sprintf(buf, "HCD Dump\n");
|
return sprintf(buf, "HCD Dump\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +39,7 @@ Subject: [PATCH 073/174] dwc_otg: fix device attributes and avoid kernel
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dump the average frame remaining at SOF. This can be used to
|
* Dump the average frame remaining at SOF. This can be used to
|
||||||
@@ -958,7 +958,7 @@ static ssize_t hcd_frrem_show(struct dev
|
@@ -958,7 +958,7 @@ static ssize_t hcd_frrem_show(struct device *_dev,
|
||||||
return sprintf(buf, "HCD Dump Frame Remaining\n");
|
return sprintf(buf, "HCD Dump Frame Remaining\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,7 +48,7 @@ Subject: [PATCH 073/174] dwc_otg: fix device attributes and avoid kernel
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays the time required to read the GNPTXFSIZ register many times (the
|
* Displays the time required to read the GNPTXFSIZ register many times (the
|
||||||
@@ -986,7 +986,7 @@ static ssize_t rd_reg_test_show(struct d
|
@@ -986,7 +986,7 @@ static ssize_t rd_reg_test_show(struct device *_dev,
|
||||||
RW_REG_COUNT, time * MSEC_PER_JIFFIE, time);
|
RW_REG_COUNT, time * MSEC_PER_JIFFIE, time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,7 +57,7 @@ Subject: [PATCH 073/174] dwc_otg: fix device attributes and avoid kernel
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays the time required to write the GNPTXFSIZ register many times (the
|
* Displays the time required to write the GNPTXFSIZ register many times (the
|
||||||
@@ -1014,7 +1014,7 @@ static ssize_t wr_reg_test_show(struct d
|
@@ -1014,7 +1014,7 @@ static ssize_t wr_reg_test_show(struct device *_dev,
|
||||||
RW_REG_COUNT, time * MSEC_PER_JIFFIE, time);
|
RW_REG_COUNT, time * MSEC_PER_JIFFIE, time);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,3 +66,6 @@ Subject: [PATCH 073/174] dwc_otg: fix device attributes and avoid kernel
|
||||||
|
|
||||||
#ifdef CONFIG_USB_DWC_OTG_LPM
|
#ifdef CONFIG_USB_DWC_OTG_LPM
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
From a720faa00a378b304c7a24cbbde6d9bc98fb5c70 Mon Sep 17 00:00:00 2001
|
From 164e83a7e4182fb669437b456f173b7dfe0465a0 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 3 Jul 2013 13:55:00 +0100
|
Date: Wed, 3 Jul 2013 13:55:00 +0100
|
||||||
Subject: [PATCH 074/174] hack: fix for incorrect uart fifo size detection
|
Subject: [PATCH 074/196] hack: fix for incorrect uart fifo size detection
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/tty/serial/amba-pl011.c | 2 +-
|
drivers/tty/serial/amba-pl011.c | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
|
||||||
|
index 7a55fe7..a1da63c 100644
|
||||||
--- a/drivers/tty/serial/amba-pl011.c
|
--- a/drivers/tty/serial/amba-pl011.c
|
||||||
+++ b/drivers/tty/serial/amba-pl011.c
|
+++ b/drivers/tty/serial/amba-pl011.c
|
||||||
@@ -84,7 +84,7 @@ struct vendor_data {
|
@@ -84,7 +84,7 @@ struct vendor_data {
|
||||||
|
@ -18,3 +20,6 @@ Subject: [PATCH 074/174] hack: fix for incorrect uart fifo size detection
|
||||||
return rev < 3 ? 16 : 32;
|
return rev < 3 ? 16 : 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
From 9fc9389ab723f75d183813ca8012b89a01a70a1a Mon Sep 17 00:00:00 2001
|
From 581798214a3fc7e7cd983e7b4f1bfa353ec3b9a3 Mon Sep 17 00:00:00 2001
|
||||||
From: Jonathan Bensen <cybertronic@gmail.com>
|
From: Jonathan Bensen <cybertronic@gmail.com>
|
||||||
Date: Mon, 8 Jul 2013 09:49:56 -0700
|
Date: Mon, 8 Jul 2013 09:49:56 -0700
|
||||||
Subject: [PATCH 075/174] Fix for deprecated/undefined create_proc_entry in
|
Subject: [PATCH 075/196] Fix for deprecated/undefined create_proc_entry in
|
||||||
RTL8192cu driver
|
RTL8192cu driver
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c | 13 +++++++++++++
|
drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c | 13 +++++++++++++
|
||||||
1 file changed, 13 insertions(+)
|
1 file changed, 13 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c b/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c
|
||||||
|
index 8feb780..b88a5eb 100644
|
||||||
--- a/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c
|
--- a/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c
|
||||||
+++ b/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c
|
+++ b/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c
|
||||||
@@ -255,6 +255,18 @@ static char rtw_proc_name[IFNAMSIZ];
|
@@ -255,6 +255,18 @@ static char rtw_proc_name[IFNAMSIZ];
|
||||||
|
@ -29,7 +31,7 @@ Subject: [PATCH 075/174] Fix for deprecated/undefined create_proc_entry in
|
||||||
void rtw_proc_init_one(struct net_device *dev)
|
void rtw_proc_init_one(struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct proc_dir_entry *dir_dev = NULL;
|
struct proc_dir_entry *dir_dev = NULL;
|
||||||
@@ -525,6 +537,7 @@ void rtw_proc_remove_one(struct net_devi
|
@@ -525,6 +537,7 @@ void rtw_proc_remove_one(struct net_device *dev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -37,3 +39,6 @@ Subject: [PATCH 075/174] Fix for deprecated/undefined create_proc_entry in
|
||||||
|
|
||||||
uint loadparam( _adapter *padapter, _nic_hdl pnetdev)
|
uint loadparam( _adapter *padapter, _nic_hdl pnetdev)
|
||||||
{
|
{
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From a1cd8994c1f5d01f8932ad5d047677d6a264f711 Mon Sep 17 00:00:00 2001
|
From 702b7652ec63948bb7acc7c86641599b5b69404a Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 10 Jul 2013 23:53:31 +0100
|
Date: Wed, 10 Jul 2013 23:53:31 +0100
|
||||||
Subject: [PATCH 076/174] sdhci-bcm2807: Increase sync_after_dma timeout
|
Subject: [PATCH 076/196] sdhci-bcm2807: Increase sync_after_dma timeout
|
||||||
|
|
||||||
The current timeout is being hit with some cards that complete successfully with a longer timeout.
|
The current timeout is being hit with some cards that complete successfully with a longer timeout.
|
||||||
The timeout is not handled well, and is believed to be a code path that causes corruption.
|
The timeout is not handled well, and is believed to be a code path that causes corruption.
|
||||||
|
@ -10,9 +10,11 @@ The timeout is not handled well, and is believed to be a code path that causes c
|
||||||
drivers/mmc/host/sdhci-bcm2708.c | 2 +-
|
drivers/mmc/host/sdhci-bcm2708.c | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index c2409b9..4770680 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -842,7 +842,7 @@ static void sdhci_bcm2708_dma_complete_i
|
@@ -842,7 +842,7 @@ static void sdhci_bcm2708_dma_complete_irq(struct sdhci_host *host,
|
||||||
We get CRC and DEND errors unless we wait for
|
We get CRC and DEND errors unless we wait for
|
||||||
the SD controller to finish reading/writing to the card. */
|
the SD controller to finish reading/writing to the card. */
|
||||||
u32 state_mask;
|
u32 state_mask;
|
||||||
|
@ -21,3 +23,6 @@ The timeout is not handled well, and is believed to be a code path that causes c
|
||||||
|
|
||||||
DBG("PDMA over - sync card\n");
|
DBG("PDMA over - sync card\n");
|
||||||
if (data->flags & MMC_DATA_READ)
|
if (data->flags & MMC_DATA_READ)
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 9112b4c659edaf09792f1af02fe9e9c4753fb411 Mon Sep 17 00:00:00 2001
|
From 0b4709bfe4dc73b8e2923b7d8a6c29db8a5ce47f Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Mon, 15 Jul 2013 23:55:52 +0100
|
Date: Mon, 15 Jul 2013 23:55:52 +0100
|
||||||
Subject: [PATCH 077/174] dcw_otg: avoid logging function that can cause panics
|
Subject: [PATCH 077/196] dcw_otg: avoid logging function that can cause panics
|
||||||
|
|
||||||
See: https://github.com/raspberrypi/firmware/issues/21
|
See: https://github.com/raspberrypi/firmware/issues/21
|
||||||
Thanks to cleverca22 for fix
|
Thanks to cleverca22 for fix
|
||||||
|
@ -9,9 +9,11 @@ Thanks to cleverca22 for fix
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_attr.c | 2 +-
|
drivers/usb/host/dwc_otg/dwc_otg_attr.c | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_attr.c b/drivers/usb/host/dwc_otg/dwc_otg_attr.c
|
||||||
|
index 9602fda..c6966af 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_attr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_attr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_attr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_attr.c
|
||||||
@@ -920,7 +920,7 @@ static ssize_t spramdump_show(struct dev
|
@@ -920,7 +920,7 @@ static ssize_t spramdump_show(struct device *_dev,
|
||||||
{
|
{
|
||||||
dwc_otg_device_t *otg_dev = dwc_otg_drvdev(_dev);
|
dwc_otg_device_t *otg_dev = dwc_otg_drvdev(_dev);
|
||||||
|
|
||||||
|
@ -20,3 +22,6 @@ Thanks to cleverca22 for fix
|
||||||
|
|
||||||
return sprintf(buf, "SPRAM Dump\n");
|
return sprintf(buf, "SPRAM Dump\n");
|
||||||
}
|
}
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From cb902630ae7ef709c8f40ca3f506cf5052077701 Mon Sep 17 00:00:00 2001
|
From 5608eaff0f301e9bf73998da020644f1673b66e4 Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Sat, 13 Jul 2013 20:41:26 +0100
|
Date: Sat, 13 Jul 2013 20:41:26 +0100
|
||||||
Subject: [PATCH 078/174] dwc_otg: mask correct interrupts after transaction
|
Subject: [PATCH 078/196] dwc_otg: mask correct interrupts after transaction
|
||||||
error recovery
|
error recovery
|
||||||
|
|
||||||
The dwc_otg driver will unmask certain interrupts on a transaction
|
The dwc_otg driver will unmask certain interrupts on a transaction
|
||||||
|
@ -17,9 +17,11 @@ from being generated if the FIQ is enabled.
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 21 +++++++++++++++++++++
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 21 +++++++++++++++++++++
|
||||||
1 file changed, 21 insertions(+)
|
1 file changed, 21 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index e8b4d35..27b673f 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -1851,7 +1851,11 @@ static int32_t handle_hc_nak_intr(dwc_ot
|
@@ -1851,7 +1851,11 @@ static int32_t handle_hc_nak_intr(dwc_otg_hcd_t * hcd,
|
||||||
* transfers in DMA mode for the sole purpose of
|
* transfers in DMA mode for the sole purpose of
|
||||||
* resetting the error count after a transaction error
|
* resetting the error count after a transaction error
|
||||||
* occurs. The core will continue transferring data.
|
* occurs. The core will continue transferring data.
|
||||||
|
@ -31,7 +33,7 @@ from being generated if the FIQ is enabled.
|
||||||
qtd->error_count = 0;
|
qtd->error_count = 0;
|
||||||
goto handle_nak_done;
|
goto handle_nak_done;
|
||||||
}
|
}
|
||||||
@@ -1963,6 +1967,15 @@ static int32_t handle_hc_ack_intr(dwc_ot
|
@@ -1963,6 +1967,15 @@ static int32_t handle_hc_ack_intr(dwc_otg_hcd_t * hcd,
|
||||||
halt_channel(hcd, hc, qtd, DWC_OTG_HC_XFER_ACK);
|
halt_channel(hcd, hc, qtd, DWC_OTG_HC_XFER_ACK);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -47,7 +49,7 @@ from being generated if the FIQ is enabled.
|
||||||
qtd->error_count = 0;
|
qtd->error_count = 0;
|
||||||
|
|
||||||
if (hc->qh->ping_state) {
|
if (hc->qh->ping_state) {
|
||||||
@@ -2328,6 +2341,14 @@ static int32_t handle_hc_datatglerr_intr
|
@@ -2328,6 +2341,14 @@ static int32_t handle_hc_datatglerr_intr(dwc_otg_hcd_t * hcd,
|
||||||
qtd->urb, qtd, DWC_OTG_HC_XFER_XACT_ERR);
|
qtd->urb, qtd, DWC_OTG_HC_XFER_XACT_ERR);
|
||||||
halt_channel(hcd, hc, qtd, DWC_OTG_HC_XFER_XACT_ERR);
|
halt_channel(hcd, hc, qtd, DWC_OTG_HC_XFER_XACT_ERR);
|
||||||
} else if (hc->ep_is_in) {
|
} else if (hc->ep_is_in) {
|
||||||
|
@ -62,3 +64,6 @@ from being generated if the FIQ is enabled.
|
||||||
qtd->error_count = 0;
|
qtd->error_count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 4d44d8447b13ded9c6931583938183c76b1846ed Mon Sep 17 00:00:00 2001
|
From 6a276a4e4878b5b3e92c8975a87eb641d57669c4 Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Sat, 13 Jul 2013 21:48:41 +0100
|
Date: Sat, 13 Jul 2013 21:48:41 +0100
|
||||||
Subject: [PATCH 079/174] dwc_otg: fiq: prevent FIQ thrash and incorrect state
|
Subject: [PATCH 079/196] dwc_otg: fiq: prevent FIQ thrash and incorrect state
|
||||||
passing to IRQ
|
passing to IRQ
|
||||||
|
|
||||||
In the case of a transaction to a device that had previously aborted
|
In the case of a transaction to a device that had previously aborted
|
||||||
|
@ -22,9 +22,11 @@ it was possible to confuse the IRQ handler.
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 21 +++++++++++++++++++++
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 21 +++++++++++++++++++++
|
||||||
1 file changed, 21 insertions(+)
|
1 file changed, 21 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index 27b673f..d655363 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -324,6 +324,27 @@ int fiq_hcintr_handle(int channel, hfnum
|
@@ -324,6 +324,27 @@ int fiq_hcintr_handle(int channel, hfnum_data_t hfnum)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,3 +54,6 @@ it was possible to confuse the IRQ handler.
|
||||||
|
|
||||||
// Clear the interrupt, this will also clear the HAINT bit
|
// Clear the interrupt, this will also clear the HAINT bit
|
||||||
FIQ_WRITE((dwc_regs_base + 0x500 + (channel * 0x20) + 0x8), hcint.d32);
|
FIQ_WRITE((dwc_regs_base + 0x500 + (channel * 0x20) + 0x8), hcint.d32);
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
From f7785b067f07e444934fe0e6c31fff36f5863079 Mon Sep 17 00:00:00 2001
|
From cf9f56af2d067396b32e65cf10b9d2b072d08033 Mon Sep 17 00:00:00 2001
|
||||||
From: Gordon Hollingworth <gordon@holliweb.co.uk>
|
From: Gordon Hollingworth <gordon@holliweb.co.uk>
|
||||||
Date: Mon, 8 Jul 2013 04:12:19 +0100
|
Date: Mon, 8 Jul 2013 04:12:19 +0100
|
||||||
Subject: [PATCH 080/174] Fix function tracing
|
Subject: [PATCH 080/196] Fix function tracing
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 12 ++++++------
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 12 ++++++------
|
||||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index d655363..765451b 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -77,7 +77,7 @@ int queued_port[MAX_EPS_CHANNELS];
|
@@ -77,7 +77,7 @@ int queued_port[MAX_EPS_CHANNELS];
|
||||||
|
@ -18,7 +20,7 @@ Subject: [PATCH 080/174] Fix function tracing
|
||||||
{
|
{
|
||||||
FIQDBG_T dbg_lvl_req = FIQDBG_PORTHUB;
|
FIQDBG_T dbg_lvl_req = FIQDBG_PORTHUB;
|
||||||
va_list args;
|
va_list args;
|
||||||
@@ -101,7 +101,7 @@ void _fiq_print(FIQDBG_T dbg_lvl, char *
|
@@ -101,7 +101,7 @@ void _fiq_print(FIQDBG_T dbg_lvl, char *fmt, ...)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -60,3 +62,6 @@ Subject: [PATCH 080/174] Fix function tracing
|
||||||
{
|
{
|
||||||
|
|
||||||
/* entry takes care to store registers we will be treading on here */
|
/* entry takes care to store registers we will be treading on here */
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,17 @@
|
||||||
From a7ae411621bcf80fcb2f920084183d98adb6213b Mon Sep 17 00:00:00 2001
|
From 2f244c31c0fdb6e02bd58dfbcca018d8e2366291 Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Thu, 18 Jul 2013 16:32:41 +0100
|
Date: Thu, 18 Jul 2013 16:32:41 +0100
|
||||||
Subject: [PATCH 081/174] dwc_otg: whitespace cleanup in dwc_otg_urb_enqueue
|
Subject: [PATCH 081/196] dwc_otg: whitespace cleanup in dwc_otg_urb_enqueue
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 59 ++++++++++++++--------------
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 59 ++++++++++++++--------------
|
||||||
1 file changed, 29 insertions(+), 30 deletions(-)
|
1 file changed, 29 insertions(+), 30 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
|
index 0d6f5f4..0f72bd5 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
@@ -733,10 +733,10 @@ static int dwc_otg_urb_enqueue(struct us
|
@@ -733,10 +733,10 @@ static int dwc_otg_urb_enqueue(struct usb_hcd *hcd,
|
||||||
if(dwc_otg_urb == NULL)
|
if(dwc_otg_urb == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
@ -24,7 +26,7 @@ Subject: [PATCH 081/174] dwc_otg: whitespace cleanup in dwc_otg_urb_enqueue
|
||||||
dwc_otg_hcd_urb_set_pipeinfo(dwc_otg_urb, usb_pipedevice(urb->pipe),
|
dwc_otg_hcd_urb_set_pipeinfo(dwc_otg_urb, usb_pipedevice(urb->pipe),
|
||||||
usb_pipeendpoint(urb->pipe), ep_type,
|
usb_pipeendpoint(urb->pipe), ep_type,
|
||||||
usb_pipein(urb->pipe),
|
usb_pipein(urb->pipe),
|
||||||
@@ -776,36 +776,35 @@ static int dwc_otg_urb_enqueue(struct us
|
@@ -776,36 +776,35 @@ static int dwc_otg_urb_enqueue(struct usb_hcd *hcd,
|
||||||
}
|
}
|
||||||
|
|
||||||
#if USB_URB_EP_LINKING
|
#if USB_URB_EP_LINKING
|
||||||
|
@ -86,3 +88,6 @@ Subject: [PATCH 081/174] dwc_otg: whitespace cleanup in dwc_otg_urb_enqueue
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From dc570a70493daf0ec548ff57f1a1a9fb31caccb7 Mon Sep 17 00:00:00 2001
|
From 2e2f1ef719a2fa55fd1d95d9536fa8cca94459a4 Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Thu, 18 Jul 2013 17:07:26 +0100
|
Date: Thu, 18 Jul 2013 17:07:26 +0100
|
||||||
Subject: [PATCH 082/174] dwc_otg: prevent OOPSes during device disconnects
|
Subject: [PATCH 082/196] dwc_otg: prevent OOPSes during device disconnects
|
||||||
|
|
||||||
The dwc_otg_urb_enqueue function is thread-unsafe. In particular the
|
The dwc_otg_urb_enqueue function is thread-unsafe. In particular the
|
||||||
access of urb->hcpriv, usb_hcd_link_urb_to_ep, dwc_otg_urb->qtd and
|
access of urb->hcpriv, usb_hcd_link_urb_to_ep, dwc_otg_urb->qtd and
|
||||||
|
@ -20,9 +20,11 @@ critical section.
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c | 6 +-----
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c | 6 +-----
|
||||||
3 files changed, 6 insertions(+), 17 deletions(-)
|
3 files changed, 6 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
index af9108c..a1970dc 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -464,7 +464,6 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_
|
@@ -464,7 +464,6 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_t * hcd,
|
||||||
dwc_otg_hcd_urb_t * dwc_otg_urb, void **ep_handle,
|
dwc_otg_hcd_urb_t * dwc_otg_urb, void **ep_handle,
|
||||||
int atomic_alloc)
|
int atomic_alloc)
|
||||||
{
|
{
|
||||||
|
@ -30,7 +32,7 @@ critical section.
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
uint8_t needs_scheduling = 0;
|
uint8_t needs_scheduling = 0;
|
||||||
dwc_otg_transaction_type_e tr_type;
|
dwc_otg_transaction_type_e tr_type;
|
||||||
@@ -515,12 +514,10 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_
|
@@ -515,12 +514,10 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_t * hcd,
|
||||||
}
|
}
|
||||||
|
|
||||||
if(needs_scheduling) {
|
if(needs_scheduling) {
|
||||||
|
@ -43,9 +45,11 @@ critical section.
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
|
index 0f72bd5..ad03ff1 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
@@ -679,9 +679,7 @@ static int dwc_otg_urb_enqueue(struct us
|
@@ -679,9 +679,7 @@ static int dwc_otg_urb_enqueue(struct usb_hcd *hcd,
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28)
|
||||||
struct usb_host_endpoint *ep = urb->ep;
|
struct usb_host_endpoint *ep = urb->ep;
|
||||||
#endif
|
#endif
|
||||||
|
@ -55,7 +59,7 @@ critical section.
|
||||||
void **ref_ep_hcpriv = &ep->hcpriv;
|
void **ref_ep_hcpriv = &ep->hcpriv;
|
||||||
dwc_otg_hcd_t *dwc_otg_hcd = hcd_to_dwc_otg_hcd(hcd);
|
dwc_otg_hcd_t *dwc_otg_hcd = hcd_to_dwc_otg_hcd(hcd);
|
||||||
dwc_otg_hcd_urb_t *dwc_otg_urb;
|
dwc_otg_hcd_urb_t *dwc_otg_urb;
|
||||||
@@ -733,7 +731,6 @@ static int dwc_otg_urb_enqueue(struct us
|
@@ -733,7 +731,6 @@ static int dwc_otg_urb_enqueue(struct usb_hcd *hcd,
|
||||||
if(dwc_otg_urb == NULL)
|
if(dwc_otg_urb == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
@ -63,7 +67,7 @@ critical section.
|
||||||
if (!dwc_otg_urb && urb->number_of_packets)
|
if (!dwc_otg_urb && urb->number_of_packets)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
@@ -775,10 +772,10 @@ static int dwc_otg_urb_enqueue(struct us
|
@@ -775,10 +772,10 @@ static int dwc_otg_urb_enqueue(struct usb_hcd *hcd,
|
||||||
iso_frame_desc[i].length);
|
iso_frame_desc[i].length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,7 +80,7 @@ critical section.
|
||||||
if (0 == retval)
|
if (0 == retval)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
@@ -794,17 +791,16 @@ static int dwc_otg_urb_enqueue(struct us
|
@@ -794,17 +791,16 @@ static int dwc_otg_urb_enqueue(struct usb_hcd *hcd,
|
||||||
urb);
|
urb);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -97,9 +101,11 @@ critical section.
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
|
index 8125307..5aed416 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_queue.c
|
||||||
@@ -919,6 +919,7 @@ void dwc_otg_hcd_qtd_init(dwc_otg_qtd_t
|
@@ -919,6 +919,7 @@ void dwc_otg_hcd_qtd_init(dwc_otg_qtd_t * qtd, dwc_otg_hcd_urb_t * urb)
|
||||||
* QH to place the QTD into. If it does not find a QH, then it will create a
|
* QH to place the QTD into. If it does not find a QH, then it will create a
|
||||||
* new QH. If the QH to which the QTD is added is not currently scheduled, it
|
* new QH. If the QH to which the QTD is added is not currently scheduled, it
|
||||||
* is placed into the proper schedule based on its EP type.
|
* is placed into the proper schedule based on its EP type.
|
||||||
|
@ -107,7 +113,7 @@ critical section.
|
||||||
*
|
*
|
||||||
* @param[in] qtd The QTD to add
|
* @param[in] qtd The QTD to add
|
||||||
* @param[in] hcd The DWC HCD structure
|
* @param[in] hcd The DWC HCD structure
|
||||||
@@ -931,8 +932,6 @@ int dwc_otg_hcd_qtd_add(dwc_otg_qtd_t *
|
@@ -931,8 +932,6 @@ int dwc_otg_hcd_qtd_add(dwc_otg_qtd_t * qtd,
|
||||||
dwc_otg_hcd_t * hcd, dwc_otg_qh_t ** qh, int atomic_alloc)
|
dwc_otg_hcd_t * hcd, dwc_otg_qh_t ** qh, int atomic_alloc)
|
||||||
{
|
{
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
|
@ -116,7 +122,7 @@ critical section.
|
||||||
dwc_otg_hcd_urb_t *urb = qtd->urb;
|
dwc_otg_hcd_urb_t *urb = qtd->urb;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -946,15 +945,12 @@ int dwc_otg_hcd_qtd_add(dwc_otg_qtd_t *
|
@@ -946,15 +945,12 @@ int dwc_otg_hcd_qtd_add(dwc_otg_qtd_t * qtd,
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -132,3 +138,6 @@ critical section.
|
||||||
done:
|
done:
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 3c3c5a15a17649092ecf4c128478b267676c3353 Mon Sep 17 00:00:00 2001
|
From 14d8b16453f653003fd7d124f221082c53d56cf2 Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Mon, 22 Jul 2013 14:08:26 +0100
|
Date: Mon, 22 Jul 2013 14:08:26 +0100
|
||||||
Subject: [PATCH 083/174] dwc_otg: prevent BUG() in TT allocation if hub
|
Subject: [PATCH 083/196] dwc_otg: prevent BUG() in TT allocation if hub
|
||||||
address is > 16
|
address is > 16
|
||||||
|
|
||||||
A fixed-size array is used to track TT allocation. This was
|
A fixed-size array is used to track TT allocation. This was
|
||||||
|
@ -20,9 +20,11 @@ for debug only for tracking which frame an allocate happened in.
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 3 ++-
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 3 ++-
|
||||||
3 files changed, 12 insertions(+), 4 deletions(-)
|
3 files changed, 12 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
index a1970dc..3c619b4 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -983,7 +983,9 @@ int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd
|
@@ -983,7 +983,9 @@ int dwc_otg_hcd_init(dwc_otg_hcd_t * hcd, dwc_otg_core_if_t * core_if)
|
||||||
hcd->periodic_qh_count = 0;
|
hcd->periodic_qh_count = 0;
|
||||||
|
|
||||||
DWC_MEMSET(hcd->hub_port, 0, sizeof(hcd->hub_port));
|
DWC_MEMSET(hcd->hub_port, 0, sizeof(hcd->hub_port));
|
||||||
|
@ -32,7 +34,7 @@ for debug only for tracking which frame an allocate happened in.
|
||||||
|
|
||||||
out:
|
out:
|
||||||
return retval;
|
return retval;
|
||||||
@@ -1317,7 +1319,9 @@ int dwc_otg_hcd_allocate_port(dwc_otg_hc
|
@@ -1317,7 +1319,9 @@ int dwc_otg_hcd_allocate_port(dwc_otg_hcd_t * hcd, dwc_otg_qh_t *qh)
|
||||||
qh->skip_count = 0;
|
qh->skip_count = 0;
|
||||||
hcd->hub_port[hub_addr] |= 1 << port_addr;
|
hcd->hub_port[hub_addr] |= 1 << port_addr;
|
||||||
fiq_print(FIQDBG_PORTHUB, "H%dP%d:A %d", hub_addr, port_addr, DWC_CIRCLEQ_FIRST(&qh->qtd_list)->urb->pipe_info.ep_num);
|
fiq_print(FIQDBG_PORTHUB, "H%dP%d:A %d", hub_addr, port_addr, DWC_CIRCLEQ_FIRST(&qh->qtd_list)->urb->pipe_info.ep_num);
|
||||||
|
@ -42,7 +44,7 @@ for debug only for tracking which frame an allocate happened in.
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1331,8 +1335,9 @@ void dwc_otg_hcd_release_port(dwc_otg_hc
|
@@ -1331,8 +1335,9 @@ void dwc_otg_hcd_release_port(dwc_otg_hcd_t * hcd, dwc_otg_qh_t *qh)
|
||||||
hcd->fops->hub_info(hcd, DWC_CIRCLEQ_FIRST(&qh->qtd_list)->urb->priv, &hub_addr, &port_addr);
|
hcd->fops->hub_info(hcd, DWC_CIRCLEQ_FIRST(&qh->qtd_list)->urb->priv, &hub_addr, &port_addr);
|
||||||
|
|
||||||
hcd->hub_port[hub_addr] &= ~(1 << port_addr);
|
hcd->hub_port[hub_addr] &= ~(1 << port_addr);
|
||||||
|
@ -53,6 +55,8 @@ for debug only for tracking which frame an allocate happened in.
|
||||||
fiq_print(FIQDBG_PORTHUB, "H%dP%d:RO%d", hub_addr, port_addr, DWC_CIRCLEQ_FIRST(&qh->qtd_list)->urb->pipe_info.ep_num);
|
fiq_print(FIQDBG_PORTHUB, "H%dP%d:RO%d", hub_addr, port_addr, DWC_CIRCLEQ_FIRST(&qh->qtd_list)->urb->pipe_info.ep_num);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
|
index d3d6e997..80a3af2 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.h
|
||||||
@@ -577,8 +577,10 @@ struct dwc_otg_hcd {
|
@@ -577,8 +577,10 @@ struct dwc_otg_hcd {
|
||||||
|
@ -68,6 +72,8 @@ for debug only for tracking which frame an allocate happened in.
|
||||||
|
|
||||||
/** Frame List DMA address */
|
/** Frame List DMA address */
|
||||||
dma_addr_t frame_list_dma;
|
dma_addr_t frame_list_dma;
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index 765451b..dbff763 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -1419,8 +1419,9 @@ cleanup:
|
@@ -1419,8 +1419,9 @@ cleanup:
|
||||||
|
@ -81,3 +87,6 @@ for debug only for tracking which frame an allocate happened in.
|
||||||
fiq_print(FIQDBG_PORTHUB, "H%dP%d:RR%d", hc->hub_addr, hc->port_addr, endp);
|
fiq_print(FIQDBG_PORTHUB, "H%dP%d:RR%d", hc->hub_addr, hc->port_addr, endp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From e2c9f557c5bff8c839704d0627d5dd108a0e14f2 Mon Sep 17 00:00:00 2001
|
From 6ecef9d4e6add518889432cc642a50e47ee3536b Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Tue, 23 Jul 2013 14:15:32 +0100
|
Date: Tue, 23 Jul 2013 14:15:32 +0100
|
||||||
Subject: [PATCH 084/174] dwc_otg: make channel halts with unknown state less
|
Subject: [PATCH 084/196] dwc_otg: make channel halts with unknown state less
|
||||||
damaging
|
damaging
|
||||||
|
|
||||||
If the IRQ received a channel halt interrupt through the FIQ
|
If the IRQ received a channel halt interrupt through the FIQ
|
||||||
|
@ -13,9 +13,11 @@ Add catchall handling to treat as a transaction error and retry.
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 12 ++++++++++++
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 12 ++++++++++++
|
||||||
1 file changed, 12 insertions(+)
|
1 file changed, 12 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index dbff763..488defb 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -2578,12 +2578,24 @@ static void handle_hc_chhltd_intr_dma(dw
|
@@ -2578,12 +2578,24 @@ static void handle_hc_chhltd_intr_dma(dwc_otg_hcd_t * hcd,
|
||||||
DWC_READ_REG32(&hcd->
|
DWC_READ_REG32(&hcd->
|
||||||
core_if->core_global_regs->
|
core_if->core_global_regs->
|
||||||
gintsts));
|
gintsts));
|
||||||
|
@ -40,3 +42,6 @@ Add catchall handling to treat as a transaction error and retry.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 2b66f2f4f07ed87db0e241489d4e93881fe50a85 Mon Sep 17 00:00:00 2001
|
From fa6cd2944967a33088bc4cb66d1dc0323665b7c6 Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Tue, 30 Jul 2013 09:58:48 +0100
|
Date: Tue, 30 Jul 2013 09:58:48 +0100
|
||||||
Subject: [PATCH 085/174] dwc_otg: fiq_split: use TTs with more granularity
|
Subject: [PATCH 085/196] dwc_otg: fiq_split: use TTs with more granularity
|
||||||
|
|
||||||
This fixes certain issues with split transaction scheduling.
|
This fixes certain issues with split transaction scheduling.
|
||||||
|
|
||||||
|
@ -18,9 +18,11 @@ This commit will mainly affect USB audio playback.
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 20 ++++++++++++++++----
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 20 ++++++++++++++++----
|
||||||
2 files changed, 29 insertions(+), 17 deletions(-)
|
2 files changed, 29 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
index 3c619b4..c42172f 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -1356,6 +1356,7 @@ dwc_otg_transaction_type_e dwc_otg_hcd_s
|
@@ -1356,6 +1356,7 @@ dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t * hcd)
|
||||||
{
|
{
|
||||||
dwc_list_link_t *qh_ptr;
|
dwc_list_link_t *qh_ptr;
|
||||||
dwc_otg_qh_t *qh;
|
dwc_otg_qh_t *qh;
|
||||||
|
@ -28,7 +30,7 @@ This commit will mainly affect USB audio playback.
|
||||||
int num_channels;
|
int num_channels;
|
||||||
dwc_irqflags_t flags;
|
dwc_irqflags_t flags;
|
||||||
dwc_spinlock_t *channel_lock = hcd->channel_lock;
|
dwc_spinlock_t *channel_lock = hcd->channel_lock;
|
||||||
@@ -1379,11 +1380,18 @@ dwc_otg_transaction_type_e dwc_otg_hcd_s
|
@@ -1379,11 +1380,18 @@ dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t * hcd)
|
||||||
|
|
||||||
qh = DWC_LIST_ENTRY(qh_ptr, dwc_otg_qh_t, qh_list_entry);
|
qh = DWC_LIST_ENTRY(qh_ptr, dwc_otg_qh_t, qh_list_entry);
|
||||||
|
|
||||||
|
@ -52,7 +54,7 @@ This commit will mainly affect USB audio playback.
|
||||||
}
|
}
|
||||||
|
|
||||||
if (microframe_schedule) {
|
if (microframe_schedule) {
|
||||||
@@ -1451,18 +1459,10 @@ dwc_otg_transaction_type_e dwc_otg_hcd_s
|
@@ -1451,18 +1459,10 @@ dwc_otg_transaction_type_e dwc_otg_hcd_select_transactions(dwc_otg_hcd_t * hcd)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,9 +73,11 @@ This commit will mainly affect USB audio playback.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
hcd->available_host_channels--;
|
hcd->available_host_channels--;
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index 488defb..7d521d9 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -1328,10 +1328,20 @@ static void release_channel(dwc_otg_hcd_
|
@@ -1328,10 +1328,20 @@ static void release_channel(dwc_otg_hcd_t * hcd,
|
||||||
#ifdef FIQ_DEBUG
|
#ifdef FIQ_DEBUG
|
||||||
int endp = qtd->urb ? qtd->urb->pipe_info.ep_num : 0;
|
int endp = qtd->urb ? qtd->urb->pipe_info.ep_num : 0;
|
||||||
#endif
|
#endif
|
||||||
|
@ -113,3 +117,6 @@ This commit will mainly affect USB audio playback.
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Try to queue more transfers now that there's a free channel. */
|
/* Try to queue more transfers now that there's a free channel. */
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 445255441aa03cca3d1318d1e7ff58872c91c645 Mon Sep 17 00:00:00 2001
|
From ce5fb2face9a3974693b0f08ce226d7f0406541a Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Fri, 2 Aug 2013 10:04:18 +0100
|
Date: Fri, 2 Aug 2013 10:04:18 +0100
|
||||||
Subject: [PATCH 086/174] dwc_otg: fix potential sleep while atomic during urb
|
Subject: [PATCH 086/196] dwc_otg: fix potential sleep while atomic during urb
|
||||||
enqueue
|
enqueue
|
||||||
|
|
||||||
Fixes a regression introduced with eb1b482a. Kmalloc called from
|
Fixes a regression introduced with eb1b482a. Kmalloc called from
|
||||||
|
@ -12,9 +12,11 @@ critical section.
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 3 +--
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 3 +--
|
||||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
|
index ad03ff1..80690f9 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
@@ -781,8 +781,7 @@ static int dwc_otg_urb_enqueue(struct us
|
@@ -781,8 +781,7 @@ static int dwc_otg_urb_enqueue(struct usb_hcd *hcd,
|
||||||
{
|
{
|
||||||
retval = dwc_otg_hcd_urb_enqueue(dwc_otg_hcd, dwc_otg_urb,
|
retval = dwc_otg_hcd_urb_enqueue(dwc_otg_hcd, dwc_otg_urb,
|
||||||
/*(dwc_otg_qh_t **)*/
|
/*(dwc_otg_qh_t **)*/
|
||||||
|
@ -24,3 +26,6 @@ critical section.
|
||||||
if (0 == retval) {
|
if (0 == retval) {
|
||||||
if (alloc_bandwidth) {
|
if (alloc_bandwidth) {
|
||||||
allocate_bus_bandwidth(hcd,
|
allocate_bus_bandwidth(hcd,
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 635578168de091d59e7d1a837286cff86fb9badb Mon Sep 17 00:00:00 2001
|
From 53e5848c799c1fa6a7f6c3464d2bb2f5c85f555f Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Mon, 5 Aug 2013 11:42:12 +0100
|
Date: Mon, 5 Aug 2013 11:42:12 +0100
|
||||||
Subject: [PATCH 087/174] dwc_otg: make fiq_split_enable imply fiq_fix_enable
|
Subject: [PATCH 087/196] dwc_otg: make fiq_split_enable imply fiq_fix_enable
|
||||||
|
|
||||||
Failing to set up the FIQ correctly would result in
|
Failing to set up the FIQ correctly would result in
|
||||||
"IRQ 32: nobody cared" errors in dmesg.
|
"IRQ 32: nobody cared" errors in dmesg.
|
||||||
|
@ -9,9 +9,11 @@ Failing to set up the FIQ correctly would result in
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_driver.c | 6 ++++++
|
drivers/usb/host/dwc_otg/dwc_otg_driver.c | 6 ++++++
|
||||||
1 file changed, 6 insertions(+)
|
1 file changed, 6 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_driver.c b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
|
index 6c89a69..4735f51 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_driver.c
|
||||||
@@ -1070,6 +1070,12 @@ static int __init dwc_otg_driver_init(vo
|
@@ -1070,6 +1070,12 @@ static int __init dwc_otg_driver_init(void)
|
||||||
int retval = 0;
|
int retval = 0;
|
||||||
int error;
|
int error;
|
||||||
struct device_driver *drv;
|
struct device_driver *drv;
|
||||||
|
@ -24,3 +26,6 @@ Failing to set up the FIQ correctly would result in
|
||||||
printk(KERN_INFO "%s: version %s (%s bus)\n", dwc_driver_name,
|
printk(KERN_INFO "%s: version %s (%s bus)\n", dwc_driver_name,
|
||||||
DWC_DRIVER_VERSION,
|
DWC_DRIVER_VERSION,
|
||||||
#ifdef LM_INTERFACE
|
#ifdef LM_INTERFACE
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From afde583fbb644cff07984f2b47f75c0410d72205 Mon Sep 17 00:00:00 2001
|
From 53e5476701371e6f8b85cdeeb6099cdaea3872ce Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Mon, 5 Aug 2013 11:47:12 +0100
|
Date: Mon, 5 Aug 2013 11:47:12 +0100
|
||||||
Subject: [PATCH 088/174] dwc_otg: prevent crashes on host port disconnects
|
Subject: [PATCH 088/196] dwc_otg: prevent crashes on host port disconnects
|
||||||
|
|
||||||
Fix several issues resulting in crashes or inconsistent state
|
Fix several issues resulting in crashes or inconsistent state
|
||||||
if a Model A root port was disconnected.
|
if a Model A root port was disconnected.
|
||||||
|
@ -25,9 +25,11 @@ if a Model A root port was disconnected.
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 3 ++
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 3 ++
|
||||||
3 files changed, 48 insertions(+), 6 deletions(-)
|
3 files changed, 48 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
index c42172f..be1d25b 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -59,6 +59,11 @@ static int last_sel_trans_num_avail_hc_a
|
@@ -59,6 +59,11 @@ static int last_sel_trans_num_avail_hc_at_end = 0;
|
||||||
|
|
||||||
extern int g_next_sched_frame, g_np_count, g_np_sent;
|
extern int g_next_sched_frame, g_np_count, g_np_sent;
|
||||||
|
|
||||||
|
@ -39,7 +41,7 @@ if a Model A root port was disconnected.
|
||||||
dwc_otg_hcd_t *dwc_otg_hcd_alloc_hcd(void)
|
dwc_otg_hcd_t *dwc_otg_hcd_alloc_hcd(void)
|
||||||
{
|
{
|
||||||
return DWC_ALLOC(sizeof(dwc_otg_hcd_t));
|
return DWC_ALLOC(sizeof(dwc_otg_hcd_t));
|
||||||
@@ -168,31 +173,43 @@ static void del_timers(dwc_otg_hcd_t * h
|
@@ -168,31 +173,43 @@ static void del_timers(dwc_otg_hcd_t * hcd)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Processes all the URBs in a single list of QHs. Completes them with
|
* Processes all the URBs in a single list of QHs. Completes them with
|
||||||
|
@ -88,7 +90,7 @@ if a Model A root port was disconnected.
|
||||||
* and periodic schedules. The QTD associated with each URB is removed from
|
* and periodic schedules. The QTD associated with each URB is removed from
|
||||||
* the schedule and freed. This function may be called when a disconnect is
|
* the schedule and freed. This function may be called when a disconnect is
|
||||||
* detected or when the HCD is being stopped.
|
* detected or when the HCD is being stopped.
|
||||||
@@ -278,7 +295,8 @@ static int32_t dwc_otg_hcd_disconnect_cb
|
@@ -278,7 +295,8 @@ static int32_t dwc_otg_hcd_disconnect_cb(void *p)
|
||||||
*/
|
*/
|
||||||
dwc_otg_hcd->flags.b.port_connect_status_change = 1;
|
dwc_otg_hcd->flags.b.port_connect_status_change = 1;
|
||||||
dwc_otg_hcd->flags.b.port_connect_status = 0;
|
dwc_otg_hcd->flags.b.port_connect_status = 0;
|
||||||
|
@ -98,7 +100,7 @@ if a Model A root port was disconnected.
|
||||||
/*
|
/*
|
||||||
* Shutdown any transfers in process by clearing the Tx FIFO Empty
|
* Shutdown any transfers in process by clearing the Tx FIFO Empty
|
||||||
* interrupt mask and status bits and disabling subsequent host
|
* interrupt mask and status bits and disabling subsequent host
|
||||||
@@ -374,8 +392,22 @@ static int32_t dwc_otg_hcd_disconnect_cb
|
@@ -374,8 +392,22 @@ static int32_t dwc_otg_hcd_disconnect_cb(void *p)
|
||||||
channel->qh = NULL;
|
channel->qh = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -121,9 +123,11 @@ if a Model A root port was disconnected.
|
||||||
if (dwc_otg_hcd->fops->disconnect) {
|
if (dwc_otg_hcd->fops->disconnect) {
|
||||||
dwc_otg_hcd->fops->disconnect(dwc_otg_hcd);
|
dwc_otg_hcd->fops->disconnect(dwc_otg_hcd);
|
||||||
}
|
}
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index 7d521d9..19abea0 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -2660,6 +2660,13 @@ int32_t dwc_otg_hcd_handle_hc_n_intr(dwc
|
@@ -2660,6 +2660,13 @@ int32_t dwc_otg_hcd_handle_hc_n_intr(dwc_otg_hcd_t * dwc_otg_hcd, uint32_t num)
|
||||||
|
|
||||||
hc = dwc_otg_hcd->hc_ptr_array[num];
|
hc = dwc_otg_hcd->hc_ptr_array[num];
|
||||||
hc_regs = dwc_otg_hcd->core_if->host_if->hc_regs[num];
|
hc_regs = dwc_otg_hcd->core_if->host_if->hc_regs[num];
|
||||||
|
@ -137,9 +141,11 @@ if a Model A root port was disconnected.
|
||||||
qtd = DWC_CIRCLEQ_FIRST(&hc->qh->qtd_list);
|
qtd = DWC_CIRCLEQ_FIRST(&hc->qh->qtd_list);
|
||||||
|
|
||||||
hcint.d32 = DWC_READ_REG32(&hc_regs->hcint);
|
hcint.d32 = DWC_READ_REG32(&hc_regs->hcint);
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
|
index 80690f9..0d49b50 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
@@ -309,6 +309,9 @@ static int _complete(dwc_otg_hcd_t * hcd
|
@@ -309,6 +309,9 @@ static int _complete(dwc_otg_hcd_t * hcd, void *urb_handle,
|
||||||
case -DWC_E_OVERFLOW:
|
case -DWC_E_OVERFLOW:
|
||||||
status = -EOVERFLOW;
|
status = -EOVERFLOW;
|
||||||
break;
|
break;
|
||||||
|
@ -149,3 +155,6 @@ if a Model A root port was disconnected.
|
||||||
default:
|
default:
|
||||||
if (status) {
|
if (status) {
|
||||||
DWC_PRINTF("Uknown urb status %d\n", status);
|
DWC_PRINTF("Uknown urb status %d\n", status);
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 42ed35f8f9c76ff56afdda9b0d3add958936bea6 Mon Sep 17 00:00:00 2001
|
From 53d7fd1afe9f150cbb97e6fe513aa2be32f30e1a Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Mon, 5 Aug 2013 13:17:58 +0100
|
Date: Mon, 5 Aug 2013 13:17:58 +0100
|
||||||
Subject: [PATCH 089/174] dwc_otg: prevent leaking URBs during enqueue
|
Subject: [PATCH 089/196] dwc_otg: prevent leaking URBs during enqueue
|
||||||
|
|
||||||
A dwc_otg_urb would get leaked if the HCD enqueue function
|
A dwc_otg_urb would get leaked if the HCD enqueue function
|
||||||
failed for any reason. Free the URB at the appropriate points.
|
failed for any reason. Free the URB at the appropriate points.
|
||||||
|
@ -9,9 +9,11 @@ failed for any reason. Free the URB at the appropriate points.
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 8 ++++++++
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 8 ++++++++
|
||||||
1 file changed, 8 insertions(+)
|
1 file changed, 8 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
|
index 0d49b50..d3949da 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
|
||||||
@@ -797,11 +797,19 @@ static int dwc_otg_urb_enqueue(struct us
|
@@ -797,11 +797,19 @@ static int dwc_otg_urb_enqueue(struct usb_hcd *hcd,
|
||||||
#if USB_URB_EP_LINKING
|
#if USB_URB_EP_LINKING
|
||||||
usb_hcd_unlink_urb_from_ep(hcd, urb);
|
usb_hcd_unlink_urb_from_ep(hcd, urb);
|
||||||
#endif
|
#endif
|
||||||
|
@ -31,3 +33,6 @@ failed for any reason. Free the URB at the appropriate points.
|
||||||
DWC_SPINUNLOCK_IRQRESTORE(dwc_otg_hcd->lock, irqflags);
|
DWC_SPINUNLOCK_IRQRESTORE(dwc_otg_hcd->lock, irqflags);
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 3c174c25ed6ef1108d0a0f8c106c074225d7194b Mon Sep 17 00:00:00 2001
|
From cfd79481c07339df7d30fe15011dbfbf994c3503 Mon Sep 17 00:00:00 2001
|
||||||
From: Fabio Estevam <festevam@gmail.com>
|
From: Fabio Estevam <festevam@gmail.com>
|
||||||
Date: Fri, 16 Aug 2013 12:55:56 +0100
|
Date: Fri, 16 Aug 2013 12:55:56 +0100
|
||||||
Subject: [PATCH 091/174] ARM: 7819/1: fiq: Cast the first argument of
|
Subject: [PATCH 091/196] ARM: 7819/1: fiq: Cast the first argument of
|
||||||
flush_icache_range()
|
flush_icache_range()
|
||||||
|
|
||||||
Commit 2ba85e7af4 (ARM: Fix FIQ code on VIVT CPUs) causes the following build warning:
|
Commit 2ba85e7af4 (ARM: Fix FIQ code on VIVT CPUs) causes the following build warning:
|
||||||
|
@ -16,9 +16,11 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||||
arch/arm/kernel/fiq.c | 3 ++-
|
arch/arm/kernel/fiq.c | 3 ++-
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/arch/arm/kernel/fiq.c b/arch/arm/kernel/fiq.c
|
||||||
|
index 9ac7935..aac11f8 100644
|
||||||
--- a/arch/arm/kernel/fiq.c
|
--- a/arch/arm/kernel/fiq.c
|
||||||
+++ b/arch/arm/kernel/fiq.c
|
+++ b/arch/arm/kernel/fiq.c
|
||||||
@@ -89,7 +89,8 @@ void set_fiq_handler(void *start, unsign
|
@@ -89,7 +89,8 @@ void set_fiq_handler(void *start, unsigned int length)
|
||||||
|
|
||||||
memcpy(base + offset, start, length);
|
memcpy(base + offset, start, length);
|
||||||
if (!cache_is_vipt_nonaliasing())
|
if (!cache_is_vipt_nonaliasing())
|
||||||
|
@ -28,3 +30,6 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||||
flush_icache_range(0xffff0000 + offset, 0xffff0000 + offset + length);
|
flush_icache_range(0xffff0000 + offset, 0xffff0000 + offset + length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From b735e5ba3039bbd89651b881705a6cb8d62882d6 Mon Sep 17 00:00:00 2001
|
From 813811ee8017fcb305e4296efa12fe8009d43278 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Sat, 7 Sep 2013 19:07:33 +0100
|
Date: Sat, 7 Sep 2013 19:07:33 +0100
|
||||||
Subject: [PATCH 092/174] Support for cheap Ralink 3070 WiFi plug
|
Subject: [PATCH 092/196] Support for cheap Ralink 3070 WiFi plug
|
||||||
|
|
||||||
See: https://github.com/raspberrypi/linux/pull/321
|
See: https://github.com/raspberrypi/linux/pull/321
|
||||||
---
|
---
|
||||||
|
@ -9,6 +9,8 @@ See: https://github.com/raspberrypi/linux/pull/321
|
||||||
drivers/net/wireless/rt2x00/rt2800lib.c | 6 ++++++
|
drivers/net/wireless/rt2x00/rt2800lib.c | 6 ++++++
|
||||||
2 files changed, 7 insertions(+)
|
2 files changed, 7 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h
|
||||||
|
index a7630d5..cbbcd35 100644
|
||||||
--- a/drivers/net/wireless/rt2x00/rt2800.h
|
--- a/drivers/net/wireless/rt2x00/rt2800.h
|
||||||
+++ b/drivers/net/wireless/rt2x00/rt2800.h
|
+++ b/drivers/net/wireless/rt2x00/rt2800.h
|
||||||
@@ -70,6 +70,7 @@
|
@@ -70,6 +70,7 @@
|
||||||
|
@ -19,9 +21,11 @@ See: https://github.com/raspberrypi/linux/pull/321
|
||||||
#define RF3290 0x3290
|
#define RF3290 0x3290
|
||||||
#define RF5360 0x5360
|
#define RF5360 0x5360
|
||||||
#define RF5370 0x5370
|
#define RF5370 0x5370
|
||||||
|
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
|
||||||
|
index 12652d2..c5df041 100644
|
||||||
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
|
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
|
||||||
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
|
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
|
||||||
@@ -2599,6 +2599,7 @@ static void rt2800_config_channel(struct
|
@@ -2599,6 +2599,7 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
|
||||||
break;
|
break;
|
||||||
case RF5360:
|
case RF5360:
|
||||||
case RF5370:
|
case RF5370:
|
||||||
|
@ -29,7 +33,7 @@ See: https://github.com/raspberrypi/linux/pull/321
|
||||||
case RF5372:
|
case RF5372:
|
||||||
case RF5390:
|
case RF5390:
|
||||||
case RF5392:
|
case RF5392:
|
||||||
@@ -2615,6 +2616,7 @@ static void rt2800_config_channel(struct
|
@@ -2615,6 +2616,7 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
|
||||||
rt2x00_rf(rt2x00dev, RF3322) ||
|
rt2x00_rf(rt2x00dev, RF3322) ||
|
||||||
rt2x00_rf(rt2x00dev, RF5360) ||
|
rt2x00_rf(rt2x00dev, RF5360) ||
|
||||||
rt2x00_rf(rt2x00dev, RF5370) ||
|
rt2x00_rf(rt2x00dev, RF5370) ||
|
||||||
|
@ -37,7 +41,7 @@ See: https://github.com/raspberrypi/linux/pull/321
|
||||||
rt2x00_rf(rt2x00dev, RF5372) ||
|
rt2x00_rf(rt2x00dev, RF5372) ||
|
||||||
rt2x00_rf(rt2x00dev, RF5390) ||
|
rt2x00_rf(rt2x00dev, RF5390) ||
|
||||||
rt2x00_rf(rt2x00dev, RF5392)) {
|
rt2x00_rf(rt2x00dev, RF5392)) {
|
||||||
@@ -3206,6 +3208,7 @@ void rt2800_vco_calibration(struct rt2x0
|
@@ -3206,6 +3208,7 @@ void rt2800_vco_calibration(struct rt2x00_dev *rt2x00dev)
|
||||||
case RF3290:
|
case RF3290:
|
||||||
case RF5360:
|
case RF5360:
|
||||||
case RF5370:
|
case RF5370:
|
||||||
|
@ -45,7 +49,7 @@ See: https://github.com/raspberrypi/linux/pull/321
|
||||||
case RF5372:
|
case RF5372:
|
||||||
case RF5390:
|
case RF5390:
|
||||||
case RF5392:
|
case RF5392:
|
||||||
@@ -5524,6 +5527,7 @@ static int rt2800_init_eeprom(struct rt2
|
@@ -5524,6 +5527,7 @@ static int rt2800_init_eeprom(struct rt2x00_dev *rt2x00dev)
|
||||||
case RF3322:
|
case RF3322:
|
||||||
case RF5360:
|
case RF5360:
|
||||||
case RF5370:
|
case RF5370:
|
||||||
|
@ -53,7 +57,7 @@ See: https://github.com/raspberrypi/linux/pull/321
|
||||||
case RF5372:
|
case RF5372:
|
||||||
case RF5390:
|
case RF5390:
|
||||||
case RF5392:
|
case RF5392:
|
||||||
@@ -5979,6 +5983,7 @@ static int rt2800_probe_hw_mode(struct r
|
@@ -5979,6 +5983,7 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
|
||||||
rt2x00_rf(rt2x00dev, RF3322) ||
|
rt2x00_rf(rt2x00dev, RF3322) ||
|
||||||
rt2x00_rf(rt2x00dev, RF5360) ||
|
rt2x00_rf(rt2x00dev, RF5360) ||
|
||||||
rt2x00_rf(rt2x00dev, RF5370) ||
|
rt2x00_rf(rt2x00dev, RF5370) ||
|
||||||
|
@ -61,7 +65,7 @@ See: https://github.com/raspberrypi/linux/pull/321
|
||||||
rt2x00_rf(rt2x00dev, RF5372) ||
|
rt2x00_rf(rt2x00dev, RF5372) ||
|
||||||
rt2x00_rf(rt2x00dev, RF5390) ||
|
rt2x00_rf(rt2x00dev, RF5390) ||
|
||||||
rt2x00_rf(rt2x00dev, RF5392)) {
|
rt2x00_rf(rt2x00dev, RF5392)) {
|
||||||
@@ -6081,6 +6086,7 @@ static int rt2800_probe_hw_mode(struct r
|
@@ -6081,6 +6086,7 @@ static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
|
||||||
case RF3290:
|
case RF3290:
|
||||||
case RF5360:
|
case RF5360:
|
||||||
case RF5370:
|
case RF5370:
|
||||||
|
@ -69,3 +73,6 @@ See: https://github.com/raspberrypi/linux/pull/321
|
||||||
case RF5372:
|
case RF5372:
|
||||||
case RF5390:
|
case RF5390:
|
||||||
case RF5392:
|
case RF5392:
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 3d8a3a5cbcd4d36768cf53e778d8165aefabd5b0 Mon Sep 17 00:00:00 2001
|
From 2fb3834b3ce43c6320c8186795b86ffa2257bd21 Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Fri, 20 Sep 2013 16:08:27 +0100
|
Date: Fri, 20 Sep 2013 16:08:27 +0100
|
||||||
Subject: [PATCH 093/174] dwc_otg: Enable NAK holdoff for control split
|
Subject: [PATCH 093/196] dwc_otg: Enable NAK holdoff for control split
|
||||||
transactions
|
transactions
|
||||||
|
|
||||||
Certain low-speed devices take a very long time to complete a
|
Certain low-speed devices take a very long time to complete a
|
||||||
|
@ -16,9 +16,11 @@ storm could cause SD card timeouts.
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 3 +--
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 3 +--
|
||||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index 19abea0..509b629 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -1857,8 +1857,7 @@ static int32_t handle_hc_nak_intr(dwc_ot
|
@@ -1857,8 +1857,7 @@ static int32_t handle_hc_nak_intr(dwc_otg_hcd_t * hcd,
|
||||||
*/
|
*/
|
||||||
switch(dwc_otg_hcd_get_pipe_type(&qtd->urb->pipe_info)) {
|
switch(dwc_otg_hcd_get_pipe_type(&qtd->urb->pipe_info)) {
|
||||||
case UE_BULK:
|
case UE_BULK:
|
||||||
|
@ -28,3 +30,6 @@ storm could cause SD card timeouts.
|
||||||
if (nak_holdoff_enable)
|
if (nak_holdoff_enable)
|
||||||
hc->qh->nak_frame = dwc_otg_hcd_get_frame_number(hcd);
|
hc->qh->nak_frame = dwc_otg_hcd_get_frame_number(hcd);
|
||||||
}
|
}
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,18 @@
|
||||||
From 4de1c90013a4ee22aa8250f455b1a6417e0d90fb Mon Sep 17 00:00:00 2001
|
From 33f352709fedc760be85adde5b834043a650f585 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Fri, 20 Sep 2013 19:07:56 +0100
|
Date: Fri, 20 Sep 2013 19:07:56 +0100
|
||||||
Subject: [PATCH 094/174] dwc_otg: Fix for occasional lockup on boot when doing
|
Subject: [PATCH 094/196] dwc_otg: Fix for occasional lockup on boot when doing
|
||||||
a USB reset
|
a USB reset
|
||||||
|
|
||||||
---
|
---
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 4 ++--
|
drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c | 4 ++--
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
|
index 509b629..57092d2 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_intr.c
|
||||||
@@ -742,8 +742,8 @@ int32_t dwc_otg_hcd_handle_sof_intr(dwc_
|
@@ -742,8 +742,8 @@ int32_t dwc_otg_hcd_handle_sof_intr(dwc_otg_hcd_t * hcd)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Clear interrupt */
|
/* Clear interrupt */
|
||||||
|
@ -21,3 +23,6 @@ Subject: [PATCH 094/174] dwc_otg: Fix for occasional lockup on boot when doing
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 0dd387f3d3d1184fe45b57afbe73796e2ebe8d39 Mon Sep 17 00:00:00 2001
|
From 503ed51d257784037165695334e7a3d03d85d674 Mon Sep 17 00:00:00 2001
|
||||||
From: P33M <P33M@github.com>
|
From: P33M <P33M@github.com>
|
||||||
Date: Fri, 27 Sep 2013 14:42:24 +0100
|
Date: Fri, 27 Sep 2013 14:42:24 +0100
|
||||||
Subject: [PATCH 095/174] dwc_otg: Don't issue traffic to LS devices in FS mode
|
Subject: [PATCH 095/196] dwc_otg: Don't issue traffic to LS devices in FS mode
|
||||||
|
|
||||||
Issuing low-speed packets when the root port is in full-speed mode
|
Issuing low-speed packets when the root port is in full-speed mode
|
||||||
causes the root port to stop responding. Explicitly fail when
|
causes the root port to stop responding. Explicitly fail when
|
||||||
|
@ -10,9 +10,11 @@ enqueuing URBs to a LS endpoint on a FS bus.
|
||||||
drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 11 +++++++++++
|
drivers/usb/host/dwc_otg/dwc_otg_hcd.c | 11 +++++++++++
|
||||||
1 file changed, 11 insertions(+)
|
1 file changed, 11 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
|
index be1d25b..b3e1944 100644
|
||||||
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd.c
|
||||||
@@ -501,6 +501,7 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_
|
@@ -501,6 +501,7 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_t * hcd,
|
||||||
dwc_otg_transaction_type_e tr_type;
|
dwc_otg_transaction_type_e tr_type;
|
||||||
dwc_otg_qtd_t *qtd;
|
dwc_otg_qtd_t *qtd;
|
||||||
gintmsk_data_t intr_mask = {.d32 = 0 };
|
gintmsk_data_t intr_mask = {.d32 = 0 };
|
||||||
|
@ -20,7 +22,7 @@ enqueuing URBs to a LS endpoint on a FS bus.
|
||||||
|
|
||||||
#ifdef DEBUG /* integrity checks (Broadcom) */
|
#ifdef DEBUG /* integrity checks (Broadcom) */
|
||||||
if (NULL == hcd->core_if) {
|
if (NULL == hcd->core_if) {
|
||||||
@@ -515,6 +516,16 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_
|
@@ -515,6 +516,16 @@ int dwc_otg_hcd_urb_enqueue(dwc_otg_hcd_t * hcd,
|
||||||
return -DWC_E_NO_DEVICE;
|
return -DWC_E_NO_DEVICE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,3 +39,6 @@ enqueuing URBs to a LS endpoint on a FS bus.
|
||||||
qtd = dwc_otg_hcd_qtd_create(dwc_otg_urb, atomic_alloc);
|
qtd = dwc_otg_hcd_qtd_create(dwc_otg_urb, atomic_alloc);
|
||||||
if (qtd == NULL) {
|
if (qtd == NULL) {
|
||||||
DWC_ERROR("DWC OTG HCD URB Enqueue failed creating QTD\n");
|
DWC_ERROR("DWC OTG HCD URB Enqueue failed creating QTD\n");
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 062e7d1247624034c6b9ff1515245930baee8862 Mon Sep 17 00:00:00 2001
|
From f4ae99bfa423d21fa311ca21c360e9800dc86fb5 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 6 Nov 2013 12:08:46 +0000
|
Date: Wed, 6 Nov 2013 12:08:46 +0000
|
||||||
Subject: [PATCH 096/174] config: enable BLK_DEV_SD statically. Add some
|
Subject: [PATCH 096/196] config: enable BLK_DEV_SD statically. Add some
|
||||||
DM_MIRROR raid options. Add ISCSI_TCP. Add R8712U
|
DM_MIRROR raid options. Add ISCSI_TCP. Add R8712U
|
||||||
|
|
||||||
kernel: config: add missing PPP config options
|
kernel: config: add missing PPP config options
|
||||||
|
@ -23,6 +23,8 @@ config: Set CONFIG_SPI_SPIDEV=y
|
||||||
arch/arm/configs/bcmrpi_defconfig | 93 +++++++++++++++++++++++++++++++++------
|
arch/arm/configs/bcmrpi_defconfig | 93 +++++++++++++++++++++++++++++++++------
|
||||||
1 file changed, 80 insertions(+), 13 deletions(-)
|
1 file changed, 80 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig
|
||||||
|
index 36fcd49..20c1c4f 100644
|
||||||
--- a/arch/arm/configs/bcmrpi_defconfig
|
--- a/arch/arm/configs/bcmrpi_defconfig
|
||||||
+++ b/arch/arm/configs/bcmrpi_defconfig
|
+++ b/arch/arm/configs/bcmrpi_defconfig
|
||||||
@@ -33,18 +33,21 @@ CONFIG_MODULES=y
|
@@ -33,18 +33,21 @@ CONFIG_MODULES=y
|
||||||
|
@ -301,3 +303,6 @@ config: Set CONFIG_SPI_SPIDEV=y
|
||||||
CONFIG_CRYPTO_CAST5=m
|
CONFIG_CRYPTO_CAST5=m
|
||||||
CONFIG_CRYPTO_DES=y
|
CONFIG_CRYPTO_DES=y
|
||||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,7 +1,7 @@
|
||||||
From 1c4544175663c38eb22b9095ce75c31f2d6c6e18 Mon Sep 17 00:00:00 2001
|
From 0682247a80d24b2613d4a89b396371ac7fcf3214 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Sat, 9 Nov 2013 13:32:03 +0000
|
Date: Sat, 9 Nov 2013 13:32:03 +0000
|
||||||
Subject: [PATCH 098/174] wifi: add patches from 3.6.y tree to make rtl8192cu
|
Subject: [PATCH 098/196] wifi: add patches from 3.6.y tree to make rtl8192cu
|
||||||
work
|
work
|
||||||
|
|
||||||
wifi: add missing patch from 3.6.y tree to disable debug
|
wifi: add missing patch from 3.6.y tree to disable debug
|
||||||
|
@ -13,6 +13,8 @@ wifi: add missing patch from 3.6.y tree to disable debug
|
||||||
drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c | 1 +
|
drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c | 1 +
|
||||||
5 files changed, 23 insertions(+), 3 deletions(-)
|
5 files changed, 23 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/rtl8192cu/Kconfig b/drivers/net/wireless/rtl8192cu/Kconfig
|
||||||
|
index bee5ed6..ef46361 100644
|
||||||
--- a/drivers/net/wireless/rtl8192cu/Kconfig
|
--- a/drivers/net/wireless/rtl8192cu/Kconfig
|
||||||
+++ b/drivers/net/wireless/rtl8192cu/Kconfig
|
+++ b/drivers/net/wireless/rtl8192cu/Kconfig
|
||||||
@@ -1,6 +1,8 @@
|
@@ -1,6 +1,8 @@
|
||||||
|
@ -25,6 +27,8 @@ wifi: add missing patch from 3.6.y tree to disable debug
|
||||||
- Help message of RTL8192CU
|
- Help message of RTL8192CU
|
||||||
+ Enable wireless network adapters based on Realtek RTL8192C chipset family, such as EDUP nano series
|
+ Enable wireless network adapters based on Realtek RTL8192C chipset family, such as EDUP nano series
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/rtl8192cu/Makefile b/drivers/net/wireless/rtl8192cu/Makefile
|
||||||
|
index c399011..f85c59f 100644
|
||||||
--- a/drivers/net/wireless/rtl8192cu/Makefile
|
--- a/drivers/net/wireless/rtl8192cu/Makefile
|
||||||
+++ b/drivers/net/wireless/rtl8192cu/Makefile
|
+++ b/drivers/net/wireless/rtl8192cu/Makefile
|
||||||
@@ -38,7 +38,7 @@ CONFIG_RTL8192CU_REDEFINE_1X1 = n
|
@@ -38,7 +38,7 @@ CONFIG_RTL8192CU_REDEFINE_1X1 = n
|
||||||
|
@ -47,6 +51,8 @@ wifi: add missing patch from 3.6.y tree to disable debug
|
||||||
ifneq ($(USER_MODULE_NAME),)
|
ifneq ($(USER_MODULE_NAME),)
|
||||||
MODULE_NAME := $(USER_MODULE_NAME)
|
MODULE_NAME := $(USER_MODULE_NAME)
|
||||||
endif
|
endif
|
||||||
|
diff --git a/drivers/net/wireless/rtl8192cu/include/autoconf.h b/drivers/net/wireless/rtl8192cu/include/autoconf.h
|
||||||
|
index 12294df..1341ff0 100644
|
||||||
--- a/drivers/net/wireless/rtl8192cu/include/autoconf.h
|
--- a/drivers/net/wireless/rtl8192cu/include/autoconf.h
|
||||||
+++ b/drivers/net/wireless/rtl8192cu/include/autoconf.h
|
+++ b/drivers/net/wireless/rtl8192cu/include/autoconf.h
|
||||||
@@ -296,7 +296,7 @@
|
@@ -296,7 +296,7 @@
|
||||||
|
@ -58,6 +64,8 @@ wifi: add missing patch from 3.6.y tree to disable debug
|
||||||
|
|
||||||
#define CONFIG_PROC_DEBUG 1
|
#define CONFIG_PROC_DEBUG 1
|
||||||
|
|
||||||
|
diff --git a/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c b/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c
|
||||||
|
index 82dee6d..b0bf0e9 100644
|
||||||
--- a/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c
|
--- a/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c
|
||||||
+++ b/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c
|
+++ b/drivers/net/wireless/rtl8192cu/os_dep/linux/os_intfs.c
|
||||||
@@ -277,6 +277,18 @@ static int rtw_proc_cnt = 0;
|
@@ -277,6 +277,18 @@ static int rtw_proc_cnt = 0;
|
||||||
|
@ -79,7 +87,7 @@ wifi: add missing patch from 3.6.y tree to disable debug
|
||||||
void rtw_proc_init_one(struct net_device *dev)
|
void rtw_proc_init_one(struct net_device *dev)
|
||||||
{
|
{
|
||||||
struct proc_dir_entry *dir_dev = NULL;
|
struct proc_dir_entry *dir_dev = NULL;
|
||||||
@@ -751,6 +763,7 @@ void rtw_proc_remove_one(struct net_devi
|
@@ -751,6 +763,7 @@ void rtw_proc_remove_one(struct net_device *dev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -87,9 +95,11 @@ wifi: add missing patch from 3.6.y tree to disable debug
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint loadparam( _adapter *padapter, _nic_hdl pnetdev);
|
uint loadparam( _adapter *padapter, _nic_hdl pnetdev);
|
||||||
|
diff --git a/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c b/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
|
||||||
|
index 4c1089a..baccb59 100644
|
||||||
--- a/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
|
--- a/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
|
||||||
+++ b/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
|
+++ b/drivers/net/wireless/rtl8192cu/os_dep/linux/usb_intf.c
|
||||||
@@ -138,6 +138,7 @@ static void rtw_dev_remove(struct usb_in
|
@@ -138,6 +138,7 @@ static void rtw_dev_remove(struct usb_interface *pusb_intf);
|
||||||
{USB_DEVICE(0x2001, 0x3307)},/* D-Link - Cameo */ \
|
{USB_DEVICE(0x2001, 0x3307)},/* D-Link - Cameo */ \
|
||||||
{USB_DEVICE(0x2001, 0x330A)},/* D-Link - Alpha */ \
|
{USB_DEVICE(0x2001, 0x330A)},/* D-Link - Alpha */ \
|
||||||
{USB_DEVICE(0x2001, 0x3309)},/* D-Link - Alpha */ \
|
{USB_DEVICE(0x2001, 0x3309)},/* D-Link - Alpha */ \
|
||||||
|
@ -97,3 +107,6 @@ wifi: add missing patch from 3.6.y tree to disable debug
|
||||||
{USB_DEVICE(0x0586, 0x341F)},/* Zyxel - Abocom */ \
|
{USB_DEVICE(0x0586, 0x341F)},/* Zyxel - Abocom */ \
|
||||||
{USB_DEVICE(0x7392, 0x7822)},/* Edimax - Edimax */ \
|
{USB_DEVICE(0x7392, 0x7822)},/* Edimax - Edimax */ \
|
||||||
{USB_DEVICE(0x2019, 0xAB2B)},/* Planex - Abocom */ \
|
{USB_DEVICE(0x2019, 0xAB2B)},/* Planex - Abocom */ \
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From c24b41600f008f5662a467de17644d26a0c269fd Mon Sep 17 00:00:00 2001
|
From f88d56e9c6976ebd217993062e0e53d65877685b Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Sat, 9 Nov 2013 17:42:58 +0000
|
Date: Sat, 9 Nov 2013 17:42:58 +0000
|
||||||
Subject: [PATCH 099/174] mmc: Report 3.3V support in caps
|
Subject: [PATCH 099/196] mmc: Report 3.3V support in caps
|
||||||
|
|
||||||
sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstream code
|
sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstream code
|
||||||
---
|
---
|
||||||
|
@ -9,9 +9,11 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
drivers/mmc/host/sdhci.c | 82 ++++++++++++++++++++++------------------
|
drivers/mmc/host/sdhci.c | 82 ++++++++++++++++++++++------------------
|
||||||
2 files changed, 47 insertions(+), 37 deletions(-)
|
2 files changed, 47 insertions(+), 37 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index 4770680..7fdd815 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -1282,6 +1282,8 @@ static int sdhci_bcm2708_probe(struct pl
|
@@ -1282,6 +1282,8 @@ static int sdhci_bcm2708_probe(struct platform_device *pdev)
|
||||||
host_priv->dma_chan, host_priv->dma_chan_base,
|
host_priv->dma_chan, host_priv->dma_chan_base,
|
||||||
host_priv->dma_irq);
|
host_priv->dma_irq);
|
||||||
|
|
||||||
|
@ -20,9 +22,11 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
if (allow_highspeed)
|
if (allow_highspeed)
|
||||||
host->mmc->caps |= MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED;
|
host->mmc->caps |= MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED;
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
|
||||||
|
index 470860b..13e4e11 100644
|
||||||
--- a/drivers/mmc/host/sdhci.c
|
--- a/drivers/mmc/host/sdhci.c
|
||||||
+++ b/drivers/mmc/host/sdhci.c
|
+++ b/drivers/mmc/host/sdhci.c
|
||||||
@@ -210,6 +210,14 @@ static void sdhci_spin_disable_schedule(
|
@@ -210,6 +210,14 @@ static void sdhci_spin_disable_schedule(struct sdhci_host *host)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +41,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
static void sdhci_clear_set_irqs(struct sdhci_host *host, u32 clear, u32 set)
|
static void sdhci_clear_set_irqs(struct sdhci_host *host, u32 clear, u32 set)
|
||||||
{
|
{
|
||||||
u32 ier;
|
u32 ier;
|
||||||
@@ -374,7 +382,7 @@ static void sdhci_led_control(struct led
|
@@ -374,7 +382,7 @@ static void sdhci_led_control(struct led_classdev *led,
|
||||||
struct sdhci_host *host = container_of(led, struct sdhci_host, led);
|
struct sdhci_host *host = container_of(led, struct sdhci_host, led);
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
@ -46,7 +50,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
|
|
||||||
if (host->runtime_suspended)
|
if (host->runtime_suspended)
|
||||||
goto out;
|
goto out;
|
||||||
@@ -384,7 +392,7 @@ static void sdhci_led_control(struct led
|
@@ -384,7 +392,7 @@ static void sdhci_led_control(struct led_classdev *led,
|
||||||
else
|
else
|
||||||
sdhci_activate_led(host);
|
sdhci_activate_led(host);
|
||||||
out:
|
out:
|
||||||
|
@ -55,7 +59,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1419,7 +1427,7 @@ static void sdhci_request(struct mmc_hos
|
@@ -1419,7 +1427,7 @@ static void sdhci_request(struct mmc_host *mmc, struct mmc_request *mrq)
|
||||||
|
|
||||||
sdhci_runtime_pm_get(host);
|
sdhci_runtime_pm_get(host);
|
||||||
|
|
||||||
|
@ -64,7 +68,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
|
|
||||||
WARN_ON(host->mrq != NULL);
|
WARN_ON(host->mrq != NULL);
|
||||||
|
|
||||||
@@ -1477,9 +1485,9 @@ static void sdhci_request(struct mmc_hos
|
@@ -1477,9 +1485,9 @@ static void sdhci_request(struct mmc_host *mmc, struct mmc_request *mrq)
|
||||||
mmc->card->type == MMC_TYPE_MMC ?
|
mmc->card->type == MMC_TYPE_MMC ?
|
||||||
MMC_SEND_TUNING_BLOCK_HS200 :
|
MMC_SEND_TUNING_BLOCK_HS200 :
|
||||||
MMC_SEND_TUNING_BLOCK;
|
MMC_SEND_TUNING_BLOCK;
|
||||||
|
@ -76,7 +80,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
|
|
||||||
/* Restore original mmc_request structure */
|
/* Restore original mmc_request structure */
|
||||||
host->mrq = mrq;
|
host->mrq = mrq;
|
||||||
@@ -1493,7 +1501,7 @@ static void sdhci_request(struct mmc_hos
|
@@ -1493,7 +1501,7 @@ static void sdhci_request(struct mmc_host *mmc, struct mmc_request *mrq)
|
||||||
}
|
}
|
||||||
|
|
||||||
mmiowb();
|
mmiowb();
|
||||||
|
@ -85,7 +89,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
|
static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
|
||||||
@@ -1502,10 +1510,10 @@ static void sdhci_do_set_ios(struct sdhc
|
@@ -1502,10 +1510,10 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
|
||||||
int vdd_bit = -1;
|
int vdd_bit = -1;
|
||||||
u8 ctrl;
|
u8 ctrl;
|
||||||
|
|
||||||
|
@ -98,7 +102,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
if (host->vmmc && ios->power_mode == MMC_POWER_OFF)
|
if (host->vmmc && ios->power_mode == MMC_POWER_OFF)
|
||||||
mmc_regulator_set_ocr(host->mmc, host->vmmc, 0);
|
mmc_regulator_set_ocr(host->mmc, host->vmmc, 0);
|
||||||
return;
|
return;
|
||||||
@@ -1532,9 +1540,9 @@ static void sdhci_do_set_ios(struct sdhc
|
@@ -1532,9 +1540,9 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
|
||||||
vdd_bit = sdhci_set_power(host, ios->vdd);
|
vdd_bit = sdhci_set_power(host, ios->vdd);
|
||||||
|
|
||||||
if (host->vmmc && vdd_bit != -1) {
|
if (host->vmmc && vdd_bit != -1) {
|
||||||
|
@ -110,7 +114,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
}
|
}
|
||||||
|
|
||||||
if (host->ops->platform_send_init_74_clocks)
|
if (host->ops->platform_send_init_74_clocks)
|
||||||
@@ -1672,7 +1680,7 @@ static void sdhci_do_set_ios(struct sdhc
|
@@ -1672,7 +1680,7 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
|
||||||
sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA);
|
sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA);
|
||||||
|
|
||||||
mmiowb();
|
mmiowb();
|
||||||
|
@ -119,7 +123,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
|
static void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
|
||||||
@@ -1720,7 +1728,7 @@ static int sdhci_check_ro(struct sdhci_h
|
@@ -1720,7 +1728,7 @@ static int sdhci_check_ro(struct sdhci_host *host)
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
int is_readonly;
|
int is_readonly;
|
||||||
|
|
||||||
|
@ -128,7 +132,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
|
|
||||||
if (host->flags & SDHCI_DEVICE_DEAD)
|
if (host->flags & SDHCI_DEVICE_DEAD)
|
||||||
is_readonly = 0;
|
is_readonly = 0;
|
||||||
@@ -1730,7 +1738,7 @@ static int sdhci_check_ro(struct sdhci_h
|
@@ -1730,7 +1738,7 @@ static int sdhci_check_ro(struct sdhci_host *host)
|
||||||
is_readonly = !(sdhci_readl(host, SDHCI_PRESENT_STATE)
|
is_readonly = !(sdhci_readl(host, SDHCI_PRESENT_STATE)
|
||||||
& SDHCI_WRITE_PROTECT);
|
& SDHCI_WRITE_PROTECT);
|
||||||
|
|
||||||
|
@ -137,7 +141,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
|
|
||||||
/* This quirk needs to be replaced by a callback-function later */
|
/* This quirk needs to be replaced by a callback-function later */
|
||||||
return host->quirks & SDHCI_QUIRK_INVERTED_WRITE_PROTECT ?
|
return host->quirks & SDHCI_QUIRK_INVERTED_WRITE_PROTECT ?
|
||||||
@@ -1803,9 +1811,9 @@ static void sdhci_enable_sdio_irq(struct
|
@@ -1803,9 +1811,9 @@ static void sdhci_enable_sdio_irq(struct mmc_host *mmc, int enable)
|
||||||
struct sdhci_host *host = mmc_priv(mmc);
|
struct sdhci_host *host = mmc_priv(mmc);
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
@ -149,7 +153,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sdhci_do_start_signal_voltage_switch(struct sdhci_host *host,
|
static int sdhci_do_start_signal_voltage_switch(struct sdhci_host *host,
|
||||||
@@ -2149,7 +2157,7 @@ static void sdhci_card_event(struct mmc_
|
@@ -2149,7 +2157,7 @@ static void sdhci_card_event(struct mmc_host *mmc)
|
||||||
struct sdhci_host *host = mmc_priv(mmc);
|
struct sdhci_host *host = mmc_priv(mmc);
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
@ -158,7 +162,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
|
|
||||||
/* Check host->mrq first in case we are runtime suspended */
|
/* Check host->mrq first in case we are runtime suspended */
|
||||||
if (host->mrq &&
|
if (host->mrq &&
|
||||||
@@ -2166,7 +2174,7 @@ static void sdhci_card_event(struct mmc_
|
@@ -2166,7 +2174,7 @@ static void sdhci_card_event(struct mmc_host *mmc)
|
||||||
tasklet_schedule(&host->finish_tasklet);
|
tasklet_schedule(&host->finish_tasklet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -167,7 +171,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct mmc_host_ops sdhci_ops = {
|
static const struct mmc_host_ops sdhci_ops = {
|
||||||
@@ -2205,14 +2213,14 @@ static void sdhci_tasklet_finish(unsigne
|
@@ -2205,14 +2213,14 @@ static void sdhci_tasklet_finish(unsigned long param)
|
||||||
|
|
||||||
host = (struct sdhci_host*)param;
|
host = (struct sdhci_host*)param;
|
||||||
|
|
||||||
|
@ -184,7 +188,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2250,7 +2258,7 @@ static void sdhci_tasklet_finish(unsigne
|
@@ -2250,7 +2258,7 @@ static void sdhci_tasklet_finish(unsigned long param)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
mmiowb();
|
mmiowb();
|
||||||
|
@ -193,7 +197,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
|
|
||||||
mmc_request_done(host->mmc, mrq);
|
mmc_request_done(host->mmc, mrq);
|
||||||
sdhci_runtime_pm_put(host);
|
sdhci_runtime_pm_put(host);
|
||||||
@@ -2263,7 +2271,7 @@ static void sdhci_timeout_timer(unsigned
|
@@ -2263,7 +2271,7 @@ static void sdhci_timeout_timer(unsigned long data)
|
||||||
|
|
||||||
host = (struct sdhci_host*)data;
|
host = (struct sdhci_host*)data;
|
||||||
|
|
||||||
|
@ -202,7 +206,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
|
|
||||||
if (host->mrq) {
|
if (host->mrq) {
|
||||||
pr_err("%s: Timeout waiting for hardware "
|
pr_err("%s: Timeout waiting for hardware "
|
||||||
@@ -2284,7 +2292,7 @@ static void sdhci_timeout_timer(unsigned
|
@@ -2284,7 +2292,7 @@ static void sdhci_timeout_timer(unsigned long data)
|
||||||
}
|
}
|
||||||
|
|
||||||
mmiowb();
|
mmiowb();
|
||||||
|
@ -211,7 +215,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sdhci_tuning_timer(unsigned long data)
|
static void sdhci_tuning_timer(unsigned long data)
|
||||||
@@ -2294,11 +2302,11 @@ static void sdhci_tuning_timer(unsigned
|
@@ -2294,11 +2302,11 @@ static void sdhci_tuning_timer(unsigned long data)
|
||||||
|
|
||||||
host = (struct sdhci_host *)data;
|
host = (struct sdhci_host *)data;
|
||||||
|
|
||||||
|
@ -225,7 +229,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************\
|
/*****************************************************************************\
|
||||||
@@ -2522,10 +2530,10 @@ static irqreturn_t sdhci_irq(int irq, vo
|
@@ -2522,10 +2530,10 @@ static irqreturn_t sdhci_irq(int irq, void *dev_id)
|
||||||
u32 intmask, unexpected = 0;
|
u32 intmask, unexpected = 0;
|
||||||
int cardint = 0, max_loops = 16;
|
int cardint = 0, max_loops = 16;
|
||||||
|
|
||||||
|
@ -247,7 +251,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
|
|
||||||
if (unexpected) {
|
if (unexpected) {
|
||||||
pr_err("%s: Unexpected interrupt 0x%08x.\n",
|
pr_err("%s: Unexpected interrupt 0x%08x.\n",
|
||||||
@@ -2791,15 +2799,15 @@ int sdhci_runtime_suspend_host(struct sd
|
@@ -2791,15 +2799,15 @@ int sdhci_runtime_suspend_host(struct sdhci_host *host)
|
||||||
host->flags &= ~SDHCI_NEEDS_RETUNING;
|
host->flags &= ~SDHCI_NEEDS_RETUNING;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,7 +271,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -2825,16 +2833,16 @@ int sdhci_runtime_resume_host(struct sdh
|
@@ -2825,16 +2833,16 @@ int sdhci_runtime_resume_host(struct sdhci_host *host)
|
||||||
sdhci_do_start_signal_voltage_switch(host, &host->mmc->ios);
|
sdhci_do_start_signal_voltage_switch(host, &host->mmc->ios);
|
||||||
if ((host_flags & SDHCI_PV_ENABLED) &&
|
if ((host_flags & SDHCI_PV_ENABLED) &&
|
||||||
!(host->quirks2 & SDHCI_QUIRK2_PRESET_VALUE_BROKEN)) {
|
!(host->quirks2 & SDHCI_QUIRK2_PRESET_VALUE_BROKEN)) {
|
||||||
|
@ -287,7 +291,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
|
|
||||||
host->runtime_suspended = false;
|
host->runtime_suspended = false;
|
||||||
|
|
||||||
@@ -2845,7 +2853,7 @@ int sdhci_runtime_resume_host(struct sdh
|
@@ -2845,7 +2853,7 @@ int sdhci_runtime_resume_host(struct sdhci_host *host)
|
||||||
/* Enable Card Detection */
|
/* Enable Card Detection */
|
||||||
sdhci_enable_card_detection(host);
|
sdhci_enable_card_detection(host);
|
||||||
|
|
||||||
|
@ -296,7 +300,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -3401,7 +3409,7 @@ void sdhci_remove_host(struct sdhci_host
|
@@ -3401,7 +3409,7 @@ void sdhci_remove_host(struct sdhci_host *host, int dead)
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
if (dead) {
|
if (dead) {
|
||||||
|
@ -305,7 +309,7 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
|
|
||||||
host->flags |= SDHCI_DEVICE_DEAD;
|
host->flags |= SDHCI_DEVICE_DEAD;
|
||||||
|
|
||||||
@@ -3413,7 +3421,7 @@ void sdhci_remove_host(struct sdhci_host
|
@@ -3413,7 +3421,7 @@ void sdhci_remove_host(struct sdhci_host *host, int dead)
|
||||||
tasklet_schedule(&host->finish_tasklet);
|
tasklet_schedule(&host->finish_tasklet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -314,3 +318,6 @@ sdhci: Use macros for out spin lock/unlock functions to reduce diffs with upstre
|
||||||
}
|
}
|
||||||
|
|
||||||
sdhci_disable_card_detection(host);
|
sdhci_disable_card_detection(host);
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 45f717497730b7e98f3bd934ba09757748d8418d Mon Sep 17 00:00:00 2001
|
From 2b7ffec03e2dda5b3f78a354668e9bf1945f5805 Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Tue, 12 Nov 2013 23:01:30 +0000
|
Date: Tue, 12 Nov 2013 23:01:30 +0000
|
||||||
Subject: [PATCH 100/174] sdhci: sdhci_bcm2708_quirk_voltage_broken appears to
|
Subject: [PATCH 100/196] sdhci: sdhci_bcm2708_quirk_voltage_broken appears to
|
||||||
be a no-op
|
be a no-op
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -10,9 +10,11 @@ Subject: [PATCH 100/174] sdhci: sdhci_bcm2708_quirk_voltage_broken appears to
|
||||||
drivers/mmc/host/sdhci.h | 1 -
|
drivers/mmc/host/sdhci.h | 1 -
|
||||||
3 files changed, 13 deletions(-)
|
3 files changed, 13 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index 7fdd815..c775666 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -1114,11 +1114,6 @@ static unsigned int sdhci_bcm2708_quirk_
|
@@ -1114,11 +1114,6 @@ static unsigned int sdhci_bcm2708_quirk_spurious_crc_acmd51(struct sdhci_host *h
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +26,7 @@ Subject: [PATCH 100/174] sdhci: sdhci_bcm2708_quirk_voltage_broken appears to
|
||||||
static unsigned int sdhci_bcm2708_uhs_broken(struct sdhci_host *host)
|
static unsigned int sdhci_bcm2708_uhs_broken(struct sdhci_host *host)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
@@ -1155,7 +1150,6 @@ static struct sdhci_ops sdhci_bcm2708_op
|
@@ -1155,7 +1150,6 @@ static struct sdhci_ops sdhci_bcm2708_ops = {
|
||||||
.pdma_reset = sdhci_bcm2708_platdma_reset,
|
.pdma_reset = sdhci_bcm2708_platdma_reset,
|
||||||
#endif
|
#endif
|
||||||
.extra_ints = sdhci_bcm2708_quirk_extra_ints,
|
.extra_ints = sdhci_bcm2708_quirk_extra_ints,
|
||||||
|
@ -32,9 +34,11 @@ Subject: [PATCH 100/174] sdhci: sdhci_bcm2708_quirk_voltage_broken appears to
|
||||||
.uhs_broken = sdhci_bcm2708_uhs_broken,
|
.uhs_broken = sdhci_bcm2708_uhs_broken,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
|
||||||
|
index 13e4e11..237158c 100644
|
||||||
--- a/drivers/mmc/host/sdhci.c
|
--- a/drivers/mmc/host/sdhci.c
|
||||||
+++ b/drivers/mmc/host/sdhci.c
|
+++ b/drivers/mmc/host/sdhci.c
|
||||||
@@ -3245,12 +3245,6 @@ int sdhci_add_host(struct sdhci_host *ho
|
@@ -3245,12 +3245,6 @@ int sdhci_add_host(struct sdhci_host *host)
|
||||||
SDHCI_MAX_CURRENT_MULTIPLIER;
|
SDHCI_MAX_CURRENT_MULTIPLIER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,6 +51,8 @@ Subject: [PATCH 100/174] sdhci: sdhci_bcm2708_quirk_voltage_broken appears to
|
||||||
mmc->ocr_avail = ocr_avail;
|
mmc->ocr_avail = ocr_avail;
|
||||||
mmc->ocr_avail_sdio = ocr_avail;
|
mmc->ocr_avail_sdio = ocr_avail;
|
||||||
if (host->ocr_avail_sdio)
|
if (host->ocr_avail_sdio)
|
||||||
|
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
|
||||||
|
index cc393af..fc6fcf3 100644
|
||||||
--- a/drivers/mmc/host/sdhci.h
|
--- a/drivers/mmc/host/sdhci.h
|
||||||
+++ b/drivers/mmc/host/sdhci.h
|
+++ b/drivers/mmc/host/sdhci.h
|
||||||
@@ -299,7 +299,6 @@ struct sdhci_ops {
|
@@ -299,7 +299,6 @@ struct sdhci_ops {
|
||||||
|
@ -57,3 +63,6 @@ Subject: [PATCH 100/174] sdhci: sdhci_bcm2708_quirk_voltage_broken appears to
|
||||||
unsigned int (*uhs_broken)(struct sdhci_host *host);
|
unsigned int (*uhs_broken)(struct sdhci_host *host);
|
||||||
unsigned int (*missing_status)(struct sdhci_host *host);
|
unsigned int (*missing_status)(struct sdhci_host *host);
|
||||||
|
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
From 68f187f8fa966229b9820edec5dda455bdff52ea Mon Sep 17 00:00:00 2001
|
From 84a69f4eea629347522bcb4e7fe6a04ed687686e Mon Sep 17 00:00:00 2001
|
||||||
From: popcornmix <popcornmix@gmail.com>
|
From: popcornmix <popcornmix@gmail.com>
|
||||||
Date: Wed, 13 Nov 2013 11:40:56 +0000
|
Date: Wed, 13 Nov 2013 11:40:56 +0000
|
||||||
Subject: [PATCH 101/174] sdhci: sdhci_bcm2708_uhs_broken should be handled
|
Subject: [PATCH 101/196] sdhci: sdhci_bcm2708_uhs_broken should be handled
|
||||||
through caps reported
|
through caps reported
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -10,9 +10,11 @@ Subject: [PATCH 101/174] sdhci: sdhci_bcm2708_uhs_broken should be handled
|
||||||
drivers/mmc/host/sdhci.h | 1 -
|
drivers/mmc/host/sdhci.h | 1 -
|
||||||
3 files changed, 1 insertion(+), 8 deletions(-)
|
3 files changed, 1 insertion(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/mmc/host/sdhci-bcm2708.c b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
|
index c775666..2797ae6 100644
|
||||||
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
--- a/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
+++ b/drivers/mmc/host/sdhci-bcm2708.c
|
||||||
@@ -1114,11 +1114,6 @@ static unsigned int sdhci_bcm2708_quirk_
|
@@ -1114,11 +1114,6 @@ static unsigned int sdhci_bcm2708_quirk_spurious_crc_acmd51(struct sdhci_host *h
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +26,7 @@ Subject: [PATCH 101/174] sdhci: sdhci_bcm2708_uhs_broken should be handled
|
||||||
static unsigned int sdhci_bcm2708_missing_status(struct sdhci_host *host)
|
static unsigned int sdhci_bcm2708_missing_status(struct sdhci_host *host)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
@@ -1150,7 +1145,6 @@ static struct sdhci_ops sdhci_bcm2708_op
|
@@ -1150,7 +1145,6 @@ static struct sdhci_ops sdhci_bcm2708_ops = {
|
||||||
.pdma_reset = sdhci_bcm2708_platdma_reset,
|
.pdma_reset = sdhci_bcm2708_platdma_reset,
|
||||||
#endif
|
#endif
|
||||||
.extra_ints = sdhci_bcm2708_quirk_extra_ints,
|
.extra_ints = sdhci_bcm2708_quirk_extra_ints,
|
||||||
|
@ -32,9 +34,11 @@ Subject: [PATCH 101/174] sdhci: sdhci_bcm2708_uhs_broken should be handled
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************\
|
/*****************************************************************************\
|
||||||
|
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
|
||||||
|
index 237158c..9c93e00 100644
|
||||||
--- a/drivers/mmc/host/sdhci.c
|
--- a/drivers/mmc/host/sdhci.c
|
||||||
+++ b/drivers/mmc/host/sdhci.c
|
+++ b/drivers/mmc/host/sdhci.c
|
||||||
@@ -1581,7 +1581,7 @@ static void sdhci_do_set_ios(struct sdhc
|
@@ -1581,7 +1581,7 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
|
||||||
else
|
else
|
||||||
ctrl &= ~SDHCI_CTRL_HISPD;
|
ctrl &= ~SDHCI_CTRL_HISPD;
|
||||||
|
|
||||||
|
@ -43,6 +47,8 @@ Subject: [PATCH 101/174] sdhci: sdhci_bcm2708_uhs_broken should be handled
|
||||||
u16 clk, ctrl_2;
|
u16 clk, ctrl_2;
|
||||||
|
|
||||||
/* In case of UHS-I modes, set High Speed Enable */
|
/* In case of UHS-I modes, set High Speed Enable */
|
||||||
|
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
|
||||||
|
index fc6fcf3..9c3970b 100644
|
||||||
--- a/drivers/mmc/host/sdhci.h
|
--- a/drivers/mmc/host/sdhci.h
|
||||||
+++ b/drivers/mmc/host/sdhci.h
|
+++ b/drivers/mmc/host/sdhci.h
|
||||||
@@ -299,7 +299,6 @@ struct sdhci_ops {
|
@@ -299,7 +299,6 @@ struct sdhci_ops {
|
||||||
|
@ -53,3 +59,6 @@ Subject: [PATCH 101/174] sdhci: sdhci_bcm2708_uhs_broken should be handled
|
||||||
unsigned int (*missing_status)(struct sdhci_host *host);
|
unsigned int (*missing_status)(struct sdhci_host *host);
|
||||||
|
|
||||||
void (*hw_reset)(struct sdhci_host *host);
|
void (*hw_reset)(struct sdhci_host *host);
|
||||||
|
--
|
||||||
|
1.9.1
|
||||||
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue