Add use_native_backlight=1 quirk for HP ProBook 4540s (rhbz#1025690)

- Add use_native_backlight=1 quirk for HP EliteBook 2014 series (rhbz#1123565)
- Blacklist usb bulk streams on Etron EJ168 xhci controllers (rhbz#1121288)
This commit is contained in:
Hans de Goede 2014-07-28 17:55:47 +02:00
parent a9f97e2368
commit 2c75b3dc55
4 changed files with 210 additions and 0 deletions

View File

@ -0,0 +1,45 @@
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1025690
Upstream-status: Included in 3.16
Note: Not needed for 3.16 and higher since use_native_backlight=1 is the
default there, upstream is maintaining the quirk list for now in case it is
decided to flip the default back.
From 4cf465b579c20bee868464f5d664f8d2d96cd370 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Wed, 16 Jul 2014 13:28:34 +0200
Subject: [PATCH] ACPI / video: Add use_native_backlight quirk for HP ProBook
4540s
As reported here:
https://bugzilla.redhat.com/show_bug.cgi?id=1025690
This is yet another model which needs this quirk.
Link: https://bugzilla.redhat.com/show_bug.cgi?id=1025690
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/acpi/video.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 29649c1..350d52a 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -581,6 +581,14 @@ static struct dmi_system_id video_dmi_table[] __initdata = {
},
{
.callback = video_set_use_native_backlight,
+ .ident = "HP ProBook 4540s",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP ProBook 4540s"),
+ },
+ },
+ {
+ .callback = video_set_use_native_backlight,
.ident = "HP ProBook 2013 models",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
--
2.0.1

View File

@ -0,0 +1,43 @@
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1123565
Upstream-status: Send upstream for 3.17 with Cc: stable
Note: Not needed for 3.16 and higher since use_native_backlight=1 is the
default there, upstream is maintaining the quirk list for now in case it is
decided to flip the default back.
From e1eaa90a9691696df34040f40f5dbc1d91a394f0 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 28 Jul 2014 17:31:44 +0200
Subject: [PATCH] acpi-video: Add video.use_native_backlight=1 for HP EliteBook
2014 models
https://bugzilla.redhat.com/show_bug.cgi?id=1123565
Cc: stable@vger.kernel.org
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/acpi/video.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 18c0e69..8268843 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -673,6 +673,15 @@ static struct dmi_system_id video_dmi_table[] __initdata = {
},
{
.callback = video_set_use_native_backlight,
+ .ident = "HP EliteBook 2014 models",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP EliteBook "),
+ DMI_MATCH(DMI_PRODUCT_NAME, " G2"),
+ },
+ },
+ {
+ .callback = video_set_use_native_backlight,
.ident = "HP ZBook 14",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
--
2.0.1

View File

@ -0,0 +1,99 @@
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1121288
Upstream-status: Send upstream for 3.16/3.17 with Cc: stable
From 82170a95391209b87bbedd0b3aa7636161573ddb Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Fri, 25 Jul 2014 12:28:02 +0200
Subject: [PATCH] xhci: Blacklist using streams on the Etron EJ168 controller
Streams on the EJ168 do not work as they should. I've spend 2 days trying
to get them to work, but without success.
The first problem is that when ever you ring the stream-ring doorbell, the
controller starts executing trbs at the beginning of the first ring segment,
event if it ended somewhere else previously. This can be worked around by
allowing enqueing only one td (not a problem with how streams are typically
used) and then resetting our copies of the enqueueing en dequeueing pointers
on a td completion to match what the controller seems to be doing.
This way things seem to start working with uas and instead of being able
to complete only the very first scsi command, the scsi core can probe the disk.
But then things break later on when td-s get enqueued with more then one
trb. The controller does seem to increase its dequeue pointer while executing
a stream-ring (data transfer events I inserted for debugging do trigger).
However execution seems to stop at the final normal trb of a multi trb td,
even if there is a data transfer event inserted after the final trb.
The first problem alone is a serious deviation from the spec, and esp.
dealing with cancellation would have been very tricky if not outright
impossible, but the second problem simply is a deal breaker altogether,
so this patch simply disables streams.
Note this will cause the usb-storage + uas driver pair to automatically switch
to using usb-storage instead of uas on these devices, essentially reverting
to the 3.14 and earlier behavior when uas was marked CONFIG_BROKEN.
https://bugzilla.redhat.com/show_bug.cgi?id=1121288
https://bugzilla.kernel.org/show_bug.cgi?id=80101
Cc: stable@vger.kernel.org # 3.15
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/usb/host/xhci-pci.c | 4 +++-
drivers/usb/host/xhci.c | 3 ++-
drivers/usb/host/xhci.h | 2 ++
3 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index e20520f..464049f 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -143,6 +143,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
xhci_dbg_trace(xhci, trace_xhci_dbg_quirks,
"QUIRK: Resetting on resume");
xhci->quirks |= XHCI_TRUST_TX_LENGTH;
+ xhci->quirks |= XHCI_BROKEN_STREAMS;
}
if (pdev->vendor == PCI_VENDOR_ID_RENESAS &&
pdev->device == 0x0015)
@@ -230,7 +231,8 @@ static int xhci_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
goto put_usb3_hcd;
/* Roothub already marked as USB 3.0 speed */
- if (HCC_MAX_PSA(xhci->hcc_params) >= 4)
+ if (!(xhci->quirks & XHCI_BROKEN_STREAMS) &&
+ HCC_MAX_PSA(xhci->hcc_params) >= 4)
xhci->shared_hcd->can_do_streams = 1;
/* USB-2 and USB-3 roothubs initialized, allow runtime pm suspend */
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 7d02e1b..758bc31 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -3163,7 +3163,8 @@ int xhci_alloc_streams(struct usb_hcd *hcd, struct usb_device *udev,
num_streams);
/* MaxPSASize value 0 (2 streams) means streams are not supported */
- if (HCC_MAX_PSA(xhci->hcc_params) < 4) {
+ if ((xhci->quirks & XHCI_BROKEN_STREAMS) ||
+ HCC_MAX_PSA(xhci->hcc_params) < 4) {
xhci_dbg(xhci, "xHCI controller does not support streams.\n");
return -ENOSYS;
}
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index 1411069..88b2958 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1558,6 +1558,8 @@ struct xhci_hcd {
#define XHCI_PLAT (1 << 16)
#define XHCI_SLOW_SUSPEND (1 << 17)
#define XHCI_SPURIOUS_WAKEUP (1 << 18)
+/* For controllers with a broken beyond repair streams implementation */
+#define XHCI_BROKEN_STREAMS (1 << 19)
unsigned int num_active_eps;
unsigned int limit_active_eps;
/* There are two roothubs to keep track of bus suspend info for */
--
2.0.1

View File

@ -770,6 +770,15 @@ Patch25123: drm-try-harder-to-avoid-regression-when-merging-mode.patch
#CVE-2014-5077 rhbz 1122982 1123696
Patch25124: net-v2-net-sctp-inherit-auth_capable-on-INIT-collisions.patch
#rhbz 1025690
Patch25125: 0001-ACPI-video-Add-use_native_backlight-quirk-for-HP-Pro.patch
#rhbz 1123565
Patch25126: 0001-acpi-video-Add-video.use_native_backlight-1-for-HP-E.patch
#rhbz 1121288
Patch25127: 0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch
# END OF PATCH DEFINITIONS
%endif
@ -1499,6 +1508,15 @@ ApplyPatch drm-try-harder-to-avoid-regression-when-merging-mode.patch
#CVE-2014-5077 rhbz 1122982 1123696
ApplyPatch net-v2-net-sctp-inherit-auth_capable-on-INIT-collisions.patch
#rhbz 1025690
ApplyPatch 0001-ACPI-video-Add-use_native_backlight-quirk-for-HP-Pro.patch
#rhbz 1123565
ApplyPatch 0001-acpi-video-Add-video.use_native_backlight-1-for-HP-E.patch
#rhbz 1121288
ApplyPatch 0001-xhci-Blacklist-using-streams-on-the-Etron-EJ168-cont.patch
# END OF PATCH APPLICATIONS
%endif
@ -2310,6 +2328,11 @@ fi
# ||----w |
# || ||
%changelog
* Mon Jul 28 2014 Hans de Goede <hdegoede@redhat.com>
- Add use_native_backlight=1 quirk for HP ProBook 4540s (rhbz#1025690)
- Add use_native_backlight=1 quirk for HP EliteBook 2014 series (rhbz#1123565)
- Blacklist usb bulk streams on Etron EJ168 xhci controllers (rhbz#1121288)
* Mon Jul 28 2014 Josh Boyer <jwboyer@fedoraproject.org>
- CVE-2014-5077 sctp: fix NULL ptr dereference (rhbz 1122982 1123696)