Commit 9787f839 authored by florian's avatar florian

brcm2708: update 3.10 patches with raspberrypi/rpi-3.10.y of 27 Apr. 2014

Backport r42678
Signed-off-by: 's avatarFlorian Fainelli <florian@openwrt.org>



git-svn-id: svn://svn.openwrt.org/openwrt/branches/barrier_breaker@42682 3c298f89-4303-0410-b956-a3cf2f4a3e73
parent b3f82943
From dd611b3364087514ef5fc59c6106d8924d2a2a30 Mon Sep 17 00:00:00 2001
From 34844524c88edbb0fd75339fd655f6b69b221b0a Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
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>
---
......@@ -11,6 +11,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
3 files changed, 392 insertions(+)
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
+++ b/drivers/watchdog/Kconfig
@@ -391,6 +391,12 @@ config RETU_WATCHDOG
......@@ -26,9 +28,11 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
# AVR32 Architecture
config AT32AP700X_WDT
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index a300b94..0e357711 100644
--- a/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_UX500_WATCHDOG) += ux500_wdt.o
obj-$(CONFIG_RETU_WATCHDOG) += retu_wdt.o
......@@ -36,6 +40,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
# AVR32 Architecture
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
+++ b/drivers/watchdog/bcm2708_wdog.c
@@ -0,0 +1,385 @@
......@@ -424,3 +431,6 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
+MODULE_ALIAS_MISCDEV(TEMP_MINOR);
+MODULE_LICENSE("GPL");
+
--
1.9.1
From c9fbd3932a41a14af51d04fb6f43c45d60e66f8c Mon Sep 17 00:00:00 2001
From db56ac21f4312a9cf97d4f9f35ff2593b5b81f7d Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
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>
---
......@@ -12,6 +12,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
4 files changed, 1387 insertions(+), 1602 deletions(-)
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
+++ b/drivers/video/Kconfig
@@ -310,6 +310,20 @@ config FB_PM2_FIFO_DISCONNECT
......@@ -35,9 +37,11 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
config FB_ARMCLCD
tristate "ARM PrimeCell PL110 support"
depends on FB && ARM && ARM_AMBA
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
index e8bae8d..032f386 100644
--- a/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_ARMCLCD) += amba-clcd.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_GBE) += gbefb.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
+++ b/drivers/video/bcm2708_fb.c
@@ -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(fbheight, "Height 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
+++ b/drivers/video/logo/logo_linux_clut224.ppm
@@ -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
--
1.9.1
From ff28398a53a45795382bdb25db71f2a8b3394dab Mon Sep 17 00:00:00 2001
From 15b3faf99f1b16184620bc89be78a5f205acbe92 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
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>
---
......@@ -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 include/linux/broadcom/vc_cma.h
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
index 3bb6fa3..022b91c 100644
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
@@ -586,6 +586,8 @@ config DEVPORT
......@@ -31,6 +33,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
config MSM_SMD_PKT
bool "Enable device interface for some SMD packet ports"
default n
diff --git a/drivers/char/Makefile b/drivers/char/Makefile
index 7ff1d0d..c594502 100644
--- a/drivers/char/Makefile
+++ b/drivers/char/Makefile
@@ -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/
+
diff --git a/drivers/char/broadcom/Kconfig b/drivers/char/broadcom/Kconfig
new file mode 100644
index 0000000..e23b440
--- /dev/null
+++ b/drivers/char/broadcom/Kconfig
@@ -0,0 +1,16 @@
......@@ -59,11 +66,17 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
+ help
+ 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
+++ b/drivers/char/broadcom/Makefile
@@ -0,0 +1,2 @@
+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
+++ b/drivers/char/broadcom/vc_cma/Makefile
@@ -0,0 +1,15 @@
......@@ -82,6 +95,9 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
+
+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
+++ b/drivers/char/broadcom/vc_cma/vc_cma.c
@@ -0,0 +1,1143 @@
......@@ -1228,6 +1244,8 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
+module_exit(vc_cma_exit);
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Broadcom Corporation");
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index d72aaf2..24b40c3 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -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-y += 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
+++ b/include/linux/broadcom/vc_cma.h
@@ -0,0 +1,30 @@
......@@ -1269,3 +1290,6 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
+
+#endif /* VC_CMA_H */
+
--
1.9.1
From 7868fb252f8846b21a00b9a42a8bfa10f1c969ee Mon Sep 17 00:00:00 2001
From f99826368eeb17ddaf6b9459f577356c0387f365 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
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>
---
......@@ -24,6 +24,8 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
create mode 100755 sound/arm/bcm2835.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
+++ b/arch/arm/configs/bcmrpi_cutdown_defconfig
@@ -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_USB_HIDDEV=y
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
+++ b/arch/arm/configs/bcmrpi_defconfig
@@ -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_USB_HIDDEV=y
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
+++ 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},
};
......@@ -110,6 +116,8 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
for (i = 0; i < ARRAY_SIZE(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
+++ b/sound/arm/Kconfig
@@ -39,5 +39,12 @@ config SND_PXA2XX_AC97
......@@ -125,9 +133,11 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
+
endif # SND_ARM
diff --git a/sound/arm/Makefile b/sound/arm/Makefile
index 8c0c851..181cb57 100644
--- a/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
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
+
diff --git a/sound/arm/bcm2835-ctl.c b/sound/arm/bcm2835-ctl.c
new file mode 100755
index 0000000..c3e0f7a
--- /dev/null
+++ b/sound/arm/bcm2835-ctl.c
@@ -0,0 +1,200 @@
......@@ -340,6 +353,9 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
+ }
+ 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
+++ b/sound/arm/bcm2835-pcm.c
@@ -0,0 +1,409 @@
......@@ -752,6 +768,9 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
+
+ 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
+++ b/sound/arm/bcm2835-vchiq.c
@@ -0,0 +1,844 @@
......@@ -1599,6 +1618,9 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
+
+module_param(force_bulk, bool, 0444);
+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
+++ b/sound/arm/bcm2835.c
@@ -0,0 +1,413 @@
......@@ -2015,6 +2037,9 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
+MODULE_DESCRIPTION("Alsa driver for BCM2835 chip");
+MODULE_LICENSE("GPL");
+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
+++ b/sound/arm/bcm2835.h
@@ -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);
+
+#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
+++ b/sound/arm/vc_vchi_audioserv_defs.h
@@ -0,0 +1,116 @@
......@@ -2292,3 +2320,6 @@ Subject: [PATCH 007/174] bcm2708: alsa sound driver
+} VC_AUDIO_MSG_T;
+
+#endif // _VC_AUDIO_DEFS_H_
--
1.9.1
From bd5ea6c71eb31d1c65f718a2938ea9a4272c8b8e Mon Sep 17 00:00:00 2001
From 6bcf2da9cea3a1565a87f848f4e17bc634bb160c Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
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>
---
drivers/net/usb/smsc95xx.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++
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
+++ b/drivers/net/usb/smsc95xx.c
@@ -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,
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);
}
......@@ -89,3 +91,6 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
/* try reading mac address from EEPROM */
if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
dev->net->dev_addr) == 0) {
--
1.9.1
From f7ea3b11c29f79b86cbb2e25fa4cd1598a4350e3 Mon Sep 17 00:00:00 2001
From ea8076fd5bc2996fbc04cc54178bb1f113ee0ccc Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
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 +++++++++
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
+++ 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;
}
......@@ -24,7 +26,7 @@ Subject: [PATCH 009/174] possible fix for sdcard missing status. Thank naren
/***************************************************************************** \
* *
* 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,
.voltage_broken = sdhci_bcm2708_quirk_voltage_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
From 7063eab83522ea1f24934b971418bfdd4c5578f1 Mon Sep 17 00:00:00 2001
From c655ceea69b95ccf2cc486a83048e41c3f664d1f Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
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 +++++++----------------
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
+++ 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
the SD controller to finish reading/writing to the card. */
u32 state_mask;
......@@ -19,7 +21,7 @@ Subject: [PATCH 010/174] sdcard patch improvements from naren
DBG("PDMA over - sync card\n");
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
state_mask = SDHCI_DOING_WRITE;
......@@ -42,7 +44,7 @@ Subject: [PATCH 010/174] sdcard patch improvements from naren
if (timeout <= 0)
printk(KERN_ERR"%s: final %s to SD card still "
"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)
{
......@@ -54,3 +56,6 @@ Subject: [PATCH 010/174] sdcard patch improvements from naren
}
/***************************************************************************** \
--
1.9.1
From e38d3d05747f6877a2ad1a7af1ac26e6a48a8be3 Mon Sep 17 00:00:00 2001
From 07947cfde701f7ba29b06574e9533bd6459da8ad Mon Sep 17 00:00:00 2001
From: Grigori Goronzy <greg@blackbox>
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
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 +-
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
+++ 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)
& state_mask) && --timeout > 0)
{
......@@ -20,3 +22,6 @@ can reduce the poll interval slightly. Might improve performance a bit.
continue;
}
if (timeout <= 0)
--
1.9.1
From 3f65aaaabc3ddc09bacf06bb608f8bab5671fb18 Mon Sep 17 00:00:00 2001
From d63cca1d57881d931236d101fe16fd249d91b060 Mon Sep 17 00:00:00 2001
From: Grigori Goronzy <greg@blackbox>
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
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 +---------------------------------------
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
+++ 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)
{
......@@ -81,7 +83,7 @@ subsystem does a better job than it, so remove it for good.
/*****************************************************************************\
* *
* 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
#error The BCM2708 SDHCI driver needs CONFIG_MMC_SDHCI_IO_ACCESSORS to be set
#endif
......@@ -93,3 +95,6 @@ subsystem does a better job than it, so remove it for good.
#ifdef CONFIG_MMC_SDHCI_BCM2708_DMA
// Platform DMA operations
--
1.9.1
From b567bbb9b16e9c860c8d7a4f2c6cf44c66533dfa Mon Sep 17 00:00:00 2001
From fa0e27879ec0fc9034eca320e4055539a1b97797 Mon Sep 17 00:00:00 2001
From: Grigori Goronzy <greg@blackbox>
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.
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 +++-
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
+++ 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 |
SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK |
SDHCI_QUIRK_BROKEN_TIMEOUT_VAL |
......@@ -25,3 +27,6 @@ high-speed mode, so add it as well.
#ifdef CONFIG_MMC_SDHCI_BCM2708_DMA
host->flags = SDHCI_USE_PLATDMA;
#endif
--
1.9.1
From f779191cd42376e2b1f555be1b2c486dd99b2fef Mon Sep 17 00:00:00 2001
From 06d314090d1c837d5f2c42c9686c8e8fa7db7370 Mon Sep 17 00:00:00 2001
From: Grigori Goronzy <greg@blackbox>
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
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 ++++++++-
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
+++ 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);
}
......@@ -20,7 +22,7 @@ still might have problems. High-speed mode is enabled by default.
#if 0
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_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");
+
--
1.9.1
From 55ed27d2c44fcf2e808ba26cc2a1c9c4041500da Mon Sep 17 00:00:00 2001
From 4e5732952c3c2f14058bd7dbcba67d911d77bd39 Mon Sep 17 00:00:00 2001
From: Grigori Goronzy <greg@blackbox>
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
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 +-
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
+++ b/drivers/mmc/host/sdhci-bcm2708.c
@@ -73,7 +73,7 @@
......@@ -21,3 +23,6 @@ drive the SD interface at ideal frequencies.
/*****************************************************************************\
* *
--
1.9.1
From 9227615100c139c48fbbf39312b38c4430eac00d Mon Sep 17 00:00:00 2001
From f3cbdb41b8e7194b03523eceed5dd8b488f93909 Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
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
---
drivers/mmc/host/sdhci-bcm2708.c | 6 +++++-
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
+++ 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;
......@@ -18,7 +20,7 @@ Subject: [PATCH 016/174] Allow emmc clock to be specified as command line
#if 0
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)
{
......@@ -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");
+
--
1.9.1
From a6544a62be8711e727a0d774b55c5edeec12e531 Mon Sep 17 00:00:00 2001
From 93ad4d743dfa8a5f6bb1d7abf739c7149012099b Mon Sep 17 00:00:00 2001
From: popcornmix <popcornmix@gmail.com>
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