Merge "USB: dwc3: Add support for basic OTG in superspeed mode"
diff --git a/Documentation/devicetree/bindings/ata/ahci-platform.txt b/Documentation/devicetree/bindings/ata/ahci-platform.txt
index 8bb8a76..3e309e4 100644
--- a/Documentation/devicetree/bindings/ata/ahci-platform.txt
+++ b/Documentation/devicetree/bindings/ata/ahci-platform.txt
@@ -4,7 +4,8 @@
Each SATA controller should have its own node.
Required properties:
-- compatible : compatible list, contains "calxeda,hb-ahci" or "snps,spear-ahci"
+- compatible : compatible list, contains "calxeda,hb-ahci" or
+ "snps,spear-ahci" or "qcom,msm-ahci"
- interrupts : <interrupt mapping for SATA IRQ>
- reg : <registers mapping>
diff --git a/arch/arm/boot/dts/mpq8092.dtsi b/arch/arm/boot/dts/mpq8092.dtsi
index f9e3bd5..0ab0a0c 100644
--- a/arch/arm/boot/dts/mpq8092.dtsi
+++ b/arch/arm/boot/dts/mpq8092.dtsi
@@ -271,6 +271,12 @@
qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104";
qcom,current-limit = <800>;
};
+
+ sata: sata@fc580000 {
+ compatible = "qcom,msm-ahci";
+ reg = <0xfc580000 0x17c>;
+ interrupts = <0 243 0>;
+ };
};
&gdsc_venus {
diff --git a/arch/arm/mach-msm/devices-msm7x27a.c b/arch/arm/mach-msm/devices-msm7x27a.c
index 5aa747a..2d9872e 100644
--- a/arch/arm/mach-msm/devices-msm7x27a.c
+++ b/arch/arm/mach-msm/devices-msm7x27a.c
@@ -1939,6 +1939,8 @@
else if (msm8625_cpu_id() == MSM8625)
msm_cpr_pdata.max_freq = 1008000;
+ if (machine_is_qrd_skud_prime() || cpu_is_msm8625q())
+ msm_cpr_pdata.step_size = 6250;
platform_device_register(&msm8625_vp_device);
platform_device_register(&msm8625_device_cpr);
}
diff --git a/drivers/ata/ahci_platform.c b/drivers/ata/ahci_platform.c
index 9e419e1..82d19e0 100644
--- a/drivers/ata/ahci_platform.c
+++ b/drivers/ata/ahci_platform.c
@@ -281,6 +281,7 @@
static const struct of_device_id ahci_of_match[] = {
{ .compatible = "calxeda,hb-ahci", },
{ .compatible = "snps,spear-ahci", },
+ { .compatible = "qcom,msm-ahci", },
{},
};
MODULE_DEVICE_TABLE(of, ahci_of_match);
diff --git a/drivers/misc/isa1200.c b/drivers/misc/isa1200.c
index 6c3e787..604ffd7 100644
--- a/drivers/misc/isa1200.c
+++ b/drivers/misc/isa1200.c
@@ -42,7 +42,7 @@
struct hrtimer timer;
struct timed_output_dev dev;
struct work_struct work;
- spinlock_t lock;
+ struct mutex lock;
unsigned int enable;
unsigned int period_ns;
bool is_len_gpio_valid;
@@ -216,9 +216,8 @@
{
struct isa1200_chip *haptic = container_of(dev, struct isa1200_chip,
dev);
- unsigned long flags;
- spin_lock_irqsave(&haptic->lock, flags);
+ mutex_lock(&haptic->lock);
hrtimer_cancel(&haptic->timer);
if (value == 0)
haptic->enable = 0;
@@ -230,7 +229,7 @@
ktime_set(value / 1000, (value % 1000) * 1000000),
HRTIMER_MODE_REL);
}
- spin_unlock_irqrestore(&haptic->lock, flags);
+ mutex_unlock(&haptic->lock);
schedule_work(&haptic->work);
}
@@ -501,7 +500,7 @@
}
}
- spin_lock_init(&haptic->lock);
+ mutex_init(&haptic->lock);
INIT_WORK(&haptic->work, isa1200_chip_work);
haptic->clk_on = false;
@@ -591,6 +590,7 @@
hen_gpio_fail:
timed_output_dev_unregister(&haptic->dev);
timed_reg_fail:
+ mutex_destroy(&haptic->lock);
if (pdata->power_on)
pdata->power_on(0);
pwr_up_fail:
@@ -637,6 +637,9 @@
ISA1200_HCTRL1_RESET);
+ /* destroy mutex */
+ mutex_destroy(&haptic->lock);
+
/* power-off the chip */
if (haptic->pdata->regulator_info) {
isa1200_reg_power(haptic, false);