--- /dev/null
+From 0dbe15f88be5b2cdf4ca4145797861dfb0d583a5 Mon Sep 17 00:00:00 2001
+From: Stefan Richter <stefanr@s5r6.in-berlin.de>
+Date: Mon, 5 Aug 2013 15:14:36 +0200
+Subject: firewire: ohci: beautify some macro definitions
+
+From: Stefan Richter <stefanr@s5r6.in-berlin.de>
+
+commit 0dbe15f88be5b2cdf4ca4145797861dfb0d583a5 upstream.
+
+a) Sort device IDs by vendor -- device -- revision.
+
+b) Write quirk flags in hexadecimal. This affects the user-visible
+output of "modinfo firewire-ohci". Since more flags have been added
+recently, it is now easier to cope with them in hexadecimal represen-
+tation. Besides, the device-specific combination of quirk flags is
+shown in hexadecimal in the kernel log too. (And firewire-sbp2
+presents its own quirk flags in modinfo as hexadecimals as well.)
+
+Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/firewire/ohci.c | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+--- a/drivers/firewire/ohci.c
++++ b/drivers/firewire/ohci.c
+@@ -271,6 +271,7 @@ static inline struct fw_ohci *fw_ohci(st
+
+ static char ohci_driver_name[] = KBUILD_MODNAME;
+
++#define PCI_VENDOR_ID_PINNACLE_SYSTEMS 0x11bd
+ #define PCI_DEVICE_ID_AGERE_FW643 0x5901
+ #define PCI_DEVICE_ID_CREATIVE_SB1394 0x4001
+ #define PCI_DEVICE_ID_JMICRON_JMB38X_FW 0x2380
+@@ -278,17 +279,16 @@ static char ohci_driver_name[] = KBUILD_
+ #define PCI_DEVICE_ID_TI_TSB12LV26 0x8020
+ #define PCI_DEVICE_ID_TI_TSB82AA2 0x8025
+ #define PCI_DEVICE_ID_VIA_VT630X 0x3044
+-#define PCI_VENDOR_ID_PINNACLE_SYSTEMS 0x11bd
+ #define PCI_REV_ID_VIA_VT6306 0x46
+
+-#define QUIRK_CYCLE_TIMER 1
+-#define QUIRK_RESET_PACKET 2
+-#define QUIRK_BE_HEADERS 4
+-#define QUIRK_NO_1394A 8
+-#define QUIRK_NO_MSI 16
+-#define QUIRK_TI_SLLZ059 32
+-#define QUIRK_IR_WAKE 64
+-#define QUIRK_PHY_LCTRL_TIMEOUT 128
++#define QUIRK_CYCLE_TIMER 0x1
++#define QUIRK_RESET_PACKET 0x2
++#define QUIRK_BE_HEADERS 0x4
++#define QUIRK_NO_1394A 0x8
++#define QUIRK_NO_MSI 0x10
++#define QUIRK_TI_SLLZ059 0x20
++#define QUIRK_IR_WAKE 0x40
++#define QUIRK_PHY_LCTRL_TIMEOUT 0x80
+
+ /* In case of multiple matches in ohci_quirks[], only the first one is used. */
+ static const struct {
--- /dev/null
+From 0ca49345b6f489e95f8d6edeb0b092e257475b2a Mon Sep 17 00:00:00 2001
+From: Stefan Richter <stefanr@s5r6.in-berlin.de>
+Date: Thu, 6 Mar 2014 20:39:04 +0100
+Subject: firewire: ohci: fix probe failure with Agere/LSI controllers
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Stefan Richter <stefanr@s5r6.in-berlin.de>
+
+commit 0ca49345b6f489e95f8d6edeb0b092e257475b2a upstream.
+
+Since commit bd972688eb24
+"firewire: ohci: Fix 'failed to read phy reg' on FW643 rev8",
+there is a high chance that firewire-ohci fails to initialize LSI née
+Agere controllers.
+https://bugzilla.kernel.org/show_bug.cgi?id=65151
+
+Peter Hurley points out the reason: IEEE 1394a:2000 clause 5A.1 (or
+IEEE 1394:2008 clause 17.2.1) say: "The PHY shall insure that no more
+than 10 ms elapse from the reassertion of LPS until the interface is
+reset. The link shall not assert LReq until the reset is complete."
+In other words, the link needs to give the PHY at least 10 ms to get
+the interface operational.
+
+With just the msleep(1) in bd972688eb24, the first read_phy_reg()
+during ohci_enable() may happen before the phy-link interface reset was
+finished, and fail. Due to the high variability of msleep(n) with small
+n, this failure was not fully reproducible, and not apparent at all with
+low CONFIG_HZ setting.
+
+On the other hand, Peter can no longer reproduce the issue with FW643
+rev8. The read phy reg failures that happened back then may have had an
+unrelated cause. So, just revert bd972688eb24, except for the valid
+comment on TSB82AA2 cards.
+
+Reported-by: Mikhail Gavrilov
+Reported-by: Jay Fenlason <fenlason@redhat.com>
+Reported-by: Clemens Ladisch <clemens@ladisch.de>
+Reported-by: Peter Hurley <peter@hurleysoftware.com>
+Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/firewire/ohci.c | 15 ++-------------
+ 1 file changed, 2 insertions(+), 13 deletions(-)
+
+--- a/drivers/firewire/ohci.c
++++ b/drivers/firewire/ohci.c
+@@ -288,7 +288,6 @@ static char ohci_driver_name[] = KBUILD_
+ #define QUIRK_NO_MSI 0x10
+ #define QUIRK_TI_SLLZ059 0x20
+ #define QUIRK_IR_WAKE 0x40
+-#define QUIRK_PHY_LCTRL_TIMEOUT 0x80
+
+ /* In case of multiple matches in ohci_quirks[], only the first one is used. */
+ static const struct {
+@@ -301,10 +300,7 @@ static const struct {
+ QUIRK_BE_HEADERS},
+
+ {PCI_VENDOR_ID_ATT, PCI_DEVICE_ID_AGERE_FW643, 6,
+- QUIRK_PHY_LCTRL_TIMEOUT | QUIRK_NO_MSI},
+-
+- {PCI_VENDOR_ID_ATT, PCI_ANY_ID, PCI_ANY_ID,
+- QUIRK_PHY_LCTRL_TIMEOUT},
++ QUIRK_NO_MSI},
+
+ {PCI_VENDOR_ID_CREATIVE, PCI_DEVICE_ID_CREATIVE_SB1394, PCI_ANY_ID,
+ QUIRK_RESET_PACKET},
+@@ -351,7 +347,6 @@ MODULE_PARM_DESC(quirks, "Chip quirks (d
+ ", disable MSI = " __stringify(QUIRK_NO_MSI)
+ ", TI SLLZ059 erratum = " __stringify(QUIRK_TI_SLLZ059)
+ ", IR wake unreliable = " __stringify(QUIRK_IR_WAKE)
+- ", phy LCtrl timeout = " __stringify(QUIRK_PHY_LCTRL_TIMEOUT)
+ ")");
+
+ #define OHCI_PARAM_DEBUG_AT_AR 1
+@@ -2293,9 +2288,6 @@ static int ohci_enable(struct fw_card *c
+ * TI TSB82AA2 + TSB81BA3(A) cards signal LPS enabled early but
+ * cannot actually use the phy at that time. These need tens of
+ * millisecods pause between LPS write and first phy access too.
+- *
+- * But do not wait for 50msec on Agere/LSI cards. Their phy
+- * arbitration state machine may time out during such a long wait.
+ */
+
+ reg_write(ohci, OHCI1394_HCControlSet,
+@@ -2303,11 +2295,8 @@ static int ohci_enable(struct fw_card *c
+ OHCI1394_HCControl_postedWriteEnable);
+ flush_writes(ohci);
+
+- if (!(ohci->quirks & QUIRK_PHY_LCTRL_TIMEOUT))
++ for (lps = 0, i = 0; !lps && i < 3; i++) {
+ msleep(50);
+-
+- for (lps = 0, i = 0; !lps && i < 150; i++) {
+- msleep(1);
+ lps = reg_read(ohci, OHCI1394_HCControlSet) &
+ OHCI1394_HCControl_LPS;
+ }
--- /dev/null
+From 7dec935a3aa04412cba2cebe1524ae0d34a30c24 Mon Sep 17 00:00:00 2001
+From: "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>
+Date: Wed, 26 Feb 2014 10:54:36 -0500
+Subject: tracepoint: Do not waste memory on mods with no tracepoints
+
+From: "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>
+
+commit 7dec935a3aa04412cba2cebe1524ae0d34a30c24 upstream.
+
+No reason to allocate tp_module structures for modules that have no
+tracepoints. This just wastes memory.
+
+Fixes: b75ef8b44b1c "Tracepoint: Dissociate from module mutex"
+Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/tracepoint.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/kernel/tracepoint.c
++++ b/kernel/tracepoint.c
+@@ -641,6 +641,9 @@ static int tracepoint_module_coming(stru
+ struct tp_module *tp_mod, *iter;
+ int ret = 0;
+
++ if (!mod->num_tracepoints)
++ return 0;
++
+ /*
+ * We skip modules that taint the kernel, especially those with different
+ * module headers (for forced load), to make sure we don't cause a crash.
+@@ -684,6 +687,9 @@ static int tracepoint_module_going(struc
+ {
+ struct tp_module *pos;
+
++ if (!mod->num_tracepoints)
++ return 0;
++
+ mutex_lock(&tracepoints_mutex);
+ tracepoint_update_probe_range(mod->tracepoints_ptrs,
+ mod->tracepoints_ptrs + mod->num_tracepoints);