PKGBUILDs/core/linux-kirkwood-dt/archlinuxarm.patch

149 lines
4.9 KiB
Diff
Raw Normal View History

2016-03-16 04:29:54 +00:00
diff -ruN a/arch/arm/boot/dts/kirkwood-pogo_e02.dts b/arch/arm/boot/dts/kirkwood-pogo_e02.dts
2016-07-28 01:23:37 +00:00
--- a/arch/arm/boot/dts/kirkwood-pogo_e02.dts 2016-07-24 13:23:50.000000000 -0600
+++ b/arch/arm/boot/dts/kirkwood-pogo_e02.dts 2016-07-27 12:54:23.056453554 -0600
2016-03-16 04:29:54 +00:00
@@ -38,7 +38,7 @@
health {
label = "pogo_e02:green:health";
gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
- default-state = "keep";
+ default-state = "default-on";
};
fault {
label = "pogo_e02:orange:fault";
diff -ruN a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
2016-07-28 01:23:37 +00:00
--- a/drivers/ata/sata_mv.c 2016-07-24 13:23:50.000000000 -0600
+++ b/drivers/ata/sata_mv.c 2016-07-27 12:54:23.076453555 -0600
2015-04-15 10:28:36 +00:00
@@ -72,6 +72,7 @@
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_device.h>
#include <linux/libata.h>
+#include <linux/leds.h>
#define DRV_NAME "sata_mv"
#define DRV_VERSION "1.28"
2016-03-16 04:29:54 +00:00
@@ -1175,6 +1176,8 @@
{
int want_ncq = (protocol == ATA_PROT_NCQ);
+ ledtrig_ide_activity(ap->port_no);
+
if (pp->pp_flags & MV_PP_FLAG_EDMA_EN) {
int using_ncq = ((pp->pp_flags & MV_PP_FLAG_NCQ_EN) != 0);
if (want_ncq != using_ncq)
2015-04-15 10:28:36 +00:00
diff -ruN a/drivers/leds/trigger/Kconfig b/drivers/leds/trigger/Kconfig
2016-07-28 01:23:37 +00:00
--- a/drivers/leds/trigger/Kconfig 2016-07-24 13:23:50.000000000 -0600
+++ b/drivers/leds/trigger/Kconfig 2016-07-27 12:54:23.076453555 -0600
2015-04-15 10:28:36 +00:00
@@ -35,7 +35,6 @@
config LEDS_TRIGGER_IDE_DISK
bool "LED IDE Disk Trigger"
- depends on IDE_GD_ATA
depends on LEDS_TRIGGERS
help
This allows LEDs to be controlled by IDE disk activity.
diff -ruN a/drivers/leds/trigger/ledtrig-ide-disk.c b/drivers/leds/trigger/ledtrig-ide-disk.c
2016-07-28 01:23:37 +00:00
--- a/drivers/leds/trigger/ledtrig-ide-disk.c 2016-07-24 13:23:50.000000000 -0600
+++ b/drivers/leds/trigger/ledtrig-ide-disk.c 2016-07-27 12:57:57.336321911 -0600
@@ -17,20 +17,31 @@
2015-04-15 10:28:36 +00:00
#define BLINK_DELAY 30
-DEFINE_LED_TRIGGER(ledtrig_ide);
+DEFINE_LED_TRIGGER(ledtrig_ide1);
+DEFINE_LED_TRIGGER(ledtrig_ide2);
-void ledtrig_ide_activity(void)
+void ledtrig_ide_activity(int port_number)
{
2016-07-28 01:23:37 +00:00
unsigned long ide_blink_delay = BLINK_DELAY;
2015-04-15 10:28:36 +00:00
- led_trigger_blink_oneshot(ledtrig_ide,
- &ide_blink_delay, &ide_blink_delay, 0);
2016-07-28 01:23:37 +00:00
+ switch (port_number) {
+ case 0:
+ led_trigger_blink_oneshot(ledtrig_ide1, &ide_blink_delay, &ide_blink_delay, 0);
+ break;
+ case 1:
+ led_trigger_blink_oneshot(ledtrig_ide2, &ide_blink_delay, &ide_blink_delay, 0);
+ break;
+ default:
+ break;
+ }
2015-04-15 10:28:36 +00:00
}
EXPORT_SYMBOL(ledtrig_ide_activity);
static int __init ledtrig_ide_init(void)
{
- led_trigger_register_simple("ide-disk", &ledtrig_ide);
2016-07-28 01:23:37 +00:00
+ led_trigger_register_simple("ide-disk1", &ledtrig_ide1);
+ led_trigger_register_simple("ide-disk2", &ledtrig_ide2);
+
2015-04-15 10:28:36 +00:00
return 0;
}
2016-03-16 04:29:54 +00:00
device_initcall(ledtrig_ide_init);
2015-04-15 10:28:36 +00:00
diff -ruN a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
2016-07-28 01:23:37 +00:00
--- a/drivers/mmc/core/core.c 2016-07-24 13:23:50.000000000 -0600
+++ b/drivers/mmc/core/core.c 2016-07-27 12:54:23.081453555 -0600
@@ -857,7 +857,7 @@
2015-04-15 10:28:36 +00:00
*/
limit_us = 3000000;
else
- limit_us = 100000;
+ limit_us = 200000;
/*
* SDHC cards always use these fixed values.
diff -ruN a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
2016-07-28 01:23:37 +00:00
--- a/drivers/mmc/core/sd.c 2016-07-24 13:23:50.000000000 -0600
+++ b/drivers/mmc/core/sd.c 2016-07-27 12:54:23.081453555 -0600
@@ -363,6 +363,15 @@
2015-04-15 10:28:36 +00:00
return -ENOMEM;
}
+ /*
+ * Some SDHC cards, notably those with a Sandisk SD controller
+ * (also found in Kingston products) need a bit of slack
+ * before successfully handling the SWITCH command. So far,
+ * cards identifying themselves as "SD04G" and "SD08G" are
+ * affected
+ */
+ udelay(100);
+
err = mmc_sd_switch(card, 1, 0, 1, status);
if (err)
goto out;
diff -ruN a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c
2016-07-28 01:23:37 +00:00
--- a/drivers/mmc/host/mvsdio.c 2016-07-24 13:23:50.000000000 -0600
+++ b/drivers/mmc/host/mvsdio.c 2016-07-27 12:54:23.081453555 -0600
2016-03-16 04:29:54 +00:00
@@ -23,6 +23,7 @@
2015-04-15 10:28:36 +00:00
#include <linux/of_irq.h>
#include <linux/mmc/host.h>
#include <linux/mmc/slot-gpio.h>
+#include <linux/mmc/sd.h>
#include <asm/sizes.h>
#include <asm/unaligned.h>
2016-03-16 04:29:54 +00:00
@@ -149,6 +150,7 @@
2015-04-15 10:28:36 +00:00
dev_dbg(host->dev, "cmd %d (hw state 0x%04x)\n",
cmd->opcode, mvsd_read(MVSD_HW_STATE));
+ if (cmd->opcode == SD_SWITCH) mdelay(1); /* Voodoo */
cmdreg = MVSD_CMD_INDEX(cmd->opcode);
diff -ruN a/include/linux/leds.h b/include/linux/leds.h
2016-07-28 01:23:37 +00:00
--- a/include/linux/leds.h 2016-07-24 13:23:50.000000000 -0600
+++ b/include/linux/leds.h 2016-07-27 12:54:23.081453555 -0600
@@ -326,9 +326,9 @@
2015-04-15 10:28:36 +00:00
/* Trigger specific functions */
#ifdef CONFIG_LEDS_TRIGGER_IDE_DISK
-extern void ledtrig_ide_activity(void);
+extern void ledtrig_ide_activity(int port_number);
#else
-static inline void ledtrig_ide_activity(void) {}
+static inline void ledtrig_ide_activity(int port_number) {}
#endif
2016-07-28 01:23:37 +00:00
#ifdef CONFIG_LEDS_TRIGGER_MTD