PKGBUILDs/core/linux-kirkwood-dt/archlinuxarm.patch
2016-05-30 13:07:42 -06:00

171 lines
5.6 KiB
Diff

diff -ruN a/arch/arm/boot/dts/kirkwood-nsa320.dts b/arch/arm/boot/dts/kirkwood-nsa320.dts
--- a/arch/arm/boot/dts/kirkwood-nsa320.dts 2016-03-13 22:28:54.000000000 -0600
+++ b/arch/arm/boot/dts/kirkwood-nsa320.dts 2016-03-15 20:36:16.470111122 -0600
@@ -193,10 +193,19 @@
};
};
+ hwmon {
+ compatible = "zyxel,nsa320-mcu";
+ pinctrl-0 = <&pmx_mcu_data &pmx_mcu_clk &pmx_mcu_act>;
+ pinctrl-names = "default";
+
+ data-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
+ clk-gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
+ act-gpios = <&gpio0 17 GPIO_ACTIVE_LOW>;
+ };
+
/* The following pins are currently not assigned to a driver,
some of them should be configured as inputs.
- pinctrl-0 = <&pmx_mcu_data &pmx_mcu_clk &pmx_mcu_act
- &pmx_htp &pmx_vid_b1
+ pinctrl-0 = <&pmx_htp &pmx_vid_b1
&pmx_power_resume_data &pmx_power_resume_clk>; */
};
diff -ruN a/arch/arm/boot/dts/kirkwood-pogo_e02.dts b/arch/arm/boot/dts/kirkwood-pogo_e02.dts
--- a/arch/arm/boot/dts/kirkwood-pogo_e02.dts 2016-03-13 22:28:54.000000000 -0600
+++ b/arch/arm/boot/dts/kirkwood-pogo_e02.dts 2016-03-15 20:36:16.475111102 -0600
@@ -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
--- a/drivers/ata/sata_mv.c 2016-03-13 22:28:54.000000000 -0600
+++ b/drivers/ata/sata_mv.c 2016-03-15 20:36:16.415111342 -0600
@@ -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"
@@ -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)
diff -ruN a/drivers/leds/trigger/Kconfig b/drivers/leds/trigger/Kconfig
--- a/drivers/leds/trigger/Kconfig 2016-03-13 22:28:54.000000000 -0600
+++ b/drivers/leds/trigger/Kconfig 2016-03-15 20:36:16.445111222 -0600
@@ -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
--- a/drivers/leds/trigger/ledtrig-ide-disk.c 2016-03-13 22:28:54.000000000 -0600
+++ b/drivers/leds/trigger/ledtrig-ide-disk.c 2016-03-15 20:45:22.852900230 -0600
@@ -17,19 +17,29 @@
#define BLINK_DELAY 30
-DEFINE_LED_TRIGGER(ledtrig_ide);
+DEFINE_LED_TRIGGER(ledtrig_ide1);
+DEFINE_LED_TRIGGER(ledtrig_ide2);
static unsigned long ide_blink_delay = BLINK_DELAY;
-void ledtrig_ide_activity(void)
+void ledtrig_ide_activity(int port_number)
{
- led_trigger_blink_oneshot(ledtrig_ide,
- &ide_blink_delay, &ide_blink_delay, 0);
+ 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;
+ }
}
EXPORT_SYMBOL(ledtrig_ide_activity);
static int __init ledtrig_ide_init(void)
{
- led_trigger_register_simple("ide-disk", &ledtrig_ide);
+ led_trigger_register_simple("ide-disk1", &ledtrig_ide1);
+ led_trigger_register_simple("ide-disk2", &ledtrig_ide2);
return 0;
}
device_initcall(ledtrig_ide_init);
diff -ruN a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
--- a/drivers/mmc/core/core.c 2016-03-13 22:28:54.000000000 -0600
+++ b/drivers/mmc/core/core.c 2016-03-15 20:36:16.450111202 -0600
@@ -850,7 +850,7 @@
*/
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
--- a/drivers/mmc/core/sd.c 2016-03-13 22:28:54.000000000 -0600
+++ b/drivers/mmc/core/sd.c 2016-03-15 20:36:16.450111202 -0600
@@ -365,6 +365,15 @@
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
--- a/drivers/mmc/host/mvsdio.c 2016-03-13 22:28:54.000000000 -0600
+++ b/drivers/mmc/host/mvsdio.c 2016-03-15 20:36:16.455111182 -0600
@@ -23,6 +23,7 @@
#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>
@@ -149,6 +150,7 @@
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
--- a/include/linux/leds.h 2016-03-13 22:28:54.000000000 -0600
+++ b/include/linux/leds.h 2016-03-15 20:36:16.455111182 -0600
@@ -320,9 +320,9 @@
/* 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
#if defined(CONFIG_LEDS_TRIGGER_CAMERA) || defined(CONFIG_LEDS_TRIGGER_CAMERA_MODULE)