Linux v3.16.2
This commit is contained in:
parent
0b76b87d52
commit
38bca0a4f0
@ -1,45 +0,0 @@
|
||||
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
|
||||
|
@ -1,71 +0,0 @@
|
||||
Bugzilla: 1101386
|
||||
Upstream-status: 3.16
|
||||
|
||||
From 4d4b199b5119389995418db555fa08b53142a58d Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Tue, 6 May 2014 17:34:42 +0200
|
||||
Subject: [PATCH 1/2] ALSA: hda - Add dock pin setups for Thinkpad T440
|
||||
|
||||
The headphone and mic jacks on Thinkpad T440 are assigned to pins NID
|
||||
0x16 and 0x19, respectively. These need to be set up manually by a
|
||||
fixup.
|
||||
|
||||
Reported-and-tested-by: Joschi Brauchle <joschi.brauchle@tum.de>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
|
||||
Conflicts:
|
||||
sound/pci/hda/patch_realtek.c
|
||||
---
|
||||
sound/pci/hda/patch_realtek.c | 15 ++++++++++++++-
|
||||
1 file changed, 14 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
|
||||
index 10014ed541cf..007dd0d4442e 100644
|
||||
--- a/sound/pci/hda/patch_realtek.c
|
||||
+++ b/sound/pci/hda/patch_realtek.c
|
||||
@@ -4158,6 +4158,7 @@ enum {
|
||||
ALC255_FIXUP_DELL2_MIC_NO_PRESENCE,
|
||||
ALC255_FIXUP_HEADSET_MODE,
|
||||
ALC255_FIXUP_HEADSET_MODE_NO_HP_MIC,
|
||||
+ ALC292_FIXUP_TPT440_DOCK,
|
||||
};
|
||||
|
||||
static const struct hda_fixup alc269_fixups[] = {
|
||||
@@ -4558,6 +4559,16 @@ static const struct hda_fixup alc269_fixups[] = {
|
||||
.type = HDA_FIXUP_FUNC,
|
||||
.v.func = alc_fixup_headset_mode_alc255_no_hp_mic,
|
||||
},
|
||||
+ [ALC292_FIXUP_TPT440_DOCK] = {
|
||||
+ .type = HDA_FIXUP_PINS,
|
||||
+ .v.pins = (const struct hda_pintbl[]) {
|
||||
+ { 0x16, 0x21211010 }, /* dock headphone */
|
||||
+ { 0x19, 0x21a11010 }, /* dock mic */
|
||||
+ { }
|
||||
+ },
|
||||
+ .chained = true,
|
||||
+ .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST
|
||||
+ },
|
||||
};
|
||||
|
||||
static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
||||
@@ -4736,7 +4747,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
||||
SND_PCI_QUIRK(0x17aa, 0x21fb, "Thinkpad T430s", ALC269_FIXUP_LENOVO_DOCK),
|
||||
SND_PCI_QUIRK(0x17aa, 0x2203, "Thinkpad X230 Tablet", ALC269_FIXUP_LENOVO_DOCK),
|
||||
SND_PCI_QUIRK(0x17aa, 0x2208, "Thinkpad T431s", ALC269_FIXUP_LENOVO_DOCK),
|
||||
- SND_PCI_QUIRK(0x17aa, 0x220c, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
|
||||
+ SND_PCI_QUIRK(0x17aa, 0x220c, "Thinkpad T440s", ALC292_FIXUP_TPT440_DOCK),
|
||||
+ SND_PCI_QUIRK(0x17aa, 0x220e, "Thinkpad T440p", ALC292_FIXUP_TPT440_DOCK),
|
||||
SND_PCI_QUIRK(0x17aa, 0x2212, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
|
||||
SND_PCI_QUIRK(0x17aa, 0x2214, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
|
||||
SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
|
||||
@@ -4814,6 +4826,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
|
||||
{.id = ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, .name = "dell-headset-dock"},
|
||||
{.id = ALC283_FIXUP_CHROME_BOOK, .name = "alc283-dac-wcaps"},
|
||||
{.id = ALC283_FIXUP_SENSE_COMBO_JACK, .name = "alc283-sense-combo"},
|
||||
+ {.id = ALC292_FIXUP_TPT440_DOCK, .name = "tpt440-dock"},
|
||||
{}
|
||||
};
|
||||
|
||||
--
|
||||
1.9.3
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,102 +0,0 @@
|
||||
Bugzilla: 1089583
|
||||
Upstream-status: Sent for 3.15
|
||||
|
||||
From 4cebb979af8d7bd1ec463406eaf57a44bd5b9f04 Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
||||
Date: Tue, 22 Apr 2014 11:21:00 -0400
|
||||
Subject: [PATCH] HID: rmi: do not handle touchscreens through hid-rmi
|
||||
|
||||
Currently, hid-rmi drives every Synaptics product, but the touchscreens
|
||||
on the Windows tablets should be handled through hid-multitouch.
|
||||
|
||||
Instead of providing a long list of PIDs, rely on the scan_report
|
||||
capability to detect which should go to hid-multitouch, and which
|
||||
should not go to hid-rmi.
|
||||
|
||||
We introduce a generic HID_GROUP_HAVE_SPECIAL_DRIVER which can be reused
|
||||
amoung other drivers if they want to have a catch rule but still
|
||||
have multitouch devices handled through hid-multitouch.
|
||||
|
||||
related bug:
|
||||
https://bugzilla.kernel.org/show_bug.cgi?id=74241
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1089583
|
||||
|
||||
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
||||
---
|
||||
drivers/hid/hid-core.c | 10 ++++++++--
|
||||
drivers/hid/hid-rmi.c | 6 ++++--
|
||||
include/linux/hid.h | 13 +++++++++++++
|
||||
3 files changed, 25 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
|
||||
index 6ba2fd0..ea18639 100644
|
||||
--- a/drivers/hid/hid-core.c
|
||||
+++ b/drivers/hid/hid-core.c
|
||||
@@ -776,6 +776,14 @@ static int hid_scan_report(struct hid_device *hid)
|
||||
(hid->group == HID_GROUP_MULTITOUCH))
|
||||
hid->group = HID_GROUP_MULTITOUCH_WIN_8;
|
||||
|
||||
+ /*
|
||||
+ * Vendor specific handlings
|
||||
+ */
|
||||
+ if ((hid->vendor == USB_VENDOR_ID_SYNAPTICS) &&
|
||||
+ (hid->group == HID_GROUP_GENERIC))
|
||||
+ /* hid-rmi should take care of them, not hid-generic */
|
||||
+ hid->group = HID_GROUP_HAVE_SPECIAL_DRIVER;
|
||||
+
|
||||
vfree(parser);
|
||||
return 0;
|
||||
}
|
||||
@@ -1840,8 +1848,6 @@ static const struct hid_device_id hid_have_special_driver[] = {
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGP_MOUSE) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_STEELSERIES, USB_DEVICE_ID_STEELSERIES_SRWS1) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_SUNPLUS, USB_DEVICE_ID_SUNPLUS_WDESKTOP) },
|
||||
- { HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, HID_ANY_ID) },
|
||||
- { HID_I2C_DEVICE(USB_VENDOR_ID_SYNAPTICS, HID_ANY_ID) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_THINGM, USB_DEVICE_ID_BLINK1) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb300) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb304) },
|
||||
diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
|
||||
index a4f04d4..a97a373 100644
|
||||
--- a/drivers/hid/hid-rmi.c
|
||||
+++ b/drivers/hid/hid-rmi.c
|
||||
@@ -863,8 +863,10 @@ static void rmi_remove(struct hid_device *hdev)
|
||||
}
|
||||
|
||||
static const struct hid_device_id rmi_id[] = {
|
||||
- { HID_I2C_DEVICE(USB_VENDOR_ID_SYNAPTICS, HID_ANY_ID) },
|
||||
- { HID_USB_DEVICE(USB_VENDOR_ID_SYNAPTICS, HID_ANY_ID) },
|
||||
+ { HID_DEVICE(BUS_I2C, HID_GROUP_HAVE_SPECIAL_DRIVER,
|
||||
+ USB_VENDOR_ID_SYNAPTICS, HID_ANY_ID) },
|
||||
+ { HID_DEVICE(BUS_USB, HID_GROUP_HAVE_SPECIAL_DRIVER,
|
||||
+ USB_VENDOR_ID_SYNAPTICS, HID_ANY_ID) },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(hid, rmi_id);
|
||||
diff --git a/include/linux/hid.h b/include/linux/hid.h
|
||||
index 1b5f1e9..2fdd612 100644
|
||||
--- a/include/linux/hid.h
|
||||
+++ b/include/linux/hid.h
|
||||
@@ -299,6 +299,19 @@ struct hid_item {
|
||||
#define HID_GROUP_MULTITOUCH 0x0002
|
||||
#define HID_GROUP_SENSOR_HUB 0x0003
|
||||
#define HID_GROUP_MULTITOUCH_WIN_8 0x0004
|
||||
+#define HID_GROUP_HAVE_SPECIAL_DRIVER 0xffff
|
||||
+/*
|
||||
+ * HID_GROUP_HAVE_SPECIAL_DRIVER should be used when the device needs to be
|
||||
+ * scanned in case it is handled by either hid-multitouch, hid-generic,
|
||||
+ * hid-sensor-hub or any other generic hid driver.
|
||||
+ *
|
||||
+ * Devices declared in hid_have_special_driver[] in hid-core.c can use
|
||||
+ * HID_GROUP_ANY instead because there will be not overlap between their
|
||||
+ * specific driver and a generic one.
|
||||
+ *
|
||||
+ * Note: HID_GROUP_ANY is declared in linux/mod_devicetable.h
|
||||
+ * and has a value of 0x0000
|
||||
+ */
|
||||
|
||||
/*
|
||||
* This is the global environment of the parser. This information is
|
||||
--
|
||||
1.9.0
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,43 +0,0 @@
|
||||
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
|
||||
|
@ -1,36 +0,0 @@
|
||||
From 86da2d12cf6f76b1fa487f7acf3995f058a2e516 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 1 Aug 2014 17:27:49 +0200
|
||||
Subject: [PATCH v2 1/2] uas: Limit qdepth to 32 when connected over usb-2
|
||||
|
||||
Some jmicron uas chipsets act up (they disconnect from the bus) when sending
|
||||
more then 32 commands to them at once.
|
||||
|
||||
Rather then building an ever growing list with usb-id based quirks for
|
||||
devices using this chipset, simply reduce the qdepth to 32 when connected
|
||||
over usb-2. 32 should be plenty to keep things close to maximum
|
||||
possible throughput on usb-2.
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Tested-and-reported-by: Laszlo T. <tlacix@gmail.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/usb/storage/uas.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/usb/storage/uas.c b/drivers/usb/storage/uas.c
|
||||
index 511b229..3f42785 100644
|
||||
--- a/drivers/usb/storage/uas.c
|
||||
+++ b/drivers/usb/storage/uas.c
|
||||
@@ -1026,7 +1026,7 @@ static int uas_configure_endpoints(struct uas_dev_info *devinfo)
|
||||
usb_endpoint_num(&eps[3]->desc));
|
||||
|
||||
if (udev->speed != USB_SPEED_SUPER) {
|
||||
- devinfo->qdepth = 256;
|
||||
+ devinfo->qdepth = 32;
|
||||
devinfo->use_streams = 0;
|
||||
} else {
|
||||
devinfo->qdepth = usb_alloc_streams(devinfo->intf, eps + 1,
|
||||
--
|
||||
2.0.4
|
||||
|
@ -1,99 +0,0 @@
|
||||
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
|
||||
|
@ -1,32 +0,0 @@
|
||||
Bugzilla: 1101386
|
||||
Upstream-status: 3.16
|
||||
|
||||
From 96e3196e400cab89aeaedb247a748e254fb8b11f Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Fri, 27 Jun 2014 12:14:35 +0200
|
||||
Subject: [PATCH 2/2] ALSA: hda - Add a fixup for Thinkpad T540p
|
||||
|
||||
The similar fixup as T440 is needed for supporting the dock on T540.
|
||||
|
||||
Reported-by: Jim Minter <jminter@redhat.com>
|
||||
Cc: <stable@vger.kernel.org>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
sound/pci/hda/patch_realtek.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
|
||||
index 007dd0d4442e..9d2b45524be8 100644
|
||||
--- a/sound/pci/hda/patch_realtek.c
|
||||
+++ b/sound/pci/hda/patch_realtek.c
|
||||
@@ -4749,6 +4749,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
|
||||
SND_PCI_QUIRK(0x17aa, 0x2208, "Thinkpad T431s", ALC269_FIXUP_LENOVO_DOCK),
|
||||
SND_PCI_QUIRK(0x17aa, 0x220c, "Thinkpad T440s", ALC292_FIXUP_TPT440_DOCK),
|
||||
SND_PCI_QUIRK(0x17aa, 0x220e, "Thinkpad T440p", ALC292_FIXUP_TPT440_DOCK),
|
||||
+ SND_PCI_QUIRK(0x17aa, 0x2210, "Thinkpad T540p", ALC292_FIXUP_TPT440_DOCK),
|
||||
SND_PCI_QUIRK(0x17aa, 0x2212, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
|
||||
SND_PCI_QUIRK(0x17aa, 0x2214, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
|
||||
SND_PCI_QUIRK(0x17aa, 0x2215, "Thinkpad", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
|
||||
--
|
||||
1.9.3
|
||||
|
@ -1,60 +0,0 @@
|
||||
Bugzilla: 1090161
|
||||
Upstream-status: sent https://patchwork.kernel.org/patch/4055781/
|
||||
|
||||
From patchwork Thu Apr 24 22:26:38 2014
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
MIME-Version: 1.0
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Subject: HID: rmi: do not fetch more than 16 bytes in a query
|
||||
From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
||||
X-Patchwork-Id: 4055781
|
||||
Message-Id: <1398378398-24825-1-git-send-email-benjamin.tissoires@redhat.com>
|
||||
To: Andrew Duggan <aduggan@synaptics.com>,
|
||||
Christopher Heiny <cheiny@synaptics.com>,
|
||||
Jiri Kosina <jkosina@suse.cz>, linux-input@vger.kernel.org,
|
||||
linux-kernel@vger.kernel.org
|
||||
Date: Thu, 24 Apr 2014 18:26:38 -0400
|
||||
|
||||
A firmware bug is present on the XPS Haswell edition which silently
|
||||
split the request in two responses when the caller ask for a read of
|
||||
more than 16 bytes.
|
||||
The FW sends the first 16 then the 4 next, but it says that it answered
|
||||
the 20 bytes in the first report.
|
||||
|
||||
This occurs only on the retrieving of the min/max of X and Y of the F11
|
||||
function.
|
||||
We only use the first 10 bytes of the Ctrl register, so we can get only
|
||||
those 10 bytes to prevent the bug from happening.
|
||||
|
||||
Resolves:
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1090161
|
||||
|
||||
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
||||
|
||||
---
|
||||
drivers/hid/hid-rmi.c | 11 ++++++++---
|
||||
1 file changed, 8 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c
|
||||
index 7da9509..cee89c9 100644
|
||||
--- a/drivers/hid/hid-rmi.c
|
||||
+++ b/drivers/hid/hid-rmi.c
|
||||
@@ -613,10 +613,15 @@ static int rmi_populate_f11(struct hid_device *hdev)
|
||||
}
|
||||
}
|
||||
|
||||
- /* retrieve the ctrl registers */
|
||||
- ret = rmi_read_block(hdev, data->f11.control_base_addr, buf, 20);
|
||||
+ /*
|
||||
+ * retrieve the ctrl registers
|
||||
+ * the ctrl register has a size of 20 but a fw bug split it into 16 + 4,
|
||||
+ * and there is no way to know if the first 20 bytes are here or not.
|
||||
+ * We use only the first 10 bytes, so get only them.
|
||||
+ */
|
||||
+ ret = rmi_read_block(hdev, data->f11.control_base_addr, buf, 10);
|
||||
if (ret) {
|
||||
- hid_err(hdev, "can not read ctrl block of size 20: %d.\n", ret);
|
||||
+ hid_err(hdev, "can not read ctrl block of size 10: %d.\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
@ -1,37 +0,0 @@
|
||||
From 498a0fb58f119bfa222065fc4f2932e81e1510ed Mon Sep 17 00:00:00 2001
|
||||
From: Trond Myklebust <trond.myklebust@primarydata.com>
|
||||
Date: Sun, 24 Aug 2014 14:46:48 -0400
|
||||
Subject: [PATCH] NFSv3: Fix another acl regression
|
||||
|
||||
When creating a new object on the NFS server, we should not be sending
|
||||
posix setacl requests unless the preceding posix_acl_create returned a
|
||||
non-trivial acl. Doing so, causes Solaris servers in particular to
|
||||
return an EINVAL.
|
||||
|
||||
Fixes: 013cdf1088d72 (nfs: use generic posix ACL infrastructure,,,)
|
||||
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1132786
|
||||
Cc: stable@vger.kernel.org # 3.14+
|
||||
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
|
||||
---
|
||||
fs/nfs/nfs3acl.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/fs/nfs/nfs3acl.c b/fs/nfs/nfs3acl.c
|
||||
index d0fec260132a..24c6898159cc 100644
|
||||
--- a/fs/nfs/nfs3acl.c
|
||||
+++ b/fs/nfs/nfs3acl.c
|
||||
@@ -129,7 +129,10 @@ static int __nfs3_proc_setacls(struct inode *inode, struct posix_acl *acl,
|
||||
.rpc_argp = &args,
|
||||
.rpc_resp = &fattr,
|
||||
};
|
||||
- int status;
|
||||
+ int status = 0;
|
||||
+
|
||||
+ if (acl == NULL && (!S_ISDIR(inode->i_mode) || dfacl == NULL))
|
||||
+ goto out;
|
||||
|
||||
status = -EOPNOTSUPP;
|
||||
if (!nfs_server_capable(inode, NFS_CAP_ACLS))
|
||||
--
|
||||
1.9.3
|
||||
|
44
Revert-Revert-ACPI-video-change-acpi-video-brightnes.patch
Normal file
44
Revert-Revert-ACPI-video-change-acpi-video-brightnes.patch
Normal file
@ -0,0 +1,44 @@
|
||||
Bugzilla: N/A
|
||||
Upstream-status: Sigh. We almost got to drop this.
|
||||
|
||||
From 20e3f1e1b9341d233a11734c07c076caac9936ef Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Mon, 28 Jul 2014 12:59:48 -0400
|
||||
Subject: [PATCH] Revert "Revert "ACPI / video: change acpi-video
|
||||
brightness_switch_enabled default to 0""
|
||||
|
||||
This reverts commit 2843768b701971ab10e62c77d5c75ad7c306f1bd.
|
||||
---
|
||||
Documentation/kernel-parameters.txt | 2 +-
|
||||
drivers/acpi/video.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
|
||||
index b7fa2f599459..e8db409a7e3a 100644
|
||||
--- a/Documentation/kernel-parameters.txt
|
||||
+++ b/Documentation/kernel-parameters.txt
|
||||
@@ -3532,7 +3532,7 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
|
||||
the allocated input device; If set to 0, video driver
|
||||
will only send out the event without touching backlight
|
||||
brightness level.
|
||||
- default: 1
|
||||
+ default: 0
|
||||
|
||||
virtio_mmio.device=
|
||||
[VMMIO] Memory mapped virtio (platform) device.
|
||||
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
|
||||
index 350d52a8f781..44c89f705018 100644
|
||||
--- a/drivers/acpi/video.c
|
||||
+++ b/drivers/acpi/video.c
|
||||
@@ -68,7 +68,7 @@ MODULE_AUTHOR("Bruno Ducrot");
|
||||
MODULE_DESCRIPTION("ACPI Video Driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
-static bool brightness_switch_enabled = 1;
|
||||
+static bool brightness_switch_enabled;
|
||||
module_param(brightness_switch_enabled, bool, 0644);
|
||||
|
||||
/*
|
||||
--
|
||||
1.9.3
|
||||
|
@ -1,40 +0,0 @@
|
||||
Bugzilla: 1012674
|
||||
Upstream-status: Queued for 3.16
|
||||
|
||||
From a94de796cd769fc5c4a9c57ebe99c0ae74b9c8a1 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 2 Jun 2014 17:41:06 +0200
|
||||
Subject: [PATCH 09/14] acer-wmi: Add Aspire 5741 to video_vendor_dmi_table
|
||||
|
||||
The Aspire 5741 has broken acpi-video backlight control, so add it to the
|
||||
quirk table.
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1012674
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/platform/x86/acer-wmi.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
|
||||
index 3a746998f92a..bbf78b2d6d93 100644
|
||||
--- a/drivers/platform/x86/acer-wmi.c
|
||||
+++ b/drivers/platform/x86/acer-wmi.c
|
||||
@@ -570,6 +570,14 @@ static const struct dmi_system_id video_vendor_dmi_table[] = {
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5750"),
|
||||
},
|
||||
},
|
||||
+ {
|
||||
+ .callback = video_set_backlight_video_vendor,
|
||||
+ .ident = "Acer Aspire 5741",
|
||||
+ .matches = {
|
||||
+ DMI_MATCH(DMI_BOARD_VENDOR, "Acer"),
|
||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5741"),
|
||||
+ },
|
||||
+ },
|
||||
{}
|
||||
};
|
||||
|
||||
--
|
||||
1.9.0
|
||||
|
@ -1,64 +0,0 @@
|
||||
Bugzilla: 1012674
|
||||
Upstream-status: Queued for 3.16
|
||||
|
||||
From d8aceabf18681a92e8031c43d3917f6826ac6691 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 2 Jun 2014 17:41:05 +0200
|
||||
Subject: [PATCH 08/14] acer-wmi: Switch to acpi_video_unregister_backlight
|
||||
|
||||
Switch from acpi_video_unregister(), to acpi_video_unregister_backlight(),
|
||||
so that the hotkeys handler registered by acpi-video stays in place.
|
||||
|
||||
Since there are no mappings for the atkbd raw codes for the brightness
|
||||
keys used by newer Acer models in /lib/udev/hwdb.d/60-keyboard.hwdb, and
|
||||
since we map the wmi events with a code of KE_IGNORE, we rely on acpi-video
|
||||
to do the hotkey handling for us.
|
||||
|
||||
For laptops such as the Acer Aspire 5750 which uses intel gfx this works
|
||||
despite us calling acpi_video_unregister() because the following happens:
|
||||
|
||||
1) acpi-video module gets loaded (as it is a dependency of acer-wmi and i915)
|
||||
2) acpi-video does NOT call acpi_video_register()
|
||||
3) acer-wmi loads (assume it loads before i915), calls
|
||||
acpi_video_dmi_promote_vendor(); which sets ACPI_VIDEO_BACKLIGHT_DMI_VENDOR
|
||||
4) calls acpi_video_unregister -> not registered, nop
|
||||
5) i915 loads, calls acpi_video_register
|
||||
6) acpi_video_register registers the acpi_notifier for the hotkeys,
|
||||
does NOT register a backlight device because of ACPI_VIDEO_BACKLIGHT_DMI_VENDOR
|
||||
|
||||
But on the Acer Aspire 5750G, which uses nvidia graphics the following happens:
|
||||
1) acpi-video module gets loaded (as it is a dependency of acer-wmi)
|
||||
2) acpi-video calls acpi_video_register()
|
||||
3) acpi_video_register registers the acpi_notifier for the hotkeys,
|
||||
and a backlight device
|
||||
4) acer-wmi loads, calls acpi_video_dmi_promote_vendor()
|
||||
5) calls acpi_video_unregister, this unregisters BOTH the acpi_notifier for
|
||||
the hotkeys AND the backlight device
|
||||
|
||||
And we end up without any handler for the brightness hotkeys. This patch fixes
|
||||
this by switching over to acpi_video_unregister_backlight() which keeps the
|
||||
hotkey handler in place.
|
||||
|
||||
https://bugzilla.kernel.org/show_bug.cgi?id=35622
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/platform/x86/acer-wmi.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
|
||||
index c91f69b39db4..3a746998f92a 100644
|
||||
--- a/drivers/platform/x86/acer-wmi.c
|
||||
+++ b/drivers/platform/x86/acer-wmi.c
|
||||
@@ -2228,7 +2228,7 @@ static int __init acer_wmi_init(void)
|
||||
pr_info("Brightness must be controlled by acpi video driver\n");
|
||||
} else {
|
||||
pr_info("Disabling ACPI video driver\n");
|
||||
- acpi_video_unregister();
|
||||
+ acpi_video_unregister_backlight();
|
||||
}
|
||||
|
||||
if (wmi_has_guid(WMID_GUID3)) {
|
||||
--
|
||||
1.9.0
|
||||
|
@ -1,112 +0,0 @@
|
||||
Bugzilla: 1012674
|
||||
Upstream-status: Queued for 3.16
|
||||
|
||||
From 4cf3eac89ed731d7cdb7d9d815a97109472af824 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 2 Jun 2014 17:41:04 +0200
|
||||
Subject: [PATCH 07/14] acpi-video: Add an acpi_video_unregister_backlight
|
||||
function
|
||||
|
||||
Add an acpi_video_unregister_backlight function, which only unregisters
|
||||
the backlight device, and leaves the acpi_notifier in place. Some acpi_vendor
|
||||
driver need this as they don't want the acpi_video# backlight device, but do
|
||||
need the acpi-video driver for hotkey handling.
|
||||
|
||||
Chances are that this new acpi_video_unregister_backlight() is actually
|
||||
what existing acpi_vendor drivers have wanted all along. Currently acpi_vendor
|
||||
drivers which want to disable the acpi_video# backlight device, make 2 calls:
|
||||
|
||||
acpi_video_dmi_promote_vendor();
|
||||
acpi_video_unregister();
|
||||
|
||||
The intention here is to make things independent of when acpi_video_register()
|
||||
gets called. As acpi_video_register() will get called on acpi-video load time
|
||||
on non intel gfx machines, while it gets called on i915 load time on intel
|
||||
gfx machines.
|
||||
|
||||
This leads to the following 2 interesting scenarios:
|
||||
|
||||
a) intel gfx:
|
||||
1) acpi-video module gets loaded (as it is a dependency of acpi_vendor and i915)
|
||||
2) acpi-video does NOT call acpi_video_register()
|
||||
3) acpi_vendor loads (lets assume it loads before i915), calls
|
||||
acpi_video_dmi_promote_vendor(); which sets ACPI_VIDEO_BACKLIGHT_DMI_VENDOR
|
||||
4) calls acpi_video_unregister -> not registered, nop
|
||||
5) i915 loads, calls acpi_video_register
|
||||
6) acpi_video_register registers the acpi_notifier for the hotkeys,
|
||||
does NOT register a backlight device because of ACPI_VIDEO_BACKLIGHT_DMI_VENDOR
|
||||
|
||||
b) non intel gfx
|
||||
1) acpi-video module gets loaded (as it is a dependency acpi_vendor)
|
||||
2) acpi-video calls acpi_video_register()
|
||||
3) acpi_video_register registers the acpi_notifier for the hotkeys,
|
||||
and a backlight device
|
||||
4) acpi_vendor loads, calls acpi_video_dmi_promote_vendor()
|
||||
5) calls acpi_video_unregister, this unregisters BOTH the acpi_notifier for
|
||||
the hotkeys AND the backlight device
|
||||
|
||||
So here we have possibly the same acpi_vendor module, making the same calls,
|
||||
but with different results, in one cases acpi-video does handle hotkeys,
|
||||
in the other it does not.
|
||||
|
||||
Note that the a) scenario turns into b) if we assume the i915 module loads
|
||||
before the vendor_acpi module, so we also have different behavior depending
|
||||
on module loading order!
|
||||
|
||||
So as said I believe that quite a few existing acpi_vendor modules really
|
||||
always want the behavior of a), hence this patch adds a new
|
||||
acpi_video_unregister_backlight() which gives the behavior of a) independent
|
||||
of module loading order.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/acpi/video.c | 14 ++++++++++++++
|
||||
include/acpi/video.h | 2 ++
|
||||
2 files changed, 16 insertions(+)
|
||||
|
||||
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
|
||||
index a68313720c9c..d4d6ea3ac77a 100644
|
||||
--- a/drivers/acpi/video.c
|
||||
+++ b/drivers/acpi/video.c
|
||||
@@ -2070,6 +2070,20 @@ void acpi_video_unregister(void)
|
||||
}
|
||||
EXPORT_SYMBOL(acpi_video_unregister);
|
||||
|
||||
+void acpi_video_unregister_backlight(void)
|
||||
+{
|
||||
+ struct acpi_video_bus *video;
|
||||
+
|
||||
+ if (!register_count)
|
||||
+ return;
|
||||
+
|
||||
+ mutex_lock(&video_list_lock);
|
||||
+ list_for_each_entry(video, &video_bus_head, entry)
|
||||
+ acpi_video_bus_unregister_backlight(video);
|
||||
+ mutex_unlock(&video_list_lock);
|
||||
+}
|
||||
+EXPORT_SYMBOL(acpi_video_unregister_backlight);
|
||||
+
|
||||
/*
|
||||
* This is kind of nasty. Hardware using Intel chipsets may require
|
||||
* the video opregion code to be run first in order to initialise
|
||||
diff --git a/include/acpi/video.h b/include/acpi/video.h
|
||||
index 61109f2609fc..ea4c7bbded4d 100644
|
||||
--- a/include/acpi/video.h
|
||||
+++ b/include/acpi/video.h
|
||||
@@ -19,11 +19,13 @@ struct acpi_device;
|
||||
#if (defined CONFIG_ACPI_VIDEO || defined CONFIG_ACPI_VIDEO_MODULE)
|
||||
extern int acpi_video_register(void);
|
||||
extern void acpi_video_unregister(void);
|
||||
+extern void acpi_video_unregister_backlight(void);
|
||||
extern int acpi_video_get_edid(struct acpi_device *device, int type,
|
||||
int device_id, void **edid);
|
||||
#else
|
||||
static inline int acpi_video_register(void) { return 0; }
|
||||
static inline void acpi_video_unregister(void) { return; }
|
||||
+static inline void acpi_video_unregister_backlight(void) { return; }
|
||||
static inline int acpi_video_get_edid(struct acpi_device *device, int type,
|
||||
int device_id, void **edid)
|
||||
{
|
||||
--
|
||||
1.9.0
|
||||
|
@ -1,214 +0,0 @@
|
||||
Bugzilla: 1012674
|
||||
Upstream-status: Queued for 3.16
|
||||
|
||||
From 5d9b5801af7cbeaab060fa07576ca6cd7dc3be89 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 2 Jun 2014 17:41:03 +0200
|
||||
Subject: [PATCH 06/14] acpi-video: Don't register acpi_video_resume notifier
|
||||
without backlight devices
|
||||
|
||||
If we're not going to be registering any backlight devices then
|
||||
acpi_video_resume is always nop, so don't register it in that case.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
|
||||
--
|
||||
|
||||
Note to reviewers the changes to acpi_video_dev_register_backlight() only
|
||||
remove the "if (!acpi_video_verify_backlight_support()) {" which surrounded
|
||||
the entire body of the function, as that is checked earlier now.
|
||||
---
|
||||
drivers/acpi/video.c | 139 +++++++++++++++++++++++++++------------------------
|
||||
1 file changed, 74 insertions(+), 65 deletions(-)
|
||||
|
||||
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
|
||||
index f8bc5a755dda..a68313720c9c 100644
|
||||
--- a/drivers/acpi/video.c
|
||||
+++ b/drivers/acpi/video.c
|
||||
@@ -150,6 +150,7 @@ struct acpi_video_enumerated_device {
|
||||
|
||||
struct acpi_video_bus {
|
||||
struct acpi_device *device;
|
||||
+ bool backlight_registered;
|
||||
u8 dos_setting;
|
||||
struct acpi_video_enumerated_device *attached_array;
|
||||
u8 attached_count;
|
||||
@@ -1658,88 +1659,89 @@ acpi_video_bus_match(acpi_handle handle, u32 level, void *context,
|
||||
|
||||
static void acpi_video_dev_register_backlight(struct acpi_video_device *device)
|
||||
{
|
||||
- if (acpi_video_verify_backlight_support()) {
|
||||
- struct backlight_properties props;
|
||||
- struct pci_dev *pdev;
|
||||
- acpi_handle acpi_parent;
|
||||
- struct device *parent = NULL;
|
||||
- int result;
|
||||
- static int count;
|
||||
- char *name;
|
||||
-
|
||||
- result = acpi_video_init_brightness(device);
|
||||
- if (result)
|
||||
- return;
|
||||
- name = kasprintf(GFP_KERNEL, "acpi_video%d", count);
|
||||
- if (!name)
|
||||
- return;
|
||||
- count++;
|
||||
+ struct backlight_properties props;
|
||||
+ struct pci_dev *pdev;
|
||||
+ acpi_handle acpi_parent;
|
||||
+ struct device *parent = NULL;
|
||||
+ int result;
|
||||
+ static int count;
|
||||
+ char *name;
|
||||
|
||||
- acpi_get_parent(device->dev->handle, &acpi_parent);
|
||||
+ result = acpi_video_init_brightness(device);
|
||||
+ if (result)
|
||||
+ return;
|
||||
+ name = kasprintf(GFP_KERNEL, "acpi_video%d", count);
|
||||
+ if (!name)
|
||||
+ return;
|
||||
+ count++;
|
||||
|
||||
- pdev = acpi_get_pci_dev(acpi_parent);
|
||||
- if (pdev) {
|
||||
- parent = &pdev->dev;
|
||||
- pci_dev_put(pdev);
|
||||
- }
|
||||
+ acpi_get_parent(device->dev->handle, &acpi_parent);
|
||||
|
||||
- memset(&props, 0, sizeof(struct backlight_properties));
|
||||
- props.type = BACKLIGHT_FIRMWARE;
|
||||
- props.max_brightness = device->brightness->count - 3;
|
||||
- device->backlight = backlight_device_register(name,
|
||||
- parent,
|
||||
- device,
|
||||
- &acpi_backlight_ops,
|
||||
- &props);
|
||||
- kfree(name);
|
||||
- if (IS_ERR(device->backlight))
|
||||
- return;
|
||||
+ pdev = acpi_get_pci_dev(acpi_parent);
|
||||
+ if (pdev) {
|
||||
+ parent = &pdev->dev;
|
||||
+ pci_dev_put(pdev);
|
||||
+ }
|
||||
|
||||
- /*
|
||||
- * Save current brightness level in case we have to restore it
|
||||
- * before acpi_video_device_lcd_set_level() is called next time.
|
||||
- */
|
||||
- device->backlight->props.brightness =
|
||||
- acpi_video_get_brightness(device->backlight);
|
||||
+ memset(&props, 0, sizeof(struct backlight_properties));
|
||||
+ props.type = BACKLIGHT_FIRMWARE;
|
||||
+ props.max_brightness = device->brightness->count - 3;
|
||||
+ device->backlight = backlight_device_register(name,
|
||||
+ parent,
|
||||
+ device,
|
||||
+ &acpi_backlight_ops,
|
||||
+ &props);
|
||||
+ kfree(name);
|
||||
+ if (IS_ERR(device->backlight))
|
||||
+ return;
|
||||
|
||||
- device->cooling_dev = thermal_cooling_device_register("LCD",
|
||||
- device->dev, &video_cooling_ops);
|
||||
- if (IS_ERR(device->cooling_dev)) {
|
||||
- /*
|
||||
- * Set cooling_dev to NULL so we don't crash trying to
|
||||
- * free it.
|
||||
- * Also, why the hell we are returning early and
|
||||
- * not attempt to register video output if cooling
|
||||
- * device registration failed?
|
||||
- * -- dtor
|
||||
- */
|
||||
- device->cooling_dev = NULL;
|
||||
- return;
|
||||
- }
|
||||
+ /*
|
||||
+ * Save current brightness level in case we have to restore it
|
||||
+ * before acpi_video_device_lcd_set_level() is called next time.
|
||||
+ */
|
||||
+ device->backlight->props.brightness =
|
||||
+ acpi_video_get_brightness(device->backlight);
|
||||
|
||||
- dev_info(&device->dev->dev, "registered as cooling_device%d\n",
|
||||
- device->cooling_dev->id);
|
||||
- result = sysfs_create_link(&device->dev->dev.kobj,
|
||||
- &device->cooling_dev->device.kobj,
|
||||
- "thermal_cooling");
|
||||
- if (result)
|
||||
- printk(KERN_ERR PREFIX "Create sysfs link\n");
|
||||
- result = sysfs_create_link(&device->cooling_dev->device.kobj,
|
||||
- &device->dev->dev.kobj, "device");
|
||||
- if (result)
|
||||
- printk(KERN_ERR PREFIX "Create sysfs link\n");
|
||||
+ device->cooling_dev = thermal_cooling_device_register("LCD",
|
||||
+ device->dev, &video_cooling_ops);
|
||||
+ if (IS_ERR(device->cooling_dev)) {
|
||||
+ /*
|
||||
+ * Set cooling_dev to NULL so we don't crash trying to free it.
|
||||
+ * Also, why the hell we are returning early and not attempt to
|
||||
+ * register video output if cooling device registration failed?
|
||||
+ * -- dtor
|
||||
+ */
|
||||
+ device->cooling_dev = NULL;
|
||||
+ return;
|
||||
}
|
||||
+
|
||||
+ dev_info(&device->dev->dev, "registered as cooling_device%d\n",
|
||||
+ device->cooling_dev->id);
|
||||
+ result = sysfs_create_link(&device->dev->dev.kobj,
|
||||
+ &device->cooling_dev->device.kobj,
|
||||
+ "thermal_cooling");
|
||||
+ if (result)
|
||||
+ printk(KERN_ERR PREFIX "Create sysfs link\n");
|
||||
+ result = sysfs_create_link(&device->cooling_dev->device.kobj,
|
||||
+ &device->dev->dev.kobj, "device");
|
||||
+ if (result)
|
||||
+ printk(KERN_ERR PREFIX "Create sysfs link\n");
|
||||
}
|
||||
|
||||
static int acpi_video_bus_register_backlight(struct acpi_video_bus *video)
|
||||
{
|
||||
struct acpi_video_device *dev;
|
||||
|
||||
+ if (!acpi_video_verify_backlight_support())
|
||||
+ return 0;
|
||||
+
|
||||
mutex_lock(&video->device_list_lock);
|
||||
list_for_each_entry(dev, &video->video_device_list, entry)
|
||||
acpi_video_dev_register_backlight(dev);
|
||||
mutex_unlock(&video->device_list_lock);
|
||||
|
||||
+ video->backlight_registered = true;
|
||||
+
|
||||
video->pm_nb.notifier_call = acpi_video_resume;
|
||||
video->pm_nb.priority = 0;
|
||||
return register_pm_notifier(&video->pm_nb);
|
||||
@@ -1767,13 +1769,20 @@ static void acpi_video_dev_unregister_backlight(struct acpi_video_device *device
|
||||
static int acpi_video_bus_unregister_backlight(struct acpi_video_bus *video)
|
||||
{
|
||||
struct acpi_video_device *dev;
|
||||
- int error = unregister_pm_notifier(&video->pm_nb);
|
||||
+ int error;
|
||||
+
|
||||
+ if (!video->backlight_registered)
|
||||
+ return 0;
|
||||
+
|
||||
+ error = unregister_pm_notifier(&video->pm_nb);
|
||||
|
||||
mutex_lock(&video->device_list_lock);
|
||||
list_for_each_entry(dev, &video->video_device_list, entry)
|
||||
acpi_video_dev_unregister_backlight(dev);
|
||||
mutex_unlock(&video->device_list_lock);
|
||||
|
||||
+ video->backlight_registered = false;
|
||||
+
|
||||
return error;
|
||||
}
|
||||
|
||||
--
|
||||
1.9.0
|
||||
|
@ -1,130 +0,0 @@
|
||||
Bugzilla: 1093171
|
||||
Upstream-status: Queued for 3.16
|
||||
|
||||
From 7f5b3e9378c0adfdb1cf2ffde6c4f890e05517c7 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 2 Jun 2014 17:41:09 +0200
|
||||
Subject: [PATCH 12/14] acpi-video: Unregister the backlight device if a raw
|
||||
one shows up later
|
||||
|
||||
When video.use_native_backlight=1 and non intel gfx are in use, the raw
|
||||
backlight device of the gfx driver will show up after acpi-video has done its
|
||||
acpi_video_verify_backlight_support() check.
|
||||
|
||||
This causes video.use_native_backlight=1 to not have the desired result.
|
||||
|
||||
This patch fixes this by adding a backlight notifier and when a raw
|
||||
backlight is registered or unregistered re-doing the
|
||||
acpi_video_verify_backlight_support() check.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/acpi/video.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 57 insertions(+)
|
||||
|
||||
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
|
||||
index d4d6ea3ac77a..ab7cd65ce21e 100644
|
||||
--- a/drivers/acpi/video.c
|
||||
+++ b/drivers/acpi/video.c
|
||||
@@ -151,6 +151,7 @@ struct acpi_video_enumerated_device {
|
||||
struct acpi_video_bus {
|
||||
struct acpi_device *device;
|
||||
bool backlight_registered;
|
||||
+ bool backlight_notifier_registered;
|
||||
u8 dos_setting;
|
||||
struct acpi_video_enumerated_device *attached_array;
|
||||
u8 attached_count;
|
||||
@@ -162,6 +163,7 @@ struct acpi_video_bus {
|
||||
struct input_dev *input;
|
||||
char phys[32]; /* for input device */
|
||||
struct notifier_block pm_nb;
|
||||
+ struct notifier_block backlight_nb;
|
||||
};
|
||||
|
||||
struct acpi_video_device_flags {
|
||||
@@ -1732,6 +1734,9 @@ static int acpi_video_bus_register_backlight(struct acpi_video_bus *video)
|
||||
{
|
||||
struct acpi_video_device *dev;
|
||||
|
||||
+ if (video->backlight_registered)
|
||||
+ return 0;
|
||||
+
|
||||
if (!acpi_video_verify_backlight_support())
|
||||
return 0;
|
||||
|
||||
@@ -1876,6 +1881,56 @@ static void acpi_video_bus_remove_notify_handler(struct acpi_video_bus *video)
|
||||
video->input = NULL;
|
||||
}
|
||||
|
||||
+static int acpi_video_backlight_notify(struct notifier_block *nb,
|
||||
+ unsigned long val, void *bd)
|
||||
+{
|
||||
+ struct backlight_device *backlight = bd;
|
||||
+ struct acpi_video_bus *video;
|
||||
+
|
||||
+ /* acpi_video_verify_backlight_support only cares about raw devices */
|
||||
+ if (backlight->props.type != BACKLIGHT_RAW)
|
||||
+ return NOTIFY_DONE;
|
||||
+
|
||||
+ video = container_of(nb, struct acpi_video_bus, backlight_nb);
|
||||
+
|
||||
+ switch (val) {
|
||||
+ case BACKLIGHT_REGISTERED:
|
||||
+ if (!acpi_video_verify_backlight_support())
|
||||
+ acpi_video_bus_unregister_backlight(video);
|
||||
+ break;
|
||||
+ case BACKLIGHT_UNREGISTERED:
|
||||
+ acpi_video_bus_register_backlight(video);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return NOTIFY_OK;
|
||||
+}
|
||||
+
|
||||
+static int acpi_video_bus_add_backlight_notify_handler(
|
||||
+ struct acpi_video_bus *video)
|
||||
+{
|
||||
+ int error;
|
||||
+
|
||||
+ video->backlight_nb.notifier_call = acpi_video_backlight_notify;
|
||||
+ video->backlight_nb.priority = 0;
|
||||
+ error = backlight_register_notifier(&video->backlight_nb);
|
||||
+ if (error == 0)
|
||||
+ video->backlight_notifier_registered = true;
|
||||
+
|
||||
+ return error;
|
||||
+}
|
||||
+
|
||||
+static int acpi_video_bus_remove_backlight_notify_handler(
|
||||
+ struct acpi_video_bus *video)
|
||||
+{
|
||||
+ if (!video->backlight_notifier_registered)
|
||||
+ return 0;
|
||||
+
|
||||
+ video->backlight_notifier_registered = false;
|
||||
+
|
||||
+ return backlight_unregister_notifier(&video->backlight_nb);
|
||||
+}
|
||||
+
|
||||
static int acpi_video_bus_put_devices(struct acpi_video_bus *video)
|
||||
{
|
||||
struct acpi_video_device *dev, *next;
|
||||
@@ -1957,6 +2012,7 @@ static int acpi_video_bus_add(struct acpi_device *device)
|
||||
|
||||
acpi_video_bus_register_backlight(video);
|
||||
acpi_video_bus_add_notify_handler(video);
|
||||
+ acpi_video_bus_add_backlight_notify_handler(video);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -1980,6 +2036,7 @@ static int acpi_video_bus_remove(struct acpi_device *device)
|
||||
|
||||
video = acpi_driver_data(device);
|
||||
|
||||
+ acpi_video_bus_remove_backlight_notify_handler(video);
|
||||
acpi_video_bus_remove_notify_handler(video);
|
||||
acpi_video_bus_unregister_backlight(video);
|
||||
acpi_video_bus_put_devices(video);
|
||||
--
|
||||
1.9.0
|
||||
|
472
arm-qemu-fixdisplay.patch
Normal file
472
arm-qemu-fixdisplay.patch
Normal file
@ -0,0 +1,472 @@
|
||||
commit d10715be03bd8bad59ddc50236cb140c3bd73c7b
|
||||
Author: Pawel Moll <pawel.moll@arm.com>
|
||||
Date: Tue Jun 24 12:55:11 2014 +0100
|
||||
|
||||
video: ARM CLCD: Add DT support
|
||||
|
||||
This patch adds basic DT bindings for the PL11x CLCD cells
|
||||
and make their fbdev driver use them.
|
||||
|
||||
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
|
||||
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
||||
|
||||
diff --git a/Documentation/devicetree/bindings/video/arm,pl11x.txt b/Documentation/devicetree/bindings/video/arm,pl11x.txt
|
||||
new file mode 100644
|
||||
index 0000000..3e3039a
|
||||
--- /dev/null
|
||||
+++ b/Documentation/devicetree/bindings/video/arm,pl11x.txt
|
||||
@@ -0,0 +1,109 @@
|
||||
+* ARM PrimeCell Color LCD Controller PL110/PL111
|
||||
+
|
||||
+See also Documentation/devicetree/bindings/arm/primecell.txt
|
||||
+
|
||||
+Required properties:
|
||||
+
|
||||
+- compatible: must be one of:
|
||||
+ "arm,pl110", "arm,primecell"
|
||||
+ "arm,pl111", "arm,primecell"
|
||||
+
|
||||
+- reg: base address and size of the control registers block
|
||||
+
|
||||
+- interrupt-names: either the single entry "combined" representing a
|
||||
+ combined interrupt output (CLCDINTR), or the four entries
|
||||
+ "mbe", "vcomp", "lnbu", "fuf" representing the individual
|
||||
+ CLCDMBEINTR, CLCDVCOMPINTR, CLCDLNBUINTR, CLCDFUFINTR interrupts
|
||||
+
|
||||
+- interrupts: contains an interrupt specifier for each entry in
|
||||
+ interrupt-names
|
||||
+
|
||||
+- clock-names: should contain "clcdclk" and "apb_pclk"
|
||||
+
|
||||
+- clocks: contains phandle and clock specifier pairs for the entries
|
||||
+ in the clock-names property. See
|
||||
+ Documentation/devicetree/binding/clock/clock-bindings.txt
|
||||
+
|
||||
+Optional properties:
|
||||
+
|
||||
+- memory-region: phandle to a node describing memory (see
|
||||
+ Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt)
|
||||
+ to be used for the framebuffer; if not present, the framebuffer
|
||||
+ may be located anywhere in the memory
|
||||
+
|
||||
+- max-memory-bandwidth: maximum bandwidth in bytes per second that the
|
||||
+ cell's memory interface can handle; if not present, the memory
|
||||
+ interface is fast enough to handle all possible video modes
|
||||
+
|
||||
+Required sub-nodes:
|
||||
+
|
||||
+- port: describes LCD panel signals, following the common binding
|
||||
+ for video transmitter interfaces; see
|
||||
+ Documentation/devicetree/bindings/media/video-interfaces.txt;
|
||||
+ when it is a TFT panel, the port's endpoint must define the
|
||||
+ following property:
|
||||
+
|
||||
+ - arm,pl11x,tft-r0g0b0-pads: an array of three 32-bit values,
|
||||
+ defining the way CLD pads are wired up; first value
|
||||
+ contains index of the "CLD" external pin (pad) used
|
||||
+ as R0 (first bit of the red component), second value
|
||||
+ index of the pad used as G0, third value index of the
|
||||
+ pad used as B0, see also "LCD panel signal multiplexing
|
||||
+ details" paragraphs in the PL110/PL111 Technical
|
||||
+ Reference Manuals; this implicitly defines available
|
||||
+ color modes, for example:
|
||||
+ - PL111 TFT 4:4:4 panel:
|
||||
+ arm,pl11x,tft-r0g0b0-pads = <4 15 20>;
|
||||
+ - PL110 TFT (1:)5:5:5 panel:
|
||||
+ arm,pl11x,tft-r0g0b0-pads = <1 7 13>;
|
||||
+ - PL111 TFT (1:)5:5:5 panel:
|
||||
+ arm,pl11x,tft-r0g0b0-pads = <3 11 19>;
|
||||
+ - PL111 TFT 5:6:5 panel:
|
||||
+ arm,pl11x,tft-r0g0b0-pads = <3 10 19>;
|
||||
+ - PL110 and PL111 TFT 8:8:8 panel:
|
||||
+ arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
|
||||
+ - PL110 and PL111 TFT 8:8:8 panel, R & B components swapped:
|
||||
+ arm,pl11x,tft-r0g0b0-pads = <16 8 0>;
|
||||
+
|
||||
+
|
||||
+Example:
|
||||
+
|
||||
+ clcd@10020000 {
|
||||
+ compatible = "arm,pl111", "arm,primecell";
|
||||
+ reg = <0x10020000 0x1000>;
|
||||
+ interrupt-names = "combined";
|
||||
+ interrupts = <0 44 4>;
|
||||
+ clocks = <&oscclk1>, <&oscclk2>;
|
||||
+ clock-names = "clcdclk", "apb_pclk";
|
||||
+ max-memory-bandwidth = <94371840>; /* Bps, 1024x768@60 16bpp */
|
||||
+
|
||||
+ port {
|
||||
+ clcd_pads: endpoint {
|
||||
+ remote-endpoint = <&clcd_panel>;
|
||||
+ arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ };
|
||||
+
|
||||
+ panel {
|
||||
+ compatible = "panel-dpi";
|
||||
+
|
||||
+ port {
|
||||
+ clcd_panel: endpoint {
|
||||
+ remote-endpoint = <&clcd_pads>;
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ panel-timing {
|
||||
+ clock-frequency = <25175000>;
|
||||
+ hactive = <640>;
|
||||
+ hback-porch = <40>;
|
||||
+ hfront-porch = <24>;
|
||||
+ hsync-len = <96>;
|
||||
+ vactive = <480>;
|
||||
+ vback-porch = <32>;
|
||||
+ vfront-porch = <11>;
|
||||
+ vsync-len = <2>;
|
||||
+ };
|
||||
+ };
|
||||
diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
|
||||
index 4a7098f..6f451ad 100644
|
||||
--- a/drivers/video/fbdev/Kconfig
|
||||
+++ b/drivers/video/fbdev/Kconfig
|
||||
@@ -280,6 +280,7 @@ config FB_ARMCLCD
|
||||
select FB_CFB_FILLRECT
|
||||
select FB_CFB_COPYAREA
|
||||
select FB_CFB_IMAGEBLIT
|
||||
+ select VIDEOMODE_HELPERS if OF
|
||||
help
|
||||
This framebuffer device driver is for the ARM PrimeCell PL110
|
||||
Colour LCD controller. ARM PrimeCells provide the building
|
||||
diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c
|
||||
index 14d6b37..23b3519 100644
|
||||
--- a/drivers/video/fbdev/amba-clcd.c
|
||||
+++ b/drivers/video/fbdev/amba-clcd.c
|
||||
@@ -26,6 +26,13 @@
|
||||
#include <linux/amba/clcd.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/hardirq.h>
|
||||
+#include <linux/dma-mapping.h>
|
||||
+#include <linux/of.h>
|
||||
+#include <linux/of_address.h>
|
||||
+#include <linux/of_graph.h>
|
||||
+#include <video/display_timing.h>
|
||||
+#include <video/of_display_timing.h>
|
||||
+#include <video/videomode.h>
|
||||
|
||||
#include <asm/sizes.h>
|
||||
|
||||
@@ -543,6 +550,259 @@ static int clcdfb_register(struct clcd_fb *fb)
|
||||
return ret;
|
||||
}
|
||||
|
||||
+#ifdef CONFIG_OF
|
||||
+static int clcdfb_of_get_dpi_panel_mode(struct device_node *node,
|
||||
+ struct fb_videomode *mode)
|
||||
+{
|
||||
+ int err;
|
||||
+ struct display_timing timing;
|
||||
+ struct videomode video;
|
||||
+
|
||||
+ err = of_get_display_timing(node, "panel-timing", &timing);
|
||||
+ if (err)
|
||||
+ return err;
|
||||
+
|
||||
+ videomode_from_timing(&timing, &video);
|
||||
+
|
||||
+ err = fb_videomode_from_videomode(&video, mode);
|
||||
+ if (err)
|
||||
+ return err;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int clcdfb_snprintf_mode(char *buf, int size, struct fb_videomode *mode)
|
||||
+{
|
||||
+ return snprintf(buf, size, "%ux%u@%u", mode->xres, mode->yres,
|
||||
+ mode->refresh);
|
||||
+}
|
||||
+
|
||||
+static int clcdfb_of_get_mode(struct device *dev, struct device_node *endpoint,
|
||||
+ struct fb_videomode *mode)
|
||||
+{
|
||||
+ int err;
|
||||
+ struct device_node *panel;
|
||||
+ char *name;
|
||||
+ int len;
|
||||
+
|
||||
+ panel = of_graph_get_remote_port_parent(endpoint);
|
||||
+ if (!panel)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ /* Only directly connected DPI panels supported for now */
|
||||
+ if (of_device_is_compatible(panel, "panel-dpi"))
|
||||
+ err = clcdfb_of_get_dpi_panel_mode(panel, mode);
|
||||
+ else
|
||||
+ err = -ENOENT;
|
||||
+ if (err)
|
||||
+ return err;
|
||||
+
|
||||
+ len = clcdfb_snprintf_mode(NULL, 0, mode);
|
||||
+ name = devm_kzalloc(dev, len + 1, GFP_KERNEL);
|
||||
+ clcdfb_snprintf_mode(name, len + 1, mode);
|
||||
+ mode->name = name;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int clcdfb_of_init_tft_panel(struct clcd_fb *fb, u32 r0, u32 g0, u32 b0)
|
||||
+{
|
||||
+ static struct {
|
||||
+ unsigned int part;
|
||||
+ u32 r0, g0, b0;
|
||||
+ u32 caps;
|
||||
+ } panels[] = {
|
||||
+ { 0x110, 1, 7, 13, CLCD_CAP_5551 },
|
||||
+ { 0x110, 0, 8, 16, CLCD_CAP_888 },
|
||||
+ { 0x111, 4, 14, 20, CLCD_CAP_444 },
|
||||
+ { 0x111, 3, 11, 19, CLCD_CAP_444 | CLCD_CAP_5551 },
|
||||
+ { 0x111, 3, 10, 19, CLCD_CAP_444 | CLCD_CAP_5551 |
|
||||
+ CLCD_CAP_565 },
|
||||
+ { 0x111, 0, 8, 16, CLCD_CAP_444 | CLCD_CAP_5551 |
|
||||
+ CLCD_CAP_565 | CLCD_CAP_888 },
|
||||
+ };
|
||||
+ int i;
|
||||
+
|
||||
+ /* Bypass pixel clock divider, data output on the falling edge */
|
||||
+ fb->panel->tim2 = TIM2_BCD | TIM2_IPC;
|
||||
+
|
||||
+ /* TFT display, vert. comp. interrupt at the start of the back porch */
|
||||
+ fb->panel->cntl |= CNTL_LCDTFT | CNTL_LCDVCOMP(1);
|
||||
+
|
||||
+ fb->panel->caps = 0;
|
||||
+
|
||||
+ /* Match the setup with known variants */
|
||||
+ for (i = 0; i < ARRAY_SIZE(panels) && !fb->panel->caps; i++) {
|
||||
+ if (amba_part(fb->dev) != panels[i].part)
|
||||
+ continue;
|
||||
+ if (g0 != panels[i].g0)
|
||||
+ continue;
|
||||
+ if (r0 == panels[i].r0 && b0 == panels[i].b0)
|
||||
+ fb->panel->caps = panels[i].caps & CLCD_CAP_RGB;
|
||||
+ if (r0 == panels[i].b0 && b0 == panels[i].r0)
|
||||
+ fb->panel->caps = panels[i].caps & CLCD_CAP_BGR;
|
||||
+ }
|
||||
+
|
||||
+ return fb->panel->caps ? 0 : -EINVAL;
|
||||
+}
|
||||
+
|
||||
+static int clcdfb_of_init_display(struct clcd_fb *fb)
|
||||
+{
|
||||
+ struct device_node *endpoint;
|
||||
+ int err;
|
||||
+ u32 max_bandwidth;
|
||||
+ u32 tft_r0b0g0[3];
|
||||
+
|
||||
+ fb->panel = devm_kzalloc(&fb->dev->dev, sizeof(*fb->panel), GFP_KERNEL);
|
||||
+ if (!fb->panel)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ endpoint = of_graph_get_next_endpoint(fb->dev->dev.of_node, NULL);
|
||||
+ if (!endpoint)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ err = clcdfb_of_get_mode(&fb->dev->dev, endpoint, &fb->panel->mode);
|
||||
+ if (err)
|
||||
+ return err;
|
||||
+
|
||||
+ err = of_property_read_u32(fb->dev->dev.of_node, "max-memory-bandwidth",
|
||||
+ &max_bandwidth);
|
||||
+ if (!err)
|
||||
+ fb->panel->bpp = 8 * max_bandwidth / (fb->panel->mode.xres *
|
||||
+ fb->panel->mode.yres * fb->panel->mode.refresh);
|
||||
+ else
|
||||
+ fb->panel->bpp = 32;
|
||||
+
|
||||
+#ifdef CONFIG_CPU_BIG_ENDIAN
|
||||
+ fb->panel->cntl |= CNTL_BEBO;
|
||||
+#endif
|
||||
+ fb->panel->width = -1;
|
||||
+ fb->panel->height = -1;
|
||||
+
|
||||
+ if (of_property_read_u32_array(endpoint,
|
||||
+ "arm,pl11x,tft-r0g0b0-pads",
|
||||
+ tft_r0b0g0, ARRAY_SIZE(tft_r0b0g0)) == 0)
|
||||
+ return clcdfb_of_init_tft_panel(fb, tft_r0b0g0[0],
|
||||
+ tft_r0b0g0[1], tft_r0b0g0[2]);
|
||||
+
|
||||
+ return -ENOENT;
|
||||
+}
|
||||
+
|
||||
+static int clcdfb_of_vram_setup(struct clcd_fb *fb)
|
||||
+{
|
||||
+ int err;
|
||||
+ struct device_node *memory;
|
||||
+ u64 size;
|
||||
+
|
||||
+ err = clcdfb_of_init_display(fb);
|
||||
+ if (err)
|
||||
+ return err;
|
||||
+
|
||||
+ memory = of_parse_phandle(fb->dev->dev.of_node, "memory-region", 0);
|
||||
+ if (!memory)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ fb->fb.screen_base = of_iomap(memory, 0);
|
||||
+ if (!fb->fb.screen_base)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ fb->fb.fix.smem_start = of_translate_address(memory,
|
||||
+ of_get_address(memory, 0, &size, NULL));
|
||||
+ fb->fb.fix.smem_len = size;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int clcdfb_of_vram_mmap(struct clcd_fb *fb, struct vm_area_struct *vma)
|
||||
+{
|
||||
+ unsigned long off, user_size, kernel_size;
|
||||
+
|
||||
+
|
||||
+ off = vma->vm_pgoff << PAGE_SHIFT;
|
||||
+ user_size = vma->vm_end - vma->vm_start;
|
||||
+ kernel_size = fb->fb.fix.smem_len;
|
||||
+
|
||||
+ if (off >= kernel_size || user_size > (kernel_size - off))
|
||||
+ return -ENXIO;
|
||||
+
|
||||
+ return remap_pfn_range(vma, vma->vm_start,
|
||||
+ __phys_to_pfn(fb->fb.fix.smem_start) + vma->vm_pgoff,
|
||||
+ user_size,
|
||||
+ pgprot_writecombine(vma->vm_page_prot));
|
||||
+}
|
||||
+
|
||||
+static void clcdfb_of_vram_remove(struct clcd_fb *fb)
|
||||
+{
|
||||
+ iounmap(fb->fb.screen_base);
|
||||
+}
|
||||
+
|
||||
+static int clcdfb_of_dma_setup(struct clcd_fb *fb)
|
||||
+{
|
||||
+ unsigned long framesize;
|
||||
+ dma_addr_t dma;
|
||||
+ int err;
|
||||
+
|
||||
+ err = clcdfb_of_init_display(fb);
|
||||
+ if (err)
|
||||
+ return err;
|
||||
+
|
||||
+ framesize = fb->panel->mode.xres * fb->panel->mode.yres *
|
||||
+ fb->panel->bpp / 8;
|
||||
+ fb->fb.screen_base = dma_alloc_coherent(&fb->dev->dev, framesize,
|
||||
+ &dma, GFP_KERNEL);
|
||||
+ if (!fb->fb.screen_base)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ fb->fb.fix.smem_start = dma;
|
||||
+ fb->fb.fix.smem_len = framesize;
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+static int clcdfb_of_dma_mmap(struct clcd_fb *fb, struct vm_area_struct *vma)
|
||||
+{
|
||||
+ return dma_mmap_writecombine(&fb->dev->dev, vma, fb->fb.screen_base,
|
||||
+ fb->fb.fix.smem_start, fb->fb.fix.smem_len);
|
||||
+}
|
||||
+
|
||||
+static void clcdfb_of_dma_remove(struct clcd_fb *fb)
|
||||
+{
|
||||
+ dma_free_coherent(&fb->dev->dev, fb->fb.fix.smem_len,
|
||||
+ fb->fb.screen_base, fb->fb.fix.smem_start);
|
||||
+}
|
||||
+
|
||||
+static struct clcd_board *clcdfb_of_get_board(struct amba_device *dev)
|
||||
+{
|
||||
+ struct clcd_board *board = devm_kzalloc(&dev->dev, sizeof(*board),
|
||||
+ GFP_KERNEL);
|
||||
+ struct device_node *node = dev->dev.of_node;
|
||||
+
|
||||
+ if (!board)
|
||||
+ return NULL;
|
||||
+
|
||||
+ board->name = of_node_full_name(node);
|
||||
+ board->caps = CLCD_CAP_ALL;
|
||||
+ board->check = clcdfb_check;
|
||||
+ board->decode = clcdfb_decode;
|
||||
+ if (of_find_property(node, "memory-region", NULL)) {
|
||||
+ board->setup = clcdfb_of_vram_setup;
|
||||
+ board->mmap = clcdfb_of_vram_mmap;
|
||||
+ board->remove = clcdfb_of_vram_remove;
|
||||
+ } else {
|
||||
+ board->setup = clcdfb_of_dma_setup;
|
||||
+ board->mmap = clcdfb_of_dma_mmap;
|
||||
+ board->remove = clcdfb_of_dma_remove;
|
||||
+ }
|
||||
+
|
||||
+ return board;
|
||||
+}
|
||||
+#else
|
||||
+static struct clcd_board *clcdfb_of_get_board(struct amba_dev *dev)
|
||||
+{
|
||||
+ return NULL;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
static int clcdfb_probe(struct amba_device *dev, const struct amba_id *id)
|
||||
{
|
||||
struct clcd_board *board = dev_get_platdata(&dev->dev);
|
||||
@@ -550,6 +810,9 @@ static int clcdfb_probe(struct amba_device *dev, const struct amba_id *id)
|
||||
int ret;
|
||||
|
||||
if (!board)
|
||||
+ board = clcdfb_of_get_board(dev);
|
||||
+
|
||||
+ if (!board)
|
||||
return -EINVAL;
|
||||
|
||||
ret = dma_set_mask_and_coherent(&dev->dev, DMA_BIT_MASK(32));
|
||||
commit 1d5167b72ca05b2096760e1200fcd53b5f9a7562
|
||||
Author: Pawel Moll <pawel.moll@arm.com>
|
||||
Date: Fri Aug 1 15:43:34 2014 +0100
|
||||
|
||||
video: ARM CLCD: Fix DT-related build problems
|
||||
|
||||
This patch fixes the following error when !CONFIG_OF:
|
||||
|
||||
drivers/video/fbdev/amba-clcd.c:800:54: warning: ‘struct amba_dev’ declared inside parameter list [enabled by default]
|
||||
static struct clcd_board *clcdfb_of_get_board(struct amba_dev *dev)
|
||||
^
|
||||
and adds a missing Kconfig select causing this
|
||||
when CONFIG_OF && !CONFIG_FB_MODE_HELPERS:
|
||||
|
||||
drivers/video/fbdev/amba-clcd.c:567: undefined reference to `fb_videomode_from_videomode'
|
||||
|
||||
Reported-by: Fengguang Wu <fengguang.wu@intel.com>
|
||||
Signed-off-by: Pawel Moll <pawel.moll@arm.com>
|
||||
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
|
||||
|
||||
diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
|
||||
index 6f451ad..ef94623 100644
|
||||
--- a/drivers/video/fbdev/Kconfig
|
||||
+++ b/drivers/video/fbdev/Kconfig
|
||||
@@ -280,6 +280,7 @@ config FB_ARMCLCD
|
||||
select FB_CFB_FILLRECT
|
||||
select FB_CFB_COPYAREA
|
||||
select FB_CFB_IMAGEBLIT
|
||||
+ select FB_MODE_HELPERS if OF
|
||||
select VIDEOMODE_HELPERS if OF
|
||||
help
|
||||
This framebuffer device driver is for the ARM PrimeCell PL110
|
||||
diff --git a/drivers/video/fbdev/amba-clcd.c b/drivers/video/fbdev/amba-clcd.c
|
||||
index 23b3519..beadd3e 100644
|
||||
--- a/drivers/video/fbdev/amba-clcd.c
|
||||
+++ b/drivers/video/fbdev/amba-clcd.c
|
||||
@@ -797,7 +797,7 @@ static struct clcd_board *clcdfb_of_get_board(struct amba_device *dev)
|
||||
return board;
|
||||
}
|
||||
#else
|
||||
-static struct clcd_board *clcdfb_of_get_board(struct amba_dev *dev)
|
||||
+static struct clcd_board *clcdfb_of_get_board(struct amba_device *dev)
|
||||
{
|
||||
return NULL;
|
||||
}
|
111
arm-tegra-drmdetection.patch
Normal file
111
arm-tegra-drmdetection.patch
Normal file
@ -0,0 +1,111 @@
|
||||
From: Stephen Warren <swarren@xxxxxxxxxx>
|
||||
|
||||
When tegra-drm.ko is built as a module, these MODULE_DEVICE_TABLEs allow
|
||||
the module to be auto-loaded since the module will match the devices
|
||||
instantiated from device tree.
|
||||
|
||||
(Notes for stable: in 3.14+, just git rm any conflicting file, since they
|
||||
are added in later kernels. For 3.13 and below, manual merging will be
|
||||
needed)
|
||||
|
||||
Cc: <stable@xxxxxxxxxxxxxxx>
|
||||
Signed-off-by: Stephen Warren <swarren@xxxxxxxxxx>
|
||||
---
|
||||
v2: Remove change to drm.c, since the match table there isn't used for
|
||||
probing.
|
||||
---
|
||||
drivers/gpu/drm/tegra/dc.c | 1 +
|
||||
drivers/gpu/drm/tegra/dpaux.c | 1 +
|
||||
drivers/gpu/drm/tegra/dsi.c | 1 +
|
||||
drivers/gpu/drm/tegra/gr2d.c | 1 +
|
||||
drivers/gpu/drm/tegra/gr3d.c | 1 +
|
||||
drivers/gpu/drm/tegra/hdmi.c | 1 +
|
||||
drivers/gpu/drm/tegra/sor.c | 1 +
|
||||
7 files changed, 7 insertions(+)
|
||||
|
||||
diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
|
||||
index ef40381f3909..48c3bc460eef 100644
|
||||
--- a/drivers/gpu/drm/tegra/dc.c
|
||||
+++ b/drivers/gpu/drm/tegra/dc.c
|
||||
@@ -1303,6 +1303,7 @@ static const struct of_device_id tegra_dc_of_match[] = {
|
||||
/* sentinel */
|
||||
}
|
||||
};
|
||||
+MODULE_DEVICE_TABLE(of, tegra_dc_of_match);
|
||||
|
||||
static int tegra_dc_parse_dt(struct tegra_dc *dc)
|
||||
{
|
||||
diff --git a/drivers/gpu/drm/tegra/dpaux.c b/drivers/gpu/drm/tegra/dpaux.c
|
||||
index 3f132e356e9c..708f783ead47 100644
|
||||
--- a/drivers/gpu/drm/tegra/dpaux.c
|
||||
+++ b/drivers/gpu/drm/tegra/dpaux.c
|
||||
@@ -382,6 +382,7 @@ static const struct of_device_id tegra_dpaux_of_match[] = {
|
||||
{ .compatible = "nvidia,tegra124-dpaux", },
|
||||
{ },
|
||||
};
|
||||
+MODULE_DEVICE_TABLE(of, tegra_dpaux_of_match);
|
||||
|
||||
struct platform_driver tegra_dpaux_driver = {
|
||||
.driver = {
|
||||
diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
|
||||
index bd56f2affa78..97c409f10456 100644
|
||||
--- a/drivers/gpu/drm/tegra/dsi.c
|
||||
+++ b/drivers/gpu/drm/tegra/dsi.c
|
||||
@@ -982,6 +982,7 @@ static const struct of_device_id tegra_dsi_of_match[] = {
|
||||
{ .compatible = "nvidia,tegra114-dsi", },
|
||||
{ },
|
||||
};
|
||||
+MODULE_DEVICE_TABLE(of, tegra_dsi_of_match);
|
||||
|
||||
struct platform_driver tegra_dsi_driver = {
|
||||
.driver = {
|
||||
diff --git a/drivers/gpu/drm/tegra/gr2d.c b/drivers/gpu/drm/tegra/gr2d.c
|
||||
index 7c53941f2a9e..02cd3e37a6ec 100644
|
||||
--- a/drivers/gpu/drm/tegra/gr2d.c
|
||||
+++ b/drivers/gpu/drm/tegra/gr2d.c
|
||||
@@ -121,6 +121,7 @@ static const struct of_device_id gr2d_match[] = {
|
||||
{ .compatible = "nvidia,tegra20-gr2d" },
|
||||
{ },
|
||||
};
|
||||
+MODULE_DEVICE_TABLE(of, gr2d_match);
|
||||
|
||||
static const u32 gr2d_addr_regs[] = {
|
||||
GR2D_UA_BASE_ADDR,
|
||||
diff --git a/drivers/gpu/drm/tegra/gr3d.c b/drivers/gpu/drm/tegra/gr3d.c
|
||||
index 30f5ba9bd6d0..2bea2b2d204e 100644
|
||||
--- a/drivers/gpu/drm/tegra/gr3d.c
|
||||
+++ b/drivers/gpu/drm/tegra/gr3d.c
|
||||
@@ -130,6 +130,7 @@ static const struct of_device_id tegra_gr3d_match[] = {
|
||||
{ .compatible = "nvidia,tegra20-gr3d" },
|
||||
{ }
|
||||
};
|
||||
+MODULE_DEVICE_TABLE(of, tegra_gr3d_match);
|
||||
|
||||
static const u32 gr3d_addr_regs[] = {
|
||||
GR3D_IDX_ATTRIBUTE( 0),
|
||||
diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
|
||||
index a0b8d8539d07..84ea0c8b47f7 100644
|
||||
--- a/drivers/gpu/drm/tegra/hdmi.c
|
||||
+++ b/drivers/gpu/drm/tegra/hdmi.c
|
||||
@@ -1370,6 +1370,7 @@ static const struct of_device_id tegra_hdmi_of_match[] = {
|
||||
{ .compatible = "nvidia,tegra20-hdmi", .data = &tegra20_hdmi_config },
|
||||
{ },
|
||||
};
|
||||
+MODULE_DEVICE_TABLE(of, tegra_hdmi_of_match);
|
||||
|
||||
static int tegra_hdmi_probe(struct platform_device *pdev)
|
||||
{
|
||||
diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
|
||||
index 27c979b50111..061a5c501124 100644
|
||||
--- a/drivers/gpu/drm/tegra/sor.c
|
||||
+++ b/drivers/gpu/drm/tegra/sor.c
|
||||
@@ -1455,6 +1455,7 @@ static const struct of_device_id tegra_sor_of_match[] = {
|
||||
{ .compatible = "nvidia,tegra124-sor", },
|
||||
{ },
|
||||
};
|
||||
+MODULE_DEVICE_TABLE(of, tegra_sor_of_match);
|
||||
|
||||
struct platform_driver tegra_sor_driver = {
|
||||
.driver = {
|
||||
--
|
||||
1.8.1.5
|
@ -1,132 +0,0 @@
|
||||
Bugzilla: 1093171
|
||||
Upstream-status: Queued for 3.16
|
||||
|
||||
From ee515e61a002b4d571407173ac8bbadadc114cf0 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 2 Jun 2014 17:41:08 +0200
|
||||
Subject: [PATCH 11/14] backlight: Add backlight device (un)registration
|
||||
notification
|
||||
|
||||
Some firmware drivers, ie acpi-video want to get themselves out of the
|
||||
way (in some cases) when their also is a raw backlight device available.
|
||||
|
||||
Due to module loading ordering being unknown, acpi-video cannot be certain
|
||||
that the backlight_device_registered(BACKLIGHT_RAW) it does for this is
|
||||
the final verdict wrt there being a BACKLIGHT_RAW device.
|
||||
|
||||
By adding notification acpi-video can listen for backlight devices showing
|
||||
up after it has loaded, and unregister its backlight device if desired.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/video/backlight/backlight.c | 40 +++++++++++++++++++++++++++++++++++++
|
||||
include/linux/backlight.h | 7 +++++++
|
||||
2 files changed, 47 insertions(+)
|
||||
|
||||
diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c
|
||||
index bd2172c2d650..428089009cd5 100644
|
||||
--- a/drivers/video/backlight/backlight.c
|
||||
+++ b/drivers/video/backlight/backlight.c
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
static struct list_head backlight_dev_list;
|
||||
static struct mutex backlight_dev_list_mutex;
|
||||
+static struct blocking_notifier_head backlight_notifier;
|
||||
|
||||
static const char *const backlight_types[] = {
|
||||
[BACKLIGHT_RAW] = "raw",
|
||||
@@ -370,6 +371,9 @@ struct backlight_device *backlight_device_register(const char *name,
|
||||
list_add(&new_bd->entry, &backlight_dev_list);
|
||||
mutex_unlock(&backlight_dev_list_mutex);
|
||||
|
||||
+ blocking_notifier_call_chain(&backlight_notifier,
|
||||
+ BACKLIGHT_REGISTERED, new_bd);
|
||||
+
|
||||
return new_bd;
|
||||
}
|
||||
EXPORT_SYMBOL(backlight_device_register);
|
||||
@@ -413,6 +417,10 @@ void backlight_device_unregister(struct backlight_device *bd)
|
||||
pmac_backlight = NULL;
|
||||
mutex_unlock(&pmac_backlight_mutex);
|
||||
#endif
|
||||
+
|
||||
+ blocking_notifier_call_chain(&backlight_notifier,
|
||||
+ BACKLIGHT_UNREGISTERED, bd);
|
||||
+
|
||||
mutex_lock(&bd->ops_lock);
|
||||
bd->ops = NULL;
|
||||
mutex_unlock(&bd->ops_lock);
|
||||
@@ -438,6 +446,36 @@ static int devm_backlight_device_match(struct device *dev, void *res,
|
||||
}
|
||||
|
||||
/**
|
||||
+ * backlight_register_notifier - get notified of backlight (un)registration
|
||||
+ * @nb: notifier block with the notifier to call on backlight (un)registration
|
||||
+ *
|
||||
+ * @return 0 on success, otherwise a negative error code
|
||||
+ *
|
||||
+ * Register a notifier to get notified when backlight devices get registered
|
||||
+ * or unregistered.
|
||||
+ */
|
||||
+int backlight_register_notifier(struct notifier_block *nb)
|
||||
+{
|
||||
+ return blocking_notifier_chain_register(&backlight_notifier, nb);
|
||||
+}
|
||||
+EXPORT_SYMBOL(backlight_register_notifier);
|
||||
+
|
||||
+/**
|
||||
+ * backlight_unregister_notifier - unregister a backlight notifier
|
||||
+ * @nb: notifier block to unregister
|
||||
+ *
|
||||
+ * @return 0 on success, otherwise a negative error code
|
||||
+ *
|
||||
+ * Register a notifier to get notified when backlight devices get registered
|
||||
+ * or unregistered.
|
||||
+ */
|
||||
+int backlight_unregister_notifier(struct notifier_block *nb)
|
||||
+{
|
||||
+ return blocking_notifier_chain_unregister(&backlight_notifier, nb);
|
||||
+}
|
||||
+EXPORT_SYMBOL(backlight_unregister_notifier);
|
||||
+
|
||||
+/**
|
||||
* devm_backlight_device_register - resource managed backlight_device_register()
|
||||
* @dev: the device to register
|
||||
* @name: the name of the device
|
||||
@@ -544,6 +582,8 @@ static int __init backlight_class_init(void)
|
||||
backlight_class->pm = &backlight_class_dev_pm_ops;
|
||||
INIT_LIST_HEAD(&backlight_dev_list);
|
||||
mutex_init(&backlight_dev_list_mutex);
|
||||
+ BLOCKING_INIT_NOTIFIER_HEAD(&backlight_notifier);
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
diff --git a/include/linux/backlight.h b/include/linux/backlight.h
|
||||
index 72647429adf6..adb14a8616df 100644
|
||||
--- a/include/linux/backlight.h
|
||||
+++ b/include/linux/backlight.h
|
||||
@@ -40,6 +40,11 @@ enum backlight_type {
|
||||
BACKLIGHT_TYPE_MAX,
|
||||
};
|
||||
|
||||
+enum backlight_notification {
|
||||
+ BACKLIGHT_REGISTERED,
|
||||
+ BACKLIGHT_UNREGISTERED,
|
||||
+};
|
||||
+
|
||||
struct backlight_device;
|
||||
struct fb_info;
|
||||
|
||||
@@ -133,6 +138,8 @@ extern void devm_backlight_device_unregister(struct device *dev,
|
||||
extern void backlight_force_update(struct backlight_device *bd,
|
||||
enum backlight_update_reason reason);
|
||||
extern bool backlight_device_registered(enum backlight_type type);
|
||||
+extern int backlight_register_notifier(struct notifier_block *nb);
|
||||
+extern int backlight_unregister_notifier(struct notifier_block *nb);
|
||||
|
||||
#define to_backlight_device(obj) container_of(obj, struct backlight_device, dev)
|
||||
|
||||
--
|
||||
1.9.0
|
||||
|
@ -2,6 +2,7 @@ CONFIG_KUSER_HELPERS=y
|
||||
# CONFIG_ASYMMETRIC_KEY_TYPE is not set
|
||||
CONFIG_COMMON_CLK=y
|
||||
CONFIG_EARLY_PRINTK=y
|
||||
CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
|
||||
CONFIG_FB_SSD1307=m
|
||||
CONFIG_HW_PERF_EVENTS=y
|
||||
CONFIG_NFS_FS=y
|
||||
@ -29,7 +30,6 @@ CONFIG_INPUT_PWM_BEEPER=m
|
||||
CONFIG_ARM_SP805_WATCHDOG=m
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
|
||||
# CONFIG_ARM_DT_BL_CPUFREQ is not set
|
||||
CONFIG_NR_CPUS=8
|
||||
|
||||
CONFIG_SWIOTLB=y
|
||||
@ -43,7 +43,9 @@ CONFIG_HAVE_PERF_USER_STACK_DUMP=y
|
||||
CONFIG_ARM_AMBA=y
|
||||
CONFIG_ARM_CCI=y
|
||||
CONFIG_ARM_DMA_USE_IOMMU=y
|
||||
CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8
|
||||
CONFIG_ARM_GIC=y
|
||||
CONFIG_KVM_ARM_VGIC=y
|
||||
CONFIG_ARM_GLOBAL_TIMER=y
|
||||
CONFIG_ARM_SMMU=y
|
||||
CONFIG_MMC_ARMMMCI=y
|
||||
@ -55,12 +57,22 @@ CONFIG_FB_ARMCLCD=y
|
||||
|
||||
# ARM VExpress
|
||||
CONFIG_ARCH_VEXPRESS=y
|
||||
CONFIG_VEXPRESS_CONFIG=y
|
||||
CONFIG_MFD_VEXPRESS_SYSREG=y
|
||||
CONFIG_VEXPRESS_SYSCFG=y
|
||||
CONFIG_COMMON_CLK_VERSATILE=y
|
||||
CONFIG_CLK_SP810=y
|
||||
CONFIG_CLK_VEXPRESS_OSC=y
|
||||
CONFIG_I2C_VERSATILE=m
|
||||
CONFIG_POWER_RESET_VEXPRESS=y
|
||||
CONFIG_REGULATOR_VEXPRESS=m
|
||||
CONFIG_SENSORS_VEXPRESS=m
|
||||
CONFIG_CLKSRC_VERSATILE=y
|
||||
# CONFIG_ARM_CHARLCD is not set
|
||||
|
||||
# Power/Thermal/Cpufreq
|
||||
CONFIG_GENERIC_CPUFREQ_CPU0=m
|
||||
# CONFIG_ARM_DT_BL_CPUFREQ is not set
|
||||
# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set
|
||||
|
||||
# Device tree
|
||||
CONFIG_DTC=y
|
||||
@ -106,6 +118,7 @@ CONFIG_MTD_OF_PARTS=m
|
||||
CONFIG_MTD_PHYSMAP=m
|
||||
CONFIG_MTD_PHYSMAP_OF=m
|
||||
# CONFIG_MTD_PHYSMAP_COMPAT is not set
|
||||
# CONFIG_MTD_LPDDR2_NVM is not set
|
||||
|
||||
# GPIO
|
||||
CONFIG_GPIO_DEVRES=y
|
||||
@ -130,6 +143,9 @@ CONFIG_I2C_MUX_PINCTRL=m
|
||||
CONFIG_I2C_MUX_PCA9541=m
|
||||
CONFIG_I2C_MUX_PCA954x=m
|
||||
|
||||
# spi
|
||||
CONFIG_SPI_PL022=m
|
||||
|
||||
# Sensors
|
||||
CONFIG_SENSORS_IIO_HWMON=m
|
||||
CONFIG_IIO_SYSFS_TRIGGER=m
|
||||
@ -161,28 +177,18 @@ CONFIG_CMA_AREAS=7
|
||||
# CONFIG_CRYPTO_TEST is not set
|
||||
# CONFIG_TRANSPARENT_HUGEPAGE is not set
|
||||
# CONFIG_XEN is not set
|
||||
# CONFIG_DRM_RCAR_DU is not set
|
||||
# CONFIG_I2C_RCAR is not set
|
||||
# CONFIG_DRM_SHMOBILE is not set
|
||||
# CONFIG_I2C_SH_MOBILE is not set
|
||||
|
||||
# CONFIG_MMC_DW_SOCFPGA is not set
|
||||
# CONFIG_I2C_NOMADIK is not set
|
||||
# CONFIG_IRQ_DOMAIN_DEBUG is not set
|
||||
# CONFIG_LEDS_RENESAS_TPU is not set
|
||||
# CONFIG_LOCK_STAT is not set
|
||||
|
||||
# CONFIG_DRM_ARMADA is not set
|
||||
# CONFIG_DRM_TEGRA is not set
|
||||
# CONFIG_SHMOBILE_IOMMU is not set
|
||||
|
||||
# CONFIG_COMMON_CLK_SI570 is not set
|
||||
# CONFIG_COMMON_CLK_QCOM is not set
|
||||
|
||||
# CONFIG_IRQ_DOMAIN_DEBUG is not set
|
||||
# CONFIG_ARM_PTDUMP is not set
|
||||
|
||||
# CONFIG_PATA_PLATFORM is not set
|
||||
|
||||
### turn off things which make no sense on embedded SoC
|
||||
### turn off things which make no sense on ARM
|
||||
|
||||
# core
|
||||
|
||||
@ -195,6 +201,8 @@ CONFIG_CMA_AREAS=7
|
||||
# CONFIG_ISDN is not set
|
||||
# CONFIG_GAMEPORT is not set
|
||||
# CONFIG_AGP is not set
|
||||
# CONFIG_PATA_PLATFORM is not set
|
||||
# CONFIG_USB_ULPI is not set
|
||||
|
||||
# netdrv
|
||||
|
||||
@ -237,5 +245,6 @@ CONFIG_CMA_AREAS=7
|
||||
|
||||
# drm
|
||||
# CONFIG_DRM_VMWGFX is not set
|
||||
# CONFIG_IMX_IPUV3_CORE is not set
|
||||
|
||||
# CONFIG_DEBUG_SET_MODULE_RONX is not set
|
||||
|
34
config-arm64
34
config-arm64
@ -67,13 +67,37 @@ CONFIG_SPARSEMEM_VMEMMAP=y
|
||||
CONFIG_VIRTUALIZATION=y
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
|
||||
CONFIG_EFI=y
|
||||
CONFIG_EFI_VARS=y
|
||||
CONFIG_EFIVAR_FS=y
|
||||
CONFIG_EFI_VARS_PSTORE=y
|
||||
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
|
||||
|
||||
CONFIG_ARM64_CRYPTO=y
|
||||
CONFIG_CRYPTO_SHA1_ARM64_CE=m
|
||||
CONFIG_CRYPTO_SHA2_ARM64_CE=m
|
||||
CONFIG_CRYPTO_GHASH_ARM64_CE=m
|
||||
CONFIG_CRYPTO_AES_ARM64_CE=m
|
||||
CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
|
||||
CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
|
||||
CONFIG_CRYPTO_AES_ARM64_NEON_BLK=m
|
||||
|
||||
# APM Xgene
|
||||
CONFIG_POWER_RESET_XGENE=y
|
||||
CONFIG_COMMON_CLK_XGENE=y
|
||||
|
||||
CONFIG_AHCI_XGENE=y
|
||||
CONFIG_PHY_XGENE=y
|
||||
CONFIG_NET_XGENE=y
|
||||
CONFIG_RTC_DRV_XGENE=m
|
||||
CONFIG_RTC_DRV_EFI=y
|
||||
|
||||
# not arm64
|
||||
# CONFIG_GPIO_ADNP is not set
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
# CONFIG_MDIO_BUS_MUX_GPIO is not set
|
||||
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
|
||||
|
||||
|
||||
# busted build for various reasons
|
||||
# uses pci_* for some reason to allocate DMA buffers
|
||||
# CONFIG_DVB_B2C2_FLEXCOP_USB is not set
|
||||
@ -82,8 +106,8 @@ CONFIG_VM_EVENT_COUNTERS=y
|
||||
# dma issues in headers
|
||||
# CONFIG_PARPORT_PC is not set
|
||||
# CONFIG_VGA_CONSOLE is not set
|
||||
CONFIG_POWER_RESET_XGENE=y
|
||||
CONFIG_COMMON_CLK_XGENE=y
|
||||
|
||||
CONFIG_AHCI_XGENE=m
|
||||
CONFIG_PHY_XGENE=m
|
||||
CONFIG_PCI_XGENE=y
|
||||
CONFIG_HOTPLUG_PCI=y
|
||||
# CONFIG_HOTPLUG_PCI_CPCI is not set
|
||||
# CONFIG_HOTPLUG_PCI_SHPC is not set
|
||||
|
195
config-armv7
195
config-armv7
@ -8,6 +8,7 @@ CONFIG_ARCH_MXC=y
|
||||
CONFIG_ARCH_OMAP3=y
|
||||
CONFIG_ARCH_OMAP4=y
|
||||
CONFIG_ARCH_PICOXCELL=y
|
||||
CONFIG_ARCH_QCOM=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
# CONFIG_ARCH_SOCFPGA is not set
|
||||
CONFIG_ARCH_TEGRA=y
|
||||
@ -24,9 +25,9 @@ CONFIG_ARCH_ZYNQ=y
|
||||
# mvebu
|
||||
CONFIG_MACH_ARMADA_370_XP=y
|
||||
CONFIG_MACH_ARMADA_370=y
|
||||
CONFIG_MACH_ARMADA_375=y
|
||||
CONFIG_MACH_ARMADA_38X=y
|
||||
CONFIG_MACH_ARMADA_XP=y
|
||||
# CONFIG_MACH_ARMADA_375 is not set
|
||||
# CONFIG_MACH_ARMADA_38X is not set
|
||||
CONFIG_MACH_DOVE=y
|
||||
|
||||
CONFIG_MVEBU_DEVBUS=y
|
||||
@ -38,6 +39,7 @@ CONFIG_MV643XX_ETH=m
|
||||
CONFIG_PINCTRL_MVEBU=y
|
||||
CONFIG_PINCTRL_ARMADA_370=y
|
||||
CONFIG_PINCTRL_ARMADA_XP=y
|
||||
# CONFIG_ARM_ARMADA_370_XP_CPUIDLE is not set
|
||||
CONFIG_PINCTRL_DOVE=y
|
||||
CONFIG_EDAC_MV64X60=m
|
||||
CONFIG_RTC_DRV_S35390A=m
|
||||
@ -54,7 +56,9 @@ CONFIG_MMC_SDHCI_DOVE=m
|
||||
CONFIG_SPI_ORION=m
|
||||
CONFIG_USB_MV_UDC=m
|
||||
CONFIG_MVEBU_MBUS=y
|
||||
CONFIG_USB_XHCI_MVEBU=m
|
||||
CONFIG_PHY_MVEBU_SATA=y
|
||||
CONFIG_AHCI_MVEBU=m
|
||||
CONFIG_ARMADA_THERMAL=m
|
||||
CONFIG_DOVE_THERMAL=m
|
||||
CONFIG_DRM_ARMADA=m
|
||||
@ -62,6 +66,8 @@ CONFIG_ORION_WATCHDOG=m
|
||||
CONFIG_SND_KIRKWOOD_SOC=m
|
||||
CONFIG_SND_KIRKWOOD_SOC_ARMADA370_DB=m
|
||||
CONFIG_USB_EHCI_HCD_ORION=m
|
||||
CONFIG_MMC_SDHCI_PXAV3=m
|
||||
CONFIG_MVPP2=m
|
||||
# CONFIG_CACHE_FEROCEON_L2 is not set
|
||||
# CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set
|
||||
|
||||
@ -104,7 +110,6 @@ CONFIG_OMAP_PACKAGE_CUS=y
|
||||
|
||||
CONFIG_OMAP_MCBSP=y
|
||||
CONFIG_OMAP2PLUS_MBOX=m
|
||||
CONFIG_OMAP_MBOX_FWK=m
|
||||
CONFIG_OMAP_MBOX_KFIFO_SIZE=256
|
||||
CONFIG_OMAP_DM_TIMER=y
|
||||
CONFIG_OMAP_PM_NOOP=y
|
||||
@ -166,6 +171,8 @@ CONFIG_PINCTRL_PALMAS=y
|
||||
CONFIG_REGULATOR_PALMAS=y
|
||||
CONFIG_REGULATOR_PBIAS=m
|
||||
CONFIG_RTC_DRV_PALMAS=m
|
||||
CONFIG_OMAP5_DSS_HDMI=y
|
||||
CONFIG_OMAP5_DSS_HDMI_AUDIO=y
|
||||
|
||||
CONFIG_WL_TI=y
|
||||
CONFIG_WLCORE_SDIO=m
|
||||
@ -180,7 +187,6 @@ CONFIG_MTD_NAND_OMAP2=m
|
||||
CONFIG_MTD_NAND_OMAP_BCH=y
|
||||
CONFIG_SPI_OMAP24XX=m
|
||||
CONFIG_MFD_TI_SSP=m
|
||||
CONFIG_SPI_TI_SSP=m
|
||||
CONFIG_SPI_TI_QSPI=m
|
||||
|
||||
CONFIG_INPUT_TWL4030_PWRBUTTON=m
|
||||
@ -296,21 +302,12 @@ CONFIG_RADIO_WL128X=m
|
||||
CONFIG_OMAP_REMOTEPROC=m
|
||||
|
||||
# CONFIG_TIDSPBRIDGE is not set
|
||||
# CONFIG_TIDSPBRIDGE_MEMPOOL_SIZE=0x600000
|
||||
# CONFIG_TIDSPBRIDGE_DEBUG is not set
|
||||
# CONFIG_TIDSPBRIDGE_RECOVERY=y
|
||||
# CONFIG_TIDSPBRIDGE_CACHE_LINE_CHECK is not set
|
||||
# CONFIG_TIDSPBRIDGE_WDT3=y
|
||||
# CONFIG_TIDSPBRIDGE_WDT_TIMEOUT=5
|
||||
# CONFIG_TIDSPBRIDGE_NTFY_PWRERR is not set
|
||||
# CONFIG_TIDSPBRIDGE_BACKTRACE is not set
|
||||
|
||||
# CONFIG_OMAP2_DSS_DEBUGFS is not set
|
||||
# CONFIG_OMAP_IOMMU_DEBUG is not set
|
||||
# CONFIG_OMAP_MUX_DEBUG is not set
|
||||
# CONFIG_VIDEO_OMAP3_DEBUG is not set
|
||||
|
||||
# AM33xx
|
||||
# AM33xx/43xx
|
||||
CONFIG_SOC_AM33XX=y
|
||||
CONFIG_SOC_AM43XX=y
|
||||
CONFIG_AM335X_CONTROL_USB=m
|
||||
@ -342,24 +339,62 @@ CONFIG_REGULATOR_TI_ABB=m
|
||||
CONFIG_TI_ADC081C=m
|
||||
CONFIG_TI_AM335X_ADC=m
|
||||
CONFIG_PWM_TIPWMSS=y
|
||||
# CONFIG_GPIO_DAVINCI is not set
|
||||
# CONFIG_DAVINCI_WATCHDOG is not set
|
||||
CONFIG_MFD_TPS65218=m
|
||||
CONFIG_REGULATOR_TPS65218=m
|
||||
|
||||
# QCom
|
||||
CONFIG_ARCH_MSM8X60=y
|
||||
CONFIG_ARCH_MSM8960=y
|
||||
CONFIG_ARCH_MSM8974=y
|
||||
CONFIG_SERIAL_MSM=y
|
||||
CONFIG_SERIAL_MSM_CONSOLE=y
|
||||
CONFIG_PINCTRL_APQ8064=m
|
||||
CONFIG_PINCTRL_IPQ8064=m
|
||||
CONFIG_PINCTRL_MSM8960=m
|
||||
CONFIG_PINCTRL_MSM8960=m
|
||||
CONFIG_COMMON_CLK_QCOM=m
|
||||
CONFIG_APQ_GCC_8084=m
|
||||
CONFIG_APQ_MMCC_8084=m
|
||||
CONFIG_IPQ_GCC_806X=m
|
||||
CONFIG_MSM_GCC_8660=m
|
||||
CONFIG_MSM_GCC_8960=m
|
||||
CONFIG_MSM_MMCC_8960=m
|
||||
CONFIG_MSM_GCC_8974=m
|
||||
CONFIG_MSM_MMCC_8974=m
|
||||
CONFIG_HW_RANDOM_MSM=m
|
||||
CONFIG_I2C_QUP=m
|
||||
CONFIG_SPI_QUP=m
|
||||
CONFIG_GPIO_MSM_V2=m
|
||||
CONFIG_POWER_RESET_MSM=y
|
||||
CONFIG_USB_MSM_OTG=m
|
||||
CONFIG_MMC_SDHCI_MSM=m
|
||||
CONFIG_QCOM_BAM_DMA=m
|
||||
CONFIG_QCOM_GSBI=m
|
||||
CONFIG_MSM_IOMMU=y
|
||||
CONFIG_DRM_MSM=m
|
||||
CONFIG_DRM_MSM_FBDEV=y
|
||||
CONFIG_USB_EHCI_MSM=m
|
||||
# CONFIG_DRM_MSM_REGISTER_LOGGING is not set
|
||||
|
||||
# i.MX
|
||||
CONFIG_MXC_IRQ_PRIOR=y
|
||||
# CONFIG_MXC_DEBUG_BOARD is not set
|
||||
CONFIG_SOC_IMX50=y
|
||||
CONFIG_SOC_IMX51=y
|
||||
CONFIG_SOC_IMX53=y
|
||||
CONFIG_SOC_IMX6Q=y
|
||||
CONFIG_SOC_IMX6SL=y
|
||||
CONFIG_SOC_IMX6SX=y
|
||||
# CONFIG_SOC_VF610 is not set
|
||||
CONFIG_MACH_IMX51_DT=y
|
||||
# CONFIG_MACH_MX51_BABBAGE is not set
|
||||
# CONFIG_MACH_EUKREA_CPUIMX51SD is not set
|
||||
CONFIG_ARM_IMX6Q_CPUFREQ=m
|
||||
CONFIG_IMX_THERMAL=m
|
||||
CONFIG_PATA_IMX=m
|
||||
CONFIG_PCI_IMX6=y
|
||||
CONFIG_IMX_THERMAL=m
|
||||
CONFIG_IMX_SDMA=m
|
||||
CONFIG_IMX_DMA=m
|
||||
CONFIG_MXS_DMA=y
|
||||
CONFIG_AHCI_IMX=m
|
||||
CONFIG_PATA_IMX=m
|
||||
CONFIG_USB_EHCI_MXC=m
|
||||
CONFIG_USB_CHIPIDEA=m
|
||||
CONFIG_USB_CHIPIDEA_UDC=y
|
||||
@ -377,10 +412,12 @@ CONFIG_PINCTRL_IMX6SL=y
|
||||
CONFIG_I2C_IMX=m
|
||||
CONFIG_STMPE_I2C=y
|
||||
CONFIG_SPI_IMX=m
|
||||
CONFIG_SPI_FSL_QUADSPI=m
|
||||
CONFIG_STMPE_SPI=y
|
||||
CONFIG_MFD_MC13783=m
|
||||
CONFIG_MFD_MC13XXX_SPI=m
|
||||
CONFIG_MFD_STMPE=y
|
||||
CONFIG_MTD_NAND_GPMI_NAND=m
|
||||
CONFIG_W1_MASTER_MXC=m
|
||||
CONFIG_IMX_WEIM=y
|
||||
CONFIG_IMX2_WDT=m
|
||||
@ -391,6 +428,8 @@ CONFIG_RTC_DRV_SNVS=m
|
||||
# CONFIG_FB_IMX is not set
|
||||
|
||||
CONFIG_SND_IMX_SOC=m
|
||||
CONFIG_SND_SOC_FSL_ESAI=m
|
||||
CONFIG_SND_SOC_FSL_SAI=m
|
||||
CONFIG_SND_SOC_FSL_SPDIF=m
|
||||
CONFIG_SND_SOC_FSL_SSI=m
|
||||
CONFIG_SND_SOC_FSL_UTILS=m
|
||||
@ -403,6 +442,8 @@ CONFIG_SND_SOC_IMX_WM8962=m
|
||||
CONFIG_SND_SOC_IMX_MC13783=m
|
||||
CONFIG_SND_SOC_IMX_SPDIF=m
|
||||
CONFIG_SND_SOC_EUKREA_TLV320=m
|
||||
CONFIG_SND_SOC_TVL320AIC32X4=m
|
||||
CONFIG_SND_SOC_WM8731=m
|
||||
|
||||
CONFIG_USB_IMX21_HCD=m
|
||||
CONFIG_USB_MXS_PHY=m
|
||||
@ -413,16 +454,12 @@ CONFIG_RTC_DRV_IMXDI=m
|
||||
CONFIG_RTC_DRV_MXC=m
|
||||
# CONFIG_MX3_IPU is not set
|
||||
# CONFIG_MX3_IPU_IRQS is not set
|
||||
CONFIG_IMX_SDMA=m
|
||||
CONFIG_IMX_DMA=m
|
||||
CONFIG_AHCI_IMX=m
|
||||
# CONFIG_MXS_DMA is not set
|
||||
|
||||
CONFIG_PWM_IMX=m
|
||||
CONFIG_DRM_IMX=m
|
||||
CONFIG_DRM_IMX_FB_HELPER=m
|
||||
CONFIG_DRM_IMX_HDMI=m
|
||||
CONFIG_DRM_IMX_IPUV3_CORE=m
|
||||
CONFIG_IMX_IPUV3_CORE=m
|
||||
CONFIG_DRM_IMX_IPUV3=m
|
||||
CONFIG_DRM_IMX_LDB=m
|
||||
CONFIG_DRM_IMX_PARALLEL_DISPLAY=m
|
||||
@ -465,15 +502,18 @@ CONFIG_REGULATOR_DA9052=m
|
||||
CONFIG_REGULATOR_DA9055=m
|
||||
|
||||
# picoxcell
|
||||
CONFIG_CRYPTO_DEV_PICOXCELL=m
|
||||
CONFIG_HW_RANDOM_PICOXCELL=m
|
||||
# CONFIG_CRYPTO_DEV_PICOXCELL is not set
|
||||
# CONFIG_HW_RANDOM_PICOXCELL is not set
|
||||
|
||||
# Rockchips
|
||||
CONFIG_I2C_RK3X=m
|
||||
|
||||
# ST Ericsson
|
||||
CONFIG_MACH_HREFV60=y
|
||||
CONFIG_MACH_SNOWBALL=y
|
||||
|
||||
CONFIG_ABX500_CORE=y
|
||||
CONFIG_ARM_U8500_CPUIDLE=y
|
||||
# CONFIG_ARM_U8500_CPUIDLE is not set
|
||||
CONFIG_UX500_DEBUG_UART=2
|
||||
CONFIG_AB8500_CORE=y
|
||||
CONFIG_STE_DMA40=y
|
||||
@ -517,45 +557,19 @@ CONFIG_IIO_ST_SENSORS_I2C=m
|
||||
CONFIG_IIO_ST_SENSORS_SPI=m
|
||||
CONFIG_IIO_ST_SENSORS_CORE=m
|
||||
|
||||
# tegra
|
||||
# Allwinner
|
||||
CONFIG_MACH_SUN4I=y
|
||||
CONFIG_MACH_SUN5I=y
|
||||
|
||||
# Tegra (non A15)
|
||||
CONFIG_ARCH_TEGRA_2x_SOC=y
|
||||
CONFIG_ARCH_TEGRA_3x_SOC=y
|
||||
CONFIG_ARCH_TEGRA_114_SOC=y
|
||||
CONFIG_ARCH_TEGRA_124_SOC=y
|
||||
CONFIG_ARM_TEGRA_CPUFREQ=y
|
||||
CONFIG_TEGRA20_MC=y
|
||||
CONFIG_TEGRA30_MC=y
|
||||
CONFIG_TRUSTED_FOUNDATIONS=y
|
||||
|
||||
CONFIG_SERIAL_TEGRA=y
|
||||
|
||||
CONFIG_PCI_TEGRA=y
|
||||
CONFIG_TEGRA_IOMMU_GART=y
|
||||
CONFIG_TEGRA_IOMMU_SMMU=y
|
||||
CONFIG_MMC_SDHCI_TEGRA=m
|
||||
CONFIG_TEGRA_WATCHDOG=m
|
||||
CONFIG_I2C_TEGRA=m
|
||||
|
||||
CONFIG_TEGRA_SYSTEM_DMA=y
|
||||
CONFIG_TEGRA_EMC_SCALING_ENABLE=y
|
||||
CONFIG_TEGRA_AHB=y
|
||||
CONFIG_TEGRA20_APB_DMA=y
|
||||
CONFIG_SPI_TEGRA114=m
|
||||
CONFIG_SPI_TEGRA20_SFLASH=m
|
||||
CONFIG_SPI_TEGRA20_SLINK=m
|
||||
|
||||
CONFIG_MFD_MAX8907=m
|
||||
CONFIG_KEYBOARD_TEGRA=m
|
||||
CONFIG_PINCTRL_TEGRA=y
|
||||
CONFIG_PINCTRL_TEGRA20=y
|
||||
CONFIG_PINCTRL_TEGRA30=y
|
||||
CONFIG_USB_EHCI_TEGRA=m
|
||||
CONFIG_RTC_DRV_TEGRA=m
|
||||
|
||||
CONFIG_SND_SOC_TEGRA=m
|
||||
CONFIG_SND_SOC_TEGRA_ALC5632=m
|
||||
CONFIG_SND_SOC_TEGRA_MAX98090=m
|
||||
CONFIG_SND_SOC_TEGRA_RT5640=m
|
||||
CONFIG_SND_SOC_TEGRA_TRIMSLICE=m
|
||||
CONFIG_SND_SOC_TEGRA_WM8753=m
|
||||
CONFIG_SND_SOC_TEGRA_WM8903=m
|
||||
@ -563,8 +577,6 @@ CONFIG_SND_SOC_TEGRA_WM9712=m
|
||||
CONFIG_SND_SOC_TEGRA20_AC97=m
|
||||
CONFIG_SND_SOC_TEGRA20_DAS=m
|
||||
CONFIG_SND_SOC_TEGRA20_SPDIF=m
|
||||
CONFIG_SND_SOC_TEGRA30_AHUB=m
|
||||
CONFIG_SND_SOC_TEGRA30_I2S=m
|
||||
|
||||
# AC100 (PAZ00)
|
||||
CONFIG_MFD_NVEC=y
|
||||
@ -572,28 +584,12 @@ CONFIG_MFD_TPS80031=y
|
||||
CONFIG_KEYBOARD_NVEC=y
|
||||
CONFIG_SERIO_NVEC_PS2=y
|
||||
CONFIG_NVEC_POWER=y
|
||||
CONFIG_POWER_SUPPLY=y
|
||||
CONFIG_NVEC_LEDS=y
|
||||
CONFIG_NVEC_PAZ00=y
|
||||
CONFIG_MFD_TPS6586X=y
|
||||
CONFIG_GPIO_TPS6586X=y
|
||||
CONFIG_RTC_DRV_TPS6586X=m
|
||||
|
||||
CONFIG_PWM_TEGRA=m
|
||||
|
||||
CONFIG_TEGRA_HOST1X=m
|
||||
CONFIG_TEGRA_HOST1X_FIREWALL=y
|
||||
CONFIG_DRM_TEGRA=m
|
||||
CONFIG_DRM_TEGRA_FBDEV=y
|
||||
# CONFIG_DRM_TEGRA_DEBUG is not set
|
||||
CONFIG_DRM_TEGRA_STAGING=y
|
||||
CONFIG_DRM_PANEL=y
|
||||
CONFIG_DRM_PANEL_SIMPLE=m
|
||||
CONFIG_DRM_PANEL_LD9040=m
|
||||
CONFIG_DRM_PANEL_S6E8AA0=m
|
||||
|
||||
CONFIG_CRYPTO_DEV_TEGRA_AES=m
|
||||
|
||||
# OLPC XO
|
||||
CONFIG_SERIO_OLPC_APSP=m
|
||||
|
||||
@ -611,13 +607,19 @@ CONFIG_XILINX_EMACLITE=m
|
||||
CONFIG_GPIO_XILINX=y
|
||||
CONFIG_I2C_XILINX=m
|
||||
CONFIG_SPI_XILINX=m
|
||||
CONFIG_SPI_CADENCE=m
|
||||
CONFIG_MMC_SDHCI_OF_ARASAN=m
|
||||
CONFIG_I2C_CADENCE=m
|
||||
CONFIG_XILINX_WATCHDOG=m
|
||||
CONFIG_XILINX_XADC=m
|
||||
CONFIG_XILINX_VDMA=m
|
||||
CONFIG_SND_SOC_ADI=m
|
||||
CONFIG_SND_SOC_ADI_AXI_I2S=m
|
||||
CONFIG_SND_SOC_ADI_AXI_SPDIF=m
|
||||
CONFIG_XILLYBUS=m
|
||||
CONFIG_XILLYBUS_PCIE=m
|
||||
CONFIG_XILLYBUS_OF=m
|
||||
CONFIG_GS_FPGABOOT=m
|
||||
|
||||
# Multi function devices
|
||||
CONFIG_MFD_88PM800=m
|
||||
@ -643,42 +645,3 @@ CONFIG_REGULATOR_MAX8660=m
|
||||
CONFIG_REGULATOR_MAX8907=m
|
||||
CONFIG_REGULATOR_MAX8952=m
|
||||
CONFIG_REGULATOR_MAX8973=m
|
||||
|
||||
# Needs work/investigation
|
||||
# CONFIG_MTD_AFS_PARTS is not set
|
||||
# CONFIG_IP_PNP_RARP is not set
|
||||
# CONFIG_PID_IN_CONTEXTIDR is not set
|
||||
# CONFIG_DEPRECATED_PARAM_STRUCT is not set
|
||||
|
||||
# CONFIG_ARM_KPROBES_TEST is not set
|
||||
|
||||
# Defined config options we don't use yet
|
||||
# CONFIG_PINCTRL_IMX35 is not set
|
||||
|
||||
# CONFIG_MFD_SMSC is not set
|
||||
# CONFIG_MFD_SEC_CORE is not set
|
||||
# CONFIG_MFD_LP8788 is not set
|
||||
# CONFIG_MFD_MAX77686 is not set
|
||||
# CONFIG_MFD_MAX77693 is not set
|
||||
# CONFIG_MFD_MAX8997 is not set
|
||||
# CONFIG_MFD_MAX14577 is not set
|
||||
# CONFIG_MFD_AAT2870_CORE is not set
|
||||
# CONFIG_MFD_RC5T583 is not set
|
||||
# CONFIG_MFD_SMSC is not set
|
||||
# CONFIG_MFD_AS3711 is not set
|
||||
# CONFIG_PMIC_DA903X is not set
|
||||
# CONFIG_PMIC_ADP5520 is not set
|
||||
|
||||
# CONFIG_DVB_USB_PCTV452E is not set
|
||||
# We need to fix these as they should be either generic includes or kconfig fixes
|
||||
# drivers/input/touchscreen/eeti_ts.c:65:2: error: implicit declaration of function 'irq_to_gpio' [-Werror=implicit-function-declaration]
|
||||
# CONFIG_TOUCHSCREEN_EETI is not set
|
||||
# CONFIG_TOUCHSCREEN_EGALAX is not set
|
||||
# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
|
||||
|
||||
# CONFIG_POWER_RESET_QNAP is not set
|
||||
# CONFIG_OMAP2_DSS_DEBUG is not set
|
||||
# CONFIG_CRYPTO_DEV_UX500_DEBUG is not set
|
||||
# CONFIG_AB8500_DEBUG is not set
|
||||
|
||||
# CONFIG_MMC_TMIO is not set
|
||||
|
@ -51,22 +51,23 @@ CONFIG_IRQ_CROSSBAR=y
|
||||
# CONFIG_ARM_VIRT_EXT is not set
|
||||
|
||||
# Platforms enabled/disabled globally on ARMv7
|
||||
CONFIG_ARCH_EXYNOS=y
|
||||
CONFIG_ARCH_HIGHBANK=y
|
||||
CONFIG_ARCH_SUNXI=y
|
||||
CONFIG_ARCH_TEGRA=y
|
||||
CONFIG_ARCH_VEXPRESS_CA9X4=y
|
||||
CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
|
||||
# CONFIG_ARCH_VEXPRESS_SPC is not set
|
||||
# CONFIG_ARCH_BCM is not set
|
||||
# CONFIG_PLAT_SPEAR is not set
|
||||
# CONFIG_ARCH_STI is not set
|
||||
# CONFIG_ARCH_SIRF is not set
|
||||
# CONFIG_ARCH_U8500 is not set
|
||||
# CONFIG_ARCH_WM8850 is not set
|
||||
# CONFIG_ARCH_SHMOBILE_MULTI is not set
|
||||
# CONFIG_ARCH_BERLIN is not set
|
||||
# CONFIG_ARCH_HI3xxx is not set
|
||||
# CONFIG_ARCH_MSM_DT is not set
|
||||
# CONFIG_ARCH_QCOM is not set
|
||||
# CONFIG_ARCH_SHMOBILE_MULTI is not set
|
||||
# CONFIG_ARCH_SIRF is not set
|
||||
# CONFIG_PLAT_SPEAR is not set
|
||||
# CONFIG_ARCH_STI is not set
|
||||
# CONFIG_ARCH_U8500 is not set
|
||||
# CONFIG_ARCH_VEXPRESS_SPC is not set
|
||||
# CONFIG_ARCH_WM8850 is not set
|
||||
|
||||
# errata
|
||||
# v5/v6
|
||||
@ -123,15 +124,13 @@ CONFIG_XZ_DEC_ARM=y
|
||||
CONFIG_UACCESS_WITH_MEMCPY=y
|
||||
CONFIG_CC_STACKPROTECTOR=y
|
||||
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
|
||||
# Root as NFS, different from mainline
|
||||
CONFIG_ROOT_NFS=y
|
||||
CONFIG_PCI_HOST_GENERIC=y
|
||||
|
||||
CONFIG_LBDAF=y
|
||||
|
||||
# GRR, needed for MFD_AS3722
|
||||
CONFIG_I2C=y
|
||||
|
||||
# Device tree
|
||||
CONFIG_USE_OF=y
|
||||
CONFIG_ARM_ATAG_DTB_COMPAT=y
|
||||
@ -162,11 +161,13 @@ CONFIG_ARM_HIGHBANK_CPUFREQ=m
|
||||
# CONFIG_ARM_HIGHBANK_CPUIDLE is not set
|
||||
|
||||
# Allwinner
|
||||
# CONFIG_MACH_SUN4I is not set
|
||||
# CONFIG_MACH_SUN5I is not set
|
||||
CONFIG_MACH_SUN6I=y
|
||||
CONFIG_MACH_SUN7I=y
|
||||
CONFIG_PINCTRL_SUNXI=y
|
||||
CONFIG_SUNXI_WATCHDOG=m
|
||||
CONFIG_MDIO_SUN4I=m
|
||||
CONFIG_NET_VENDOR_ALLWINNER=y
|
||||
CONFIG_SUN4I_EMAC=m
|
||||
CONFIG_STMMAC_PLATFORM=y
|
||||
CONFIG_DWMAC_SOCFPGA=y
|
||||
CONFIG_DWMAC_SUNXI=y
|
||||
@ -177,8 +178,169 @@ CONFIG_AHCI_SUNXI=m
|
||||
CONFIG_SPI_SUN4I=m
|
||||
CONFIG_SPI_SUN6I=m
|
||||
CONFIG_MMC_SUNXI=m
|
||||
CONFIG_I2C_SUN6I_P2WI=m
|
||||
CONFIG_GPIO_PCA953X=m
|
||||
CONFIG_POWER_RESET_SUN6I=y
|
||||
CONFIG_TOUCHSCREEN_SUN4I=m
|
||||
CONFIG_MFD_AXP20X=y
|
||||
CONFIG_REGULATOR_AXP20X=m
|
||||
CONFIG_MDIO_SUN4I=m
|
||||
CONFIG_SUN4I_EMAC=m
|
||||
|
||||
CONFIG_MDIO_SUN4I=m
|
||||
CONFIG_SUN4I_EMAC=m
|
||||
# Exynos
|
||||
CONFIG_ARCH_EXYNOS3=y
|
||||
CONFIG_ARCH_EXYNOS4=y
|
||||
CONFIG_ARCH_EXYNOS5=y
|
||||
CONFIG_SOC_EXYNOS3250=y
|
||||
CONFIG_SOC_EXYNOS4212=y
|
||||
CONFIG_SOC_EXYNOS4412=y
|
||||
CONFIG_SOC_EXYNOS5250=y
|
||||
CONFIG_SOC_EXYNOS5420=y
|
||||
CONFIG_SOC_EXYNOS5440=y
|
||||
CONFIG_SOC_EXYNOS5260=y
|
||||
CONFIG_SOC_EXYNOS5410=y
|
||||
CONFIG_SOC_EXYNOS5800=y
|
||||
CONFIG_SERIAL_SAMSUNG=y
|
||||
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
||||
CONFIG_ARM_EXYNOS4210_CPUFREQ=y
|
||||
CONFIG_ARM_EXYNOS4X12_CPUFREQ=y
|
||||
CONFIG_ARM_EXYNOS5250_CPUFREQ=y
|
||||
CONFIG_ARM_EXYNOS5440_CPUFREQ=y
|
||||
CONFIG_ARM_EXYNOS_CPU_FREQ_BOOST_SW=y
|
||||
CONFIG_ARM_EXYNOS_CPUIDLE=y
|
||||
# CONFIG_EXYNOS5420_MCPM not set
|
||||
|
||||
CONFIG_I2C_EXYNOS5=m
|
||||
CONFIG_I2C_S3C2410=m
|
||||
CONFIG_SPI_S3C64XX=m
|
||||
CONFIG_EXYNOS_THERMAL=m
|
||||
CONFIG_EXYNOS_THERMAL_CORE=y
|
||||
CONFIG_MMC_SDHCI_S3C=m
|
||||
CONFIG_MMC_SDHCI_S3C_DMA=y
|
||||
CONFIG_MMC_DW_EXYNOS=m
|
||||
CONFIG_EXYNOS_IOMMU=y
|
||||
CONFIG_PCI_EXYNOS=y
|
||||
CONFIG_PHY_EXYNOS5_USBDRD=m
|
||||
CONFIG_USB_EHCI_EXYNOS=m
|
||||
CONFIG_USB_OHCI_EXYNOS=m
|
||||
CONFIG_USB_DWC3_EXYNOS=m
|
||||
CONFIG_PHY_EXYNOS5250_SATA=m
|
||||
CONFIG_HW_RANDOM_EXYNOS=m
|
||||
CONFIG_CRYPTO_DEV_S5P=m
|
||||
CONFIG_PWM_SAMSUNG=m
|
||||
CONFIG_S3C2410_WATCHDOG=m
|
||||
CONFIG_MFD_SEC_CORE=y
|
||||
CONFIG_REGULATOR_S2MPS11=m
|
||||
CONFIG_REGULATOR_S5M8767=m
|
||||
CONFIG_TCG_TIS_I2C_INFINEON=m
|
||||
CONFIG_RTC_DRV_S5M=m
|
||||
# CONFIG_RTC_DRV_S3C is not set
|
||||
|
||||
CONFIG_EXYNOS_VIDEO=y
|
||||
CONFIG_EXYNOS_MIPI_DSI=y
|
||||
CONFIG_DRM_EXYNOS=m
|
||||
CONFIG_DRM_EXYNOS_DMABUF=y
|
||||
CONFIG_DRM_EXYNOS_DP=y
|
||||
CONFIG_DRM_EXYNOS_DPI=y
|
||||
CONFIG_DRM_EXYNOS_DSI=y
|
||||
CONFIG_DRM_EXYNOS_FIMC=y
|
||||
CONFIG_DRM_EXYNOS_FIMD=y
|
||||
CONFIG_DRM_EXYNOS_G2D=y
|
||||
CONFIG_DRM_EXYNOS_GSC=y
|
||||
CONFIG_DRM_EXYNOS_HDMI=y
|
||||
CONFIG_DRM_EXYNOS_IOMMU=y
|
||||
CONFIG_DRM_EXYNOS_IPP=y
|
||||
CONFIG_DRM_EXYNOS_ROTATOR=y
|
||||
CONFIG_DRM_EXYNOS_VIDI=y
|
||||
CONFIG_PHY_EXYNOS_DP_VIDEO=m
|
||||
# CONFIG_FB_S3C is not set
|
||||
# CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS is not set
|
||||
CONFIG_VIDEO_SAMSUNG_S5P_G2D=m
|
||||
CONFIG_VIDEO_SAMSUNG_S5P_JPEG=m
|
||||
CONFIG_VIDEO_SAMSUNG_S5P_MFC=m
|
||||
# CONFIG_VIDEO_SAMSUNG_S5P_TV is not set
|
||||
CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m
|
||||
|
||||
CONFIG_SND_SOC_SAMSUNG=m
|
||||
CONFIG_SND_SOC_SAMSUNG_SMDK_SPDIF=m
|
||||
CONFIG_SND_SOC_SAMSUNG_SMDK_WM8994=m
|
||||
CONFIG_SND_SOC_SMDK_WM8994_PCM=m
|
||||
CONFIG_SND_SOC_SNOW=m
|
||||
CONFIG_SND_SOC_ODROIDX2=m
|
||||
# CONFIG_GPIO_WM8994 is not set
|
||||
# CONFIG_REGULATOR_WM8994 is not set
|
||||
# CONFIG_EXYNOS_IOMMU_DEBUG is not set
|
||||
# CONFIG_SAMSUNG_PM_DEBUG is not set
|
||||
# CONFIG_SAMSUNG_PM_CHECK is not set
|
||||
|
||||
# Arndale/Origen
|
||||
CONFIG_MFD_MAX8997=y
|
||||
CONFIG_MFD_MAX77686=y
|
||||
CONFIG_REGULATOR_MAX8997=m
|
||||
CONFIG_REGULATOR_MAX77686=m
|
||||
CONFIG_REGULATOR_S2MPA01=m
|
||||
CONFIG_REGULATOR_S5M8767=m
|
||||
CONFIG_COMMON_CLK_MAX77686=m
|
||||
CONFIG_COMMON_CLK_S2MPS11=m
|
||||
CONFIG_INPUT_MAX8997_HAPTIC=m
|
||||
CONFIG_CHARGER_MAX8997=m
|
||||
CONFIG_LEDS_MAX8997=m
|
||||
CONFIG_RTC_DRV_MAX8997=m
|
||||
CONFIG_RTC_DRV_MAX77686=m
|
||||
CONFIG_EXTCON_MAX8997=m
|
||||
|
||||
# Tegra
|
||||
CONFIG_ARCH_TEGRA_114_SOC=y
|
||||
CONFIG_ARCH_TEGRA_124_SOC=y
|
||||
CONFIG_ARM_TEGRA_CPUFREQ=y
|
||||
CONFIG_TRUSTED_FOUNDATIONS=y
|
||||
CONFIG_SERIAL_TEGRA=y
|
||||
CONFIG_TEGRA30_MC=y
|
||||
CONFIG_PCI_TEGRA=y
|
||||
CONFIG_AHCI_TEGRA=m
|
||||
CONFIG_TEGRA_IOMMU_SMMU=y
|
||||
CONFIG_MMC_SDHCI_TEGRA=m
|
||||
CONFIG_TEGRA_WATCHDOG=m
|
||||
CONFIG_I2C_TEGRA=m
|
||||
CONFIG_TEGRA_SYSTEM_DMA=y
|
||||
CONFIG_TEGRA_EMC_SCALING_ENABLE=y
|
||||
CONFIG_TEGRA_AHB=y
|
||||
CONFIG_TEGRA20_APB_DMA=y
|
||||
CONFIG_SPI_TEGRA114=m
|
||||
CONFIG_PWM_TEGRA=m
|
||||
CONFIG_KEYBOARD_TEGRA=m
|
||||
CONFIG_USB_EHCI_TEGRA=m
|
||||
CONFIG_RTC_DRV_TEGRA=m
|
||||
CONFIG_SND_SOC_TEGRA=m
|
||||
CONFIG_SND_SOC_TEGRA_MAX98090=m
|
||||
CONFIG_SND_SOC_TEGRA_RT5640=m
|
||||
CONFIG_SND_SOC_TEGRA30_AHUB=m
|
||||
CONFIG_SND_SOC_TEGRA30_I2S=m
|
||||
CONFIG_SND_HDA_TEGRA=m
|
||||
CONFIG_TEGRA_HOST1X=m
|
||||
CONFIG_TEGRA_HOST1X_FIREWALL=y
|
||||
CONFIG_DRM_TEGRA=m
|
||||
CONFIG_DRM_TEGRA_FBDEV=y
|
||||
# CONFIG_DRM_TEGRA_DEBUG is not set
|
||||
CONFIG_DRM_TEGRA_STAGING=y
|
||||
CONFIG_NOUVEAU_PLATFORM_DRIVER=m
|
||||
|
||||
# Jetson TK1
|
||||
CONFIG_PINCTRL_AS3722=y
|
||||
CONFIG_POWER_RESET_AS3722=y
|
||||
CONFIG_MFD_AS3722=y
|
||||
CONFIG_REGULATOR_AS3722=m
|
||||
CONFIG_RTC_DRV_AS3722=y
|
||||
|
||||
# DRM panels
|
||||
CONFIG_DRM_PANEL=y
|
||||
CONFIG_DRM_PANEL_SIMPLE=m
|
||||
CONFIG_DRM_PANEL_LD9040=m
|
||||
CONFIG_DRM_PANEL_S6E8AA0=m
|
||||
|
||||
# regmap
|
||||
CONFIG_REGMAP=y
|
||||
CONFIG_REGMAP_I2C=m
|
||||
CONFIG_REGMAP_SPI=m
|
||||
@ -194,15 +356,14 @@ CONFIG_GENERIC_CPUFREQ_CPU0=m
|
||||
# usb
|
||||
CONFIG_USB_OHCI_HCD_PLATFORM=m
|
||||
CONFIG_USB_EHCI_HCD_PLATFORM=m
|
||||
CONFIG_USB_OTG=y
|
||||
# CONFIG_USB_OTG_WHITELIST is not set
|
||||
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
|
||||
CONFIG_USB_ULPI=y
|
||||
CONFIG_AX88796=m
|
||||
CONFIG_AX88796_93CX6=y
|
||||
CONFIG_USB_ISP1760_HCD=m
|
||||
|
||||
# usb gadget
|
||||
CONFIG_USB_OTG=y
|
||||
CONFIG_USB_GADGET=m
|
||||
CONFIG_USB_GADGET_MUSB_HDRC=m
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=100
|
||||
@ -211,19 +372,6 @@ CONFIG_USB_MUSB_HDRC=m
|
||||
CONFIG_USB_MUSB_DUAL_ROLE=y
|
||||
CONFIG_USB_MUSB_DSPS=m
|
||||
CONFIG_USB_GPIO_VBUS=m
|
||||
CONFIG_USB_G_ACM_MS=m
|
||||
CONFIG_USB_G_DBGP=m
|
||||
CONFIG_USB_G_DBGP_SERIAL=y
|
||||
CONFIG_USB_G_MULTI=m
|
||||
CONFIG_USB_G_MULTI_CDC=y
|
||||
# CONFIG_USB_G_MULTI_RNDIS is not set
|
||||
CONFIG_USB_G_NCM=m
|
||||
CONFIG_USB_G_SERIAL=m
|
||||
CONFIG_USB_ETH_EEM=y
|
||||
# CONFIG_USB_ETH_RNDIS is not set
|
||||
CONFIG_USB_CDC_COMPOSITE=m
|
||||
CONFIG_USB_GADGET_TARGET=m
|
||||
CONFIG_USB_MASS_STORAGE=m
|
||||
CONFIG_USB_CONFIGFS=m
|
||||
CONFIG_USB_CONFIGFS_ACM=y
|
||||
CONFIG_USB_CONFIGFS_ECM=y
|
||||
@ -271,6 +419,14 @@ CONFIG_MFD_TPS65912_SPI=y
|
||||
# CONFIG_MFD_WM831X_SPI is not set
|
||||
# CONFIG_MFD_MC13XXX_SPI is not set
|
||||
# CONFIG_MFD_PM8921_CORE is not set
|
||||
# CONFIG_MFD_DA9052_I2C is not set
|
||||
# CONFIG_MFD_DA9055 is not set
|
||||
# CONFIG_MFD_88PM800 is not set
|
||||
# CONFIG_MFD_88PM805 is not set
|
||||
# CONFIG_MFD_PALMAS is not set
|
||||
# CONFIG_MFD_TPS80031 is not set
|
||||
# CONFIG_TWL4030_CORE is not set
|
||||
# CONFIG_TWL6040_CORE is not set
|
||||
|
||||
# Pin stuff
|
||||
CONFIG_PINMUX=y
|
||||
@ -279,10 +435,11 @@ CONFIG_PINCTRL=y
|
||||
CONFIG_PINCTRL_SINGLE=y
|
||||
CONFIG_GENERIC_PINCONF=y
|
||||
# CONFIG_PINCTRL_SAMSUNG is not set
|
||||
# CONFIG_PINCTRL_EXYNOS4 is not set
|
||||
# CONFIG_PINCTRL_CAPRI is not set
|
||||
# CONFIG_PINCTRL_MSM8X74 is not set
|
||||
# CONFIG_PINCTRL_BCM281XX is not set
|
||||
# CONFIG_PINCTRL_APQ8064 is not set
|
||||
# CONFIG_PINCTRL_IPQ8064 is not set
|
||||
|
||||
# GPIO
|
||||
# CONFIG_GPIO_EM is not set
|
||||
@ -318,13 +475,12 @@ CONFIG_SPI_BUTTERFLY=m
|
||||
CONFIG_SPI_DESIGNWARE=m
|
||||
CONFIG_SPI_LM70_LLP=m
|
||||
CONFIG_SPI_OC_TINY=m
|
||||
CONFIG_SPI_PL022=m
|
||||
CONFIG_SPI_S3C64XX=m
|
||||
CONFIG_SPI_SC18IS602=m
|
||||
CONFIG_SPI_TLE62X0=m
|
||||
CONFIG_SPI_XCOMM=m
|
||||
CONFIG_SPI_XILINX=m
|
||||
# CONFIG_SPI_FSL_SPI is not set
|
||||
# CONFIG_SPI_CADENCE is not set
|
||||
|
||||
CONFIG_NFC_NCI_SPI=y
|
||||
|
||||
@ -377,6 +533,7 @@ CONFIG_MTD_NAND_PLATFORM=m
|
||||
CONFIG_MTD_NAND_PXA3xx=m
|
||||
CONFIG_MTD_NAND_RICOH=m
|
||||
CONFIG_MTD_NAND_TMIO=m
|
||||
CONFIG_MTD_SPI_NOR=m
|
||||
CONFIG_MTD_SPINAND_MT29F=m
|
||||
CONFIG_MTD_SPINAND_ONDIEECC=y
|
||||
CONFIG_MTD_SST25L=m
|
||||
@ -394,21 +551,22 @@ CONFIG_MMC_DW_PCI=m
|
||||
CONFIG_SPI_DW_MMIO=m
|
||||
CONFIG_SPI_DW_PCI=m
|
||||
# CONFIG_MMC_DW_SOCFPGA is not set
|
||||
# CONFIG_MMC_DW_EXYNOS is not set
|
||||
# CONFIG_MMC_DW_IDMAC is not set
|
||||
# CONFIG_MMC_DW_K3 is not set
|
||||
CONFIG_USB_DWC2=m
|
||||
CONFIG_USB_DWC2=y
|
||||
CONFIG_USB_DWC2_HOST=m
|
||||
CONFIG_USB_DWC2_PLATFORM=y
|
||||
CONFIG_USB_DWC2_PCI=y
|
||||
# CONFIG_USB_DWC2_PERIPHERAL is not set
|
||||
# CONFIG_USB_DWC2_DEBUG is not set
|
||||
# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
|
||||
CONFIG_USB_DWC3=m
|
||||
CONFIG_USB_DWC3_OMAP=m
|
||||
CONFIG_USB_DWC3_EXYNOS=m
|
||||
CONFIG_USB_DWC3_PCI=m
|
||||
# CONFIG_USB_DWC3_DEBUG is not set
|
||||
# CONFIG_USB_DWC3_KEYSTONE is not set
|
||||
CONFIG_DW_WATCHDOG=m
|
||||
CONFIG_PCIE_DW=y
|
||||
CONFIG_PCI_EXYNOS=y
|
||||
|
||||
# Sound
|
||||
CONFIG_SND_SOC=m
|
||||
@ -424,6 +582,8 @@ CONFIG_SND_SOC_ALL_CODECS=m
|
||||
CONFIG_SND_SOC_CACHE_LZO=y
|
||||
CONFIG_SND_SOC_DMIC=m
|
||||
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
|
||||
CONFIG_SND_SOC_HDMI_CODEC=m
|
||||
CONFIG_SND_SOC_SPDIF=m
|
||||
# CONFIG_SND_SOC_ADAU1701 is not set
|
||||
# CONFIG_SND_SOC_AK4104 is not set
|
||||
# CONFIG_SND_SOC_AK4554 is not set
|
||||
@ -434,14 +594,12 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
|
||||
# CONFIG_SND_SOC_CS4270 is not set
|
||||
# CONFIG_SND_SOC_CS4271 is not set
|
||||
# CONFIG_SND_SOC_CS42XX8_I2C is not set
|
||||
# CONFIG_SND_SOC_HDMI_CODEC is not set
|
||||
# CONFIG_SND_SOC_PCM1681 is not set
|
||||
# CONFIG_SND_SOC_PCM1792A is not set
|
||||
# CONFIG_SND_SOC_PCM512x_I2C is not set
|
||||
# CONFIG_SND_SOC_PCM512x_SPI is not set
|
||||
# CONFIG_SND_SOC_SGTL5000 is not set
|
||||
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
|
||||
# CONFIG_SND_SOC_SPDIF is not set
|
||||
# CONFIG_SND_SOC_TAS5086 is not set
|
||||
# CONFIG_SND_SOC_TLV320AIC3X is not set
|
||||
# CONFIG_SND_SOC_WM8510 is not set
|
||||
@ -460,6 +618,14 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
|
||||
# CONFIG_SND_SOC_WM8903 is not set
|
||||
# CONFIG_SND_SOC_WM8962 is not set
|
||||
# CONFIG_SND_SOC_TPA6130A2 is not set
|
||||
# CONFIG_SND_SOC_FSL_SAI is not set
|
||||
# CONFIG_SND_SOC_FSL_SSI is not set
|
||||
# CONFIG_SND_SOC_FSL_SPDIF is not set
|
||||
# CONFIG_SND_SOC_FSL_ESAI is not set
|
||||
# CONFIG_SND_SOC_IMX_AUDMUX is not set
|
||||
# CONFIG_SND_SOC_ALC5623 is not set
|
||||
# CONFIG_SND_SOC_CS42L56 is not set
|
||||
# CONFIG_SND_SOC_STA350 is not set
|
||||
# CONFIG_SND_ATMEL_SOC is not set
|
||||
|
||||
# Displays
|
||||
@ -479,6 +645,9 @@ CONFIG_RTC_DRV_RX4581=m
|
||||
CONFIG_RTC_DRV_TPS65910=m
|
||||
CONFIG_RTC_DRV_TPS80031=m
|
||||
# CONFIG_RTC_DRV_DS1347 is not set
|
||||
# CONFIG_RTC_DRV_DS1343 is not set
|
||||
# CONFIG_RTC_DRV_MCP795 is not set
|
||||
# CONFIG_RTC_DRV_XGENE is not set
|
||||
|
||||
# Regulators
|
||||
CONFIG_REGULATOR=y
|
||||
@ -514,6 +683,8 @@ CONFIG_REGULATOR_TPS6586X=m
|
||||
CONFIG_REGULATOR_TPS65910=m
|
||||
CONFIG_REGULATOR_TPS65912=m
|
||||
CONFIG_REGULATOR_TPS80031=m
|
||||
CONFIG_REGULATOR_LTC3589=m
|
||||
CONFIG_REGULATOR_ANATOP=m
|
||||
|
||||
CONFIG_CHARGER_MANAGER=y
|
||||
CONFIG_CHARGER_BQ2415X=m
|
||||
@ -610,59 +781,63 @@ CONFIG_MFD_CROS_EC=m
|
||||
CONFIG_MFD_CROS_EC_I2C=m
|
||||
CONFIG_MFD_CROS_EC_SPI=m
|
||||
CONFIG_KEYBOARD_CROS_EC=m
|
||||
CONFIG_I2C_CROS_EC_TUNNEL=m
|
||||
|
||||
# Should be in generic
|
||||
CONFIG_BPF_JIT=y
|
||||
|
||||
# CONFIG_NET_VENDOR_CIRRUS is not set
|
||||
# CONFIG_NET_VENDOR_MICROCHIP is not set
|
||||
# CONFIG_PATA_PLATFORM is not set
|
||||
# CONFIG_DRM_EXYNOS is not set
|
||||
# Needs work/investigation
|
||||
# CONFIG_ARM_KPROBES_TEST is not set
|
||||
|
||||
# HW Enabled in armv7 not lpae
|
||||
# CONFIG_DRM_TILCDC is not set
|
||||
# CONFIG_DRM_IMX is not set
|
||||
# CONFIG_AHCI_IMX is not set
|
||||
# CONFIG_IMX_THERMAL is not set
|
||||
# CONFIG_TI_DAC7512 is not set
|
||||
|
||||
# Not needed on ARMv7
|
||||
# CONFIG_PATA_PLATFORM is not set
|
||||
# CONFIG_NET_VENDOR_CIRRUS is not set
|
||||
# CONFIG_NET_VENDOR_MICROCHIP is not set
|
||||
# CONFIG_MFD_T7L66XB is not set
|
||||
# CONFIG_MFD_TC6387XB is not set
|
||||
# CONFIG_EZX_PCAP is not set
|
||||
# CONFIG_CS89x0 is not set
|
||||
# CONFIG_DM9000 is not set
|
||||
# CONFIG_HW_RANDOM_ATMEL is not set
|
||||
# CONFIG_HW_RANDOM_EXYNOS is not set
|
||||
# CONFIG_MFD_T7L66XB is not set
|
||||
# CONFIG_MFD_TC6387XB is not set
|
||||
# CONFIG_TI_DAC7512 is not set
|
||||
# CONFIG_EZX_PCAP is not set
|
||||
|
||||
# Needs work/investigation
|
||||
# CONFIG_ARM_CHARLCD is not set
|
||||
# CONFIG_MTD_AFS_PARTS is not set
|
||||
# CONFIG_IP_PNP_RARP is not set
|
||||
# CONFIG_SPI_PXA2XX is not set
|
||||
# CONFIG_DEPRECATED_PARAM_STRUCT is not set
|
||||
# CONFIG_LATTICE_ECP3_CONFIG is not set
|
||||
# CONFIG_M25PXX_USE_FAST_READ is not set
|
||||
# CONFIG_SERIAL_8250_EM is not set
|
||||
# CONFIG_SERIAL_MAX3100 is not set
|
||||
# CONFIG_SERIAL_MAX310X is not set
|
||||
# CONFIG_SERIAL_IFX6X60 is not set
|
||||
# CONFIG_COMMON_CLK_AXI_CLKGEN is not set
|
||||
# CONFIG_SPI_TOPCLIFF_PCH is not set
|
||||
# CONFIG_SPI_PXA2XX is not set
|
||||
# CONFIG_SPI_FSL_DSPI is not set
|
||||
# CONFIG_FB_XILINX is not set
|
||||
# CONFIG_USB_S3C_HSOTG is not set
|
||||
|
||||
# these modules all fail with missing __bad_udelay
|
||||
# http://www.spinics.net/lists/arm/msg15615.html provides some background
|
||||
# CONFIG_BRCMSTB_GISB_ARB is not set
|
||||
# CONFIG_SUNGEM is not set
|
||||
# CONFIG_FB_SAVAGE is not set
|
||||
# CONFIG_FB_RADEON is not set
|
||||
# CONFIG_DRM_RADEON is not set
|
||||
# CONFIG_ATM_HE is not set
|
||||
# CONFIG_SCSI_ACARD is not set
|
||||
# CONFIG_SFC is not set
|
||||
|
||||
# these all currently fail due to missing symbols __bad_udelay or
|
||||
# error: implicit declaration of function ‘iowrite32be’
|
||||
# CONFIG_SND_ALI5451 is not set
|
||||
# CONFIG_DRM_NOUVEAU is not set
|
||||
# CONFIG_MLX4_EN is not set
|
||||
# CONFIG_POWER_RESET_QNAP is not set
|
||||
# CONFIG_MMC_TMIO is not set
|
||||
# CONFIG_PINCTRL_IMX35 is not set
|
||||
# CONFIG_DVB_USB_PCTV452E is not set
|
||||
|
||||
# CONFIG_MFD_LP8788 is not set
|
||||
# CONFIG_MFD_MAX77693 is not set
|
||||
# CONFIG_MFD_MAX14577 is not set
|
||||
# CONFIG_MFD_AAT2870_CORE is not set
|
||||
# CONFIG_MFD_RC5T583 is not set
|
||||
# CONFIG_MFD_SMSC is not set
|
||||
# CONFIG_MFD_AS3711 is not set
|
||||
# CONFIG_PMIC_DA903X is not set
|
||||
# CONFIG_PMIC_ADP5520 is not set
|
||||
|
||||
# Debug options. We need to deal with them at some point like x86
|
||||
# CONFIG_DEBUG_USER is not set
|
||||
@ -670,3 +845,6 @@ CONFIG_BPF_JIT=y
|
||||
# CONFIG_DEBUG_PINCTRL is not set
|
||||
# CONFIG_DMADEVICES_VDEBUG is not set
|
||||
# CONFIG_DMADEVICES_DEBUG is not set
|
||||
# CONFIG_OMAP2_DSS_DEBUG is not set
|
||||
# CONFIG_CRYPTO_DEV_UX500_DEBUG is not set
|
||||
# CONFIG_AB8500_DEBUG is not set
|
||||
|
@ -8,13 +8,12 @@ CONFIG_ARCH_VIRT=y
|
||||
# CONFIG_ARCH_OMAP4 is not set
|
||||
# CONFIG_SOC_OMAP5 is not set
|
||||
# CONFIG_SOC_AM33XX is not set
|
||||
# CONFIG_SND_AM33XX_SOC_EVM is not set
|
||||
# CONFIG_SOC_AM43XX is not set
|
||||
# CONFIG_SOC_DRA7XX is not set
|
||||
# CONFIG_ARCH_ROCKCHIP is not set
|
||||
# CONFIG_ARCH_SOCFPGA is not set
|
||||
# CONFIG_ARCH_TEGRA is not set
|
||||
# CONFIG_ARCH_ZYNQ is not set
|
||||
# CONFIG_ARCH_AXXIA is not set
|
||||
|
||||
CONFIG_ARM_LPAE=y
|
||||
CONFIG_SYS_SUPPORTS_HUGETLBFS=y
|
||||
@ -23,6 +22,9 @@ CONFIG_ARM_VIRT_EXT=y
|
||||
CONFIG_VIRTUALIZATION=y
|
||||
CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8
|
||||
|
||||
CONFIG_CMA_SIZE_SEL_MBYTES=y
|
||||
CONFIG_CMA_SIZE_MBYTES=64
|
||||
|
||||
# Cortex-A15
|
||||
CONFIG_ARM_ERRATA_798181=y
|
||||
CONFIG_ARM_ERRATA_773022=y
|
||||
@ -30,7 +32,6 @@ CONFIG_ARM_ERRATA_773022=y
|
||||
CONFIG_KVM=y
|
||||
CONFIG_KVM_ARM_HOST=y
|
||||
CONFIG_KVM_ARM_MAX_VCPUS=8
|
||||
CONFIG_KVM_ARM_VGIC=y
|
||||
CONFIG_KVM_ARM_TIMER=y
|
||||
|
||||
# CONFIG_XEN is not set
|
||||
@ -52,90 +53,31 @@ CONFIG_XEN_GRANT_DEV_ALLOC=m
|
||||
CONFIG_XEN_WDT=m
|
||||
# CONFIG_XEN_BALLOON is not set
|
||||
|
||||
CONFIG_SERIAL_SAMSUNG=y
|
||||
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
||||
# CONFIG_SAMSUNG_PM_DEBUG is not set
|
||||
# CONFIG_SAMSUNG_PM_CHECK is not set
|
||||
CONFIG_SOC_EXYNOS5250=y
|
||||
CONFIG_SOC_EXYNOS5420=y
|
||||
CONFIG_SOC_EXYNOS5440=y
|
||||
# CONFIG_ARM_EXYNOS5250_CPUFREQ is not set
|
||||
# CONFIG_ARM_EXYNOS5440_CPUFREQ is not set
|
||||
# CONFIG_ARM_EXYNOS_CPUFREQ is not set
|
||||
CONFIG_EXYNOS_THERMAL=m
|
||||
CONFIG_PCI_EXYNOS=y
|
||||
|
||||
CONFIG_TCG_TIS_I2C_INFINEON=m
|
||||
|
||||
# CONFIG_EXYNOS_ATAGS is not set
|
||||
CONFIG_PINCTRL_EXYNOS=y
|
||||
CONFIG_PINCTRL_EXYNOS5440=y
|
||||
CONFIG_EXYNOS_IOMMU=y
|
||||
CONFIG_VIDEO_SAMSUNG_S5P_G2D=m
|
||||
CONFIG_VIDEO_SAMSUNG_S5P_JPEG=m
|
||||
CONFIG_VIDEO_SAMSUNG_S5P_MFC=m
|
||||
CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m
|
||||
CONFIG_EXYNOS_VIDEO=y
|
||||
CONFIG_EXYNOS_MIPI_DSI=y
|
||||
CONFIG_EXYNOS_DP=y
|
||||
# CONFIG_EXYNOS_LCD_S6E8AX0 is not set
|
||||
CONFIG_DRM_EXYNOS=m
|
||||
CONFIG_DRM_EXYNOS_IOMMU=y
|
||||
CONFIG_DRM_EXYNOS_DMABUF=y
|
||||
CONFIG_DRM_EXYNOS_FIMD=y
|
||||
CONFIG_DRM_EXYNOS_HDMI=y
|
||||
CONFIG_DRM_EXYNOS_VIDI=y
|
||||
CONFIG_DRM_EXYNOS_G2D=y
|
||||
CONFIG_DRM_EXYNOS_IPP=y
|
||||
CONFIG_DRM_EXYNOS_FIMC=y
|
||||
CONFIG_DRM_EXYNOS_ROTATOR=y
|
||||
CONFIG_DRM_EXYNOS_GSC=y
|
||||
CONFIG_DRM_EXYNOS_DPI=y
|
||||
CONFIG_DRM_EXYNOS_DSI=y
|
||||
# CONFIG_FB_S3C is not set
|
||||
CONFIG_SND_SOC_SAMSUNG=m
|
||||
CONFIG_USB_EHCI_HCD=y
|
||||
CONFIG_USB_EHCI_S5P=m
|
||||
CONFIG_USB_OHCI_EXYNOS=y
|
||||
CONFIG_PWM_SAMSUNG=m
|
||||
CONFIG_SAMSUNG_GPIO_EXTRA=8
|
||||
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
||||
CONFIG_SND_SOC_SAMSUNG_SMDK_SPDIF=m
|
||||
CONFIG_USB_EHCI_S5P=y
|
||||
CONFIG_SAMSUNG_USBPHY=m
|
||||
CONFIG_SAMSUNG_USB2PHY=m
|
||||
CONFIG_SAMSUNG_USB3PHY=m
|
||||
CONFIG_MMC_DW_EXYNOS=m
|
||||
CONFIG_RTC_DRV_S3C=m
|
||||
|
||||
# TI Keystone
|
||||
CONFIG_KEYSTONE_USB_PHY=m
|
||||
CONFIG_USB_DWC3_KEYSTONE=m
|
||||
CONFIG_GPIO_DAVINCI=y
|
||||
CONFIG_I2C_DAVINCI=m
|
||||
CONFIG_TI_AEMIF=m
|
||||
# CONFIG_DAVINCI_WATCHDOG is not set
|
||||
# CONFIG_SPI_DAVINCI is not set
|
||||
# CONFIG_SND_DAVINCI_SOC is not set
|
||||
CONFIG_POWER_RESET_KEYSTONE=y
|
||||
CONFIG_DAVINCI_WATCHDOG=m
|
||||
CONFIG_SPI_DAVINCI=m
|
||||
# CONFIG_TI_SOC_THERMAL is not set
|
||||
|
||||
# Arndale/Origen
|
||||
CONFIG_MFD_MAX8997=y
|
||||
CONFIG_MFD_SEC_CORE=y
|
||||
CONFIG_REGULATOR_MAX8997=m
|
||||
CONFIG_REGULATOR_S5M8767=m
|
||||
CONFIG_COMMON_CLK_MAX77686=m
|
||||
|
||||
CONFIG_S3C_LOWLEVEL_UART_PORT=1
|
||||
# CONFIG_EXYNOS4_SDHCI_CH0_8BIT is not set
|
||||
# CONFIG_EXYNOS4_SDHCI_CH2_8BIT is not set
|
||||
|
||||
# CONFIG_S3C_BOOT_ERROR_RESET is not set
|
||||
# CONFIG_S3C_BOOT_UART_FORCE_FIFO is not set
|
||||
# CONFIG_I2C_S3C2410 is not set
|
||||
# CONFIG_S3C2410_WATCHDOG is not set
|
||||
# CONFIG_MMC_SDHCI_S3C is not set
|
||||
# CONFIG_TEGRA_HOST1X is not set
|
||||
# CONFIG_DRM_PANEL_SIMPLE is not set
|
||||
# CONFIG_DRM_PANEL_LD9040 is not set
|
||||
# CONFIG_DRM_PANEL_S6E8AA0 is not set
|
||||
# Tegra (non A15 device options)
|
||||
# CONFIG_ARCH_TEGRA_2x_SOC is not set
|
||||
# CONFIG_ARCH_TEGRA_3x_SOC is not set
|
||||
# CONFIG_TEGRA20_MC is not set
|
||||
# CONFIG_TEGRA_IOMMU_GART is not set
|
||||
# CONFIG_SPI_TEGRA20_SFLASH is not set
|
||||
# CONFIG_SPI_TEGRA20_SLINK is not set
|
||||
# CONFIG_MFD_MAX8907 is not set
|
||||
# CONFIG_MFD_NVEC is not set
|
||||
# CONFIG_SND_SOC_TEGRA_ALC5632 is not set
|
||||
# CONFIG_SND_SOC_TEGRA_TRIMSLICE is not set
|
||||
# CONFIG_SND_SOC_TEGRA_WM8753 is not set
|
||||
# CONFIG_SND_SOC_TEGRA_WM8903 is not set
|
||||
# CONFIG_SND_SOC_TEGRA_WM9712 is not set
|
||||
# CONFIG_SND_SOC_TEGRA20_AC97 is not set
|
||||
# CONFIG_SND_SOC_TEGRA20_DAS is not set
|
||||
# CONFIG_SND_SOC_TEGRA20_SPDIF is not set
|
||||
|
@ -34,6 +34,7 @@ CONFIG_ACPI_DEBUG=y
|
||||
# CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
|
||||
|
||||
CONFIG_DEBUG_SG=y
|
||||
CONFIG_DEBUG_PI_LIST=y
|
||||
|
||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||
|
||||
|
@ -15,7 +15,7 @@ CONFIG_DEFAULT_HOSTNAME="(none)"
|
||||
#
|
||||
CONFIG_EXPERIMENTAL=y
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_UEVENT_HELPER_PATH=""
|
||||
# CONFIG_UEVENT_HELPER is not set
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_STANDALONE=y
|
||||
@ -147,10 +147,12 @@ CONFIG_MMC_CB710=m
|
||||
CONFIG_MMC_RICOH_MMC=y
|
||||
CONFIG_MMC_USHC=m
|
||||
CONFIG_MMC_REALTEK_PCI=m
|
||||
CONFIG_MMC_REALTEK_USB=m
|
||||
CONFIG_MMC_VUB300=m
|
||||
# CONFIG_MMC_SDHCI_PXAV2 is not set
|
||||
# CONFIG_MMC_SDHCI_PXAV3 is not set
|
||||
# CONFIG_MMC_SDHCI_OF_ARASAN is not set
|
||||
# CONFIG_MMC_USDHI6ROL0 is not set
|
||||
|
||||
|
||||
CONFIG_CB710_CORE=m
|
||||
@ -277,6 +279,7 @@ CONFIG_MTD_CFI_I2=y
|
||||
# CONFIG_MTD_PHRAM is not set
|
||||
# CONFIG_MTD_MTDRAM is not set
|
||||
# CONFIG_MTD_BLOCK2MTD is not set
|
||||
# CONFIG_MTD_SPI_NOR is not set
|
||||
|
||||
#
|
||||
# Disk-On-Chip Device Drivers
|
||||
@ -1055,6 +1058,7 @@ CONFIG_BRIDGE_EBT_T_FILTER=m
|
||||
CONFIG_BRIDGE_EBT_T_NAT=m
|
||||
CONFIG_BRIDGE_EBT_ULOG=m
|
||||
CONFIG_BRIDGE_EBT_VLAN=m
|
||||
CONFIG_NFT_BRIDGE_META=m
|
||||
CONFIG_XFRM=y
|
||||
CONFIG_XFRM_MIGRATE=y
|
||||
CONFIG_XFRM_SUB_POLICY=y
|
||||
@ -1318,6 +1322,8 @@ CONFIG_NET_VENDOR_AMD=y
|
||||
CONFIG_PCNET32=m
|
||||
CONFIG_AMD8111_ETH=m
|
||||
CONFIG_PCMCIA_NMCLAN=m
|
||||
# CONFIG_AMD_XGBE is not set
|
||||
# CONFIG_AMD_XGBE_PHY is not set
|
||||
|
||||
CONFIG_NET_VENDOR_ARC=y
|
||||
CONFIG_ARC_EMAC=m
|
||||
@ -1384,6 +1390,7 @@ CONFIG_VXGE=m
|
||||
|
||||
# CONFIG_NET_VENDOR_FARADAY is not set
|
||||
# CONFIG_NET_VENDOR_FUJITSU is not set
|
||||
# CONFIG_NET_VENDOR_HISILICON is not set
|
||||
# CONFIG_NET_VENDOR_HP is not set
|
||||
CONFIG_NET_VENDOR_INTEL=y
|
||||
CONFIG_E100=m
|
||||
@ -1452,6 +1459,7 @@ CONFIG_QLCNIC=m
|
||||
CONFIG_QLCNIC_SRIOV=y
|
||||
CONFIG_QLCNIC_DCB=y
|
||||
CONFIG_QLCNIC_VXLAN=y
|
||||
CONFIG_QLCNIC_HWMON=y
|
||||
CONFIG_QLGE=m
|
||||
CONFIG_NETXEN_NIC=m
|
||||
|
||||
@ -1708,6 +1716,7 @@ CONFIG_BRCMFMAC_USB=y
|
||||
# CONFIG_BRCM_TRACING is not set
|
||||
# CONFIG_BRCMISCAN is not set
|
||||
# CONFIG_BRCMDBG is not set
|
||||
# CONFIG_SYSTEMPORT is not set
|
||||
CONFIG_HERMES=m
|
||||
CONFIG_HERMES_CACHE_FW_ON_INIT=y
|
||||
CONFIG_HERMES_PRISM=y
|
||||
@ -1878,6 +1887,9 @@ CONFIG_NFC_PN533=m
|
||||
CONFIG_NFC_MICROREAD=m
|
||||
CONFIG_NFC_MICROREAD_I2C=m
|
||||
CONFIG_NFC_TRF7970A=m
|
||||
CONFIG_NFC_ST21NFCA=m
|
||||
CONFIG_NFC_ST21NFCA_I2C=m
|
||||
|
||||
|
||||
#
|
||||
# IrDA (infrared) support
|
||||
@ -1998,6 +2010,7 @@ CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
|
||||
CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
|
||||
|
||||
CONFIG_ISDN_CAPI_CAPIDRV=m
|
||||
# CONFIG_ISDN_CAPI_CAPIDRV_VERBOSE is not set
|
||||
CONFIG_ISDN_DIVERSION=m
|
||||
|
||||
CONFIG_HISAX_EURO=y
|
||||
@ -2333,6 +2346,7 @@ CONFIG_CYCLADES=m
|
||||
# CONFIG_RIO is not set
|
||||
CONFIG_SERIAL_JSM=m
|
||||
# CONFIG_SERIAL_SCCNXP is not set
|
||||
# CONFIG_SERIAL_SC16IS7XX is not set
|
||||
# CONFIG_SERIAL_MFD_HSU is not set
|
||||
|
||||
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
|
||||
@ -2428,6 +2442,7 @@ CONFIG_I2C_TINY_USB=m
|
||||
# CONFIG_I2C_VIAPRO is not set
|
||||
# CONFIG_I2C_DESIGNWARE is not set
|
||||
# CONFIG_I2C_XILINX is not set
|
||||
# CONFIG_I2C_RK3X is not set
|
||||
|
||||
CONFIG_I2C_DIOLAN_U2C=m
|
||||
|
||||
@ -2501,11 +2516,13 @@ CONFIG_SENSORS_MAX6650=m
|
||||
CONFIG_SENSORS_MAX6697=m
|
||||
CONFIG_SENSORS_MCP3021=m
|
||||
CONFIG_SENSORS_NCT6775=m
|
||||
CONFIG_SENSORS_NCT6683=m
|
||||
CONFIG_SENSORS_NTC_THERMISTOR=m
|
||||
CONFIG_SENSORS_PC87360=m
|
||||
CONFIG_SENSORS_PC87427=m
|
||||
CONFIG_SENSORS_PCF8591=m
|
||||
CONFIG_SENSORS_SHT15=m
|
||||
CONFIG_SENSORS_SHTC1=m
|
||||
CONFIG_SENSORS_SIS5595=m
|
||||
CONFIG_CHARGER_SMB347=m
|
||||
CONFIG_SENSORS_SMSC47M1=m
|
||||
@ -2620,15 +2637,18 @@ CONFIG_IIO_ST_GYRO_3AXIS=m
|
||||
CONFIG_IIO_ST_MAGN_3AXIS=m
|
||||
CONFIG_IIO_ST_ACCEL_3AXIS=m
|
||||
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
|
||||
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
|
||||
# CONFIG_ADJD_S311 is not set
|
||||
# CONFIG_SENSORS_TSL2563 is not set
|
||||
# CONFIG_VCNL4000 is not set
|
||||
# CONFIG_AK8975 is not set
|
||||
# CONFIG_MAG3110 is not set
|
||||
# CONFIG_TMP006 is not set
|
||||
# CONFIG_MLX90614 is not set
|
||||
# CONFIG_HID_SENSOR_PRESS is not set
|
||||
# CONFIG_IIO_ST_PRESS is not set
|
||||
# CONFIG_KXSD9 is not set
|
||||
# CONFIG_MMA8452 is not set
|
||||
# CONFIG_AD7266 is not set
|
||||
# CONFIG_AD7298 is not set
|
||||
# CONFIG_AD7476 is not set
|
||||
@ -2660,7 +2680,9 @@ CONFIG_HID_SENSOR_INCLINOMETER_3D=m
|
||||
# CONFIG_ADIS16480 is not set
|
||||
# CONFIG_DHT11 is not set
|
||||
# CONFIG_MPL3115 is not set
|
||||
# CONFIG_MPL115 is not set
|
||||
# CONFIG_SI7005 is not set
|
||||
# CONFIG_AS3935 is not set
|
||||
|
||||
# staging IIO drivers
|
||||
# CONFIG_AD7291 is not set
|
||||
@ -2858,6 +2880,7 @@ CONFIG_RTC_DRV_ISL12022=m
|
||||
# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
|
||||
# CONFIG_RTC_DRV_MOXART is not set
|
||||
# CONFIG_RTC_DRV_ISL12057 is not set
|
||||
# CONFIG_RTC_DRV_XGENE is not set
|
||||
|
||||
CONFIG_R3964=m
|
||||
# CONFIG_APPLICOM is not set
|
||||
@ -3450,6 +3473,7 @@ CONFIG_SND_USB_US122L=m
|
||||
CONFIG_SND_USB_UA101=m
|
||||
CONFIG_SND_USB_6FIRE=m
|
||||
CONFIG_SND_USB_HIFACE=m
|
||||
# CONFIG_SND_BCD2000 is not set
|
||||
|
||||
#
|
||||
# PCMCIA devices
|
||||
@ -3461,6 +3485,8 @@ CONFIG_SND_FIREWIRE_SPEAKERS=m
|
||||
CONFIG_SND_ISIGHT=m
|
||||
CONFIG_SND_SCS1X=m
|
||||
CONFIG_SND_DICE=m
|
||||
# CONFIG_SND_FIREWORKS is not set
|
||||
# CONFIG_SND_BEBOB is not set
|
||||
|
||||
#
|
||||
# Open Sound System
|
||||
@ -3515,6 +3541,7 @@ CONFIG_USB_SL811_HCD_ISO=y
|
||||
# CONFIG_USB_R8A66597_HCD is not set
|
||||
CONFIG_USB_XHCI_HCD=y
|
||||
# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
|
||||
# CONFIG_USB_MAX3421_HCD is not set
|
||||
|
||||
#
|
||||
# USB Device Class drivers
|
||||
@ -3661,6 +3688,7 @@ CONFIG_USB_GSPCA_MR97310A=m
|
||||
CONFIG_USB_GSPCA_BENQ=m
|
||||
CONFIG_USB_GSPCA_CONEX=m
|
||||
CONFIG_USB_GSPCA_CPIA1=m
|
||||
CONFIG_USB_GSPCA_DTCS033=m
|
||||
CONFIG_USB_GSPCA_ETOMS=m
|
||||
CONFIG_USB_GSPCA_FINEPIX=m
|
||||
CONFIG_USB_GSPCA_MARS=m
|
||||
@ -3878,7 +3906,6 @@ CONFIG_USB_CXACRU=m
|
||||
# CONFIG_USB_C67X00_HCD is not set
|
||||
# CONFIG_USB_CYTHERM is not set
|
||||
CONFIG_USB_EMI26=m
|
||||
CONFIG_USB_ETH=m
|
||||
CONFIG_USB_FTDI_ELAN=m
|
||||
CONFIG_USB_FILE_STORAGE=m
|
||||
# CONFIG_USB_FILE_STORAGE_TEST is not set
|
||||
@ -3916,7 +3943,6 @@ CONFIG_USB_TRANCEVIBRATOR=m
|
||||
CONFIG_USB_U132_HCD=m
|
||||
CONFIG_USB_UEAGLEATM=m
|
||||
CONFIG_USB_XUSBATM=m
|
||||
CONFIG_USB_ZERO=m
|
||||
|
||||
# CONFIG_USB_DWC2 is not set
|
||||
|
||||
@ -3951,6 +3977,7 @@ CONFIG_MFD_VX855=m
|
||||
CONFIG_MFD_SM501=m
|
||||
CONFIG_MFD_SM501_GPIO=y
|
||||
CONFIG_MFD_RTSX_PCI=m
|
||||
CONFIG_MFD_RTSX_USB=m
|
||||
# CONFIG_MFD_TI_AM335X_TSCADC is not set
|
||||
CONFIG_MFD_VIPERBOARD=m
|
||||
# CONFIG_MFD_RETU is not set
|
||||
@ -3994,7 +4021,6 @@ CONFIG_MFD_VIPERBOARD=m
|
||||
# CONFIG_MFD_DA9063 is not set
|
||||
# CONFIG_MFD_LP3943 is not set
|
||||
# CONFIG_MFD_BCM590XX is not set
|
||||
# CONFIG_MFD_RTSX_USB is not set
|
||||
# CONFIG_MFD_TPS65218 is not set
|
||||
|
||||
|
||||
@ -4353,6 +4379,7 @@ CONFIG_DEBUG_NX_TEST=m
|
||||
CONFIG_DEBUG_SET_MODULE_RONX=y
|
||||
CONFIG_DEBUG_BOOT_PARAMS=y
|
||||
CONFIG_DEBUG_VM=y
|
||||
# CONFIG_DEBUG_VM_VMACACHE is not set
|
||||
# CONFIG_DEBUG_VM_RB is not set # revisit this if performance isn't horrible
|
||||
# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
|
||||
CONFIG_LOCKUP_DETECTOR=y
|
||||
@ -4752,6 +4779,7 @@ CONFIG_FTRACE_MCOUNT_RECORD=y
|
||||
# CONFIG_FTRACE_STARTUP_TEST is not set
|
||||
# CONFIG_TRACE_BRANCH_PROFILING is not set
|
||||
CONFIG_FUNCTION_PROFILER=y
|
||||
# CONFIG_TRACEPOINT_BENCHMARK is not set
|
||||
CONFIG_RING_BUFFER_BENCHMARK=m
|
||||
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
|
||||
# CONFIG_RBTREE_TEST is not set
|
||||
@ -4871,6 +4899,7 @@ CONFIG_MEMSTICK_TIFM_MS=m
|
||||
CONFIG_MEMSTICK_JMICRON_38X=m
|
||||
CONFIG_MEMSTICK_R592=m
|
||||
CONFIG_MEMSTICK_REALTEK_PCI=m
|
||||
CONFIG_MEMSTICK_REALTEK_USB=m
|
||||
|
||||
CONFIG_ACCESSIBILITY=y
|
||||
CONFIG_A11Y_BRAILLE_CONSOLE=y
|
||||
@ -4964,6 +4993,8 @@ CONFIG_RTL8192E=m
|
||||
# CONFIG_VIDEO_CX25821 is not set
|
||||
# CONFIG_R8187SE is not set
|
||||
# CONFIG_R8188EU is not set
|
||||
# Larry Finger maintains (rhbz 1113422)
|
||||
CONFIG_R8192EE=m
|
||||
# CONFIG_R8821AE is not set
|
||||
# CONFIG_RTL8192U is not set
|
||||
CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162)
|
||||
@ -5044,7 +5075,8 @@ CONFIG_STRIP_ASM_SYMS=y
|
||||
# CONFIG_RCU_FANOUT_EXACT is not set
|
||||
# FIXME: Revisit FAST_NO_HZ after it's fixed
|
||||
# CONFIG_RCU_FAST_NO_HZ is not set
|
||||
# CONFIG_RCU_NOCB_CPU is not set
|
||||
CONFIG_RCU_NOCB_CPU=y
|
||||
CONFIG_RCU_NOCB_CPU_ALL=y
|
||||
CONFIG_RCU_CPU_STALL_TIMEOUT=60
|
||||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
# CONFIG_RCU_TRACE is not set
|
||||
@ -5111,6 +5143,7 @@ CONFIG_GPIO_SYSFS=y
|
||||
# CONFIG_GPIO_ADP5588 is not set
|
||||
# CONFIG_GPIO_IT8761E is not set
|
||||
# CONFIG SB105x is not set
|
||||
# CONFIG_GPIO_SYSCON is not set
|
||||
# CONFIG_GPIO_TS5500 is not set
|
||||
CONFIG_GPIO_VIPERBOARD=m
|
||||
# CONFIG_GPIO_MAX7300 is not set
|
||||
@ -5166,6 +5199,7 @@ CONFIG_PSTORE_RAM=m
|
||||
|
||||
# CONFIG_TEST_MODULE is not set
|
||||
# CONFIG_TEST_USER_COPY is not set
|
||||
# CONFIG_TEST_BPF is not set
|
||||
|
||||
# CONFIG_AVERAGE is not set
|
||||
# CONFIG_VMXNET3 is not set
|
||||
@ -5215,3 +5249,6 @@ CONFIG_FMC_CHARDEV=m
|
||||
# CONFIG_CRYPTO_KEY_TYPE is not set
|
||||
# CONFIG_PGP_LIBRARY is not set
|
||||
# CONFIG_PGP_PRELOAD is not set
|
||||
|
||||
# CONFIG_RTC_DRV_EFI is not set
|
||||
# CONFIG_NET_XGENE is not set
|
||||
|
@ -34,6 +34,7 @@ CONFIG_CPUMASK_OFFSTACK=y
|
||||
# CONFIG_ACPI_DEBUG_FUNC_TRACE is not set
|
||||
|
||||
# CONFIG_DEBUG_SG is not set
|
||||
# CONFIG_DEBUG_PI_LIST is not set
|
||||
|
||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||
|
||||
|
@ -153,6 +153,7 @@ CONFIG_CHECK_STACK=y
|
||||
# CONFIG_SMALL_STACK is not set
|
||||
|
||||
CONFIG_ZVM_WATCHDOG=m
|
||||
CONFIG_DIAG288_WATCHDOG=m
|
||||
CONFIG_VMLOGRDR=m
|
||||
CONFIG_MONREADER=m
|
||||
|
||||
|
@ -84,6 +84,7 @@ CONFIG_X86_SPEEDSTEP_LIB=y
|
||||
CONFIG_X86_LONGRUN=y
|
||||
# CONFIG_X86_LONGHAUL is not set
|
||||
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
|
||||
# CONFIG_GENERIC_CPUFREQ_CPU0 is not set
|
||||
# e_powersaver is dangerous
|
||||
# CONFIG_X86_E_POWERSAVER is not set
|
||||
|
||||
@ -230,5 +231,7 @@ CONFIG_BACKLIGHT_PWM=m
|
||||
# CONFIG_PINCTRL_CAPRI is not set
|
||||
# CONFIG_PINCTRL_MSM8X74 is not set
|
||||
# CONFIG_PINCTRL_BCM281XX is not set
|
||||
# CONFIG_PINCTRL_APQ8064 is not set
|
||||
# CONFIG_PINCTRL_IPQ8064 is not set
|
||||
# CONFIG_COMMON_CLK_SI570 is not set
|
||||
# CONFIG_COMMON_CLK_QCOM is not set
|
||||
|
@ -225,6 +225,7 @@ CONFIG_HP_WMI=m
|
||||
# CONFIG_INTEL_SCU_IPC is not set
|
||||
CONFIG_DELL_WMI=m
|
||||
CONFIG_DELL_WMI_AIO=m
|
||||
CONFIG_DELL_SMO8800=m
|
||||
CONFIG_EEEPC_WMI=m
|
||||
CONFIG_INTEL_OAKTRAIL=m
|
||||
CONFIG_SAMSUNG_Q10=m
|
||||
@ -417,6 +418,7 @@ CONFIG_SCHED_SMT=y
|
||||
CONFIG_CC_STACKPROTECTOR=y
|
||||
CONFIG_CC_STACKPROTECTOR_STRONG=y
|
||||
CONFIG_RELOCATABLE=y
|
||||
# CONFIG_RANDOMIZE_BASE is not set # revisit this
|
||||
|
||||
CONFIG_HYPERV=m
|
||||
CONFIG_HYPERV_UTILS=m
|
||||
@ -447,6 +449,8 @@ CONFIG_NFC_MICROREAD_MEI=m
|
||||
# Maybe enable in debug kernels?
|
||||
# CONFIG_DEBUG_NMI_SELFTEST is not set
|
||||
|
||||
# CONFIG_X86_GOLDFISH is not set
|
||||
|
||||
CONFIG_X86_INTEL_LPSS=y
|
||||
CONFIG_PWM_LPSS=m
|
||||
CONFIG_PINCTRL=y
|
||||
@ -455,6 +459,7 @@ CONFIG_PINCTRL_BAYTRAIL=y
|
||||
# CONFIG_INTEL_POWERCLAMP is not set
|
||||
CONFIG_X86_PKG_TEMP_THERMAL=m
|
||||
CONFIG_ACPI_INT3403_THERMAL=m
|
||||
CONFIG_INTEL_SOC_DTS_THERMAL=m
|
||||
|
||||
CONFIG_VMWARE_VMCI=m
|
||||
CONFIG_VMWARE_VMCI_VSOCKETS=m
|
||||
|
@ -74,6 +74,9 @@ CONFIG_CRYPTO_SERPENT_AVX_X86_64=m
|
||||
CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
|
||||
CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
|
||||
CONFIG_CRYPTO_TWOFISH_AVX2_X86_64=m
|
||||
# staging crypto
|
||||
# CONFIG_CRYPTO_SKEIN is not set
|
||||
# CONFIG_CRYPTO_THREEFISH is not set
|
||||
|
||||
# CONFIG_I2C_ALI1535 is not set
|
||||
# CONFIG_I2C_ALI1563 is not set
|
||||
|
@ -1,13 +0,0 @@
|
||||
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
|
||||
index eaef02a..2029819 100644
|
||||
--- a/drivers/acpi/video.c
|
||||
+++ b/drivers/acpi/video.c
|
||||
@@ -69,7 +69,7 @@ MODULE_AUTHOR("Bruno Ducrot");
|
||||
MODULE_DESCRIPTION("ACPI Video Driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
-static bool brightness_switch_enabled = 1;
|
||||
+static bool brightness_switch_enabled = 0;
|
||||
module_param(brightness_switch_enabled, bool, 0644);
|
||||
|
||||
/*
|
@ -1,214 +0,0 @@
|
||||
Bugzilla: 1060327
|
||||
Upstream-status: 3.16
|
||||
|
||||
From b87577b7c768683736eea28f70779e8c75b4df62 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Airlie <airlied@redhat.com>
|
||||
Date: Thu, 1 May 2014 09:26:53 +1000
|
||||
Subject: [PATCH] drm: try harder to avoid regression when merging mode bits
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
For QXL hw we really want the bits to be replaced as we change
|
||||
the preferred mode on the fly, and the same goes for virgl when
|
||||
I get to it, however the original fix for this seems to have caused
|
||||
a wierd regression on Intel G33 that in a stunning display of failure
|
||||
at opposition to his normal self, Daniel failed to diagnose.
|
||||
|
||||
So we are left doing this, ugly ugly ugly ugly, Daniel you fixed
|
||||
that G33 yet?, ugly, ugly.
|
||||
|
||||
Tested-by: Marc-André Lureau <marcandre.lureau@redhat.com>
|
||||
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||
---
|
||||
drivers/gpu/drm/drm_modes.c | 9 ++++--
|
||||
drivers/gpu/drm/drm_probe_helper.c | 64 +++++++++++++++++++++++++------------
|
||||
drivers/gpu/drm/qxl/qxl_display.c | 2 +-
|
||||
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 2 +-
|
||||
include/drm/drm_crtc_helper.h | 4 +++
|
||||
include/drm/drm_modes.h | 2 +-
|
||||
6 files changed, 57 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c
|
||||
index 8b410576fce4..bedf1894e17e 100644
|
||||
--- a/drivers/gpu/drm/drm_modes.c
|
||||
+++ b/drivers/gpu/drm/drm_modes.c
|
||||
@@ -1013,6 +1013,7 @@ EXPORT_SYMBOL(drm_mode_sort);
|
||||
/**
|
||||
* drm_mode_connector_list_update - update the mode list for the connector
|
||||
* @connector: the connector to update
|
||||
+ * @merge_type_bits: whether to merge or overright type bits.
|
||||
*
|
||||
* This moves the modes from the @connector probed_modes list
|
||||
* to the actual mode list. It compares the probed mode against the current
|
||||
@@ -1021,7 +1022,8 @@ EXPORT_SYMBOL(drm_mode_sort);
|
||||
* This is just a helper functions doesn't validate any modes itself and also
|
||||
* doesn't prune any invalid modes. Callers need to do that themselves.
|
||||
*/
|
||||
-void drm_mode_connector_list_update(struct drm_connector *connector)
|
||||
+void drm_mode_connector_list_update(struct drm_connector *connector,
|
||||
+ bool merge_type_bits)
|
||||
{
|
||||
struct drm_display_mode *mode;
|
||||
struct drm_display_mode *pmode, *pt;
|
||||
@@ -1039,7 +1041,10 @@ void drm_mode_connector_list_update(struct drm_connector *connector)
|
||||
/* if equal delete the probed mode */
|
||||
mode->status = pmode->status;
|
||||
/* Merge type bits together */
|
||||
- mode->type |= pmode->type;
|
||||
+ if (merge_type_bits)
|
||||
+ mode->type |= pmode->type;
|
||||
+ else
|
||||
+ mode->type = pmode->type;
|
||||
list_del(&pmode->head);
|
||||
drm_mode_destroy(connector->dev, pmode);
|
||||
break;
|
||||
diff --git a/drivers/gpu/drm/drm_probe_helper.c b/drivers/gpu/drm/drm_probe_helper.c
|
||||
index e70f54d4a581..8afdd0998a8c 100644
|
||||
--- a/drivers/gpu/drm/drm_probe_helper.c
|
||||
+++ b/drivers/gpu/drm/drm_probe_helper.c
|
||||
@@ -82,26 +82,8 @@ static void drm_mode_validate_flag(struct drm_connector *connector,
|
||||
return;
|
||||
}
|
||||
|
||||
-/**
|
||||
- * drm_helper_probe_single_connector_modes - get complete set of display modes
|
||||
- * @connector: connector to probe
|
||||
- * @maxX: max width for modes
|
||||
- * @maxY: max height for modes
|
||||
- *
|
||||
- * Based on the helper callbacks implemented by @connector try to detect all
|
||||
- * valid modes. Modes will first be added to the connector's probed_modes list,
|
||||
- * then culled (based on validity and the @maxX, @maxY parameters) and put into
|
||||
- * the normal modes list.
|
||||
- *
|
||||
- * Intended to be use as a generic implementation of the ->fill_modes()
|
||||
- * @connector vfunc for drivers that use the crtc helpers for output mode
|
||||
- * filtering and detection.
|
||||
- *
|
||||
- * Returns:
|
||||
- * The number of modes found on @connector.
|
||||
- */
|
||||
-int drm_helper_probe_single_connector_modes(struct drm_connector *connector,
|
||||
- uint32_t maxX, uint32_t maxY)
|
||||
+static int drm_helper_probe_single_connector_modes_merge_bits(struct drm_connector *connector,
|
||||
+ uint32_t maxX, uint32_t maxY, bool merge_type_bits)
|
||||
{
|
||||
struct drm_device *dev = connector->dev;
|
||||
struct drm_display_mode *mode;
|
||||
@@ -155,7 +137,7 @@ int drm_helper_probe_single_connector_modes(struct drm_connector *connector,
|
||||
if (count == 0)
|
||||
goto prune;
|
||||
|
||||
- drm_mode_connector_list_update(connector);
|
||||
+ drm_mode_connector_list_update(connector, merge_type_bits);
|
||||
|
||||
if (maxX && maxY)
|
||||
drm_mode_validate_size(dev, &connector->modes, maxX, maxY);
|
||||
@@ -194,9 +176,49 @@ prune:
|
||||
|
||||
return count;
|
||||
}
|
||||
+
|
||||
+/**
|
||||
+ * drm_helper_probe_single_connector_modes - get complete set of display modes
|
||||
+ * @connector: connector to probe
|
||||
+ * @maxX: max width for modes
|
||||
+ * @maxY: max height for modes
|
||||
+ *
|
||||
+ * Based on the helper callbacks implemented by @connector try to detect all
|
||||
+ * valid modes. Modes will first be added to the connector's probed_modes list,
|
||||
+ * then culled (based on validity and the @maxX, @maxY parameters) and put into
|
||||
+ * the normal modes list.
|
||||
+ *
|
||||
+ * Intended to be use as a generic implementation of the ->fill_modes()
|
||||
+ * @connector vfunc for drivers that use the crtc helpers for output mode
|
||||
+ * filtering and detection.
|
||||
+ *
|
||||
+ * Returns:
|
||||
+ * The number of modes found on @connector.
|
||||
+ */
|
||||
+int drm_helper_probe_single_connector_modes(struct drm_connector *connector,
|
||||
+ uint32_t maxX, uint32_t maxY)
|
||||
+{
|
||||
+ return drm_helper_probe_single_connector_modes_merge_bits(connector, maxX, maxY, true);
|
||||
+}
|
||||
EXPORT_SYMBOL(drm_helper_probe_single_connector_modes);
|
||||
|
||||
/**
|
||||
+ * drm_helper_probe_single_connector_modes_nomerge - get complete set of display modes
|
||||
+ * @connector: connector to probe
|
||||
+ * @maxX: max width for modes
|
||||
+ * @maxY: max height for modes
|
||||
+ *
|
||||
+ * This operates like drm_hehlper_probe_single_connector_modes except it
|
||||
+ * replaces the mode bits instead of merging them for preferred modes.
|
||||
+ */
|
||||
+int drm_helper_probe_single_connector_modes_nomerge(struct drm_connector *connector,
|
||||
+ uint32_t maxX, uint32_t maxY)
|
||||
+{
|
||||
+ return drm_helper_probe_single_connector_modes_merge_bits(connector, maxX, maxY, false);
|
||||
+}
|
||||
+EXPORT_SYMBOL(drm_helper_probe_single_connector_modes_nomerge);
|
||||
+
|
||||
+/**
|
||||
* drm_kms_helper_hotplug_event - fire off KMS hotplug events
|
||||
* @dev: drm_device whose connector state changed
|
||||
*
|
||||
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
|
||||
index 41bdd174657e..3ab9072d3623 100644
|
||||
--- a/drivers/gpu/drm/qxl/qxl_display.c
|
||||
+++ b/drivers/gpu/drm/qxl/qxl_display.c
|
||||
@@ -841,7 +841,7 @@ static const struct drm_connector_funcs qxl_connector_funcs = {
|
||||
.save = qxl_conn_save,
|
||||
.restore = qxl_conn_restore,
|
||||
.detect = qxl_conn_detect,
|
||||
- .fill_modes = drm_helper_probe_single_connector_modes,
|
||||
+ .fill_modes = drm_helper_probe_single_connector_modes_nomerge,
|
||||
.set_property = qxl_conn_set_property,
|
||||
.destroy = qxl_conn_destroy,
|
||||
};
|
||||
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
|
||||
index a2dde5ad8138..e7199b454ca0 100644
|
||||
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
|
||||
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
|
||||
@@ -2001,7 +2001,7 @@ int vmw_du_connector_fill_modes(struct drm_connector *connector,
|
||||
if (du->pref_mode)
|
||||
list_move(&du->pref_mode->head, &connector->probed_modes);
|
||||
|
||||
- drm_mode_connector_list_update(connector);
|
||||
+ drm_mode_connector_list_update(connector, true);
|
||||
|
||||
return 1;
|
||||
}
|
||||
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
|
||||
index 36a5febac2a6..f51c8393e9a8 100644
|
||||
--- a/include/drm/drm_crtc_helper.h
|
||||
+++ b/include/drm/drm_crtc_helper.h
|
||||
@@ -165,6 +165,10 @@ extern void drm_helper_resume_force_mode(struct drm_device *dev);
|
||||
extern int drm_helper_probe_single_connector_modes(struct drm_connector
|
||||
*connector, uint32_t maxX,
|
||||
uint32_t maxY);
|
||||
+extern int drm_helper_probe_single_connector_modes_nomerge(struct drm_connector
|
||||
+ *connector,
|
||||
+ uint32_t maxX,
|
||||
+ uint32_t maxY);
|
||||
extern void drm_kms_helper_poll_init(struct drm_device *dev);
|
||||
extern void drm_kms_helper_poll_fini(struct drm_device *dev);
|
||||
extern bool drm_helper_hpd_irq_event(struct drm_device *dev);
|
||||
diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h
|
||||
index 2dbbf9976669..91d0582f924e 100644
|
||||
--- a/include/drm/drm_modes.h
|
||||
+++ b/include/drm/drm_modes.h
|
||||
@@ -223,7 +223,7 @@ void drm_mode_validate_size(struct drm_device *dev,
|
||||
void drm_mode_prune_invalid(struct drm_device *dev,
|
||||
struct list_head *mode_list, bool verbose);
|
||||
void drm_mode_sort(struct list_head *mode_list);
|
||||
-void drm_mode_connector_list_update(struct drm_connector *connector);
|
||||
+void drm_mode_connector_list_update(struct drm_connector *connector, bool merge_type_bits);
|
||||
|
||||
/* parsing cmdline modes */
|
||||
bool
|
||||
--
|
||||
1.9.3
|
||||
|
@ -1,287 +0,0 @@
|
||||
Bugzilla: 1064516
|
||||
Upstream-status: Sent for 3.16
|
||||
|
||||
From b3e5bf1ff32cbc58c56675498565020460c683cd Mon Sep 17 00:00:00 2001
|
||||
From: David Ertman <davidx.m.ertman@intel.com>
|
||||
Date: Tue, 6 May 2014 03:50:17 +0000
|
||||
Subject: e1000e: Failure to write SHRA turns on PROMISC mode
|
||||
|
||||
Previously, the check to turn on promiscuous mode only took into account
|
||||
the total number of SHared Receive Address (SHRA) registers and if the
|
||||
request was for a register within that range. It is possible that the
|
||||
Management Engine might have locked a number of SHRA and not allowed a
|
||||
new address to be written to the requested register.
|
||||
|
||||
Add a function to determine the number of unlocked SHRA registers. Then
|
||||
determine if the number of registers available is sufficient for our needs,
|
||||
if not then return -ENOMEM so that UNICAST PROMISC mode is activated.
|
||||
|
||||
Since the method by which ME claims SHRA registers is non-deterministic,
|
||||
also add a return value to the function attempting to write an address
|
||||
to a SHRA, and return a -E1000_ERR_CONFIG if the write fails. The error
|
||||
will be passed up the function chain and allow the driver to also set
|
||||
UNICAST PROMISC when this happens.
|
||||
|
||||
Cc: Vlad Yasevich <vyasevic@redhat.com>
|
||||
Signed-off-by: Dave Ertman <davidx.m.ertman@intel.com>
|
||||
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
|
||||
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
|
||||
|
||||
diff --git a/drivers/net/ethernet/intel/e1000e/80003es2lan.c b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
|
||||
index a5f6b11..08f22f3 100644
|
||||
--- a/drivers/net/ethernet/intel/e1000e/80003es2lan.c
|
||||
+++ b/drivers/net/ethernet/intel/e1000e/80003es2lan.c
|
||||
@@ -1365,6 +1365,7 @@ static const struct e1000_mac_operations es2_mac_ops = {
|
||||
.setup_led = e1000e_setup_led_generic,
|
||||
.config_collision_dist = e1000e_config_collision_dist_generic,
|
||||
.rar_set = e1000e_rar_set_generic,
|
||||
+ .rar_get_count = e1000e_rar_get_count_generic,
|
||||
};
|
||||
|
||||
static const struct e1000_phy_operations es2_phy_ops = {
|
||||
diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c
|
||||
index e0aa7f1..218481e 100644
|
||||
--- a/drivers/net/ethernet/intel/e1000e/82571.c
|
||||
+++ b/drivers/net/ethernet/intel/e1000e/82571.c
|
||||
@@ -1896,6 +1896,7 @@ static const struct e1000_mac_operations e82571_mac_ops = {
|
||||
.config_collision_dist = e1000e_config_collision_dist_generic,
|
||||
.read_mac_addr = e1000_read_mac_addr_82571,
|
||||
.rar_set = e1000e_rar_set_generic,
|
||||
+ .rar_get_count = e1000e_rar_get_count_generic,
|
||||
};
|
||||
|
||||
static const struct e1000_phy_operations e82_phy_ops_igp = {
|
||||
diff --git a/drivers/net/ethernet/intel/e1000e/hw.h b/drivers/net/ethernet/intel/e1000e/hw.h
|
||||
index 6b3de5f..72f5475 100644
|
||||
--- a/drivers/net/ethernet/intel/e1000e/hw.h
|
||||
+++ b/drivers/net/ethernet/intel/e1000e/hw.h
|
||||
@@ -469,8 +469,9 @@ struct e1000_mac_operations {
|
||||
s32 (*setup_led)(struct e1000_hw *);
|
||||
void (*write_vfta)(struct e1000_hw *, u32, u32);
|
||||
void (*config_collision_dist)(struct e1000_hw *);
|
||||
- void (*rar_set)(struct e1000_hw *, u8 *, u32);
|
||||
+ int (*rar_set)(struct e1000_hw *, u8 *, u32);
|
||||
s32 (*read_mac_addr)(struct e1000_hw *);
|
||||
+ u32 (*rar_get_count)(struct e1000_hw *);
|
||||
};
|
||||
|
||||
/* When to use various PHY register access functions:
|
||||
diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c b/drivers/net/ethernet/intel/e1000e/ich8lan.c
|
||||
index 5f55395..b75862d 100644
|
||||
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
|
||||
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
|
||||
@@ -139,8 +139,9 @@ static s32 e1000_k1_gig_workaround_hv(struct e1000_hw *hw, bool link);
|
||||
static s32 e1000_set_mdio_slow_mode_hv(struct e1000_hw *hw);
|
||||
static bool e1000_check_mng_mode_ich8lan(struct e1000_hw *hw);
|
||||
static bool e1000_check_mng_mode_pchlan(struct e1000_hw *hw);
|
||||
-static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index);
|
||||
-static void e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index);
|
||||
+static int e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index);
|
||||
+static int e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index);
|
||||
+static u32 e1000_rar_get_count_pch_lpt(struct e1000_hw *hw);
|
||||
static s32 e1000_k1_workaround_lv(struct e1000_hw *hw);
|
||||
static void e1000_gate_hw_phy_config_ich8lan(struct e1000_hw *hw, bool gate);
|
||||
static s32 e1000_disable_ulp_lpt_lp(struct e1000_hw *hw, bool force);
|
||||
@@ -704,6 +705,7 @@ static s32 e1000_init_mac_params_ich8lan(struct e1000_hw *hw)
|
||||
mac->ops.rar_set = e1000_rar_set_pch_lpt;
|
||||
mac->ops.setup_physical_interface =
|
||||
e1000_setup_copper_link_pch_lpt;
|
||||
+ mac->ops.rar_get_count = e1000_rar_get_count_pch_lpt;
|
||||
}
|
||||
|
||||
/* Enable PCS Lock-loss workaround for ICH8 */
|
||||
@@ -1668,7 +1670,7 @@ static bool e1000_check_mng_mode_pchlan(struct e1000_hw *hw)
|
||||
* contain the MAC address but RAR[1-6] are reserved for manageability (ME).
|
||||
* Use SHRA[0-3] in place of those reserved for ME.
|
||||
**/
|
||||
-static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
|
||||
+static int e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
|
||||
{
|
||||
u32 rar_low, rar_high;
|
||||
|
||||
@@ -1690,7 +1692,7 @@ static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
|
||||
e1e_flush();
|
||||
ew32(RAH(index), rar_high);
|
||||
e1e_flush();
|
||||
- return;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
/* RAR[1-6] are owned by manageability. Skip those and program the
|
||||
@@ -1713,7 +1715,7 @@ static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
|
||||
/* verify the register updates */
|
||||
if ((er32(SHRAL(index - 1)) == rar_low) &&
|
||||
(er32(SHRAH(index - 1)) == rar_high))
|
||||
- return;
|
||||
+ return 0;
|
||||
|
||||
e_dbg("SHRA[%d] might be locked by ME - FWSM=0x%8.8x\n",
|
||||
(index - 1), er32(FWSM));
|
||||
@@ -1721,6 +1723,43 @@ static void e1000_rar_set_pch2lan(struct e1000_hw *hw, u8 *addr, u32 index)
|
||||
|
||||
out:
|
||||
e_dbg("Failed to write receive address at index %d\n", index);
|
||||
+ return -E1000_ERR_CONFIG;
|
||||
+}
|
||||
+
|
||||
+/**
|
||||
+ * e1000_rar_get_count_pch_lpt - Get the number of available SHRA
|
||||
+ * @hw: pointer to the HW structure
|
||||
+ *
|
||||
+ * Get the number of available receive registers that the Host can
|
||||
+ * program. SHRA[0-10] are the shared receive address registers
|
||||
+ * that are shared between the Host and manageability engine (ME).
|
||||
+ * ME can reserve any number of addresses and the host needs to be
|
||||
+ * able to tell how many available registers it has access to.
|
||||
+ **/
|
||||
+static u32 e1000_rar_get_count_pch_lpt(struct e1000_hw *hw)
|
||||
+{
|
||||
+ u32 wlock_mac;
|
||||
+ u32 num_entries;
|
||||
+
|
||||
+ wlock_mac = er32(FWSM) & E1000_FWSM_WLOCK_MAC_MASK;
|
||||
+ wlock_mac >>= E1000_FWSM_WLOCK_MAC_SHIFT;
|
||||
+
|
||||
+ switch (wlock_mac) {
|
||||
+ case 0:
|
||||
+ /* All SHRA[0..10] and RAR[0] available */
|
||||
+ num_entries = hw->mac.rar_entry_count;
|
||||
+ break;
|
||||
+ case 1:
|
||||
+ /* Only RAR[0] available */
|
||||
+ num_entries = 1;
|
||||
+ break;
|
||||
+ default:
|
||||
+ /* SHRA[0..(wlock_mac - 1)] available + RAR[0] */
|
||||
+ num_entries = wlock_mac + 1;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return num_entries;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1734,7 +1773,7 @@ out:
|
||||
* contain the MAC address. SHRA[0-10] are the shared receive address
|
||||
* registers that are shared between the Host and manageability engine (ME).
|
||||
**/
|
||||
-static void e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index)
|
||||
+static int e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index)
|
||||
{
|
||||
u32 rar_low, rar_high;
|
||||
u32 wlock_mac;
|
||||
@@ -1756,7 +1795,7 @@ static void e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index)
|
||||
e1e_flush();
|
||||
ew32(RAH(index), rar_high);
|
||||
e1e_flush();
|
||||
- return;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
/* The manageability engine (ME) can lock certain SHRAR registers that
|
||||
@@ -1788,12 +1827,13 @@ static void e1000_rar_set_pch_lpt(struct e1000_hw *hw, u8 *addr, u32 index)
|
||||
/* verify the register updates */
|
||||
if ((er32(SHRAL_PCH_LPT(index - 1)) == rar_low) &&
|
||||
(er32(SHRAH_PCH_LPT(index - 1)) == rar_high))
|
||||
- return;
|
||||
+ return 0;
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
e_dbg("Failed to write receive address at index %d\n", index);
|
||||
+ return -E1000_ERR_CONFIG;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -4977,6 +5017,7 @@ static const struct e1000_mac_operations ich8_mac_ops = {
|
||||
/* id_led_init dependent on mac type */
|
||||
.config_collision_dist = e1000e_config_collision_dist_generic,
|
||||
.rar_set = e1000e_rar_set_generic,
|
||||
+ .rar_get_count = e1000e_rar_get_count_generic,
|
||||
};
|
||||
|
||||
static const struct e1000_phy_operations ich8_phy_ops = {
|
||||
diff --git a/drivers/net/ethernet/intel/e1000e/mac.c b/drivers/net/ethernet/intel/e1000e/mac.c
|
||||
index baa0a46..8c386f3a 100644
|
||||
--- a/drivers/net/ethernet/intel/e1000e/mac.c
|
||||
+++ b/drivers/net/ethernet/intel/e1000e/mac.c
|
||||
@@ -211,6 +211,11 @@ s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+u32 e1000e_rar_get_count_generic(struct e1000_hw *hw)
|
||||
+{
|
||||
+ return hw->mac.rar_entry_count;
|
||||
+}
|
||||
+
|
||||
/**
|
||||
* e1000e_rar_set_generic - Set receive address register
|
||||
* @hw: pointer to the HW structure
|
||||
@@ -220,7 +225,7 @@ s32 e1000_check_alt_mac_addr_generic(struct e1000_hw *hw)
|
||||
* Sets the receive address array register at index to the address passed
|
||||
* in by addr.
|
||||
**/
|
||||
-void e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index)
|
||||
+int e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index)
|
||||
{
|
||||
u32 rar_low, rar_high;
|
||||
|
||||
@@ -244,6 +249,8 @@ void e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index)
|
||||
e1e_flush();
|
||||
ew32(RAH(index), rar_high);
|
||||
e1e_flush();
|
||||
+
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
diff --git a/drivers/net/ethernet/intel/e1000e/mac.h b/drivers/net/ethernet/intel/e1000e/mac.h
|
||||
index 4e81c28..0513d90 100644
|
||||
--- a/drivers/net/ethernet/intel/e1000e/mac.h
|
||||
+++ b/drivers/net/ethernet/intel/e1000e/mac.h
|
||||
@@ -61,7 +61,8 @@ void e1000e_update_adaptive(struct e1000_hw *hw);
|
||||
void e1000_write_vfta_generic(struct e1000_hw *hw, u32 offset, u32 value);
|
||||
|
||||
void e1000_set_lan_id_multi_port_pcie(struct e1000_hw *hw);
|
||||
-void e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index);
|
||||
+u32 e1000e_rar_get_count_generic(struct e1000_hw *hw);
|
||||
+int e1000e_rar_set_generic(struct e1000_hw *hw, u8 *addr, u32 index);
|
||||
void e1000e_config_collision_dist_generic(struct e1000_hw *hw);
|
||||
|
||||
#endif
|
||||
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
|
||||
index e4207ef..6084e6b 100644
|
||||
--- a/drivers/net/ethernet/intel/e1000e/netdev.c
|
||||
+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
|
||||
@@ -3311,9 +3311,11 @@ static int e1000e_write_uc_addr_list(struct net_device *netdev)
|
||||
{
|
||||
struct e1000_adapter *adapter = netdev_priv(netdev);
|
||||
struct e1000_hw *hw = &adapter->hw;
|
||||
- unsigned int rar_entries = hw->mac.rar_entry_count;
|
||||
+ unsigned int rar_entries;
|
||||
int count = 0;
|
||||
|
||||
+ rar_entries = hw->mac.ops.rar_get_count(hw);
|
||||
+
|
||||
/* save a rar entry for our hardware address */
|
||||
rar_entries--;
|
||||
|
||||
@@ -3332,9 +3334,13 @@ static int e1000e_write_uc_addr_list(struct net_device *netdev)
|
||||
* combining
|
||||
*/
|
||||
netdev_for_each_uc_addr(ha, netdev) {
|
||||
+ int rval;
|
||||
+
|
||||
if (!rar_entries)
|
||||
break;
|
||||
- hw->mac.ops.rar_set(hw, ha->addr, rar_entries--);
|
||||
+ rval = hw->mac.ops.rar_set(hw, ha->addr, rar_entries--);
|
||||
+ if (rval < 0)
|
||||
+ return -ENOMEM;
|
||||
count++;
|
||||
}
|
||||
}
|
||||
--
|
||||
cgit v0.10.1
|
||||
|
@ -1,73 +0,0 @@
|
||||
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1021036
|
||||
Upstream-status: Accepted into 3.16
|
||||
|
||||
From ec5a006650d13c183124bd4279b95625f85efc6d Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 2 Jun 2014 17:41:00 +0200
|
||||
Subject: [PATCH 03/14] ideapad-laptop: Blacklist rfkill control on the Lenovo
|
||||
Yoga 2 11
|
||||
|
||||
The Lenovo Yoga 2 11 always reports everything as blocked, causing userspace
|
||||
to not even try to use the wlan / bluetooth even though they work fine.
|
||||
|
||||
Note this patch also removes the "else priv->rfk[i] = NULL;" bit of the
|
||||
rfkill initialization, it is not necessary as the priv struct is allocated
|
||||
with kzalloc.
|
||||
|
||||
Reported-and-tested-by: Vincent Gerris <vgerris@gmail.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/platform/x86/ideapad-laptop.c | 23 ++++++++++++++++++-----
|
||||
1 file changed, 18 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c
|
||||
index 6dd060a0bb65..219eb289a909 100644
|
||||
--- a/drivers/platform/x86/ideapad-laptop.c
|
||||
+++ b/drivers/platform/x86/ideapad-laptop.c
|
||||
@@ -36,6 +36,7 @@
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/i8042.h>
|
||||
+#include <linux/dmi.h>
|
||||
|
||||
#define IDEAPAD_RFKILL_DEV_NUM (3)
|
||||
|
||||
@@ -819,6 +820,19 @@ static void ideapad_acpi_notify(acpi_handle handle, u32 event, void *data)
|
||||
}
|
||||
}
|
||||
|
||||
+/* Blacklist for devices where the ideapad rfkill interface does not work */
|
||||
+static struct dmi_system_id rfkill_blacklist[] = {
|
||||
+ /* The Lenovo Yoga 2 11 always reports everything as blocked */
|
||||
+ {
|
||||
+ .ident = "Lenovo Yoga 2 11",
|
||||
+ .matches = {
|
||||
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
|
||||
+ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo Yoga 2 11"),
|
||||
+ },
|
||||
+ },
|
||||
+ {}
|
||||
+};
|
||||
+
|
||||
static int ideapad_acpi_add(struct platform_device *pdev)
|
||||
{
|
||||
int ret, i;
|
||||
@@ -854,11 +868,10 @@ static int ideapad_acpi_add(struct platform_device *pdev)
|
||||
if (ret)
|
||||
goto input_failed;
|
||||
|
||||
- for (i = 0; i < IDEAPAD_RFKILL_DEV_NUM; i++) {
|
||||
- if (test_bit(ideapad_rfk_data[i].cfgbit, &priv->cfg))
|
||||
- ideapad_register_rfkill(priv, i);
|
||||
- else
|
||||
- priv->rfk[i] = NULL;
|
||||
+ if (!dmi_check_system(rfkill_blacklist)) {
|
||||
+ for (i = 0; i < IDEAPAD_RFKILL_DEV_NUM; i++)
|
||||
+ if (test_bit(ideapad_rfk_data[i].cfgbit, &priv->cfg))
|
||||
+ ideapad_register_rfkill(priv, i);
|
||||
}
|
||||
ideapad_sync_rfk_state(priv);
|
||||
ideapad_sync_touchpad_state(priv);
|
||||
--
|
||||
1.9.0
|
||||
|
@ -1,199 +0,0 @@
|
||||
commit 410dd3cf4c9b36f27ed4542ee18b1af5e68645a4
|
||||
Author: Jan Kara <jack@suse.cz>
|
||||
Date: Sun Aug 17 11:49:57 2014 +0200
|
||||
|
||||
isofs: Fix unbounded recursion when processing relocated directories
|
||||
|
||||
We did not check relocated directory in any way when processing Rock
|
||||
Ridge 'CL' tag. Thus a corrupted isofs image can possibly have a CL
|
||||
entry pointing to another CL entry leading to possibly unbounded
|
||||
recursion in kernel code and thus stack overflow or deadlocks (if there
|
||||
is a loop created from CL entries).
|
||||
|
||||
Fix the problem by not allowing CL entry to point to a directory entry
|
||||
with CL entry (such use makes no good sense anyway) and by checking
|
||||
whether CL entry doesn't point to itself.
|
||||
|
||||
CC: stable@vger.kernel.org
|
||||
Reported-by: Chris Evans <cevans@google.com>
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
|
||||
diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c
|
||||
index 4556ce1..5ddaf86 100644
|
||||
--- a/fs/isofs/inode.c
|
||||
+++ b/fs/isofs/inode.c
|
||||
@@ -61,7 +61,7 @@ static void isofs_put_super(struct super_block *sb)
|
||||
return;
|
||||
}
|
||||
|
||||
-static int isofs_read_inode(struct inode *);
|
||||
+static int isofs_read_inode(struct inode *, int relocated);
|
||||
static int isofs_statfs (struct dentry *, struct kstatfs *);
|
||||
|
||||
static struct kmem_cache *isofs_inode_cachep;
|
||||
@@ -1259,7 +1259,7 @@ out_toomany:
|
||||
goto out;
|
||||
}
|
||||
|
||||
-static int isofs_read_inode(struct inode *inode)
|
||||
+static int isofs_read_inode(struct inode *inode, int relocated)
|
||||
{
|
||||
struct super_block *sb = inode->i_sb;
|
||||
struct isofs_sb_info *sbi = ISOFS_SB(sb);
|
||||
@@ -1404,7 +1404,7 @@ static int isofs_read_inode(struct inode *inode)
|
||||
*/
|
||||
|
||||
if (!high_sierra) {
|
||||
- parse_rock_ridge_inode(de, inode);
|
||||
+ parse_rock_ridge_inode(de, inode, relocated);
|
||||
/* if we want uid/gid set, override the rock ridge setting */
|
||||
if (sbi->s_uid_set)
|
||||
inode->i_uid = sbi->s_uid;
|
||||
@@ -1483,9 +1483,10 @@ static int isofs_iget5_set(struct inode *ino, void *data)
|
||||
* offset that point to the underlying meta-data for the inode. The
|
||||
* code below is otherwise similar to the iget() code in
|
||||
* include/linux/fs.h */
|
||||
-struct inode *isofs_iget(struct super_block *sb,
|
||||
- unsigned long block,
|
||||
- unsigned long offset)
|
||||
+struct inode *__isofs_iget(struct super_block *sb,
|
||||
+ unsigned long block,
|
||||
+ unsigned long offset,
|
||||
+ int relocated)
|
||||
{
|
||||
unsigned long hashval;
|
||||
struct inode *inode;
|
||||
@@ -1507,7 +1508,7 @@ struct inode *isofs_iget(struct super_block *sb,
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
if (inode->i_state & I_NEW) {
|
||||
- ret = isofs_read_inode(inode);
|
||||
+ ret = isofs_read_inode(inode, relocated);
|
||||
if (ret < 0) {
|
||||
iget_failed(inode);
|
||||
inode = ERR_PTR(ret);
|
||||
diff --git a/fs/isofs/isofs.h b/fs/isofs/isofs.h
|
||||
index 9916723..0ac4c1f 100644
|
||||
--- a/fs/isofs/isofs.h
|
||||
+++ b/fs/isofs/isofs.h
|
||||
@@ -107,7 +107,7 @@ extern int iso_date(char *, int);
|
||||
|
||||
struct inode; /* To make gcc happy */
|
||||
|
||||
-extern int parse_rock_ridge_inode(struct iso_directory_record *, struct inode *);
|
||||
+extern int parse_rock_ridge_inode(struct iso_directory_record *, struct inode *, int relocated);
|
||||
extern int get_rock_ridge_filename(struct iso_directory_record *, char *, struct inode *);
|
||||
extern int isofs_name_translate(struct iso_directory_record *, char *, struct inode *);
|
||||
|
||||
@@ -118,9 +118,24 @@ extern struct dentry *isofs_lookup(struct inode *, struct dentry *, unsigned int
|
||||
extern struct buffer_head *isofs_bread(struct inode *, sector_t);
|
||||
extern int isofs_get_blocks(struct inode *, sector_t, struct buffer_head **, unsigned long);
|
||||
|
||||
-extern struct inode *isofs_iget(struct super_block *sb,
|
||||
- unsigned long block,
|
||||
- unsigned long offset);
|
||||
+struct inode *__isofs_iget(struct super_block *sb,
|
||||
+ unsigned long block,
|
||||
+ unsigned long offset,
|
||||
+ int relocated);
|
||||
+
|
||||
+static inline struct inode *isofs_iget(struct super_block *sb,
|
||||
+ unsigned long block,
|
||||
+ unsigned long offset)
|
||||
+{
|
||||
+ return __isofs_iget(sb, block, offset, 0);
|
||||
+}
|
||||
+
|
||||
+static inline struct inode *isofs_iget_reloc(struct super_block *sb,
|
||||
+ unsigned long block,
|
||||
+ unsigned long offset)
|
||||
+{
|
||||
+ return __isofs_iget(sb, block, offset, 1);
|
||||
+}
|
||||
|
||||
/* Because the inode number is no longer relevant to finding the
|
||||
* underlying meta-data for an inode, we are free to choose a more
|
||||
diff --git a/fs/isofs/rock.c b/fs/isofs/rock.c
|
||||
index c0bf424..f488bba 100644
|
||||
--- a/fs/isofs/rock.c
|
||||
+++ b/fs/isofs/rock.c
|
||||
@@ -288,12 +288,16 @@ eio:
|
||||
goto out;
|
||||
}
|
||||
|
||||
+#define RR_REGARD_XA 1
|
||||
+#define RR_RELOC_DE 2
|
||||
+
|
||||
static int
|
||||
parse_rock_ridge_inode_internal(struct iso_directory_record *de,
|
||||
- struct inode *inode, int regard_xa)
|
||||
+ struct inode *inode, int flags)
|
||||
{
|
||||
int symlink_len = 0;
|
||||
int cnt, sig;
|
||||
+ unsigned int reloc_block;
|
||||
struct inode *reloc;
|
||||
struct rock_ridge *rr;
|
||||
int rootflag;
|
||||
@@ -305,7 +309,7 @@ parse_rock_ridge_inode_internal(struct iso_directory_record *de,
|
||||
|
||||
init_rock_state(&rs, inode);
|
||||
setup_rock_ridge(de, inode, &rs);
|
||||
- if (regard_xa) {
|
||||
+ if (flags & RR_REGARD_XA) {
|
||||
rs.chr += 14;
|
||||
rs.len -= 14;
|
||||
if (rs.len < 0)
|
||||
@@ -485,12 +489,22 @@ repeat:
|
||||
"relocated directory\n");
|
||||
goto out;
|
||||
case SIG('C', 'L'):
|
||||
- ISOFS_I(inode)->i_first_extent =
|
||||
- isonum_733(rr->u.CL.location);
|
||||
- reloc =
|
||||
- isofs_iget(inode->i_sb,
|
||||
- ISOFS_I(inode)->i_first_extent,
|
||||
- 0);
|
||||
+ if (flags & RR_RELOC_DE) {
|
||||
+ printk(KERN_ERR
|
||||
+ "ISOFS: Recursive directory relocation "
|
||||
+ "is not supported\n");
|
||||
+ goto eio;
|
||||
+ }
|
||||
+ reloc_block = isonum_733(rr->u.CL.location);
|
||||
+ if (reloc_block == ISOFS_I(inode)->i_iget5_block &&
|
||||
+ ISOFS_I(inode)->i_iget5_offset == 0) {
|
||||
+ printk(KERN_ERR
|
||||
+ "ISOFS: Directory relocation points to "
|
||||
+ "itself\n");
|
||||
+ goto eio;
|
||||
+ }
|
||||
+ ISOFS_I(inode)->i_first_extent = reloc_block;
|
||||
+ reloc = isofs_iget_reloc(inode->i_sb, reloc_block, 0);
|
||||
if (IS_ERR(reloc)) {
|
||||
ret = PTR_ERR(reloc);
|
||||
goto out;
|
||||
@@ -637,9 +651,11 @@ static char *get_symlink_chunk(char *rpnt, struct rock_ridge *rr, char *plimit)
|
||||
return rpnt;
|
||||
}
|
||||
|
||||
-int parse_rock_ridge_inode(struct iso_directory_record *de, struct inode *inode)
|
||||
+int parse_rock_ridge_inode(struct iso_directory_record *de, struct inode *inode,
|
||||
+ int relocated)
|
||||
{
|
||||
- int result = parse_rock_ridge_inode_internal(de, inode, 0);
|
||||
+ int flags = relocated ? RR_RELOC_DE : 0;
|
||||
+ int result = parse_rock_ridge_inode_internal(de, inode, flags);
|
||||
|
||||
/*
|
||||
* if rockridge flag was reset and we didn't look for attributes
|
||||
@@ -647,7 +663,8 @@ int parse_rock_ridge_inode(struct iso_directory_record *de, struct inode *inode)
|
||||
*/
|
||||
if ((ISOFS_SB(inode->i_sb)->s_rock_offset == -1)
|
||||
&& (ISOFS_SB(inode->i_sb)->s_rock == 2)) {
|
||||
- result = parse_rock_ridge_inode_internal(de, inode, 14);
|
||||
+ result = parse_rock_ridge_inode_internal(de, inode,
|
||||
+ flags | RR_REGARD_XA);
|
||||
}
|
||||
return result;
|
||||
}
|
10179
kernel-arm64.patch
Normal file
10179
kernel-arm64.patch
Normal file
File diff suppressed because it is too large
Load Diff
162
kernel.spec
162
kernel.spec
@ -62,19 +62,19 @@ Summary: The Linux kernel
|
||||
# For non-released -rc kernels, this will be appended after the rcX and
|
||||
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
|
||||
#
|
||||
%global baserelease 201
|
||||
%global baserelease 200
|
||||
%global fedora_build %{baserelease}
|
||||
|
||||
# base_sublevel is the kernel version we're starting with and patching
|
||||
# on top of -- for example, 3.1-rc7-git1 starts with a 3.0 base,
|
||||
# which yields a base_sublevel of 0.
|
||||
%define base_sublevel 15
|
||||
%define base_sublevel 16
|
||||
|
||||
## If this is a released kernel ##
|
||||
%if 0%{?released_kernel}
|
||||
|
||||
# Do we have a -stable update to apply?
|
||||
%define stable_update 10
|
||||
%define stable_update 2
|
||||
# Is it a -stable RC?
|
||||
%define stable_rc 0
|
||||
# Set rpm version accordingly
|
||||
@ -621,13 +621,13 @@ Patch09: upstream-reverts.patch
|
||||
|
||||
# Standalone patches
|
||||
|
||||
Patch390: defaults-acpi-video.patch
|
||||
|
||||
Patch450: input-kill-stupid-messages.patch
|
||||
Patch452: no-pcspkr-modalias.patch
|
||||
|
||||
Patch470: die-floppy-die.patch
|
||||
|
||||
Patch500: Revert-Revert-ACPI-video-change-acpi-video-brightnes.patch
|
||||
|
||||
Patch510: silence-noise.patch
|
||||
Patch530: silence-fbcon-logo.patch
|
||||
|
||||
@ -640,7 +640,7 @@ Patch800: crash-driver.patch
|
||||
# secure boot
|
||||
Patch1000: secure-modules.patch
|
||||
Patch1001: modsign-uefi.patch
|
||||
Patch1002: sb-hibernate.patch
|
||||
# atch1002: sb-hibernate.patch
|
||||
Patch1003: sysrq-secure-boot.patch
|
||||
|
||||
# virt + ksm patches
|
||||
@ -650,6 +650,7 @@ Patch1003: sysrq-secure-boot.patch
|
||||
# nouveau + drm fixes
|
||||
# intel drm is all merged upstream
|
||||
Patch1826: drm-i915-hush-check-crtc-state.patch
|
||||
|
||||
# Quiet boot fixes
|
||||
|
||||
# fs fixes
|
||||
@ -667,17 +668,13 @@ Patch15000: nowatchdog-on-virt.patch
|
||||
|
||||
# ARM64
|
||||
|
||||
# ARM
|
||||
|
||||
# ARM tegra
|
||||
# ARMv7
|
||||
Patch21020: arm-tegra-usb-no-reset-linux33.patch
|
||||
|
||||
# ARM i.MX6
|
||||
Patch21021: arm-beagle.patch
|
||||
Patch21022: arm-imx6-utilite.patch
|
||||
|
||||
# ARM sunxi (AllWinner)
|
||||
Patch21025: 0001-ARM-sunxi-Add-driver-for-SD-MMC-hosts-found-on-Allwi.patch
|
||||
# http://www.spinics.net/lists/linux-tegra/msg17948.html
|
||||
Patch21023: arm-tegra-drmdetection.patch
|
||||
Patch21024: arm-qemu-fixdisplay.patch
|
||||
|
||||
#rhbz 754518
|
||||
Patch21235: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch
|
||||
@ -693,84 +690,32 @@ Patch22000: weird-root-dentry-name-debug.patch
|
||||
#rhbz 1025603
|
||||
Patch25063: disable-libdw-unwind-on-non-x86.patch
|
||||
|
||||
#rhbz 1048314
|
||||
Patch25062: 0001-HID-rmi-introduce-RMI-driver-for-Synaptics-touchpads.patch
|
||||
|
||||
#rhbz 1089583
|
||||
Patch25064: 0001-HID-rmi-do-not-handle-touchscreens-through-hid-rmi.patch
|
||||
|
||||
#rhbz 1090161
|
||||
Patch25072: HID-rmi-do-not-fetch-more-than-16-bytes-in-a-query.patch
|
||||
|
||||
#rhbz 983342 1093120
|
||||
Patch25069: 0001-acpi-video-Add-4-new-models-to-the-use_native_backli.patch
|
||||
|
||||
Patch25071: s390-appldata-add-slab.h-for-kzalloc-kfree.patch
|
||||
Patch26000: perf-lib64.patch
|
||||
|
||||
# Patch series from Hans for various backlight and platform driver fixes
|
||||
Patch26001: thinkpad_acpi-Add-mappings-for-F9-F12-hotkeys-on-X24.patch
|
||||
Patch26002: samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch
|
||||
Patch26003: ideapad-laptop-Blacklist-rfkill-control-on-the-Lenov.patch
|
||||
Patch26004: asus-wmi-Add-a-no-backlight-quirk.patch
|
||||
Patch26005: eeepc-wmi-Add-no-backlight-quirk-for-Asus-H87I-PLUS-.patch
|
||||
Patch26006: acpi-video-Don-t-register-acpi_video_resume-notifier.patch
|
||||
Patch26007: acpi-video-Add-an-acpi_video_unregister_backlight-fu.patch
|
||||
Patch26008: acer-wmi-Switch-to-acpi_video_unregister_backlight.patch
|
||||
Patch26009: acer-wmi-Add-Aspire-5741-to-video_vendor_dmi_table.patch
|
||||
Patch26010: nouveau-Don-t-check-acpi_video_backlight_support-bef.patch
|
||||
Patch26011: backlight-Add-backlight-device-un-registration-notif.patch
|
||||
Patch26012: acpi-video-Unregister-the-backlight-device-if-a-raw-.patch
|
||||
Patch26013: acpi-video-Add-use-native-backlight-quirk-for-the-Th.patch
|
||||
Patch26014: acpi-video-Add-use_native_backlight-quirk-for-HP-Pro.patch
|
||||
|
||||
#rhbz 1064516
|
||||
Patch25098: e1000e-Failure-to-write-SHRA-turns-on-PROMISC-mode.patch
|
||||
|
||||
Patch25109: revert-input-wacom-testing-result-shows-get_report-is-unnecessary.patch
|
||||
|
||||
#rhbz 1021036, submitted upstream
|
||||
Patch25110: 0001-ideapad-laptop-Change-Lenovo-Yoga-2-series-rfkill-ha.patch
|
||||
|
||||
#rhbz 1117942
|
||||
Patch25118: sched-fix-sched_setparam-policy-1-logic.patch
|
||||
|
||||
#rhbz 1060327
|
||||
Patch25123: drm-try-harder-to-avoid-regression-when-merging-mode.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
|
||||
|
||||
#rhbz 1101386
|
||||
Patch25128: 0001-ALSA-hda-Add-dock-pin-setups-for-Thinkpad-T440.patch
|
||||
Patch25129: 0002-ALSA-hda-Add-a-fixup-for-Thinkpad-T540p.patch
|
||||
|
||||
#CVE-2014-{5206,5207} rhbz 1129662 1129669
|
||||
Patch25130: namespaces-remount-fixes.patch
|
||||
|
||||
#rhbz 1128472
|
||||
Patch25131: 0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch
|
||||
|
||||
#rhbz 1131551
|
||||
Patch25132: nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch
|
||||
|
||||
#rhbz 1132666
|
||||
Patch26016: xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch
|
||||
|
||||
#CVE-2014-{5471,5472} rhbz 1134099 1134101
|
||||
Patch26017: isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch
|
||||
|
||||
#rhbz 1132786
|
||||
Patch26018: NFSv3-Fix-another-acl-regression.patch
|
||||
Patch25119: namespaces-remount-fixes.patch
|
||||
|
||||
#rhbz 1134969
|
||||
Patch26019: Input-wacom-Add-support-for-the-Cintiq-Companion.patch
|
||||
|
||||
# git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
|
||||
Patch30000: kernel-arm64.patch
|
||||
|
||||
# END OF PATCH DEFINITIONS
|
||||
|
||||
%endif
|
||||
@ -1321,9 +1266,10 @@ ApplyPatch 0001-lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch
|
||||
# ARM
|
||||
#
|
||||
ApplyPatch arm-tegra-usb-no-reset-linux33.patch
|
||||
ApplyPatch 0001-ARM-sunxi-Add-driver-for-SD-MMC-hosts-found-on-Allwi.patch
|
||||
ApplyPatch arm-imx6-utilite.patch
|
||||
ApplyPatch arm-beagle.patch
|
||||
ApplyPatch arm-imx6-utilite.patch
|
||||
ApplyPatch arm-tegra-drmdetection.patch
|
||||
ApplyPatch arm-qemu-fixdisplay.patch
|
||||
|
||||
#
|
||||
# bugfixes to drivers and filesystems
|
||||
@ -1344,7 +1290,6 @@ ApplyPatch arm-beagle.patch
|
||||
# WMI
|
||||
|
||||
# ACPI
|
||||
ApplyPatch defaults-acpi-video.patch
|
||||
|
||||
#
|
||||
# PCI
|
||||
@ -1356,6 +1301,8 @@ ApplyPatch defaults-acpi-video.patch
|
||||
|
||||
# ACPI
|
||||
|
||||
ApplyPatch Revert-Revert-ACPI-video-change-acpi-video-brightnes.patch
|
||||
|
||||
# ALSA
|
||||
|
||||
# Networking
|
||||
@ -1385,7 +1332,7 @@ ApplyPatch crash-driver.patch
|
||||
# secure boot
|
||||
ApplyPatch secure-modules.patch
|
||||
ApplyPatch modsign-uefi.patch
|
||||
ApplyPatch sb-hibernate.patch
|
||||
# pplyPatch sb-hibernate.patch
|
||||
ApplyPatch sysrq-secure-boot.patch
|
||||
|
||||
# Assorted Virt Fixes
|
||||
@ -1421,85 +1368,39 @@ ApplyPatch criu-no-expert.patch
|
||||
#rhbz 892811
|
||||
ApplyPatch ath9k_rx_dma_stop_check.patch
|
||||
|
||||
#rhbz 1048314
|
||||
ApplyPatch 0001-HID-rmi-introduce-RMI-driver-for-Synaptics-touchpads.patch
|
||||
#rhbz 1089583
|
||||
ApplyPatch 0001-HID-rmi-do-not-handle-touchscreens-through-hid-rmi.patch
|
||||
#rhbz 1090161
|
||||
ApplyPatch HID-rmi-do-not-fetch-more-than-16-bytes-in-a-query.patch
|
||||
|
||||
#rhbz 1025603
|
||||
ApplyPatch disable-libdw-unwind-on-non-x86.patch
|
||||
|
||||
#rhbz 983342 1093120
|
||||
ApplyPatch 0001-acpi-video-Add-4-new-models-to-the-use_native_backli.patch
|
||||
|
||||
ApplyPatch s390-appldata-add-slab.h-for-kzalloc-kfree.patch
|
||||
ApplyPatch perf-lib64.patch
|
||||
|
||||
# Patch series from Hans for various backlight and platform driver fixes
|
||||
ApplyPatch thinkpad_acpi-Add-mappings-for-F9-F12-hotkeys-on-X24.patch
|
||||
ApplyPatch samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch
|
||||
ApplyPatch ideapad-laptop-Blacklist-rfkill-control-on-the-Lenov.patch
|
||||
ApplyPatch asus-wmi-Add-a-no-backlight-quirk.patch
|
||||
ApplyPatch eeepc-wmi-Add-no-backlight-quirk-for-Asus-H87I-PLUS-.patch
|
||||
ApplyPatch acpi-video-Don-t-register-acpi_video_resume-notifier.patch
|
||||
ApplyPatch acpi-video-Add-an-acpi_video_unregister_backlight-fu.patch
|
||||
ApplyPatch acer-wmi-Switch-to-acpi_video_unregister_backlight.patch
|
||||
ApplyPatch acer-wmi-Add-Aspire-5741-to-video_vendor_dmi_table.patch
|
||||
ApplyPatch nouveau-Don-t-check-acpi_video_backlight_support-bef.patch
|
||||
ApplyPatch backlight-Add-backlight-device-un-registration-notif.patch
|
||||
ApplyPatch acpi-video-Unregister-the-backlight-device-if-a-raw-.patch
|
||||
ApplyPatch acpi-video-Add-use-native-backlight-quirk-for-the-Th.patch
|
||||
ApplyPatch acpi-video-Add-use_native_backlight-quirk-for-HP-Pro.patch
|
||||
|
||||
#rhbz 1064516
|
||||
ApplyPatch e1000e-Failure-to-write-SHRA-turns-on-PROMISC-mode.patch
|
||||
|
||||
ApplyPatch revert-input-wacom-testing-result-shows-get_report-is-unnecessary.patch
|
||||
|
||||
#rhbz 1021036, submitted upstream
|
||||
ApplyPatch 0001-ideapad-laptop-Change-Lenovo-Yoga-2-series-rfkill-ha.patch
|
||||
|
||||
#rhbz 1117942
|
||||
ApplyPatch sched-fix-sched_setparam-policy-1-logic.patch
|
||||
|
||||
#rhbz 1060327
|
||||
ApplyPatch drm-try-harder-to-avoid-regression-when-merging-mode.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
|
||||
|
||||
#rhbz 1101386
|
||||
ApplyPatch 0001-ALSA-hda-Add-dock-pin-setups-for-Thinkpad-T440.patch
|
||||
ApplyPatch 0002-ALSA-hda-Add-a-fixup-for-Thinkpad-T540p.patch
|
||||
|
||||
#CVE-2014-{5206,5207} rhbz 1129662 1129669
|
||||
ApplyPatch namespaces-remount-fixes.patch
|
||||
|
||||
#rhbz 1128472
|
||||
ApplyPatch 0001-uas-Limit-qdepth-to-32-when-connected-over-usb-2.patch
|
||||
|
||||
#rhbz 1131551
|
||||
ApplyPatch nfs3_list_one_acl-check-get_acl-result-with-IS_ERR_O.patch
|
||||
|
||||
#rhbz 1132666
|
||||
ApplyPatch xhci-Disable-streams-on-Via-XHCI-with-device-id-0x34.patch
|
||||
|
||||
#CVE-2014-{5471,5472} rhbz 1134099 1134101
|
||||
ApplyPatch isofs-Fix-unbounded-recursion-when-processing-relocated-directories.patch
|
||||
|
||||
#rhbz 1132786
|
||||
ApplyPatch NFSv3-Fix-another-acl-regression.patch
|
||||
|
||||
#rhbz 1134969
|
||||
ApplyPatch Input-wacom-Add-support-for-the-Cintiq-Companion.patch
|
||||
|
||||
%if 0%{?aarch64patches}
|
||||
ApplyPatch kernel-arm64.patch
|
||||
%ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does.
|
||||
ApplyPatch kernel-arm64.patch -R
|
||||
%endif
|
||||
%endif
|
||||
|
||||
# END OF PATCH APPLICATIONS
|
||||
|
||||
%endif
|
||||
@ -2311,6 +2212,9 @@ fi
|
||||
# ||----w |
|
||||
# || ||
|
||||
%changelog
|
||||
* Mon Sep 08 2014 Justin M. Forbes <jforbes@fedoraproject.org> - 3.16.2-200
|
||||
- Linux v3.16.2
|
||||
|
||||
* Thu Sep 04 2014 Josh Boyer <jwboyer@fedoraproject.org>
|
||||
- Add support for Wacom Cintiq Companion from Benjamin Tissoires (rhbz 1134969)
|
||||
|
||||
|
@ -1,4 +1,7 @@
|
||||
From 0a5e59dd7a921f20d77b13aa4e01392086ddbd12 Mon Sep 17 00:00:00 2001
|
||||
Bugzilla: N/A
|
||||
Upstream-status: Fedora mustard for now
|
||||
|
||||
From fa2bfe718da40bf24f92c85846577e9bc788882c Mon Sep 17 00:00:00 2001
|
||||
From: Dave Howells <dhowells@redhat.com>
|
||||
Date: Tue, 23 Oct 2012 09:30:54 -0400
|
||||
Subject: [PATCH 1/5] Add EFI signature data types
|
||||
@ -12,12 +15,12 @@ Signed-off-by: David Howells <dhowells@redhat.com>
|
||||
1 file changed, 20 insertions(+)
|
||||
|
||||
diff --git a/include/linux/efi.h b/include/linux/efi.h
|
||||
index eed2202..1da1b3c 100644
|
||||
index e73f391fd3c8..3d66a61bbbca 100644
|
||||
--- a/include/linux/efi.h
|
||||
+++ b/include/linux/efi.h
|
||||
@@ -389,6 +389,12 @@ typedef efi_status_t efi_query_variable_store_t(u32 attributes, unsigned long si
|
||||
#define EFI_FILE_SYSTEM_GUID \
|
||||
EFI_GUID( 0x964e5b22, 0x6459, 0x11d2, 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b )
|
||||
@@ -578,6 +578,12 @@ typedef efi_status_t efi_query_variable_store_t(u32 attributes, unsigned long si
|
||||
#define DEVICE_TREE_GUID \
|
||||
EFI_GUID( 0xb1b621d5, 0xf19c, 0x41a5, 0x83, 0x0b, 0xd9, 0x15, 0x2c, 0x69, 0xaa, 0xe0 )
|
||||
|
||||
+#define EFI_CERT_SHA256_GUID \
|
||||
+ EFI_GUID( 0xc1c41626, 0x504c, 0x4092, 0xac, 0xa9, 0x41, 0xf9, 0x36, 0x93, 0x43, 0x28 )
|
||||
@ -28,7 +31,7 @@ index eed2202..1da1b3c 100644
|
||||
typedef struct {
|
||||
efi_guid_t guid;
|
||||
u64 table;
|
||||
@@ -524,6 +530,20 @@ typedef struct {
|
||||
@@ -793,6 +799,20 @@ typedef struct _efi_file_io_interface {
|
||||
|
||||
#define EFI_INVALID_TABLE_ADDR (~0UL)
|
||||
|
||||
@ -50,10 +53,10 @@ index eed2202..1da1b3c 100644
|
||||
* All runtime access to EFI goes through this structure:
|
||||
*/
|
||||
--
|
||||
1.8.3.1
|
||||
1.9.3
|
||||
|
||||
|
||||
From 8b75428a7e1813cd3bc225a959e63d67898e4808 Mon Sep 17 00:00:00 2001
|
||||
From 922e0512ce70101b596558d5bb075cd40a450322 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Howells <dhowells@redhat.com>
|
||||
Date: Tue, 23 Oct 2012 09:36:28 -0400
|
||||
Subject: [PATCH 2/5] Add an EFI signature blob parser and key loader.
|
||||
@ -71,10 +74,10 @@ Signed-off-by: David Howells <dhowells@redhat.com>
|
||||
create mode 100644 crypto/asymmetric_keys/efi_parser.c
|
||||
|
||||
diff --git a/crypto/asymmetric_keys/Kconfig b/crypto/asymmetric_keys/Kconfig
|
||||
index 6d2c2ea..ace9c30 100644
|
||||
index 03a6eb95ab50..6306ffc2a7fe 100644
|
||||
--- a/crypto/asymmetric_keys/Kconfig
|
||||
+++ b/crypto/asymmetric_keys/Kconfig
|
||||
@@ -35,4 +35,12 @@ config X509_CERTIFICATE_PARSER
|
||||
@@ -37,4 +37,12 @@ config X509_CERTIFICATE_PARSER
|
||||
data and provides the ability to instantiate a crypto key from a
|
||||
public key packet found inside the certificate.
|
||||
|
||||
@ -88,7 +91,7 @@ index 6d2c2ea..ace9c30 100644
|
||||
+
|
||||
endif # ASYMMETRIC_KEY_TYPE
|
||||
diff --git a/crypto/asymmetric_keys/Makefile b/crypto/asymmetric_keys/Makefile
|
||||
index 0727204..cd8388e 100644
|
||||
index 0727204aab68..cd8388e5f2f1 100644
|
||||
--- a/crypto/asymmetric_keys/Makefile
|
||||
+++ b/crypto/asymmetric_keys/Makefile
|
||||
@@ -8,6 +8,7 @@ asymmetric_keys-y := asymmetric_type.o signature.o
|
||||
@ -101,7 +104,7 @@ index 0727204..cd8388e 100644
|
||||
# X.509 Certificate handling
|
||||
diff --git a/crypto/asymmetric_keys/efi_parser.c b/crypto/asymmetric_keys/efi_parser.c
|
||||
new file mode 100644
|
||||
index 0000000..424896a
|
||||
index 000000000000..424896a0b169
|
||||
--- /dev/null
|
||||
+++ b/crypto/asymmetric_keys/efi_parser.c
|
||||
@@ -0,0 +1,109 @@
|
||||
@ -215,12 +218,12 @@ index 0000000..424896a
|
||||
+ return 0;
|
||||
+}
|
||||
diff --git a/include/linux/efi.h b/include/linux/efi.h
|
||||
index 1da1b3c..42a1d25 100644
|
||||
index 3d66a61bbbca..7854ff3c0f11 100644
|
||||
--- a/include/linux/efi.h
|
||||
+++ b/include/linux/efi.h
|
||||
@@ -619,6 +619,10 @@ extern int efi_set_rtc_mmss(const struct timespec *now);
|
||||
extern void efi_reserve_boot_services(void);
|
||||
extern struct efi_memory_map memmap;
|
||||
@@ -901,6 +901,10 @@ extern struct efi_memory_map memmap;
|
||||
(md) <= (efi_memory_desc_t *)((m)->map_end - (m)->desc_size); \
|
||||
(md) = (void *)(md) + (m)->desc_size)
|
||||
|
||||
+struct key;
|
||||
+extern int __init parse_efi_signature_list(const void *data, size_t size,
|
||||
@ -230,10 +233,10 @@ index 1da1b3c..42a1d25 100644
|
||||
* efi_range_is_wc - check the WC bit on an address range
|
||||
* @start: starting kvirt address
|
||||
--
|
||||
1.8.3.1
|
||||
1.9.3
|
||||
|
||||
|
||||
From 920108c0f9cc5854dd329a5dfc904e91d40a4b26 Mon Sep 17 00:00:00 2001
|
||||
From 2534dedee545507c00973279d5db515e122b5104 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Fri, 26 Oct 2012 12:36:24 -0400
|
||||
Subject: [PATCH 3/5] KEYS: Add a system blacklist keyring
|
||||
@ -252,7 +255,7 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
4 files changed, 42 insertions(+)
|
||||
|
||||
diff --git a/include/keys/system_keyring.h b/include/keys/system_keyring.h
|
||||
index 8dabc39..e466de1 100644
|
||||
index 8dabc399bd1d..e466de10ceec 100644
|
||||
--- a/include/keys/system_keyring.h
|
||||
+++ b/include/keys/system_keyring.h
|
||||
@@ -18,6 +18,10 @@
|
||||
@ -267,10 +270,10 @@ index 8dabc39..e466de1 100644
|
||||
|
||||
#endif /* _KEYS_SYSTEM_KEYRING_H */
|
||||
diff --git a/init/Kconfig b/init/Kconfig
|
||||
index 0ff5407..ba76e57 100644
|
||||
index 9d76b99af1b9..ac5f580437a0 100644
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -1680,6 +1680,15 @@ config SYSTEM_TRUSTED_KEYRING
|
||||
@@ -1677,6 +1677,15 @@ config SYSTEM_TRUSTED_KEYRING
|
||||
|
||||
Keys in this keyring are used by module signature checking.
|
||||
|
||||
@ -278,16 +281,16 @@ index 0ff5407..ba76e57 100644
|
||||
+ bool "Provide system-wide ring of blacklisted keys"
|
||||
+ depends on KEYS
|
||||
+ help
|
||||
+ Provide a system keyring to which blacklisted keys can be added. Keys
|
||||
+ in the keyring are considered entirely untrusted. Keys in this keyring
|
||||
+ are used by the module signature checking to reject loading of modules
|
||||
+ signed with a blacklisted key.
|
||||
+ Provide a system keyring to which blacklisted keys can be added.
|
||||
+ Keys in the keyring are considered entirely untrusted. Keys in this
|
||||
+ keyring are used by the module signature checking to reject loading
|
||||
+ of modules signed with a blacklisted key.
|
||||
+
|
||||
config PROFILING
|
||||
bool "Profiling support"
|
||||
help
|
||||
bool "Profiling support"
|
||||
help
|
||||
diff --git a/kernel/module_signing.c b/kernel/module_signing.c
|
||||
index 0b6b870..0a29b40 100644
|
||||
index be5b8fac4bd0..fed815fcdaf2 100644
|
||||
--- a/kernel/module_signing.c
|
||||
+++ b/kernel/module_signing.c
|
||||
@@ -158,6 +158,18 @@ static struct key *request_asymmetric_key(const char *signer, size_t signer_len,
|
||||
@ -310,7 +313,7 @@ index 0b6b870..0a29b40 100644
|
||||
&key_type_asymmetric, id);
|
||||
if (IS_ERR(key))
|
||||
diff --git a/kernel/system_keyring.c b/kernel/system_keyring.c
|
||||
index 564dd93..389b50d 100644
|
||||
index 52ebc70263f4..478c4f8ec908 100644
|
||||
--- a/kernel/system_keyring.c
|
||||
+++ b/kernel/system_keyring.c
|
||||
@@ -20,6 +20,9 @@
|
||||
@ -322,7 +325,7 @@ index 564dd93..389b50d 100644
|
||||
+#endif
|
||||
|
||||
extern __initconst const u8 system_certificate_list[];
|
||||
extern __initconst const u8 system_certificate_list_end[];
|
||||
extern __initconst const unsigned long system_certificate_list_size;
|
||||
@@ -41,6 +44,20 @@ static __init int system_trusted_keyring_init(void)
|
||||
panic("Can't allocate system trusted keyring\n");
|
||||
|
||||
@ -345,10 +348,10 @@ index 564dd93..389b50d 100644
|
||||
}
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
1.9.3
|
||||
|
||||
|
||||
From 69dca9998380c1931227a01205cdf23c34509753 Mon Sep 17 00:00:00 2001
|
||||
From a72ed58241f0d62b7f9fbf4e1fbbcc1e02145098 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Fri, 26 Oct 2012 12:42:16 -0400
|
||||
Subject: [PATCH 4/5] MODSIGN: Import certificates from UEFI Secure Boot
|
||||
@ -376,10 +379,10 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
create mode 100644 kernel/modsign_uefi.c
|
||||
|
||||
diff --git a/include/linux/efi.h b/include/linux/efi.h
|
||||
index 42a1d25..d3e6036 100644
|
||||
index 7854ff3c0f11..31fd75e7230b 100644
|
||||
--- a/include/linux/efi.h
|
||||
+++ b/include/linux/efi.h
|
||||
@@ -395,6 +395,12 @@ typedef efi_status_t efi_query_variable_store_t(u32 attributes, unsigned long si
|
||||
@@ -584,6 +584,12 @@ typedef efi_status_t efi_query_variable_store_t(u32 attributes, unsigned long si
|
||||
#define EFI_CERT_X509_GUID \
|
||||
EFI_GUID( 0xa5c059a1, 0x94e4, 0x4aa7, 0x87, 0xb5, 0xab, 0x15, 0x5c, 0x2b, 0xf0, 0x72 )
|
||||
|
||||
@ -393,10 +396,10 @@ index 42a1d25..d3e6036 100644
|
||||
efi_guid_t guid;
|
||||
u64 table;
|
||||
diff --git a/init/Kconfig b/init/Kconfig
|
||||
index ba76e57..b09cd98 100644
|
||||
index ac5f580437a0..ca7268b594aa 100644
|
||||
--- a/init/Kconfig
|
||||
+++ b/init/Kconfig
|
||||
@@ -1799,6 +1799,15 @@ config MODULE_SIG_ALL
|
||||
@@ -1831,6 +1831,15 @@ config MODULE_SIG_ALL
|
||||
comment "Do not forget to sign required modules with scripts/sign-file"
|
||||
depends on MODULE_SIG_FORCE && !MODULE_SIG_ALL
|
||||
|
||||
@ -413,10 +416,10 @@ index ba76e57..b09cd98 100644
|
||||
prompt "Which hash algorithm should modules be signed with?"
|
||||
depends on MODULE_SIG
|
||||
diff --git a/kernel/Makefile b/kernel/Makefile
|
||||
index 6313698..cb35a89 100644
|
||||
index f2a8b6246ce9..706e7952bde5 100644
|
||||
--- a/kernel/Makefile
|
||||
+++ b/kernel/Makefile
|
||||
@@ -57,6 +57,7 @@ obj-$(CONFIG_UID16) += uid16.o
|
||||
@@ -46,6 +46,7 @@ obj-$(CONFIG_UID16) += uid16.o
|
||||
obj-$(CONFIG_SYSTEM_TRUSTED_KEYRING) += system_keyring.o system_certificates.o
|
||||
obj-$(CONFIG_MODULES) += module.o
|
||||
obj-$(CONFIG_MODULE_SIG) += module_signing.o
|
||||
@ -424,7 +427,7 @@ index 6313698..cb35a89 100644
|
||||
obj-$(CONFIG_KALLSYMS) += kallsyms.o
|
||||
obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o
|
||||
obj-$(CONFIG_KEXEC) += kexec.o
|
||||
@@ -115,6 +116,8 @@ obj-$(CONFIG_CONTEXT_TRACKING) += context_tracking.o
|
||||
@@ -99,6 +100,8 @@ obj-$(CONFIG_TORTURE_TEST) += torture.o
|
||||
|
||||
$(obj)/configs.o: $(obj)/config_data.h
|
||||
|
||||
@ -435,7 +438,7 @@ index 6313698..cb35a89 100644
|
||||
targets += config_data.gz
|
||||
diff --git a/kernel/modsign_uefi.c b/kernel/modsign_uefi.c
|
||||
new file mode 100644
|
||||
index 0000000..94b0eb3
|
||||
index 000000000000..94b0eb38a284
|
||||
--- /dev/null
|
||||
+++ b/kernel/modsign_uefi.c
|
||||
@@ -0,0 +1,92 @@
|
||||
@ -532,10 +535,10 @@ index 0000000..94b0eb3
|
||||
+}
|
||||
+late_initcall(load_uefi_certs);
|
||||
--
|
||||
1.8.3.1
|
||||
1.9.3
|
||||
|
||||
|
||||
From c8e6d256ddfa2182d5b011a4ab70f8c5c9b2b590 Mon Sep 17 00:00:00 2001
|
||||
From 11bb98e3a62de77fc66a3e2197578dd9d891b998 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Thu, 3 Oct 2013 10:14:23 -0400
|
||||
Subject: [PATCH 5/5] MODSIGN: Support not importing certs from db
|
||||
@ -551,7 +554,7 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
1 file changed, 31 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/kernel/modsign_uefi.c b/kernel/modsign_uefi.c
|
||||
index 94b0eb3..ae28b97 100644
|
||||
index 94b0eb38a284..ae28b974d49a 100644
|
||||
--- a/kernel/modsign_uefi.c
|
||||
+++ b/kernel/modsign_uefi.c
|
||||
@@ -8,6 +8,23 @@
|
||||
@ -617,5 +620,5 @@ index 94b0eb3..ae28b97 100644
|
||||
|
||||
mok = get_cert_list(L"MokListRT", &mok_var, &moksize);
|
||||
--
|
||||
1.8.3.1
|
||||
1.9.3
|
||||
|
||||
|
@ -1,41 +0,0 @@
|
||||
Bugzilla: 1131551
|
||||
Upstream-status: 3.17-rc1 and Cc'd to stable
|
||||
|
||||
From 7a9e75a185e6b3a3860e6a26fb6e88691fc2c9d9 Mon Sep 17 00:00:00 2001
|
||||
From: Andrey Utkin <andrey.krieger.utkin@gmail.com>
|
||||
Date: Sat, 26 Jul 2014 14:58:01 +0300
|
||||
Subject: [PATCH] nfs3_list_one_acl(): check get_acl() result with
|
||||
IS_ERR_OR_NULL
|
||||
|
||||
There was a check for result being not NULL. But get_acl() may return
|
||||
NULL, or ERR_PTR, or actual pointer.
|
||||
The purpose of the function where current change is done is to "list
|
||||
ACLs only when they are available", so any error condition of get_acl()
|
||||
mustn't be elevated, and returning 0 there is still valid.
|
||||
|
||||
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=81111
|
||||
Signed-off-by: Andrey Utkin <andrey.krieger.utkin@gmail.com>
|
||||
Reviewed-by: Christoph Hellwig <hch@lst.de>
|
||||
Fixes: 74adf83f5d77 (nfs: only show Posix ACLs in listxattr if actually...)
|
||||
Cc: stable@vger.kernel.org # 3.14+
|
||||
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
|
||||
---
|
||||
fs/nfs/nfs3acl.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/fs/nfs/nfs3acl.c b/fs/nfs/nfs3acl.c
|
||||
index 8f854dde4150..d0fec260132a 100644
|
||||
--- a/fs/nfs/nfs3acl.c
|
||||
+++ b/fs/nfs/nfs3acl.c
|
||||
@@ -256,7 +256,7 @@ nfs3_list_one_acl(struct inode *inode, int type, const char *name, void *data,
|
||||
char *p = data + *result;
|
||||
|
||||
acl = get_acl(inode, type);
|
||||
- if (!acl)
|
||||
+ if (IS_ERR_OR_NULL(acl))
|
||||
return 0;
|
||||
|
||||
posix_acl_release(acl);
|
||||
--
|
||||
1.9.3
|
||||
|
@ -1,79 +0,0 @@
|
||||
Bugzilla: 1093171
|
||||
Upstream-status: Queued for 3.16
|
||||
|
||||
From abf17f7885656ccc181a608d2a9ee770b23d9e23 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 2 Jun 2014 17:41:07 +0200
|
||||
Subject: [PATCH 10/14] nouveau: Don't check acpi_video_backlight_support()
|
||||
before registering backlight
|
||||
|
||||
acpi_video_backlight_support() is supposed to be called by other (vendor
|
||||
specific) firmware backlight controls, not by native / raw backlight controls
|
||||
like nv_backlight.
|
||||
|
||||
Userspace will normally prefer firmware interfaces over raw interfaces, so
|
||||
if acpi_video backlight support is present it will use that even if
|
||||
nv_backlight is registered as well.
|
||||
|
||||
Except when video.use_native_backlight is present on the kernel cmdline
|
||||
(or enabled through a dmi based quirk). As the name indicates the goal here
|
||||
is to make only the raw interface available to userspace so that it will use
|
||||
that (it only does this when it sees a win8 compliant bios).
|
||||
|
||||
This is done by:
|
||||
1) Not registering any acpi_video# backlight devices; and
|
||||
2) Making acpi_video_backlight_support() return true so that other firmware
|
||||
drivers, ie acer_wmi, thinkpad_acpi, dell_laptop, etc. Don't register their
|
||||
own vender specific interfaces.
|
||||
|
||||
Currently nouveau breaks this setup, as when acpi_video_backlight_support()
|
||||
returns true, it does not register itself, resulting in no backlight control
|
||||
at all.
|
||||
|
||||
This is esp. going to be a problem with 3.16 which will default to
|
||||
video.use_native_backlight=1, and thus nouveau based laptops with a win8 bios
|
||||
will get no backlight control at all.
|
||||
|
||||
This also likely explains why the previous attempt to make
|
||||
video.use_native_backlight=1 the default was not a success, as without this
|
||||
patch having a default of video.use_native_backlight=1 will cause regressions.
|
||||
|
||||
Note this effectively reverts commit 5bead799
|
||||
|
||||
Also see: https://bugzilla.redhat.com/show_bug.cgi?id=1093171
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/gpu/drm/nouveau/nouveau_backlight.c | 9 ---------
|
||||
1 file changed, 9 deletions(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/nouveau/nouveau_backlight.c b/drivers/gpu/drm/nouveau/nouveau_backlight.c
|
||||
index 630f6e84fc01..2c1e4aad7da3 100644
|
||||
--- a/drivers/gpu/drm/nouveau/nouveau_backlight.c
|
||||
+++ b/drivers/gpu/drm/nouveau/nouveau_backlight.c
|
||||
@@ -31,7 +31,6 @@
|
||||
*/
|
||||
|
||||
#include <linux/backlight.h>
|
||||
-#include <linux/acpi.h>
|
||||
|
||||
#include "nouveau_drm.h"
|
||||
#include "nouveau_reg.h"
|
||||
@@ -222,14 +221,6 @@ nouveau_backlight_init(struct drm_device *dev)
|
||||
struct nouveau_device *device = nv_device(drm->device);
|
||||
struct drm_connector *connector;
|
||||
|
||||
-#ifdef CONFIG_ACPI
|
||||
- if (acpi_video_backlight_support()) {
|
||||
- NV_INFO(drm, "ACPI backlight interface available, "
|
||||
- "not registering our own\n");
|
||||
- return 0;
|
||||
- }
|
||||
-#endif
|
||||
-
|
||||
list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
|
||||
if (connector->connector_type != DRM_MODE_CONNECTOR_LVDS &&
|
||||
connector->connector_type != DRM_MODE_CONNECTOR_eDP)
|
||||
--
|
||||
1.9.0
|
||||
|
@ -1,4 +1,10 @@
|
||||
Disable watchdog on virtual machines.
|
||||
Bugzilla: 971139
|
||||
Upstream-status: Fedora mustard for now
|
||||
|
||||
From 17109685bfce322c73a816e097b137458fbd55ae Mon Sep 17 00:00:00 2001
|
||||
From: Dave Jones <davej@redhat.com>
|
||||
Date: Tue, 24 Jun 2014 08:43:34 -0400
|
||||
Subject: [PATCH] Disable watchdog on virtual machines.
|
||||
|
||||
For various reasons, VMs seem to trigger the soft lockup detector a lot,
|
||||
in cases where it's just not possible for a lockup to occur.
|
||||
@ -10,9 +16,12 @@ the VM for a very long time (Could be the host was under heavy load).
|
||||
Just disable the detector on VMs.
|
||||
|
||||
Signed-off-by: Dave Jones <davej@redhat.com>
|
||||
---
|
||||
kernel/watchdog.c | 29 +++++++++++++++++++++++++++++
|
||||
1 file changed, 29 insertions(+)
|
||||
|
||||
diff --git a/kernel/watchdog.c b/kernel/watchdog.c
|
||||
index 1241d8c..b2dc4e4 100644
|
||||
index c3319bd1b040..0e3687675aaa 100644
|
||||
--- a/kernel/watchdog.c
|
||||
+++ b/kernel/watchdog.c
|
||||
@@ -24,6 +24,7 @@
|
||||
@ -23,9 +32,9 @@ index 1241d8c..b2dc4e4 100644
|
||||
|
||||
#include <asm/irq_regs.h>
|
||||
#include <linux/kvm_para.h>
|
||||
@@ -96,6 +97,32 @@ static int __init nosoftlockup_setup(char *str)
|
||||
__setup("nosoftlockup", nosoftlockup_setup);
|
||||
/* */
|
||||
@@ -112,6 +113,32 @@ static int __init softlockup_all_cpu_backtrace_setup(char *str)
|
||||
__setup("softlockup_all_cpu_backtrace=", softlockup_all_cpu_backtrace_setup);
|
||||
#endif
|
||||
|
||||
+static int disable_watchdog(const struct dmi_system_id *d)
|
||||
+{
|
||||
@ -56,7 +65,7 @@ index 1241d8c..b2dc4e4 100644
|
||||
/*
|
||||
* Hard-lockup warnings should be triggered after just a few seconds. Soft-
|
||||
* lockups can have false positives under extreme conditions. So we generally
|
||||
@@ -551,6 +578,8 @@ int proc_dowatchdog(struct ctl_table *table, int write,
|
||||
@@ -641,6 +668,8 @@ out:
|
||||
|
||||
void __init lockup_detector_init(void)
|
||||
{
|
||||
@ -64,4 +73,7 @@ index 1241d8c..b2dc4e4 100644
|
||||
+
|
||||
set_sample_period();
|
||||
|
||||
#ifdef CONFIG_NO_HZ_FULL
|
||||
if (watchdog_user_enabled)
|
||||
--
|
||||
1.9.3
|
||||
|
||||
|
17
perf-lib64.patch
Normal file
17
perf-lib64.patch
Normal file
@ -0,0 +1,17 @@
|
||||
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
|
||||
index 802cf54..7f30bfa 100644
|
||||
--- a/tools/perf/config/Makefile
|
||||
+++ b/tools/perf/config/Makefile
|
||||
@@ -621,8 +621,12 @@ endif
|
||||
ifeq ($(IS_X86_64),1)
|
||||
lib = lib64
|
||||
else
|
||||
+ifdef MULTILIBDIR
|
||||
+lib = $(MULTILIBDIR)
|
||||
+else
|
||||
lib = lib
|
||||
endif
|
||||
+endif
|
||||
libdir = $(prefix)/$(lib)
|
||||
|
||||
# Shell quote (do not use $(call) to accommodate ancient setups);
|
@ -1,28 +0,0 @@
|
||||
From 1eb5e8b7449ff017c2f358d97bd2fcd4eb87cc53 Mon Sep 17 00:00:00 2001
|
||||
From: Jeff Mahoney <jeffm@suse.com>
|
||||
Date: Sun, 27 Apr 2014 17:35:43 -0400
|
||||
Subject: s390/appldata: add slab.h for kzalloc/kfree
|
||||
|
||||
This fixes:
|
||||
arch/s390/appldata/appldata_mem.c:135:2: error: implicit declaration of function 'kzalloc' [-Werror=implicit-function-declaration]
|
||||
arch/s390/appldata/appldata_mem.c:141:3: error: implicit declaration of function 'kfree' [-Werror=implicit-function-declaration]
|
||||
|
||||
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
|
||||
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
|
||||
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
|
||||
|
||||
diff --git a/arch/s390/appldata/appldata_mem.c b/arch/s390/appldata/appldata_mem.c
|
||||
index 42be537..edcf2a7 100644
|
||||
--- a/arch/s390/appldata/appldata_mem.c
|
||||
+++ b/arch/s390/appldata/appldata_mem.c
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <linux/kernel_stat.h>
|
||||
#include <linux/pagemap.h>
|
||||
#include <linux/swap.h>
|
||||
+#include <linux/slab.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
#include "appldata.h"
|
||||
--
|
||||
cgit v0.10.1
|
||||
|
@ -15,13 +15,14 @@ Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
drivers/platform/x86/samsung-laptop.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
|
||||
diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
|
||||
index d1f030053176..98f61f677627 100644
|
||||
index 5a5966512277..0d7954e0fc74 100644
|
||||
--- a/drivers/platform/x86/samsung-laptop.c
|
||||
+++ b/drivers/platform/x86/samsung-laptop.c
|
||||
@@ -1534,6 +1534,16 @@ static struct dmi_system_id __initdata samsung_dmi_table[] = {
|
||||
@@ -1568,6 +1568,16 @@ static struct dmi_system_id __initdata samsung_dmi_table[] = {
|
||||
},
|
||||
.driver_data = &samsung_broken_acpi_video,
|
||||
.driver_data = &samsung_np740u3e,
|
||||
},
|
||||
+ {
|
||||
+ .callback = samsung_dmi_matched,
|
||||
@ -36,6 +37,3 @@ index d1f030053176..98f61f677627 100644
|
||||
{ },
|
||||
};
|
||||
MODULE_DEVICE_TABLE(dmi, samsung_dmi_table);
|
||||
--
|
||||
1.9.0
|
||||
|
||||
|
@ -1,112 +0,0 @@
|
||||
From ffe1ee94d526900ce1e5191cdd38934477dd209a Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Fri, 26 Oct 2012 14:02:09 -0400
|
||||
Subject: [PATCH] hibernate: Disable in a signed modules environment
|
||||
|
||||
There is currently no way to verify the resume image when returning
|
||||
from hibernate. This might compromise the signed modules trust model,
|
||||
so until we can work with signed hibernate images we disable it in
|
||||
a secure modules environment.
|
||||
|
||||
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.com>
|
||||
---
|
||||
kernel/power/hibernate.c | 16 +++++++++++++++-
|
||||
kernel/power/main.c | 7 ++++++-
|
||||
kernel/power/user.c | 1 +
|
||||
3 files changed, 22 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
|
||||
index b26f5f1..e65228b 100644
|
||||
--- a/kernel/power/hibernate.c
|
||||
+++ b/kernel/power/hibernate.c
|
||||
@@ -28,6 +28,8 @@
|
||||
#include <linux/syscore_ops.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/genhd.h>
|
||||
+#include <linux/efi.h>
|
||||
+#include <linux/module.h>
|
||||
|
||||
#include "power.h"
|
||||
|
||||
@@ -632,6 +634,10 @@ int hibernate(void)
|
||||
{
|
||||
int error;
|
||||
|
||||
+ if (secure_modules()) {
|
||||
+ return -EPERM;
|
||||
+ }
|
||||
+
|
||||
lock_system_sleep();
|
||||
/* The snapshot device should not be opened while we're running */
|
||||
if (!atomic_add_unless(&snapshot_device_available, -1, 0)) {
|
||||
@@ -723,7 +729,7 @@ static int software_resume(void)
|
||||
/*
|
||||
* If the user said "noresume".. bail out early.
|
||||
*/
|
||||
- if (noresume)
|
||||
+ if (noresume || secure_modules())
|
||||
return 0;
|
||||
|
||||
/*
|
||||
@@ -889,6 +895,11 @@ static ssize_t disk_show(struct kobject *kobj, struct kobj_attribute *attr,
|
||||
int i;
|
||||
char *start = buf;
|
||||
|
||||
+ if (efi_enabled(EFI_SECURE_BOOT)) {
|
||||
+ buf += sprintf(buf, "[%s]\n", "disabled");
|
||||
+ return buf-start;
|
||||
+ }
|
||||
+
|
||||
for (i = HIBERNATION_FIRST; i <= HIBERNATION_MAX; i++) {
|
||||
if (!hibernation_modes[i])
|
||||
continue;
|
||||
@@ -923,6 +934,9 @@ static ssize_t disk_store(struct kobject *kobj, struct kobj_attribute *attr,
|
||||
char *p;
|
||||
int mode = HIBERNATION_INVALID;
|
||||
|
||||
+ if (secure_modules())
|
||||
+ return -EPERM;
|
||||
+
|
||||
p = memchr(buf, '\n', n);
|
||||
len = p ? p - buf : n;
|
||||
|
||||
diff --git a/kernel/power/main.c b/kernel/power/main.c
|
||||
index 1d1bf63..300f300 100644
|
||||
--- a/kernel/power/main.c
|
||||
+++ b/kernel/power/main.c
|
||||
@@ -15,6 +15,7 @@
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/seq_file.h>
|
||||
+#include <linux/efi.h>
|
||||
|
||||
#include "power.h"
|
||||
|
||||
@@ -301,7 +302,11 @@ static ssize_t state_show(struct kobject *kobj, struct kobj_attribute *attr,
|
||||
}
|
||||
#endif
|
||||
#ifdef CONFIG_HIBERNATION
|
||||
- s += sprintf(s, "%s\n", "disk");
|
||||
+ if (!efi_enabled(EFI_SECURE_BOOT)) {
|
||||
+ s += sprintf(s, "%s\n", "disk");
|
||||
+ } else {
|
||||
+ s += sprintf(s, "\n");
|
||||
+ }
|
||||
#else
|
||||
if (s != buf)
|
||||
/* convert the last space to a newline */
|
||||
diff --git a/kernel/power/user.c b/kernel/power/user.c
|
||||
index 15cb72f..fa85ed5 100644
|
||||
--- a/kernel/power/user.c
|
||||
+++ b/kernel/power/user.c
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/freezer.h>
|
||||
#include <linux/module.h>
|
||||
+#include <linux/efi.h>
|
||||
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -1,68 +0,0 @@
|
||||
Bugzilla: 1117942
|
||||
Upstream-status: Sent for 3.16 and seen by peterz
|
||||
|
||||
The scheduler uses policy=-1 to preserve the current policy state to
|
||||
implement sched_setparam(). But, as (int) -1 is equals to 0xffffffff,
|
||||
it's matching the if (policy & SCHED_RESET_ON_FORK) on
|
||||
_sched_setscheduler(). This match changes the policy value to an
|
||||
invalid value, breaking the sched_setparam() syscall.
|
||||
|
||||
This patch checks policy=-1 before check the SCHED_RESET_ON_FORK flag.
|
||||
|
||||
The following program shows the bug:
|
||||
|
||||
int main(void)
|
||||
{
|
||||
struct sched_param param = {
|
||||
.sched_priority = 5,
|
||||
};
|
||||
|
||||
sched_setscheduler(0, SCHED_FIFO, ¶m);
|
||||
param.sched_priority = 1;
|
||||
sched_setparam(0, ¶m);
|
||||
param.sched_priority = 0;
|
||||
sched_getparam(0, ¶m);
|
||||
if (param.sched_priority != 1)
|
||||
printf("failed priority setting (found %d instead of 1)\n",
|
||||
param.sched_priority);
|
||||
else
|
||||
printf("priority setting fine\n");
|
||||
}
|
||||
|
||||
Cc: Peter Zijlstra <peterz@infradead.org>
|
||||
Cc: Ingo Molnar <mingo@kernel.org>
|
||||
Cc: Thomas Gleixner <tglx@linutronix.de>
|
||||
Cc: stable@vger.kernel.org # 3.14+
|
||||
Fixes: 7479f3c9cf67 "sched: Move SCHED_RESET_ON_FORK into attr::sched_flags"
|
||||
Reviewed-by: Steven Rostedt <rostedt@goodmis.org>
|
||||
Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com>
|
||||
|
||||
---
|
||||
kernel/sched/core.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
|
||||
index bc1638b..0acf96b 100644
|
||||
--- a/kernel/sched/core.c
|
||||
+++ b/kernel/sched/core.c
|
||||
@@ -3558,9 +3558,10 @@ static int _sched_setscheduler(struct task_struct *p, int policy,
|
||||
};
|
||||
|
||||
/*
|
||||
- * Fixup the legacy SCHED_RESET_ON_FORK hack
|
||||
+ * Fixup the legacy SCHED_RESET_ON_FORK hack, except if
|
||||
+ * the policy=-1 was passed by sched_setparam().
|
||||
*/
|
||||
- if (policy & SCHED_RESET_ON_FORK) {
|
||||
+ if ((policy != -1) && (policy & SCHED_RESET_ON_FORK)) {
|
||||
attr.sched_flags |= SCHED_FLAG_RESET_ON_FORK;
|
||||
policy &= ~SCHED_RESET_ON_FORK;
|
||||
attr.sched_policy = policy;
|
||||
--
|
||||
1.9.3
|
||||
|
||||
--
|
||||
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
|
||||
the body of a message to majordomo@vger.kernel.org
|
||||
More majordomo info at http://vger.kernel.org/majordomo-info.html
|
||||
Please read the FAQ at http://www.tux.org/lkml/
|
@ -1,7 +1,7 @@
|
||||
Bugzilla: N/A
|
||||
Upstream-status: Fedora mustard. Replaced by securelevels, but that was nak'd
|
||||
|
||||
From 0f81a4461431941c17ff26fd3d5e284ede4a368a Mon Sep 17 00:00:00 2001
|
||||
From 952dbcbea4cffb1a05773af3b5f41e8ed477c5fe Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Fri, 9 Aug 2013 17:58:15 -0400
|
||||
Subject: [PATCH 01/14] Add secure_modules() call
|
||||
@ -42,10 +42,10 @@ index f520a767c86c..fc9b54eb779e 100644
|
||||
|
||||
#ifdef CONFIG_SYSFS
|
||||
diff --git a/kernel/module.c b/kernel/module.c
|
||||
index 11869408f79b..2b9204fe055f 100644
|
||||
index 81e727cf6df9..fc14f48915dd 100644
|
||||
--- a/kernel/module.c
|
||||
+++ b/kernel/module.c
|
||||
@@ -3835,3 +3835,13 @@ void module_layout(struct module *mod,
|
||||
@@ -3843,3 +3843,13 @@ void module_layout(struct module *mod,
|
||||
}
|
||||
EXPORT_SYMBOL(module_layout);
|
||||
#endif
|
||||
@ -60,10 +60,10 @@ index 11869408f79b..2b9204fe055f 100644
|
||||
+}
|
||||
+EXPORT_SYMBOL(secure_modules);
|
||||
--
|
||||
1.8.5.3
|
||||
1.9.3
|
||||
|
||||
|
||||
From 806c4ee0e6484b529b88b3d0ceb49f6edf96ae11 Mon Sep 17 00:00:00 2001
|
||||
From 3b451a12e60a47d152ecce1c02634c4d7320b024 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Thu, 8 Mar 2012 10:10:38 -0500
|
||||
Subject: [PATCH 02/14] PCI: Lock down BAR access when module security is
|
||||
@ -83,20 +83,20 @@ Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
3 files changed, 19 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
|
||||
index 4e0acefb7565..01b56d13d021 100644
|
||||
index 9ff0a901ecf7..8d0d5d92b8d9 100644
|
||||
--- a/drivers/pci/pci-sysfs.c
|
||||
+++ b/drivers/pci/pci-sysfs.c
|
||||
@@ -29,6 +29,7 @@
|
||||
#include <linux/slab.h>
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <linux/vgaarb.h>
|
||||
#include <linux/pm_runtime.h>
|
||||
#include <linux/of.h>
|
||||
+#include <linux/module.h>
|
||||
#include "pci.h"
|
||||
|
||||
static int sysfs_initialized; /* = 0 */
|
||||
@@ -652,6 +653,9 @@ pci_write_config(struct file* filp, struct kobject *kobj,
|
||||
@@ -704,6 +705,9 @@ static ssize_t pci_write_config(struct file *filp, struct kobject *kobj,
|
||||
loff_t init_off = off;
|
||||
u8 *data = (u8*) buf;
|
||||
u8 *data = (u8 *) buf;
|
||||
|
||||
+ if (secure_modules())
|
||||
+ return -EPERM;
|
||||
@ -104,7 +104,7 @@ index 4e0acefb7565..01b56d13d021 100644
|
||||
if (off > dev->cfg_size)
|
||||
return 0;
|
||||
if (off + count > dev->cfg_size) {
|
||||
@@ -958,6 +962,9 @@ pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
|
||||
@@ -998,6 +1002,9 @@ static int pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
|
||||
resource_size_t start, end;
|
||||
int i;
|
||||
|
||||
@ -114,9 +114,9 @@ index 4e0acefb7565..01b56d13d021 100644
|
||||
for (i = 0; i < PCI_ROM_RESOURCE; i++)
|
||||
if (res == &pdev->resource[i])
|
||||
break;
|
||||
@@ -1065,6 +1072,9 @@ pci_write_resource_io(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
@@ -1099,6 +1106,9 @@ static ssize_t pci_write_resource_io(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
+ if (secure_modules())
|
||||
+ return -EPERM;
|
||||
@ -125,10 +125,10 @@ index 4e0acefb7565..01b56d13d021 100644
|
||||
}
|
||||
|
||||
diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
|
||||
index 46d1378f2e9e..294fe7b34af0 100644
|
||||
index 3f155e78513f..4265ea07e3b0 100644
|
||||
--- a/drivers/pci/proc.c
|
||||
+++ b/drivers/pci/proc.c
|
||||
@@ -117,6 +117,9 @@ proc_bus_pci_write(struct file *file, const char __user *buf, size_t nbytes, lof
|
||||
@@ -116,6 +116,9 @@ static ssize_t proc_bus_pci_write(struct file *file, const char __user *buf,
|
||||
int size = dev->cfg_size;
|
||||
int cnt;
|
||||
|
||||
@ -138,7 +138,7 @@ index 46d1378f2e9e..294fe7b34af0 100644
|
||||
if (pos >= size)
|
||||
return 0;
|
||||
if (nbytes >= size)
|
||||
@@ -196,6 +199,9 @@ static long proc_bus_pci_ioctl(struct file *file, unsigned int cmd,
|
||||
@@ -195,6 +198,9 @@ static long proc_bus_pci_ioctl(struct file *file, unsigned int cmd,
|
||||
#endif /* HAVE_PCI_MMAP */
|
||||
int ret = 0;
|
||||
|
||||
@ -148,7 +148,7 @@ index 46d1378f2e9e..294fe7b34af0 100644
|
||||
switch (cmd) {
|
||||
case PCIIOC_CONTROLLER:
|
||||
ret = pci_domain_nr(dev->bus);
|
||||
@@ -234,7 +240,7 @@ static int proc_bus_pci_mmap(struct file *file, struct vm_area_struct *vma)
|
||||
@@ -233,7 +239,7 @@ static int proc_bus_pci_mmap(struct file *file, struct vm_area_struct *vma)
|
||||
struct pci_filp_private *fpriv = file->private_data;
|
||||
int i, ret;
|
||||
|
||||
@ -158,7 +158,7 @@ index 46d1378f2e9e..294fe7b34af0 100644
|
||||
|
||||
/* Make sure the caller is mapping a real resource for this device */
|
||||
diff --git a/drivers/pci/syscall.c b/drivers/pci/syscall.c
|
||||
index 24750a1b39b6..fa57896b97dd 100644
|
||||
index b91c4da68365..98f5637304d1 100644
|
||||
--- a/drivers/pci/syscall.c
|
||||
+++ b/drivers/pci/syscall.c
|
||||
@@ -10,6 +10,7 @@
|
||||
@ -179,10 +179,10 @@ index 24750a1b39b6..fa57896b97dd 100644
|
||||
|
||||
dev = pci_get_bus_and_slot(bus, dfn);
|
||||
--
|
||||
1.8.5.3
|
||||
1.9.3
|
||||
|
||||
|
||||
From 16ee82e2add8684e374451e6ba34be3ee41e4ef1 Mon Sep 17 00:00:00 2001
|
||||
From 42a620055ac873fb378ec69731c7a2200f6779cc Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Thu, 8 Mar 2012 10:35:59 -0500
|
||||
Subject: [PATCH 03/14] x86: Lock down IO port access when module security is
|
||||
@ -252,10 +252,10 @@ index 917403fe10da..cdf839f9defe 100644
|
||||
return -EFAULT;
|
||||
while (count-- > 0 && i < 65536) {
|
||||
--
|
||||
1.8.5.3
|
||||
1.9.3
|
||||
|
||||
|
||||
From 2fd4b35393b19cde87e4770d3b85d12760e72f6a Mon Sep 17 00:00:00 2001
|
||||
From 8019fb7c7b5f18b19f7c980987953680ee218c9f Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Fri, 9 Mar 2012 08:39:37 -0500
|
||||
Subject: [PATCH 04/14] ACPI: Limit access to custom_method
|
||||
@ -284,10 +284,10 @@ index c68e72414a67..4277938af700 100644
|
||||
/* parse the table header to get the table length */
|
||||
if (count <= sizeof(struct acpi_table_header))
|
||||
--
|
||||
1.8.5.3
|
||||
1.9.3
|
||||
|
||||
|
||||
From 543d64276237adb782ec30a5dab67d0b21afc1d4 Mon Sep 17 00:00:00 2001
|
||||
From bf84e9e1022b2d3d0c97ae48fb8b61e5336c50f8 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Fri, 9 Mar 2012 08:46:50 -0500
|
||||
Subject: [PATCH 05/14] asus-wmi: Restrict debugfs interface when module
|
||||
@ -305,10 +305,10 @@ Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
|
||||
index c5e082fb82fa..03c57fc8de8a 100644
|
||||
index 3c6ccedc82b6..960c46536c65 100644
|
||||
--- a/drivers/platform/x86/asus-wmi.c
|
||||
+++ b/drivers/platform/x86/asus-wmi.c
|
||||
@@ -1595,6 +1595,9 @@ static int show_dsts(struct seq_file *m, void *data)
|
||||
@@ -1592,6 +1592,9 @@ static int show_dsts(struct seq_file *m, void *data)
|
||||
int err;
|
||||
u32 retval = -1;
|
||||
|
||||
@ -318,7 +318,7 @@ index c5e082fb82fa..03c57fc8de8a 100644
|
||||
err = asus_wmi_get_devstate(asus, asus->debug.dev_id, &retval);
|
||||
|
||||
if (err < 0)
|
||||
@@ -1611,6 +1614,9 @@ static int show_devs(struct seq_file *m, void *data)
|
||||
@@ -1608,6 +1611,9 @@ static int show_devs(struct seq_file *m, void *data)
|
||||
int err;
|
||||
u32 retval = -1;
|
||||
|
||||
@ -328,7 +328,7 @@ index c5e082fb82fa..03c57fc8de8a 100644
|
||||
err = asus_wmi_set_devstate(asus->debug.dev_id, asus->debug.ctrl_param,
|
||||
&retval);
|
||||
|
||||
@@ -1635,6 +1641,9 @@ static int show_call(struct seq_file *m, void *data)
|
||||
@@ -1632,6 +1638,9 @@ static int show_call(struct seq_file *m, void *data)
|
||||
union acpi_object *obj;
|
||||
acpi_status status;
|
||||
|
||||
@ -339,10 +339,10 @@ index c5e082fb82fa..03c57fc8de8a 100644
|
||||
1, asus->debug.method_id,
|
||||
&input, &output);
|
||||
--
|
||||
1.8.5.3
|
||||
1.9.3
|
||||
|
||||
|
||||
From 6e2fec5547b597c43ca72e34729b8a402660a7c1 Mon Sep 17 00:00:00 2001
|
||||
From 9a56e8715d3b6dc84989997f34b6b5d407cabad2 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Fri, 9 Mar 2012 09:28:15 -0500
|
||||
Subject: [PATCH 06/14] Restrict /dev/mem and /dev/kmem when module loading is
|
||||
@ -382,10 +382,10 @@ index cdf839f9defe..c63cf93b00eb 100644
|
||||
unsigned long to_write = min_t(unsigned long, count,
|
||||
(unsigned long)high_memory - p);
|
||||
--
|
||||
1.8.5.3
|
||||
1.9.3
|
||||
|
||||
|
||||
From 358cea0a54f726fa61839b411f3f54284d4588bf Mon Sep 17 00:00:00 2001
|
||||
From 8d6faa19bbbaa4df411becda7e40c4ea0684c134 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@redhat.com>
|
||||
Date: Mon, 25 Jun 2012 19:57:30 -0400
|
||||
Subject: [PATCH 07/14] acpi: Ignore acpi_rsdp kernel parameter when module
|
||||
@ -401,7 +401,7 @@ Signed-off-by: Josh Boyer <jwboyer@redhat.com>
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
|
||||
index f7fd72ac69cf..ccdae1c8c386 100644
|
||||
index bad25b070fe0..0606585e8b93 100644
|
||||
--- a/drivers/acpi/osl.c
|
||||
+++ b/drivers/acpi/osl.c
|
||||
@@ -44,6 +44,7 @@
|
||||
@ -412,7 +412,7 @@ index f7fd72ac69cf..ccdae1c8c386 100644
|
||||
|
||||
#include <asm/io.h>
|
||||
#include <asm/uaccess.h>
|
||||
@@ -244,7 +245,7 @@ early_param("acpi_rsdp", setup_acpi_rsdp);
|
||||
@@ -245,7 +246,7 @@ early_param("acpi_rsdp", setup_acpi_rsdp);
|
||||
acpi_physical_address __init acpi_os_get_root_pointer(void)
|
||||
{
|
||||
#ifdef CONFIG_KEXEC
|
||||
@ -422,10 +422,10 @@ index f7fd72ac69cf..ccdae1c8c386 100644
|
||||
#endif
|
||||
|
||||
--
|
||||
1.8.5.3
|
||||
1.9.3
|
||||
|
||||
|
||||
From 89751b3ad4dea7cf5b806cd14126dd70657a9148 Mon Sep 17 00:00:00 2001
|
||||
From 1ff86ddea019f543f6668b56889f86811028f303 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Fri, 9 Aug 2013 03:33:56 -0400
|
||||
Subject: [PATCH 08/14] kexec: Disable at runtime if the kernel enforces module
|
||||
@ -441,18 +441,18 @@ Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/kernel/kexec.c b/kernel/kexec.c
|
||||
index c8380ad203bc..e6eb239f567a 100644
|
||||
index 4b8f0c925884..df14daa323a9 100644
|
||||
--- a/kernel/kexec.c
|
||||
+++ b/kernel/kexec.c
|
||||
@@ -33,6 +33,7 @@
|
||||
#include <linux/swap.h>
|
||||
@@ -34,6 +34,7 @@
|
||||
#include <linux/syscore_ops.h>
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/hugetlb.h>
|
||||
+#include <linux/module.h>
|
||||
|
||||
#include <asm/page.h>
|
||||
#include <asm/uaccess.h>
|
||||
@@ -948,6 +949,13 @@ SYSCALL_DEFINE4(kexec_load, unsigned long, entry, unsigned long, nr_segments,
|
||||
@@ -947,6 +948,13 @@ SYSCALL_DEFINE4(kexec_load, unsigned long, entry, unsigned long, nr_segments,
|
||||
return -EPERM;
|
||||
|
||||
/*
|
||||
@ -467,53 +467,13 @@ index c8380ad203bc..e6eb239f567a 100644
|
||||
* This leaves us room for future extensions.
|
||||
*/
|
||||
--
|
||||
1.8.5.3
|
||||
1.9.3
|
||||
|
||||
|
||||
From 31174421a7103571a1c3faf7ba27d4045e5fbc18 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Tue, 3 Sep 2013 11:23:29 -0400
|
||||
Subject: [PATCH 09/14] uswsusp: Disable when module loading is restricted
|
||||
|
||||
uswsusp allows a user process to dump and then restore kernel state, which
|
||||
makes it possible to avoid module loading restrictions. Prevent this when
|
||||
any restrictions have been imposed on loading modules.
|
||||
|
||||
Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
---
|
||||
kernel/power/user.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/kernel/power/user.c b/kernel/power/user.c
|
||||
index 98d357584cd6..efe99dee9510 100644
|
||||
--- a/kernel/power/user.c
|
||||
+++ b/kernel/power/user.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <linux/console.h>
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/freezer.h>
|
||||
+#include <linux/module.h>
|
||||
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
@@ -49,6 +50,9 @@ static int snapshot_open(struct inode *inode, struct file *filp)
|
||||
struct snapshot_data *data;
|
||||
int error;
|
||||
|
||||
+ if (secure_modules())
|
||||
+ return -EPERM;
|
||||
+
|
||||
lock_system_sleep();
|
||||
|
||||
if (!atomic_add_unless(&snapshot_device_available, -1, 0)) {
|
||||
--
|
||||
1.8.5.3
|
||||
|
||||
|
||||
From ea5cf8801db979fa7d5f90ab3faf72eb22490f9b Mon Sep 17 00:00:00 2001
|
||||
From 4d56368f1364b45c18067bab1d6abc5ce0f67183 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Fri, 8 Feb 2013 11:12:13 -0800
|
||||
Subject: [PATCH 10/14] x86: Restrict MSR access when module loading is
|
||||
Subject: [PATCH 09/14] x86: Restrict MSR access when module loading is
|
||||
restricted
|
||||
|
||||
Writing to MSRs should not be allowed if module loading is restricted,
|
||||
@ -552,13 +512,13 @@ index c9603ac80de5..8bef43fc3f40 100644
|
||||
err = -EFAULT;
|
||||
break;
|
||||
--
|
||||
1.8.5.3
|
||||
1.9.3
|
||||
|
||||
|
||||
From 2985684ff78972bde7ebf1e295b52afd9bea29e0 Mon Sep 17 00:00:00 2001
|
||||
From aab8ba85241a85a0b2ed622edd7874c74cafa496 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Fri, 9 Aug 2013 18:36:30 -0400
|
||||
Subject: [PATCH 11/14] Add option to automatically enforce module signatures
|
||||
Subject: [PATCH 10/14] Add option to automatically enforce module signatures
|
||||
when in Secure Boot mode
|
||||
|
||||
UEFI Secure Boot provides a mechanism for ensuring that the firmware will
|
||||
@ -591,10 +551,10 @@ index 199f453cb4de..ec38acf00b40 100644
|
||||
290/040 ALL edd_mbr_sig_buffer EDD MBR signatures
|
||||
2D0/A00 ALL e820_map E820 memory map table
|
||||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
||||
index 5b8ec0f53b57..085d5eb36361 100644
|
||||
index d24887b645dc..870aac9520b3 100644
|
||||
--- a/arch/x86/Kconfig
|
||||
+++ b/arch/x86/Kconfig
|
||||
@@ -1534,6 +1534,16 @@ config EFI_MIXED
|
||||
@@ -1557,6 +1557,16 @@ config EFI_MIXED
|
||||
|
||||
If unsure, say N.
|
||||
|
||||
@ -612,7 +572,7 @@ index 5b8ec0f53b57..085d5eb36361 100644
|
||||
def_bool y
|
||||
prompt "Enable seccomp to safely compute untrusted bytecode"
|
||||
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
|
||||
index 1e6146137f8e..b00745ff398a 100644
|
||||
index 0331d765c2bb..85defaf5a27c 100644
|
||||
--- a/arch/x86/boot/compressed/eboot.c
|
||||
+++ b/arch/x86/boot/compressed/eboot.c
|
||||
@@ -12,6 +12,7 @@
|
||||
@ -634,7 +594,7 @@ index 1e6146137f8e..b00745ff398a 100644
|
||||
+ efi_guid_t var_guid = EFI_GLOBAL_VARIABLE_GUID;
|
||||
+ efi_status_t status;
|
||||
+
|
||||
+ status = efi_call_phys5(sys_table->runtime->get_variable,
|
||||
+ status = efi_early->call((unsigned long)sys_table->runtime->get_variable,
|
||||
+ L"SecureBoot", &var_guid, NULL, &datasize, &sb);
|
||||
+
|
||||
+ if (status != EFI_SUCCESS)
|
||||
@ -644,7 +604,7 @@ index 1e6146137f8e..b00745ff398a 100644
|
||||
+ return 0;
|
||||
+
|
||||
+
|
||||
+ status = efi_call_phys5(sys_table->runtime->get_variable,
|
||||
+ status = efi_early->call((unsigned long)sys_table->runtime->get_variable,
|
||||
+ L"SetupMode", &var_guid, NULL, &datasize,
|
||||
+ &setup);
|
||||
+
|
||||
@ -687,7 +647,7 @@ index 225b0988043a..90dbfb73e11f 100644
|
||||
* The sentinel is set to a nonzero value (0xff) in header.S.
|
||||
*
|
||||
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
||||
index 09c76d265550..5a61d732fd5c 100644
|
||||
index 78a0e6298922..8ecfec85e527 100644
|
||||
--- a/arch/x86/kernel/setup.c
|
||||
+++ b/arch/x86/kernel/setup.c
|
||||
@@ -1142,6 +1142,12 @@ void __init setup_arch(char **cmdline_p)
|
||||
@ -721,10 +681,10 @@ index fc9b54eb779e..7377bc851461 100644
|
||||
|
||||
extern int modules_disabled; /* for sysctl */
|
||||
diff --git a/kernel/module.c b/kernel/module.c
|
||||
index 2b9204fe055f..2b8cc2d57c16 100644
|
||||
index fc14f48915dd..2d68d276f3b6 100644
|
||||
--- a/kernel/module.c
|
||||
+++ b/kernel/module.c
|
||||
@@ -3836,6 +3836,13 @@ void module_layout(struct module *mod,
|
||||
@@ -3844,6 +3844,13 @@ void module_layout(struct module *mod,
|
||||
EXPORT_SYMBOL(module_layout);
|
||||
#endif
|
||||
|
||||
@ -739,13 +699,13 @@ index 2b9204fe055f..2b8cc2d57c16 100644
|
||||
{
|
||||
#ifdef CONFIG_MODULE_SIG
|
||||
--
|
||||
1.8.5.3
|
||||
1.9.3
|
||||
|
||||
|
||||
From b2e4ea728ccab2befbd5fe1bd834881a7dd8f34b Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@redhat.com>
|
||||
From eae8a80ddc185b3f233e2620dbfc6454b6f0c3a6 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Tue, 5 Feb 2013 19:25:05 -0500
|
||||
Subject: [PATCH 12/14] efi: Disable secure boot if shim is in insecure mode
|
||||
Subject: [PATCH 11/14] efi: Disable secure boot if shim is in insecure mode
|
||||
|
||||
A user can manually tell the shim boot loader to disable validation of
|
||||
images it loads. When a user does this, it creates a UEFI variable called
|
||||
@ -753,13 +713,13 @@ MokSBState that does not have the runtime attribute set. Given that the
|
||||
user explicitly disabled validation, we can honor that and not enable
|
||||
secure boot mode if that variable is set.
|
||||
|
||||
Signed-off-by: Josh Boyer <jwboyer@redhat.com>
|
||||
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
---
|
||||
arch/x86/boot/compressed/eboot.c | 20 +++++++++++++++++++-
|
||||
1 file changed, 19 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
|
||||
index b00745ff398a..bf42cc5f083d 100644
|
||||
index 85defaf5a27c..b4013a4ba005 100644
|
||||
--- a/arch/x86/boot/compressed/eboot.c
|
||||
+++ b/arch/x86/boot/compressed/eboot.c
|
||||
@@ -812,8 +812,9 @@ out:
|
||||
@ -781,7 +741,7 @@ index b00745ff398a..bf42cc5f083d 100644
|
||||
+ * doesn't have the runtime attribute set, we might as well honor that.
|
||||
+ */
|
||||
+ var_guid = EFI_SHIM_LOCK_GUID;
|
||||
+ status = efi_call_phys5(sys_table->runtime->get_variable,
|
||||
+ status = efi_early->call((unsigned long)sys_table->runtime->get_variable,
|
||||
+ L"MokSBState", &var_guid, &attr, &datasize,
|
||||
+ &moksbstate);
|
||||
+
|
||||
@ -798,13 +758,13 @@ index b00745ff398a..bf42cc5f083d 100644
|
||||
}
|
||||
|
||||
--
|
||||
1.8.5.3
|
||||
1.9.3
|
||||
|
||||
|
||||
From fb418c682d01c447d30b5591a591fdbf33b1334e Mon Sep 17 00:00:00 2001
|
||||
From 9728a4f49b284b7354876e1d77174d5838306e21 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Tue, 27 Aug 2013 13:28:43 -0400
|
||||
Subject: [PATCH 13/14] efi: Make EFI_SECURE_BOOT_SIG_ENFORCE depend on EFI
|
||||
Subject: [PATCH 12/14] efi: Make EFI_SECURE_BOOT_SIG_ENFORCE depend on EFI
|
||||
|
||||
The functionality of the config option is dependent upon the platform being
|
||||
UEFI based. Reflect this in the config deps.
|
||||
@ -815,10 +775,10 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
||||
index 085d5eb36361..3e8d398a976d 100644
|
||||
index 870aac9520b3..7aecd3f9f8ee 100644
|
||||
--- a/arch/x86/Kconfig
|
||||
+++ b/arch/x86/Kconfig
|
||||
@@ -1535,7 +1535,8 @@ config EFI_MIXED
|
||||
@@ -1558,7 +1558,8 @@ config EFI_MIXED
|
||||
If unsure, say N.
|
||||
|
||||
config EFI_SECURE_BOOT_SIG_ENFORCE
|
||||
@ -829,13 +789,13 @@ index 085d5eb36361..3e8d398a976d 100644
|
||||
---help---
|
||||
UEFI Secure Boot provides a mechanism for ensuring that the
|
||||
--
|
||||
1.8.5.3
|
||||
1.9.3
|
||||
|
||||
|
||||
From 87bf357dd4589cfca043ec4b641b912a088b1234 Mon Sep 17 00:00:00 2001
|
||||
From 4211b4919b8ccecc4f4cdc0a46ead7294478b687 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Tue, 27 Aug 2013 13:33:03 -0400
|
||||
Subject: [PATCH 14/14] efi: Add EFI_SECURE_BOOT bit
|
||||
Subject: [PATCH 13/14] efi: Add EFI_SECURE_BOOT bit
|
||||
|
||||
UEFI machines can be booted in Secure Boot mode. Add a EFI_SECURE_BOOT bit
|
||||
for use with efi_enabled.
|
||||
@ -847,7 +807,7 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
2 files changed, 3 insertions(+)
|
||||
|
||||
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
||||
index 5a61d732fd5c..23fe9bf3c401 100644
|
||||
index 8ecfec85e527..5ce785fc9f05 100644
|
||||
--- a/arch/x86/kernel/setup.c
|
||||
+++ b/arch/x86/kernel/setup.c
|
||||
@@ -1144,7 +1144,9 @@ void __init setup_arch(char **cmdline_p)
|
||||
@ -861,10 +821,10 @@ index 5a61d732fd5c..23fe9bf3c401 100644
|
||||
#endif
|
||||
|
||||
diff --git a/include/linux/efi.h b/include/linux/efi.h
|
||||
index 6c100ff0cae4..3a77a70fff27 100644
|
||||
index 41bbf8ba4ba8..e73f391fd3c8 100644
|
||||
--- a/include/linux/efi.h
|
||||
+++ b/include/linux/efi.h
|
||||
@@ -899,6 +899,7 @@ extern int __init efi_setup_pcdp_console(char *);
|
||||
@@ -917,6 +917,7 @@ extern int __init efi_setup_pcdp_console(char *);
|
||||
#define EFI_MEMMAP 4 /* Can we use EFI memory map? */
|
||||
#define EFI_64BIT 5 /* Is the firmware 64-bit? */
|
||||
#define EFI_ARCH_1 6 /* First arch-specific bit */
|
||||
@ -873,5 +833,45 @@ index 6c100ff0cae4..3a77a70fff27 100644
|
||||
#ifdef CONFIG_EFI
|
||||
/*
|
||||
--
|
||||
1.8.5.3
|
||||
1.9.3
|
||||
|
||||
|
||||
From 18b50c6f0597b606cb03cbd8a9fdef7478cb2b21 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Fri, 20 Jun 2014 08:53:24 -0400
|
||||
Subject: [PATCH 14/14] hibernate: Disable in a signed modules environment
|
||||
|
||||
There is currently no way to verify the resume image when returning
|
||||
from hibernate. This might compromise the signed modules trust model,
|
||||
so until we can work with signed hibernate images we disable it in
|
||||
a secure modules environment.
|
||||
|
||||
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
---
|
||||
kernel/power/hibernate.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
|
||||
index fcc2611d3f14..61711801a9c4 100644
|
||||
--- a/kernel/power/hibernate.c
|
||||
+++ b/kernel/power/hibernate.c
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <linux/syscore_ops.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/genhd.h>
|
||||
+#include <linux/module.h>
|
||||
#include <trace/events/power.h>
|
||||
|
||||
#include "power.h"
|
||||
@@ -65,7 +66,7 @@ static const struct platform_hibernation_ops *hibernation_ops;
|
||||
|
||||
bool hibernation_available(void)
|
||||
{
|
||||
- return (nohibernate == 0);
|
||||
+ return ((nohibernate == 0) && !secure_modules());
|
||||
}
|
||||
|
||||
/**
|
||||
--
|
||||
1.9.3
|
||||
|
||||
|
5
sources
5
sources
@ -1,2 +1,3 @@
|
||||
97ca1625bb40368dc41b9a7971549071 linux-3.15.tar.xz
|
||||
364aa7eaf7c01326ff9b5dbec1cb8643 patch-3.15.10.xz
|
||||
5c569ed649a0c9711879f333e90c5386 linux-3.16.tar.xz
|
||||
49868ce6467b35cd9ffea1120d129462 perf-man-3.16.tar.gz
|
||||
926e6e2ee0634ce53730701da749b040 patch-3.16.2.xz
|
||||
|
@ -1,45 +0,0 @@
|
||||
Bugzilla: N/A
|
||||
Upstream-status: Sent for 3.16
|
||||
|
||||
From a02f11f85e2cb2e0aced78913ebcf060d6055203 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 2 Jun 2014 17:40:58 +0200
|
||||
Subject: [PATCH 01/14] thinkpad_acpi: Add mappings for F9 - F12 hotkeys on
|
||||
X240 / T440 / T540
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The T440s user guide says that when Fn-lock is not active, the *40s' F9 - F12
|
||||
keys should be mapped to: control-panel, search, show-all-windows and Computer.
|
||||
|
||||
These keys generate the sofar unused 28 - 31 hotkey scancodes.
|
||||
|
||||
For the first 2 this nicely matches the icons on the keys, for the latter 2
|
||||
the icons are somewhat creative, which is why I ended up looking them up in
|
||||
the user manual.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/platform/x86/thinkpad_acpi.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
|
||||
index 15e61c16736e..d82f196e3cfe 100644
|
||||
--- a/drivers/platform/x86/thinkpad_acpi.c
|
||||
+++ b/drivers/platform/x86/thinkpad_acpi.c
|
||||
@@ -3171,8 +3171,10 @@ static int __init hotkey_init(struct ibm_init_struct *iibm)
|
||||
KEY_MICMUTE, /* 0x1a: Mic mute (since ?400 or so) */
|
||||
|
||||
/* (assignments unknown, please report if found) */
|
||||
- KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN, KEY_UNKNOWN,
|
||||
KEY_UNKNOWN,
|
||||
+
|
||||
+ /* Extra keys in use since the X240 / T440 / T540 */
|
||||
+ KEY_CONFIG, KEY_SEARCH, KEY_SCALE, KEY_COMPUTER,
|
||||
},
|
||||
};
|
||||
|
||||
--
|
||||
1.9.0
|
||||
|
@ -1,40 +0,0 @@
|
||||
From 9010432d0e8e9bc93d28990d07790cc400f3879f Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 25 Aug 2014 12:21:56 +0200
|
||||
Subject: [PATCH] xhci: Disable streams on Via XHCI with device-id 0x3432
|
||||
|
||||
This is a bit bigger hammer then I would like to use for this, but for now
|
||||
it will have to make do. I'm working on getting my hands on one of these so
|
||||
that I can try to get streams to work (with a quirk flag if necessary) and
|
||||
then we can re-enable them.
|
||||
|
||||
For now this at least makes uas capable disk enclosures work again by forcing
|
||||
fallback to the usb-storage driver.
|
||||
|
||||
https://bugzilla.kernel.org/show_bug.cgi?id=79511
|
||||
|
||||
Cc: stable@vger.kernel.org # 3.15
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/usb/host/xhci-pci.c | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
|
||||
index 35d447780707..130345d401ac 100644
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -149,6 +149,11 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
|
||||
xhci->quirks |= XHCI_RESET_ON_RESUME;
|
||||
if (pdev->vendor == PCI_VENDOR_ID_VIA)
|
||||
xhci->quirks |= XHCI_RESET_ON_RESUME;
|
||||
+
|
||||
+ /* See https://bugzilla.kernel.org/show_bug.cgi?id=79511 */
|
||||
+ if (pdev->vendor == PCI_VENDOR_ID_VIA &&
|
||||
+ pdev->device == 0x3432)
|
||||
+ xhci->quirks |= XHCI_BROKEN_STREAMS;
|
||||
}
|
||||
|
||||
/* called during probe() after chip reset completes */
|
||||
--
|
||||
1.9.3
|
||||
|
Loading…
Reference in New Issue
Block a user