From 1eba4aa5d0bbf1a2cfc37ffde6511ba5bfd5ade2 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Wed, 15 Jul 2015 10:42:25 -0700 Subject: [PATCH] Linux v4.1.3 rebase --- ...-Support-Dell-headset-mode-for-ALC28.patch | 125 ----- ...-Support-headset-mode-for-ALC286-288.patch | 181 ------- ...ID_QUIRK_NOGET-for-Aten-DVI-KVM-swit.patch | 52 -- ...issing-caps-for-the-PCM-video-device.patch | 75 --- ...rtc-em3027.c-add-device-tree-support.patch | 51 -- ...l_timer-variant-in-interrupt-context.patch | 68 --- ...-use-vfs_iter_read-write-in-fd_do_rw.patch | 70 --- ...pp-add-a-module-parameter-to-keep-fi.patch | 49 -- HID-multitouch-add-support-of-clickpads.patch | 47 -- ...ert-synaptics-use-dmax-in-input_mt_a.patch | 43 -- ...xt_ts-add-support-for-Google-Pixel-2.patch | 220 -------- ...ts-implement-support-for-T100-touch-.patch | 512 ------------------ ...ts-split-out-touchpad-initialisation.patch | 100 ---- ...allocate-3-slots-to-keep-stability-i.patch | 34 -- ...pin-3-touches-when-the-firmware-repo.patch | 4 +- ...d-xgbe-a0-Add-support-for-XGBE-on-A0.patch | 333 +++++------- ...p-avoid-too-many-pending-per-work-IO.patch | 213 +++----- compile-fixes.patch | 6 - config-arm-generic | 27 +- config-arm64 | 13 +- config-armv7 | 71 +-- config-armv7-generic | 95 +++- config-armv7-lpae | 5 +- config-generic | 87 ++- config-powerpc-generic | 1 + config-powerpc64 | 8 +- config-powerpc64p7 | 8 +- config-s390x | 6 - config-x86-32-generic | 1 + config-x86-generic | 6 +- criu-no-expert.patch | 8 +- drm-i915-Disable-verbose-state-checks.patch | 28 - ...-watermarks-calculation-when-primary.patch | 100 ---- drm-i915-turn-off-wc-mmaps.patch | 8 +- efi-Add-EFI_SECURE_BOOT-bit.patch | 12 +- efi-Add-esrt-support.patch | 12 +- ...-Allocate-entire-range-in-zero-range.patch | 75 --- hibernate-freeze-filesystems.patch | 290 ---------- ...dd-Lenovo-G40-30-to-devices-without-.patch | 45 -- kernel.spec | 169 ++---- ...-boot-time-warning-in-pcmcia-cs-code.patch | 66 +++ ...move-unnecessary-selects-from-Kconfi.patch | 25 - sources | 6 +- ...not-register-vendor-backlight-when-a.patch | 94 ---- upstream-reverts.patch | 1 - weird-root-dentry-name-debug.patch | 22 - ...-port-access-when-module-security-is.patch | 6 +- 47 files changed, 554 insertions(+), 2924 deletions(-) delete mode 100644 0001-ALSA-hda-realtek-Support-Dell-headset-mode-for-ALC28.patch delete mode 100644 0001-ALSA-hda-realtek-Support-headset-mode-for-ALC286-288.patch delete mode 100644 0001-HID-usbhid-Add-HID_QUIRK_NOGET-for-Aten-DVI-KVM-swit.patch delete mode 100644 0001-cx18-add-missing-caps-for-the-PCM-video-device.patch delete mode 100644 0001-drivers-rtc-rtc-em3027.c-add-device-tree-support.patch delete mode 100644 0001-mwifiex-use-del_timer-variant-in-interrupt-context.patch delete mode 100644 0001-target-use-vfs_iter_read-write-in-fd_do_rw.patch delete mode 100644 HID-logitech-hidpp-add-a-module-parameter-to-keep-fi.patch delete mode 100644 HID-multitouch-add-support-of-clickpads.patch delete mode 100644 Input-Revert-Revert-synaptics-use-dmax-in-input_mt_a.patch delete mode 100644 Input-atmel_mxt_ts-add-support-for-Google-Pixel-2.patch delete mode 100644 Input-atmel_mxt_ts-implement-support-for-T100-touch-.patch delete mode 100644 Input-atmel_mxt_ts-split-out-touchpad-initialisation.patch delete mode 100644 Input-synaptics-allocate-3-slots-to-keep-stability-i.patch rename net-amd-Add-xgbe-a0-driver.patch => amd-xgbe-a0-Add-support-for-XGBE-on-A0.patch (98%) delete mode 100644 compile-fixes.patch delete mode 100644 drm-i915-Disable-verbose-state-checks.patch delete mode 100644 drm-i915-Fix-ilk-watermarks-calculation-when-primary.patch delete mode 100644 ext4-Allocate-entire-range-in-zero-range.patch delete mode 100644 hibernate-freeze-filesystems.patch delete mode 100644 ideapad_laptop-Add-Lenovo-G40-30-to-devices-without-.patch create mode 100644 pcmcia-fix-a-boot-time-warning-in-pcmcia-cs-code.patch delete mode 100644 security-yama-Remove-unnecessary-selects-from-Kconfi.patch delete mode 100644 toshiba_acpi-Do-not-register-vendor-backlight-when-a.patch delete mode 100644 upstream-reverts.patch delete mode 100644 weird-root-dentry-name-debug.patch diff --git a/0001-ALSA-hda-realtek-Support-Dell-headset-mode-for-ALC28.patch b/0001-ALSA-hda-realtek-Support-Dell-headset-mode-for-ALC28.patch deleted file mode 100644 index 470e22e09..000000000 --- a/0001-ALSA-hda-realtek-Support-Dell-headset-mode-for-ALC28.patch +++ /dev/null @@ -1,125 +0,0 @@ -From e1e62b98ebddc3234f3259019d3236f66fc667f8 Mon Sep 17 00:00:00 2001 -From: Kailang Yang -Date: Wed, 8 Apr 2015 16:01:22 +0800 -Subject: [PATCH] ALSA: hda/realtek - Support Dell headset mode for ALC288 - -Dell create new platform with ALC288 codec. -This patch will enable headset mode for Dino platform. - -[slight code refactoring and compile fix by tiwai] - -Signed-off-by: Kailang Yang -Signed-off-by: Takashi Iwai ---- - sound/pci/hda/patch_realtek.c | 67 +++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 67 insertions(+) - -diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c -index ceb599a..7b5c93e 100644 ---- a/sound/pci/hda/patch_realtek.c -+++ b/sound/pci/hda/patch_realtek.c -@@ -4121,6 +4121,29 @@ static void alc_fixup_headset_mode_alc255_no_hp_mic(struct hda_codec *codec, - alc_fixup_headset_mode(codec, fix, action); - } - -+static void alc288_update_headset_jack_cb(struct hda_codec *codec, -+ struct hda_jack_callback *jack) -+{ -+ struct alc_spec *spec = codec->spec; -+ int present; -+ -+ alc_update_headset_jack_cb(codec, jack); -+ /* Headset Mic enable or disable, only for Dell Dino */ -+ present = spec->gen.hp_jack_present ? 0x40 : 0; -+ snd_hda_codec_write(codec, 0x01, 0, AC_VERB_SET_GPIO_DATA, -+ present); -+} -+ -+static void alc_fixup_headset_mode_dell_alc288(struct hda_codec *codec, -+ const struct hda_fixup *fix, int action) -+{ -+ alc_fixup_headset_mode(codec, fix, action); -+ if (action == HDA_FIXUP_ACT_PROBE) { -+ struct alc_spec *spec = codec->spec; -+ spec->gen.hp_automute_hook = alc288_update_headset_jack_cb; -+ } -+} -+ - static void alc_fixup_auto_mute_via_amp(struct hda_codec *codec, - const struct hda_fixup *fix, int action) - { -@@ -4460,6 +4483,9 @@ enum { - ALC286_FIXUP_HP_GPIO_LED, - ALC280_FIXUP_HP_GPIO2_MIC_HOTKEY, - ALC280_FIXUP_HP_DOCK_PINS, -+ ALC288_FIXUP_DELL_HEADSET_MODE, -+ ALC288_FIXUP_DELL1_MIC_NO_PRESENCE, -+ ALC288_FIXUP_DELL_XPS_13_GPIO6, - }; - - static const struct hda_fixup alc269_fixups[] = { -@@ -4948,6 +4974,33 @@ static const struct hda_fixup alc269_fixups[] = { - .chained = true, - .chain_id = ALC280_FIXUP_HP_GPIO4 - }, -+ [ALC288_FIXUP_DELL_HEADSET_MODE] = { -+ .type = HDA_FIXUP_FUNC, -+ .v.func = alc_fixup_headset_mode_dell_alc288, -+ .chained = true, -+ .chain_id = ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED -+ }, -+ [ALC288_FIXUP_DELL1_MIC_NO_PRESENCE] = { -+ .type = HDA_FIXUP_PINS, -+ .v.pins = (const struct hda_pintbl[]) { -+ { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */ -+ { 0x1a, 0x01a1913d }, /* use as headphone mic, without its own jack detect */ -+ { } -+ }, -+ .chained = true, -+ .chain_id = ALC288_FIXUP_DELL_HEADSET_MODE -+ }, -+ [ALC288_FIXUP_DELL_XPS_13_GPIO6] = { -+ .type = HDA_FIXUP_VERBS, -+ .v.verbs = (const struct hda_verb[]) { -+ {0x01, AC_VERB_SET_GPIO_MASK, 0x40}, -+ {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x40}, -+ {0x01, AC_VERB_SET_GPIO_DATA, 0x00}, -+ { } -+ }, -+ .chained = true, -+ .chain_id = ALC288_FIXUP_DELL1_MIC_NO_PRESENCE -+ }, - }; - - static const struct snd_pci_quirk alc269_fixup_tbl[] = { -@@ -5174,6 +5227,13 @@ static const struct hda_model_fixup alc269_fixup_models[] = { - {0x1b, 0x411111f0}, \ - {0x1e, 0x411111f0} - -+#define ALC288_STANDARD_PINS \ -+ {0x17, 0x411111f0}, \ -+ {0x18, 0x411111f0}, \ -+ {0x19, 0x411111f0}, \ -+ {0x1a, 0x411111f0}, \ -+ {0x1e, 0x411111f0} -+ - #define ALC290_STANDARD_PINS \ - {0x12, 0x99a30130}, \ - {0x13, 0x40000000}, \ -@@ -5369,6 +5429,13 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = { - {0x19, 0x03a11020}, - {0x1d, 0x40e00001}, - {0x21, 0x0321101f}), -+ SND_HDA_PIN_QUIRK(0x10ec0288, 0x1028, "Dell", ALC288_FIXUP_DELL_XPS_13_GPIO6, -+ ALC288_STANDARD_PINS, -+ {0x12, 0x90a60120}, -+ {0x13, 0x40000000}, -+ {0x14, 0x90170110}, -+ {0x1d, 0x4076832d}, -+ {0x21, 0x0321101f}), - SND_HDA_PIN_QUIRK(0x10ec0290, 0x103c, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC1, - ALC290_STANDARD_PINS, - {0x14, 0x411111f0}, --- -2.1.0 - diff --git a/0001-ALSA-hda-realtek-Support-headset-mode-for-ALC286-288.patch b/0001-ALSA-hda-realtek-Support-headset-mode-for-ALC286-288.patch deleted file mode 100644 index 1deac4f74..000000000 --- a/0001-ALSA-hda-realtek-Support-headset-mode-for-ALC286-288.patch +++ /dev/null @@ -1,181 +0,0 @@ -From f3b703326541d0c1ce85f5e570f6d2b6bd4296ec Mon Sep 17 00:00:00 2001 -From: Kailang Yang -Date: Wed, 8 Apr 2015 15:01:17 +0800 -Subject: [PATCH] ALSA: hda/realtek - Support headset mode for ALC286/288 - -Support headset mode for ALC286 and ALC288 platforms. - -Signed-off-by: Kailang Yang -Signed-off-by: Takashi Iwai ---- - sound/pci/hda/patch_realtek.c | 77 +++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 77 insertions(+) - -diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c -index 7f46d06..ceb599a 100644 ---- a/sound/pci/hda/patch_realtek.c -+++ b/sound/pci/hda/patch_realtek.c -@@ -3542,6 +3542,14 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec) - WRITE_COEF(0x32, 0x42a3), - {} - }; -+ static struct coef_fw coef0288[] = { -+ UPDATE_COEF(0x4f, 0xfcc0, 0xc400), -+ UPDATE_COEF(0x50, 0x2000, 0x2000), -+ UPDATE_COEF(0x56, 0x0006, 0x0006), -+ UPDATE_COEF(0x66, 0x0008, 0), -+ UPDATE_COEF(0x67, 0x2000, 0), -+ {} -+ }; - static struct coef_fw coef0292[] = { - WRITE_COEF(0x76, 0x000e), - WRITE_COEF(0x6c, 0x2400), -@@ -3573,6 +3581,10 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec) - case 0x10ec0283: - alc_process_coef_fw(codec, coef0233); - break; -+ case 0x10ec0286: -+ case 0x10ec0288: -+ alc_process_coef_fw(codec, coef0288); -+ break; - case 0x10ec0292: - alc_process_coef_fw(codec, coef0292); - break; -@@ -3602,6 +3614,14 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin, - WRITE_COEF(0x26, 0x008c), - {} - }; -+ static struct coef_fw coef0288[] = { -+ UPDATE_COEF(0x50, 0x2000, 0), -+ UPDATE_COEF(0x56, 0x0006, 0), -+ UPDATE_COEF(0x4f, 0xfcc0, 0xc400), -+ UPDATE_COEF(0x66, 0x0008, 0x0008), -+ UPDATE_COEF(0x67, 0x2000, 0x2000), -+ {} -+ }; - static struct coef_fw coef0292[] = { - WRITE_COEF(0x19, 0xa208), - WRITE_COEF(0x2e, 0xacf0), -@@ -3635,6 +3655,13 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin, - alc_process_coef_fw(codec, coef0233); - snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50); - break; -+ case 0x10ec0286: -+ case 0x10ec0288: -+ alc_update_coef_idx(codec, 0x4f, 0x000c, 0); -+ snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); -+ alc_process_coef_fw(codec, coef0288); -+ snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50); -+ break; - case 0x10ec0292: - snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); - alc_process_coef_fw(codec, coef0292); -@@ -3670,6 +3697,14 @@ static void alc_headset_mode_default(struct hda_codec *codec) - WRITE_COEF(0x32, 0x4ea3), - {} - }; -+ static struct coef_fw coef0288[] = { -+ UPDATE_COEF(0x4f, 0xfcc0, 0xc400), /* Set to TRS type */ -+ UPDATE_COEF(0x50, 0x2000, 0x2000), -+ UPDATE_COEF(0x56, 0x0006, 0x0006), -+ UPDATE_COEF(0x66, 0x0008, 0), -+ UPDATE_COEF(0x67, 0x2000, 0), -+ {} -+ }; - static struct coef_fw coef0292[] = { - WRITE_COEF(0x76, 0x000e), - WRITE_COEF(0x6c, 0x2400), -@@ -3699,6 +3734,11 @@ static void alc_headset_mode_default(struct hda_codec *codec) - case 0x10ec0283: - alc_process_coef_fw(codec, coef0233); - break; -+ case 0x10ec0286: -+ case 0x10ec0288: -+ alc_process_coef_fw(codec, coef0288); -+ break; -+ break; - case 0x10ec0292: - alc_process_coef_fw(codec, coef0292); - break; -@@ -3727,6 +3767,13 @@ static void alc_headset_mode_ctia(struct hda_codec *codec) - WRITE_COEF(0x32, 0x4ea3), - {} - }; -+ static struct coef_fw coef0288[] = { -+ UPDATE_COEF(0x50, 0x2000, 0x2000), -+ UPDATE_COEF(0x56, 0x0006, 0x0006), -+ UPDATE_COEF(0x66, 0x0008, 0), -+ UPDATE_COEF(0x67, 0x2000, 0), -+ {} -+ }; - static struct coef_fw coef0292[] = { - WRITE_COEF(0x6b, 0xd429), - WRITE_COEF(0x76, 0x0008), -@@ -3754,6 +3801,12 @@ static void alc_headset_mode_ctia(struct hda_codec *codec) - case 0x10ec0283: - alc_process_coef_fw(codec, coef0233); - break; -+ case 0x10ec0286: -+ case 0x10ec0288: -+ alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xd400); -+ msleep(300); -+ alc_process_coef_fw(codec, coef0288); -+ break; - case 0x10ec0292: - alc_process_coef_fw(codec, coef0292); - break; -@@ -3782,6 +3835,13 @@ static void alc_headset_mode_omtp(struct hda_codec *codec) - WRITE_COEF(0x32, 0x4ea3), - {} - }; -+ static struct coef_fw coef0288[] = { -+ UPDATE_COEF(0x50, 0x2000, 0x2000), -+ UPDATE_COEF(0x56, 0x0006, 0x0006), -+ UPDATE_COEF(0x66, 0x0008, 0), -+ UPDATE_COEF(0x67, 0x2000, 0), -+ {} -+ }; - static struct coef_fw coef0292[] = { - WRITE_COEF(0x6b, 0xe429), - WRITE_COEF(0x76, 0x0008), -@@ -3809,6 +3869,12 @@ static void alc_headset_mode_omtp(struct hda_codec *codec) - case 0x10ec0283: - alc_process_coef_fw(codec, coef0233); - break; -+ case 0x10ec0286: -+ case 0x10ec0288: -+ alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xe400); -+ msleep(300); -+ alc_process_coef_fw(codec, coef0288); -+ break; - case 0x10ec0292: - alc_process_coef_fw(codec, coef0292); - break; -@@ -3833,6 +3899,10 @@ static void alc_determine_headset_type(struct hda_codec *codec) - conteol) */ - {} - }; -+ static struct coef_fw coef0288[] = { -+ UPDATE_COEF(0x4f, 0xfcc0, 0xd400), /* Check Type */ -+ {} -+ }; - static struct coef_fw coef0293[] = { - UPDATE_COEF(0x4a, 0x000f, 0x0008), /* Combo Jack auto detect */ - WRITE_COEF(0x45, 0xD429), /* Set to ctia type */ -@@ -3861,6 +3931,13 @@ static void alc_determine_headset_type(struct hda_codec *codec) - val = alc_read_coef_idx(codec, 0x46); - is_ctia = (val & 0x0070) == 0x0070; - break; -+ case 0x10ec0286: -+ case 0x10ec0288: -+ alc_process_coef_fw(codec, coef0288); -+ msleep(350); -+ val = alc_read_coef_idx(codec, 0x50); -+ is_ctia = (val & 0x0070) == 0x0070; -+ break; - case 0x10ec0292: - alc_write_coef_idx(codec, 0x6b, 0xd429); - msleep(300); --- -2.1.0 - diff --git a/0001-HID-usbhid-Add-HID_QUIRK_NOGET-for-Aten-DVI-KVM-swit.patch b/0001-HID-usbhid-Add-HID_QUIRK_NOGET-for-Aten-DVI-KVM-swit.patch deleted file mode 100644 index d1859af28..000000000 --- a/0001-HID-usbhid-Add-HID_QUIRK_NOGET-for-Aten-DVI-KVM-swit.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 25c1b8af5b11bd1dbd17d0c1212586bb56ec4efd Mon Sep 17 00:00:00 2001 -From: Laura Abbott -Date: Fri, 8 May 2015 14:13:56 -0700 -Subject: [PATCH] HID: usbhid: Add HID_QUIRK_NOGET for Aten DVI KVM switch -To: Jiri Kosina -Cc: linux-input@vger.kernel.org -Cc: linux-kernel@vger.kernel.org -Cc: linux-usb@vger.kernel.org -Cc: stephane.tranchemer@devinci.fr - -Like other KVM switches, the Aten DVI KVM switch needs a -quirk to avoid spewing errors: - -[791759.606542] usb 1-5.4: input irq status -75 received -[791759.614537] usb 1-5.4: input irq status -75 received -[791759.622542] usb 1-5.4: input irq status -75 received - -Add it. - -Signed-off-by: Laura Abbott ---- - drivers/hid/hid-ids.h | 1 + - drivers/hid/usbhid/hid-quirks.c | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h -index 41f167e..7ce93d9 100644 ---- a/drivers/hid/hid-ids.h -+++ b/drivers/hid/hid-ids.h -@@ -164,6 +164,7 @@ - #define USB_DEVICE_ID_ATEN_2PORTKVM 0x2204 - #define USB_DEVICE_ID_ATEN_4PORTKVM 0x2205 - #define USB_DEVICE_ID_ATEN_4PORTKVMC 0x2208 -+#define USB_DEVICE_ID_ATEN_CS682 0x2213 - - #define USB_VENDOR_ID_ATMEL 0x03eb - #define USB_DEVICE_ID_ATMEL_MULTITOUCH 0x211c -diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c -index a775143..4696895e 100644 ---- a/drivers/hid/usbhid/hid-quirks.c -+++ b/drivers/hid/usbhid/hid-quirks.c -@@ -61,6 +61,7 @@ static const struct hid_blacklist { - { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET }, - { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET }, - { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET }, -+ { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS682, HID_QUIRK_NOGET }, - { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FIGHTERSTICK, HID_QUIRK_NOGET }, - { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_COMBATSTICK, HID_QUIRK_NOGET }, - { USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FLIGHT_SIM_ECLIPSE_YOKE, HID_QUIRK_NOGET }, --- -2.1.0 - diff --git a/0001-cx18-add-missing-caps-for-the-PCM-video-device.patch b/0001-cx18-add-missing-caps-for-the-PCM-video-device.patch deleted file mode 100644 index 23040a7a0..000000000 --- a/0001-cx18-add-missing-caps-for-the-PCM-video-device.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 0ce518efc8ddd9d2d45dcc2f14b20032d1e88946 Mon Sep 17 00:00:00 2001 -From: Hans Verkuil -Date: Fri, 24 Apr 2015 08:55:07 +0200 -Subject: [PATCH] cx18: add missing caps for the PCM video device - -The cx18 PCM video device didn't have any capabilities set, which caused a warnings -in the v4l2 core: - -[ 6.229393] ------------[ cut here ]------------ -[ 6.229414] WARNING: CPU: 1 PID: 593 at -drivers/media/v4l2-core/v4l2-ioctl.c:1025 v4l_querycap+0x41/0x70 -[videodev]() -[ 6.229415] Modules linked in: cx18_alsa mxl5005s s5h1409 -tuner_simple tuner_types cs5345 tuner intel_rapl iosf_mbi -x86_pkg_temp_thermal coretemp raid1 snd_hda_codec_realtek kvm_intel -snd_hda_codec_generic snd_hda_codec_hdmi kvm snd_oxygen(+) snd_hda_intel -snd_oxygen_lib snd_hda_controller snd_hda_codec snd_mpu401_uart iTCO_wdt -snd_rawmidi iTCO_vendor_support snd_hwdep crct10dif_pclmul crc32_pclmul -crc32c_intel snd_seq cx18 snd_seq_device ghash_clmulni_intel -videobuf_vmalloc tveeprom cx2341x snd_pcm serio_raw videobuf_core vfat -dvb_core fat v4l2_common snd_timer videodev snd lpc_ich i2c_i801 joydev -mfd_core mei_me media soundcore tpm_infineon soc_button_array tpm_tis -mei shpchp tpm nfsd auth_rpcgss nfs_acl lockd grace sunrpc binfmt_misc -i915 nouveau mxm_wmi wmi e1000e ttm i2c_algo_bit drm_kms_helper -[ 6.229444] drm ptp pps_core video -[ 6.229446] CPU: 1 PID: 593 Comm: v4l_id Not tainted -3.19.3-200.fc21.x86_64 #1 -[ 6.229447] Hardware name: Gigabyte Technology Co., Ltd. -Z87-D3HP/Z87-D3HP-CF, BIOS F6 01/20/2014 -[ 6.229448] 0000000000000000 00000000d12b1131 ffff88042dacfc28 -ffffffff8176e215 -[ 6.229449] 0000000000000000 0000000000000000 ffff88042dacfc68 -ffffffff8109bc1a -[ 6.229451] ffffffffa0594000 ffff88042dacfd90 0000000000000000 -ffffffffa04e2140 -[ 6.229452] Call Trace: -[ 6.229466] [] dump_stack+0x45/0x57 -[ 6.229469] [] warn_slowpath_common+0x8a/0xc0 -[ 6.229472] [] warn_slowpath_null+0x1a/0x20 -[ 6.229474] [] v4l_querycap+0x41/0x70 [videodev] -[ 6.229477] [] __video_do_ioctl+0x29c/0x320 [videodev] -[ 6.229479] [] ? do_last+0x2f1/0x1210 -[ 6.229491] [] video_usercopy+0x366/0x5d0 [videodev] -[ 6.229494] [] ? v4l_querycap+0x70/0x70 [videodev] -[ 6.229497] [] video_ioctl2+0x15/0x20 [videodev] -[ 6.229499] [] v4l2_ioctl+0x164/0x180 [videodev] -[ 6.229501] [] do_vfs_ioctl+0x2f8/0x500 -[ 6.229502] [] SyS_ioctl+0x81/0xa0 -[ 6.229505] [] system_call_fastpath+0x12/0x17 -[ 6.229506] ---[ end trace dacd80d4b19277ea ]--- - -Added the necessary capabilities to stop this warning. - -Signed-off-by: Hans Verkuil -Reported-by: Laura Abbott -Cc: # for v3.19 and up ---- - drivers/media/pci/cx18/cx18-streams.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/media/pci/cx18/cx18-streams.c b/drivers/media/pci/cx18/cx18-streams.c -index c82d25d..c986084 100644 ---- a/drivers/media/pci/cx18/cx18-streams.c -+++ b/drivers/media/pci/cx18/cx18-streams.c -@@ -90,6 +90,7 @@ static struct { - "encoder PCM audio", - VFL_TYPE_GRABBER, CX18_V4L2_ENC_PCM_OFFSET, - PCI_DMA_FROMDEVICE, -+ V4L2_CAP_TUNER | V4L2_CAP_AUDIO | V4L2_CAP_READWRITE, - }, - { /* CX18_ENC_STREAM_TYPE_IDX */ - "encoder IDX", --- -2.1.0 - diff --git a/0001-drivers-rtc-rtc-em3027.c-add-device-tree-support.patch b/0001-drivers-rtc-rtc-em3027.c-add-device-tree-support.patch deleted file mode 100644 index 1c6af9d0a..000000000 --- a/0001-drivers-rtc-rtc-em3027.c-add-device-tree-support.patch +++ /dev/null @@ -1,51 +0,0 @@ -From fc7789f5d8061c8d26f2e9be9ce5bd91f5033479 Mon Sep 17 00:00:00 2001 -From: Peter Robinson -Date: Tue, 30 Dec 2014 07:32:03 +0000 -Subject: [PATCH] drivers/rtc/rtc-em3027.c: add device tree support - -Set the of_match_table for this driver so that devices can be described -in the device tree. This device is used in the Trimslice and is already -defined in the Trimslice device tree. - -Signed-off-by: Peter Robinson ---- - drivers/rtc/rtc-em3027.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/drivers/rtc/rtc-em3027.c b/drivers/rtc/rtc-em3027.c -index fccf366..7fbb051 100644 ---- a/drivers/rtc/rtc-em3027.c -+++ b/drivers/rtc/rtc-em3027.c -@@ -15,6 +15,7 @@ - #include - #include - #include -+#include - - /* Registers */ - #define EM3027_REG_ON_OFF_CTRL 0x00 -@@ -135,10 +136,21 @@ static struct i2c_device_id em3027_id[] = { - { "em3027", 0 }, - { } - }; -+MODULE_DEVICE_TABLE(i2c, em3027_id); -+ -+#ifdef CONFIG_OF -+static const struct of_device_id em3027_of_match[] = { -+ { .compatible = "emmicro,em3027", }, -+ {} -+}; -+MODULE_DEVICE_TABLE(of, em3027_of_match); -+#endif - - static struct i2c_driver em3027_driver = { - .driver = { - .name = "rtc-em3027", -+ .owner = THIS_MODULE, -+ .of_match_table = of_match_ptr(em3027_of_match), - }, - .probe = &em3027_probe, - .id_table = em3027_id, --- -2.1.0 - diff --git a/0001-mwifiex-use-del_timer-variant-in-interrupt-context.patch b/0001-mwifiex-use-del_timer-variant-in-interrupt-context.patch deleted file mode 100644 index 3e862a180..000000000 --- a/0001-mwifiex-use-del_timer-variant-in-interrupt-context.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 6e9344fd8e90ff0bd8e74c15ec7c21eae7d54bd3 Mon Sep 17 00:00:00 2001 -From: Amitkumar Karwar -Date: Thu, 12 Mar 2015 00:38:40 -0700 -Subject: [PATCH] mwifiex: use del_timer variant in interrupt context - -We might be in interrupt context at few places. So replace -del_timer_sync() with del_timer(). This patch fixes a kernel -trace problem seen occasionally during our testing. - -Signed-off-by: Amitkumar Karwar -Signed-off-by: Kalle Valo ---- - drivers/net/wireless/mwifiex/main.c | 2 +- - drivers/net/wireless/mwifiex/sta_event.c | 4 ++-- - drivers/net/wireless/mwifiex/usb.c | 2 +- - 3 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/drivers/net/wireless/mwifiex/main.c b/drivers/net/wireless/mwifiex/main.c -index 74488ab..42bf884 100644 ---- a/drivers/net/wireless/mwifiex/main.c -+++ b/drivers/net/wireless/mwifiex/main.c -@@ -247,7 +247,7 @@ process_start: - if (IS_CARD_RX_RCVD(adapter)) { - adapter->data_received = false; - adapter->pm_wakeup_fw_try = false; -- del_timer_sync(&adapter->wakeup_timer); -+ del_timer(&adapter->wakeup_timer); - if (adapter->ps_state == PS_STATE_SLEEP) - adapter->ps_state = PS_STATE_AWAKE; - } else { -diff --git a/drivers/net/wireless/mwifiex/sta_event.c b/drivers/net/wireless/mwifiex/sta_event.c -index 64c4223..0dc7a1d 100644 ---- a/drivers/net/wireless/mwifiex/sta_event.c -+++ b/drivers/net/wireless/mwifiex/sta_event.c -@@ -312,7 +312,7 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv) - adapter->ps_state = PS_STATE_AWAKE; - adapter->pm_wakeup_card_req = false; - adapter->pm_wakeup_fw_try = false; -- del_timer_sync(&adapter->wakeup_timer); -+ del_timer(&adapter->wakeup_timer); - break; - } - if (!mwifiex_send_null_packet -@@ -327,7 +327,7 @@ int mwifiex_process_sta_event(struct mwifiex_private *priv) - adapter->ps_state = PS_STATE_AWAKE; - adapter->pm_wakeup_card_req = false; - adapter->pm_wakeup_fw_try = false; -- del_timer_sync(&adapter->wakeup_timer); -+ del_timer(&adapter->wakeup_timer); - - break; - -diff --git a/drivers/net/wireless/mwifiex/usb.c b/drivers/net/wireless/mwifiex/usb.c -index 2238730..8beb38c 100644 ---- a/drivers/net/wireless/mwifiex/usb.c -+++ b/drivers/net/wireless/mwifiex/usb.c -@@ -1006,7 +1006,7 @@ static int mwifiex_pm_wakeup_card(struct mwifiex_adapter *adapter) - { - /* Simulation of HS_AWAKE event */ - adapter->pm_wakeup_fw_try = false; -- del_timer_sync(&adapter->wakeup_timer); -+ del_timer(&adapter->wakeup_timer); - adapter->pm_wakeup_card_req = false; - adapter->ps_state = PS_STATE_AWAKE; - --- -2.4.1 - diff --git a/0001-target-use-vfs_iter_read-write-in-fd_do_rw.patch b/0001-target-use-vfs_iter_read-write-in-fd_do_rw.patch deleted file mode 100644 index a90fb6407..000000000 --- a/0001-target-use-vfs_iter_read-write-in-fd_do_rw.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 6b9a44d0939ca6235c72b811bd55b462d6a0a553 Mon Sep 17 00:00:00 2001 -From: Christoph Hellwig -Date: Sun, 22 Feb 2015 08:48:41 -0800 -Subject: [PATCH] target: use vfs_iter_read/write in fd_do_rw - -Signed-off-by: Christoph Hellwig -Reviewed-by: Sagi Grimberg -Signed-off-by: Nicholas Bellinger ---- - drivers/target/target_core_file.c | 31 ++++++++++++++----------------- - 1 file changed, 14 insertions(+), 17 deletions(-) - -diff --git a/drivers/target/target_core_file.c b/drivers/target/target_core_file.c -index 44620fb..ea6e14e 100644 ---- a/drivers/target/target_core_file.c -+++ b/drivers/target/target_core_file.c -@@ -331,36 +331,33 @@ static int fd_do_rw(struct se_cmd *cmd, struct scatterlist *sgl, - struct fd_dev *dev = FD_DEV(se_dev); - struct file *fd = dev->fd_file; - struct scatterlist *sg; -- struct iovec *iov; -- mm_segment_t old_fs; -+ struct iov_iter iter; -+ struct bio_vec *bvec; -+ ssize_t len = 0; - loff_t pos = (cmd->t_task_lba * se_dev->dev_attrib.block_size); - int ret = 0, i; - -- iov = kzalloc(sizeof(struct iovec) * sgl_nents, GFP_KERNEL); -- if (!iov) { -+ bvec = kcalloc(sgl_nents, sizeof(struct bio_vec), GFP_KERNEL); -+ if (!bvec) { - pr_err("Unable to allocate fd_do_readv iov[]\n"); - return -ENOMEM; - } - - for_each_sg(sgl, sg, sgl_nents, i) { -- iov[i].iov_len = sg->length; -- iov[i].iov_base = kmap(sg_page(sg)) + sg->offset; -- } -+ bvec[i].bv_page = sg_page(sg); -+ bvec[i].bv_len = sg->length; -+ bvec[i].bv_offset = sg->offset; - -- old_fs = get_fs(); -- set_fs(get_ds()); -+ len += sg->length; -+ } - -+ iov_iter_bvec(&iter, ITER_BVEC, bvec, sgl_nents, len); - if (is_write) -- ret = vfs_writev(fd, &iov[0], sgl_nents, &pos); -+ ret = vfs_iter_write(fd, &iter, &pos); - else -- ret = vfs_readv(fd, &iov[0], sgl_nents, &pos); -- -- set_fs(old_fs); -- -- for_each_sg(sgl, sg, sgl_nents, i) -- kunmap(sg_page(sg)); -+ ret = vfs_iter_read(fd, &iter, &pos); - -- kfree(iov); -+ kfree(bvec); - - if (is_write) { - if (ret < 0 || ret != cmd->data_length) { --- -2.4.1 - diff --git a/HID-logitech-hidpp-add-a-module-parameter-to-keep-fi.patch b/HID-logitech-hidpp-add-a-module-parameter-to-keep-fi.patch deleted file mode 100644 index b94926405..000000000 --- a/HID-logitech-hidpp-add-a-module-parameter-to-keep-fi.patch +++ /dev/null @@ -1,49 +0,0 @@ -From: Benjamin Tissoires -Date: Thu, 26 Mar 2015 12:41:57 -0400 -Subject: [PATCH] HID: logitech-hidpp: add a module parameter to keep firmware - gestures - -The Logitech T650 used to report 3 fingers swipes to the up as a press on the -Super key. When we switched the touchpad to the raw mode, we also disable such -firmware gesture and some users may rely on it. - -Unfortunately, 3 finger swipes are still not supported in most of the Linux -environments, which means that we disabled a feature of the touchpad. - -Allow users to revert the raw reporting mode and keep going with the firmware -gestures by providing a new module parameter. - -Signed-off-by: Benjamin Tissoires -Signed-off-by: Jiri Kosina ---- - drivers/hid/hid-logitech-hidpp.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/drivers/hid/hid-logitech-hidpp.c b/drivers/hid/hid-logitech-hidpp.c -index 2caf5b2f3446..d8ecf20cc838 100644 ---- a/drivers/hid/hid-logitech-hidpp.c -+++ b/drivers/hid/hid-logitech-hidpp.c -@@ -28,6 +28,11 @@ MODULE_LICENSE("GPL"); - MODULE_AUTHOR("Benjamin Tissoires "); - MODULE_AUTHOR("Nestor Lopez Casado "); - -+static bool disable_raw_mode; -+module_param(disable_raw_mode, bool, 0644); -+MODULE_PARM_DESC(disable_raw_mode, -+ "Disable Raw mode reporting for touchpads and keep firmware gestures."); -+ - #define REPORT_ID_HIDPP_SHORT 0x10 - #define REPORT_ID_HIDPP_LONG 0x11 - -@@ -1177,6 +1182,11 @@ static int hidpp_probe(struct hid_device *hdev, const struct hid_device_id *id) - - hidpp->quirks = id->driver_data; - -+ if (disable_raw_mode) { -+ hidpp->quirks &= ~HIDPP_QUIRK_CLASS_WTP; -+ hidpp->quirks &= ~HIDPP_QUIRK_DELAYED_INIT; -+ } -+ - if (hidpp->quirks & HIDPP_QUIRK_CLASS_WTP) { - ret = wtp_allocate(hdev, id); - if (ret) diff --git a/HID-multitouch-add-support-of-clickpads.patch b/HID-multitouch-add-support-of-clickpads.patch deleted file mode 100644 index 53185d164..000000000 --- a/HID-multitouch-add-support-of-clickpads.patch +++ /dev/null @@ -1,47 +0,0 @@ -From: Benjamin Tissoires -Date: Fri, 6 Mar 2015 11:14:42 -0500 -Subject: [PATCH] HID: multitouch: add support of clickpads - -Touchpads that have only one button are called clickpads and should -be advertised as such by the kernel. - -Signed-off-by: Benjamin Tissoires -Tested-by: Jason Ekstrand ---- - drivers/hid/hid-multitouch.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c -index f65e78b46999..ef06dc30b9b1 100644 ---- a/drivers/hid/hid-multitouch.c -+++ b/drivers/hid/hid-multitouch.c -@@ -116,6 +116,7 @@ struct mt_device { - __u8 touches_by_report; /* how many touches are present in one report: - * 1 means we should use a serial protocol - * > 1 means hybrid (multitouch) protocol */ -+ __u8 buttons_count; /* number of physical buttons per touchpad */ - bool serial_maybe; /* need to check for serial protocol */ - bool curvalid; /* is the current contact valid? */ - unsigned mt_flags; /* flags to pass to input-mt */ -@@ -379,6 +380,10 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi, - td->inputmode_value = MT_INPUTMODE_TOUCHPAD; - } - -+ /* count the buttons on touchpads */ -+ if ((usage->hid & HID_USAGE_PAGE) == HID_UP_BUTTON) -+ td->buttons_count++; -+ - if (usage->usage_index) - prev_usage = &field->usage[usage->usage_index - 1]; - -@@ -728,6 +733,10 @@ static void mt_touch_input_configured(struct hid_device *hdev, - if (cls->quirks & MT_QUIRK_NOT_SEEN_MEANS_UP) - td->mt_flags |= INPUT_MT_DROP_UNUSED; - -+ /* check for clickpads */ -+ if ((td->mt_flags & INPUT_MT_POINTER) && (td->buttons_count == 1)) -+ __set_bit(INPUT_PROP_BUTTONPAD, input->propbit); -+ - input_mt_init_slots(input, td->maxcontacts, td->mt_flags); - - td->mt_flags = 0; diff --git a/Input-Revert-Revert-synaptics-use-dmax-in-input_mt_a.patch b/Input-Revert-Revert-synaptics-use-dmax-in-input_mt_a.patch deleted file mode 100644 index 1423bc6c7..000000000 --- a/Input-Revert-Revert-synaptics-use-dmax-in-input_mt_a.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Benjamin Tissoires -Date: Sun, 5 Apr 2015 13:44:12 -0700 -Subject: [PATCH] Input: Revert "Revert "synaptics - use dmax in - input_mt_assign_slots"" - -This reverts commit 09d042a2eb90 ("Revert "Input: synaptics - use dmax in -input_mt_assign_slots"") - -Now that balanced slots assignments seem to be fixed, let's re-enable the -use in synaptics.c and wait for users to complain if there are still -problems. - -Signed-off-by: Benjamin Tissoires -Acked-by: Hans de Goede -Acked-by: Henrik Rydberg ---- - drivers/input/mouse/synaptics.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c -index 907ac9bdd763..63f001530d4c 100644 ---- a/drivers/input/mouse/synaptics.c -+++ b/drivers/input/mouse/synaptics.c -@@ -67,6 +67,9 @@ - #define X_MAX_POSITIVE 8176 - #define Y_MAX_POSITIVE 8176 - -+/* maximum ABS_MT_POSITION displacement (in mm) */ -+#define DMAX 10 -+ - /***************************************************************************** - * Stuff we need even when we do not want native Synaptics support - ****************************************************************************/ -@@ -922,7 +925,7 @@ static void synaptics_report_mt_data(struct psmouse *psmouse, - pos[i].y = synaptics_invert_y(hw[i]->y); - } - -- input_mt_assign_slots(dev, slot, pos, nsemi, 0); -+ input_mt_assign_slots(dev, slot, pos, nsemi, DMAX * priv->x_res); - - for (i = 0; i < nsemi; i++) { - input_mt_slot(dev, slot[i]); diff --git a/Input-atmel_mxt_ts-add-support-for-Google-Pixel-2.patch b/Input-atmel_mxt_ts-add-support-for-Google-Pixel-2.patch deleted file mode 100644 index 2f8362edb..000000000 --- a/Input-atmel_mxt_ts-add-support-for-Google-Pixel-2.patch +++ /dev/null @@ -1,220 +0,0 @@ -From: Dmitry Torokhov -Date: Tue, 7 Apr 2015 16:30:01 -0700 -Subject: [PATCH] Input: atmel_mxt_ts - add support for Google Pixel 2 - -This change allows atmel_mxt_ts to bind to ACPI-enumerated devices in -Google Pixel 2 (2015). - -While newer version of ACPI standard allow use of device-tree-like -properties in device descriptions, the version of ACPI implemented in -Google BIOS does not support them, and we have to resort to DMI data to -specify exact characteristics of the devices (touchpad vs. touchscreen, -GPIO to button mapping, etc). - -Pixel 1 continues to use i2c devices and platform data created by -chromeos-laptop driver, since ACPI does not enumerate them. - -Reviewed-by: Javier Martinez Canillas -Tested-by: Javier Martinez Canillas -Signed-off-by: Dmitry Torokhov ---- - drivers/input/touchscreen/atmel_mxt_ts.c | 141 ++++++++++++++++++++++++++++--- - 1 file changed, 130 insertions(+), 11 deletions(-) - -diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c -index 2875ddf37289..40b98dda8f38 100644 ---- a/drivers/input/touchscreen/atmel_mxt_ts.c -+++ b/drivers/input/touchscreen/atmel_mxt_ts.c -@@ -14,6 +14,8 @@ - * - */ - -+#include -+#include - #include - #include - #include -@@ -2371,7 +2373,7 @@ static void mxt_input_close(struct input_dev *dev) - } - - #ifdef CONFIG_OF --static struct mxt_platform_data *mxt_parse_dt(struct i2c_client *client) -+static const struct mxt_platform_data *mxt_parse_dt(struct i2c_client *client) - { - struct mxt_platform_data *pdata; - u32 *keymap; -@@ -2379,7 +2381,7 @@ static struct mxt_platform_data *mxt_parse_dt(struct i2c_client *client) - int proplen, i, ret; - - if (!client->dev.of_node) -- return ERR_PTR(-ENODEV); -+ return ERR_PTR(-ENOENT); - - pdata = devm_kzalloc(&client->dev, sizeof(*pdata), GFP_KERNEL); - if (!pdata) -@@ -2410,25 +2412,132 @@ static struct mxt_platform_data *mxt_parse_dt(struct i2c_client *client) - return pdata; - } - #else --static struct mxt_platform_data *mxt_parse_dt(struct i2c_client *client) -+static const struct mxt_platform_data *mxt_parse_dt(struct i2c_client *client) - { -- dev_dbg(&client->dev, "No platform data specified\n"); -- return ERR_PTR(-EINVAL); -+ return ERR_PTR(-ENOENT); -+} -+#endif -+ -+#ifdef CONFIG_ACPI -+ -+struct mxt_acpi_platform_data { -+ const char *hid; -+ struct mxt_platform_data pdata; -+}; -+ -+static unsigned int samus_touchpad_buttons[] = { -+ KEY_RESERVED, -+ KEY_RESERVED, -+ KEY_RESERVED, -+ BTN_LEFT -+}; -+ -+static struct mxt_acpi_platform_data samus_platform_data[] = { -+ { -+ /* Touchpad */ -+ .hid = "ATML0000", -+ .pdata = { -+ .t19_num_keys = ARRAY_SIZE(samus_touchpad_buttons), -+ .t19_keymap = samus_touchpad_buttons, -+ }, -+ }, -+ { -+ /* Touchscreen */ -+ .hid = "ATML0001", -+ }, -+ { } -+}; -+ -+static const struct dmi_system_id mxt_dmi_table[] = { -+ { -+ /* 2015 Google Pixel */ -+ .ident = "Chromebook Pixel 2", -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "GOOGLE"), -+ DMI_MATCH(DMI_PRODUCT_NAME, "Samus"), -+ }, -+ .driver_data = samus_platform_data, -+ }, -+ { } -+}; -+ -+static const struct mxt_platform_data *mxt_parse_acpi(struct i2c_client *client) -+{ -+ struct acpi_device *adev; -+ const struct dmi_system_id *system_id; -+ const struct mxt_acpi_platform_data *acpi_pdata; -+ -+ /* -+ * Ignore ACPI devices representing bootloader mode. -+ * -+ * This is a bit of a hack: Google Chromebook BIOS creates ACPI -+ * devices for both application and bootloader modes, but we are -+ * interested in application mode only (if device is in bootloader -+ * mode we'll end up switching into application anyway). So far -+ * application mode addresses were all above 0x40, so we'll use it -+ * as a threshold. -+ */ -+ if (client->addr < 0x40) -+ return ERR_PTR(-ENXIO); -+ -+ adev = ACPI_COMPANION(&client->dev); -+ if (!adev) -+ return ERR_PTR(-ENOENT); -+ -+ system_id = dmi_first_match(mxt_dmi_table); -+ if (!system_id) -+ return ERR_PTR(-ENOENT); -+ -+ acpi_pdata = system_id->driver_data; -+ if (!acpi_pdata) -+ return ERR_PTR(-ENOENT); -+ -+ while (acpi_pdata->hid) { -+ if (!strcmp(acpi_device_hid(adev), acpi_pdata->hid)) -+ return &acpi_pdata->pdata; -+ -+ acpi_pdata++; -+ } -+ -+ return ERR_PTR(-ENOENT); -+} -+#else -+static const struct mxt_platform_data *mxt_parse_acpi(struct i2c_client *client) -+{ -+ return ERR_PTR(-ENOENT); - } - #endif - -+static const struct mxt_platform_data * -+mxt_get_platform_data(struct i2c_client *client) -+{ -+ const struct mxt_platform_data *pdata; -+ -+ pdata = dev_get_platdata(&client->dev); -+ if (pdata) -+ return pdata; -+ -+ pdata = mxt_parse_dt(client); -+ if (!IS_ERR(pdata) || PTR_ERR(pdata) != -ENOENT) -+ return pdata; -+ -+ pdata = mxt_parse_acpi(client); -+ if (!IS_ERR(pdata) || PTR_ERR(pdata) != -ENOENT) -+ return pdata; -+ -+ dev_err(&client->dev, "No platform data specified\n"); -+ return ERR_PTR(-EINVAL); -+} -+ - static int mxt_probe(struct i2c_client *client, const struct i2c_device_id *id) - { - struct mxt_data *data; - const struct mxt_platform_data *pdata; - int error; - -- pdata = dev_get_platdata(&client->dev); -- if (!pdata) { -- pdata = mxt_parse_dt(client); -- if (IS_ERR(pdata)) -- return PTR_ERR(pdata); -- } -+ pdata = mxt_get_platform_data(client); -+ if (IS_ERR(pdata)) -+ return PTR_ERR(pdata); - - data = kzalloc(sizeof(struct mxt_data), GFP_KERNEL); - if (!data) { -@@ -2536,6 +2645,15 @@ static const struct of_device_id mxt_of_match[] = { - }; - MODULE_DEVICE_TABLE(of, mxt_of_match); - -+#ifdef CONFIG_ACPI -+static const struct acpi_device_id mxt_acpi_id[] = { -+ { "ATML0000", 0 }, /* Touchpad */ -+ { "ATML0001", 0 }, /* Touchscreen */ -+ { } -+}; -+MODULE_DEVICE_TABLE(acpi, mxt_acpi_id); -+#endif -+ - static const struct i2c_device_id mxt_id[] = { - { "qt602240_ts", 0 }, - { "atmel_mxt_ts", 0 }, -@@ -2550,6 +2668,7 @@ static struct i2c_driver mxt_driver = { - .name = "atmel_mxt_ts", - .owner = THIS_MODULE, - .of_match_table = of_match_ptr(mxt_of_match), -+ .acpi_match_table = ACPI_PTR(mxt_acpi_id), - .pm = &mxt_pm_ops, - }, - .probe = mxt_probe, diff --git a/Input-atmel_mxt_ts-implement-support-for-T100-touch-.patch b/Input-atmel_mxt_ts-implement-support-for-T100-touch-.patch deleted file mode 100644 index 603e441e6..000000000 --- a/Input-atmel_mxt_ts-implement-support-for-T100-touch-.patch +++ /dev/null @@ -1,512 +0,0 @@ -From: Nick Dyer -Date: Mon, 6 Apr 2015 11:25:13 -0700 -Subject: [PATCH] Input: atmel_mxt_ts - implement support for T100 touch object - -Add support for the new T100 object which replaces the previous T9 -multitouch touchscreen object in recent maXTouch devices. T100 provides -improved reporting with selectable auxiliary information, and a type field -for hover/stylus/glove reporting. - -The hovering finger support was based on Chung-Yih's work in the ChromiumOS -downstream kernel: - -https://chromium-review.googlesource.com/#/c/219280/ - -Signed-off-by: Nick Dyer -Acked-by: Yufeng Shen -[javier: Factor out T9 and T100 init functions and rework hover support] -Signed-off-by: Javier Martinez Canillas -Signed-off-by: Dmitry Torokhov ---- - drivers/input/touchscreen/atmel_mxt_ts.c | 345 ++++++++++++++++++++++++++++--- - 1 file changed, 318 insertions(+), 27 deletions(-) - -diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c -index 95ee92a91bd2..1b3b845d92f4 100644 ---- a/drivers/input/touchscreen/atmel_mxt_ts.c -+++ b/drivers/input/touchscreen/atmel_mxt_ts.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - /* Version */ - #define MXT_VER_20 20 -@@ -79,6 +80,7 @@ - #define MXT_SPT_DIGITIZER_T43 43 - #define MXT_SPT_MESSAGECOUNT_T44 44 - #define MXT_SPT_CTECONFIG_T46 46 -+#define MXT_TOUCH_MULTITOUCHSCREEN_T100 100 - - /* MXT_GEN_MESSAGE_T5 object */ - #define MXT_RPTID_NOMSG 0xff -@@ -185,6 +187,36 @@ struct t9_range { - #define MXT_RESET_VALUE 0x01 - #define MXT_BACKUP_VALUE 0x55 - -+/* T100 Multiple Touch Touchscreen */ -+#define MXT_T100_CTRL 0 -+#define MXT_T100_CFG1 1 -+#define MXT_T100_TCHAUX 3 -+#define MXT_T100_XRANGE 13 -+#define MXT_T100_YRANGE 24 -+ -+#define MXT_T100_CFG_SWITCHXY BIT(5) -+ -+#define MXT_T100_TCHAUX_VECT BIT(0) -+#define MXT_T100_TCHAUX_AMPL BIT(1) -+#define MXT_T100_TCHAUX_AREA BIT(2) -+ -+#define MXT_T100_DETECT BIT(7) -+#define MXT_T100_TYPE_MASK 0x70 -+ -+enum t100_type { -+ MXT_T100_TYPE_FINGER = 1, -+ MXT_T100_TYPE_PASSIVE_STYLUS = 2, -+ MXT_T100_TYPE_HOVERING_FINGER = 4, -+ MXT_T100_TYPE_GLOVE = 5, -+ MXT_T100_TYPE_LARGE_TOUCH = 6, -+}; -+ -+#define MXT_DISTANCE_ACTIVE_TOUCH 0 -+#define MXT_DISTANCE_HOVERING 1 -+ -+#define MXT_TOUCH_MAJOR_DEFAULT 1 -+#define MXT_PRESSURE_DEFAULT 1 -+ - /* Delay times */ - #define MXT_BACKUP_TIME 50 /* msec */ - #define MXT_RESET_TIME 200 /* msec */ -@@ -244,6 +276,9 @@ struct mxt_data { - unsigned int max_y; - bool in_bootloader; - u16 mem_size; -+ u8 t100_aux_ampl; -+ u8 t100_aux_area; -+ u8 t100_aux_vect; - u8 max_reportid; - u32 config_crc; - u32 info_crc; -@@ -253,6 +288,7 @@ struct mxt_data { - bool update_input; - u8 last_message_count; - u8 num_touchids; -+ u8 multitouch; - - /* Cached parameters from object table */ - u16 T5_address; -@@ -264,6 +300,8 @@ struct mxt_data { - u8 T9_reportid_max; - u8 T19_reportid; - u16 T44_address; -+ u8 T100_reportid_min; -+ u8 T100_reportid_max; - - /* for fw update in bootloader */ - struct completion bl_completion; -@@ -771,6 +809,114 @@ static void mxt_proc_t9_message(struct mxt_data *data, u8 *message) - data->update_input = true; - } - -+static void mxt_proc_t100_message(struct mxt_data *data, u8 *message) -+{ -+ struct device *dev = &data->client->dev; -+ struct input_dev *input_dev = data->input_dev; -+ int id; -+ u8 status; -+ u8 type = 0; -+ u16 x; -+ u16 y; -+ int distance = 0; -+ int tool = 0; -+ u8 major = 0; -+ u8 pressure = 0; -+ u8 orientation = 0; -+ -+ id = message[0] - data->T100_reportid_min - 2; -+ -+ /* ignore SCRSTATUS events */ -+ if (id < 0) -+ return; -+ -+ status = message[1]; -+ x = get_unaligned_le16(&message[2]); -+ y = get_unaligned_le16(&message[4]); -+ -+ if (status & MXT_T100_DETECT) { -+ type = (status & MXT_T100_TYPE_MASK) >> 4; -+ -+ switch (type) { -+ case MXT_T100_TYPE_HOVERING_FINGER: -+ tool = MT_TOOL_FINGER; -+ distance = MXT_DISTANCE_HOVERING; -+ -+ if (data->t100_aux_vect) -+ orientation = message[data->t100_aux_vect]; -+ -+ break; -+ -+ case MXT_T100_TYPE_FINGER: -+ case MXT_T100_TYPE_GLOVE: -+ tool = MT_TOOL_FINGER; -+ distance = MXT_DISTANCE_ACTIVE_TOUCH; -+ -+ if (data->t100_aux_area) -+ major = message[data->t100_aux_area]; -+ -+ if (data->t100_aux_ampl) -+ pressure = message[data->t100_aux_ampl]; -+ -+ if (data->t100_aux_vect) -+ orientation = message[data->t100_aux_vect]; -+ -+ break; -+ -+ case MXT_T100_TYPE_PASSIVE_STYLUS: -+ tool = MT_TOOL_PEN; -+ -+ /* -+ * Passive stylus is reported with size zero so -+ * hardcode. -+ */ -+ major = MXT_TOUCH_MAJOR_DEFAULT; -+ -+ if (data->t100_aux_ampl) -+ pressure = message[data->t100_aux_ampl]; -+ -+ break; -+ -+ case MXT_T100_TYPE_LARGE_TOUCH: -+ /* Ignore suppressed touch */ -+ break; -+ -+ default: -+ dev_dbg(dev, "Unexpected T100 type\n"); -+ return; -+ } -+ } -+ -+ /* -+ * Values reported should be non-zero if tool is touching the -+ * device -+ */ -+ if (!pressure && type != MXT_T100_TYPE_HOVERING_FINGER) -+ pressure = MXT_PRESSURE_DEFAULT; -+ -+ input_mt_slot(input_dev, id); -+ -+ if (status & MXT_T100_DETECT) { -+ dev_dbg(dev, "[%u] type:%u x:%u y:%u a:%02X p:%02X v:%02X\n", -+ id, type, x, y, major, pressure, orientation); -+ -+ input_mt_report_slot_state(input_dev, tool, 1); -+ input_report_abs(input_dev, ABS_MT_POSITION_X, x); -+ input_report_abs(input_dev, ABS_MT_POSITION_Y, y); -+ input_report_abs(input_dev, ABS_MT_TOUCH_MAJOR, major); -+ input_report_abs(input_dev, ABS_MT_PRESSURE, pressure); -+ input_report_abs(input_dev, ABS_MT_DISTANCE, distance); -+ input_report_abs(input_dev, ABS_MT_ORIENTATION, orientation); -+ } else { -+ dev_dbg(dev, "[%u] release\n", id); -+ -+ /* close out slot */ -+ input_mt_report_slot_state(input_dev, 0, 0); -+ } -+ -+ data->update_input = true; -+} -+ - static int mxt_proc_message(struct mxt_data *data, u8 *message) - { - u8 report_id = message[0]; -@@ -786,9 +932,12 @@ static int mxt_proc_message(struct mxt_data *data, u8 *message) - * is not yet registered. - */ - mxt_dump_message(data, message); -- } else if (report_id >= data->T9_reportid_min -- && report_id <= data->T9_reportid_max) { -+ } else if (report_id >= data->T9_reportid_min && -+ report_id <= data->T9_reportid_max) { - mxt_proc_t9_message(data, message); -+ } else if (report_id >= data->T100_reportid_min && -+ report_id <= data->T100_reportid_max) { -+ mxt_proc_t100_message(data, message); - } else if (report_id == data->T19_reportid) { - mxt_input_button(data, message); - data->update_input = true; -@@ -1411,6 +1560,8 @@ static void mxt_free_object_table(struct mxt_data *data) - data->T9_reportid_max = 0; - data->T19_reportid = 0; - data->T44_address = 0; -+ data->T100_reportid_min = 0; -+ data->T100_reportid_max = 0; - data->max_reportid = 0; - } - -@@ -1487,6 +1638,7 @@ static int mxt_get_object_table(struct mxt_data *data) - data->T7_address = object->start_address; - break; - case MXT_TOUCH_MULTI_T9: -+ data->multitouch = MXT_TOUCH_MULTI_T9; - data->T9_reportid_min = min_id; - data->T9_reportid_max = max_id; - data->num_touchids = object->num_report_ids -@@ -1498,6 +1650,13 @@ static int mxt_get_object_table(struct mxt_data *data) - case MXT_SPT_GPIOPWM_T19: - data->T19_reportid = min_id; - break; -+ case MXT_TOUCH_MULTITOUCHSCREEN_T100: -+ data->multitouch = MXT_TOUCH_MULTITOUCHSCREEN_T100; -+ data->T100_reportid_min = min_id; -+ data->T100_reportid_max = max_id; -+ /* first two report IDs reserved */ -+ data->num_touchids = object->num_report_ids - 2; -+ break; - } - - end_address = object->start_address -@@ -1582,10 +1741,88 @@ static int mxt_read_t9_resolution(struct mxt_data *data) - return 0; - } - -+static int mxt_read_t100_config(struct mxt_data *data) -+{ -+ struct i2c_client *client = data->client; -+ int error; -+ struct mxt_object *object; -+ u16 range_x, range_y; -+ u8 cfg, tchaux; -+ u8 aux; -+ -+ object = mxt_get_object(data, MXT_TOUCH_MULTITOUCHSCREEN_T100); -+ if (!object) -+ return -EINVAL; -+ -+ error = __mxt_read_reg(client, -+ object->start_address + MXT_T100_XRANGE, -+ sizeof(range_x), &range_x); -+ if (error) -+ return error; -+ -+ le16_to_cpus(&range_x); -+ -+ error = __mxt_read_reg(client, -+ object->start_address + MXT_T100_YRANGE, -+ sizeof(range_y), &range_y); -+ if (error) -+ return error; -+ -+ le16_to_cpus(&range_y); -+ -+ error = __mxt_read_reg(client, -+ object->start_address + MXT_T100_CFG1, -+ 1, &cfg); -+ if (error) -+ return error; -+ -+ error = __mxt_read_reg(client, -+ object->start_address + MXT_T100_TCHAUX, -+ 1, &tchaux); -+ if (error) -+ return error; -+ -+ /* Handle default values */ -+ if (range_x == 0) -+ range_x = 1023; -+ -+ if (range_y == 0) -+ range_y = 1023; -+ -+ if (cfg & MXT_T100_CFG_SWITCHXY) { -+ data->max_x = range_y; -+ data->max_y = range_x; -+ } else { -+ data->max_x = range_x; -+ data->max_y = range_y; -+ } -+ -+ /* allocate aux bytes */ -+ aux = 6; -+ -+ if (tchaux & MXT_T100_TCHAUX_VECT) -+ data->t100_aux_vect = aux++; -+ -+ if (tchaux & MXT_T100_TCHAUX_AMPL) -+ data->t100_aux_ampl = aux++; -+ -+ if (tchaux & MXT_T100_TCHAUX_AREA) -+ data->t100_aux_area = aux++; -+ -+ dev_dbg(&client->dev, -+ "T100 aux mappings vect:%u ampl:%u area:%u\n", -+ data->t100_aux_vect, data->t100_aux_ampl, data->t100_aux_area); -+ -+ dev_info(&client->dev, -+ "T100 Touchscreen size X%uY%u\n", data->max_x, data->max_y); -+ -+ return 0; -+} -+ - static int mxt_input_open(struct input_dev *dev); - static void mxt_input_close(struct input_dev *dev); - --static int mxt_initialize_t9_input_device(struct mxt_data *data) -+static int mxt_initialize_input_device(struct mxt_data *data) - { - struct device *dev = &data->client->dev; - const struct mxt_platform_data *pdata = data->pdata; -@@ -1595,9 +1832,25 @@ static int mxt_initialize_t9_input_device(struct mxt_data *data) - unsigned int mt_flags = 0; - int i; - -- error = mxt_read_t9_resolution(data); -- if (error) -- dev_warn(dev, "Failed to initialize T9 resolution\n"); -+ switch (data->multitouch) { -+ case MXT_TOUCH_MULTI_T9: -+ num_mt_slots = data->T9_reportid_max - data->T9_reportid_min + 1; -+ error = mxt_read_t9_resolution(data); -+ if (error) -+ dev_warn(dev, "Failed to initialize T9 resolution\n"); -+ break; -+ -+ case MXT_TOUCH_MULTITOUCHSCREEN_T100: -+ num_mt_slots = data->num_touchids; -+ error = mxt_read_t100_config(data); -+ if (error) -+ dev_warn(dev, "Failed to read T100 config\n"); -+ break; -+ -+ default: -+ dev_err(dev, "Invalid multitouch object\n"); -+ return -EINVAL; -+ } - - input_dev = input_allocate_device(); - if (!input_dev) { -@@ -1612,9 +1865,7 @@ static int mxt_initialize_t9_input_device(struct mxt_data *data) - input_dev->open = mxt_input_open; - input_dev->close = mxt_input_close; - -- __set_bit(EV_ABS, input_dev->evbit); -- __set_bit(EV_KEY, input_dev->evbit); -- __set_bit(BTN_TOUCH, input_dev->keybit); -+ input_set_capability(input_dev, EV_KEY, BTN_TOUCH); - - if (pdata->t19_num_keys) { - __set_bit(INPUT_PROP_BUTTONPAD, input_dev->propbit); -@@ -1637,29 +1888,67 @@ static int mxt_initialize_t9_input_device(struct mxt_data *data) - } - - /* For single touch */ -- input_set_abs_params(input_dev, ABS_X, -- 0, data->max_x, 0, 0); -- input_set_abs_params(input_dev, ABS_Y, -- 0, data->max_y, 0, 0); -- input_set_abs_params(input_dev, ABS_PRESSURE, -- 0, 255, 0, 0); -+ input_set_abs_params(input_dev, ABS_X, 0, data->max_x, 0, 0); -+ input_set_abs_params(input_dev, ABS_Y, 0, data->max_y, 0, 0); -+ -+ if (data->multitouch == MXT_TOUCH_MULTI_T9 || -+ (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 && -+ data->t100_aux_ampl)) { -+ input_set_abs_params(input_dev, ABS_PRESSURE, 0, 255, 0, 0); -+ } - - /* For multi touch */ -- num_mt_slots = data->T9_reportid_max - data->T9_reportid_min + 1; - error = input_mt_init_slots(input_dev, num_mt_slots, mt_flags); - if (error) { - dev_err(dev, "Error %d initialising slots\n", error); - goto err_free_mem; - } - -- input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, -- 0, MXT_MAX_AREA, 0, 0); -+ if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100) { -+ input_set_abs_params(input_dev, ABS_MT_TOOL_TYPE, -+ 0, MT_TOOL_MAX, 0, 0); -+ input_set_abs_params(input_dev, ABS_MT_DISTANCE, -+ MXT_DISTANCE_ACTIVE_TOUCH, -+ MXT_DISTANCE_HOVERING, -+ 0, 0); -+ } -+ - input_set_abs_params(input_dev, ABS_MT_POSITION_X, - 0, data->max_x, 0, 0); - input_set_abs_params(input_dev, ABS_MT_POSITION_Y, - 0, data->max_y, 0, 0); -- input_set_abs_params(input_dev, ABS_MT_PRESSURE, -- 0, 255, 0, 0); -+ -+ if (data->multitouch == MXT_TOUCH_MULTI_T9 || -+ (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 && -+ data->t100_aux_area)) { -+ input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, -+ 0, MXT_MAX_AREA, 0, 0); -+ } -+ -+ if (data->multitouch == MXT_TOUCH_MULTI_T9 || -+ (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 && -+ data->t100_aux_ampl)) { -+ input_set_abs_params(input_dev, ABS_MT_PRESSURE, -+ 0, 255, 0, 0); -+ } -+ -+ if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 && -+ data->t100_aux_vect) { -+ input_set_abs_params(input_dev, ABS_MT_ORIENTATION, -+ 0, 255, 0, 0); -+ } -+ -+ if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 && -+ data->t100_aux_ampl) { -+ input_set_abs_params(input_dev, ABS_MT_PRESSURE, -+ 0, 255, 0, 0); -+ } -+ -+ if (data->multitouch == MXT_TOUCH_MULTITOUCHSCREEN_T100 && -+ data->t100_aux_vect) { -+ input_set_abs_params(input_dev, ABS_MT_ORIENTATION, -+ 0, 255, 0, 0); -+ } - - input_set_drvdata(input_dev, data); - -@@ -1765,9 +2054,13 @@ static int mxt_configure_objects(struct mxt_data *data, - dev_warn(dev, "Error %d updating config\n", error); - } - -- error = mxt_initialize_t9_input_device(data); -- if (error) -- return error; -+ if (data->multitouch) { -+ error = mxt_initialize_input_device(data); -+ if (error) -+ return error; -+ } else { -+ dev_warn(dev, "No touch object detected\n"); -+ } - - dev_info(dev, - "Family: %u Variant: %u Firmware V%u.%u.%02X Objects: %u\n", -@@ -2044,15 +2337,13 @@ static const struct attribute_group mxt_attr_group = { - static void mxt_start(struct mxt_data *data) - { - /* Touch enable */ -- mxt_write_object(data, -- MXT_TOUCH_MULTI_T9, MXT_TOUCH_CTRL, 0x83); -+ mxt_write_object(data, data->multitouch, MXT_TOUCH_CTRL, 0x83); - } - - static void mxt_stop(struct mxt_data *data) - { - /* Touch disable */ -- mxt_write_object(data, -- MXT_TOUCH_MULTI_T9, MXT_TOUCH_CTRL, 0); -+ mxt_write_object(data, data->multitouch, MXT_TOUCH_CTRL, 0); - } - - static int mxt_input_open(struct input_dev *dev) diff --git a/Input-atmel_mxt_ts-split-out-touchpad-initialisation.patch b/Input-atmel_mxt_ts-split-out-touchpad-initialisation.patch deleted file mode 100644 index 5b5cb6aba..000000000 --- a/Input-atmel_mxt_ts-split-out-touchpad-initialisation.patch +++ /dev/null @@ -1,100 +0,0 @@ -From: Sjoerd Simons -Date: Mon, 6 Apr 2015 13:10:30 -0700 -Subject: [PATCH] Input: atmel_mxt_ts - split out touchpad initialisation logic - -If the "linux,gpio-keymap" DT property is defined, the T19 keys are -configured and the device is setup as a touchpad rather than a touchscreen. -The logic is part of the input device initialization routine but it can be -factored out to its own function to simplify the former. - -Signed-off-by: Sjoerd Simons -Signed-off-by: Javier Martinez Canillas -Signed-off-by: Dmitry Torokhov ---- - drivers/input/touchscreen/atmel_mxt_ts.c | 52 ++++++++++++++++++-------------- - 1 file changed, 30 insertions(+), 22 deletions(-) - -diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c -index 1b3b845d92f4..2875ddf37289 100644 ---- a/drivers/input/touchscreen/atmel_mxt_ts.c -+++ b/drivers/input/touchscreen/atmel_mxt_ts.c -@@ -1822,15 +1822,37 @@ static int mxt_read_t100_config(struct mxt_data *data) - static int mxt_input_open(struct input_dev *dev); - static void mxt_input_close(struct input_dev *dev); - -+static void mxt_set_up_as_touchpad(struct input_dev *input_dev, -+ struct mxt_data *data) -+{ -+ const struct mxt_platform_data *pdata = data->pdata; -+ int i; -+ -+ input_dev->name = "Atmel maXTouch Touchpad"; -+ -+ __set_bit(INPUT_PROP_BUTTONPAD, input_dev->propbit); -+ -+ input_abs_set_res(input_dev, ABS_X, MXT_PIXELS_PER_MM); -+ input_abs_set_res(input_dev, ABS_Y, MXT_PIXELS_PER_MM); -+ input_abs_set_res(input_dev, ABS_MT_POSITION_X, -+ MXT_PIXELS_PER_MM); -+ input_abs_set_res(input_dev, ABS_MT_POSITION_Y, -+ MXT_PIXELS_PER_MM); -+ -+ for (i = 0; i < pdata->t19_num_keys; i++) -+ if (pdata->t19_keymap[i] != KEY_RESERVED) -+ input_set_capability(input_dev, EV_KEY, -+ pdata->t19_keymap[i]); -+} -+ - static int mxt_initialize_input_device(struct mxt_data *data) - { -- struct device *dev = &data->client->dev; - const struct mxt_platform_data *pdata = data->pdata; -+ struct device *dev = &data->client->dev; - struct input_dev *input_dev; - int error; - unsigned int num_mt_slots; - unsigned int mt_flags = 0; -- int i; - - switch (data->multitouch) { - case MXT_TOUCH_MULTI_T9: -@@ -1867,26 +1889,6 @@ static int mxt_initialize_input_device(struct mxt_data *data) - - input_set_capability(input_dev, EV_KEY, BTN_TOUCH); - -- if (pdata->t19_num_keys) { -- __set_bit(INPUT_PROP_BUTTONPAD, input_dev->propbit); -- -- for (i = 0; i < pdata->t19_num_keys; i++) -- if (pdata->t19_keymap[i] != KEY_RESERVED) -- input_set_capability(input_dev, EV_KEY, -- pdata->t19_keymap[i]); -- -- mt_flags |= INPUT_MT_POINTER; -- -- input_abs_set_res(input_dev, ABS_X, MXT_PIXELS_PER_MM); -- input_abs_set_res(input_dev, ABS_Y, MXT_PIXELS_PER_MM); -- input_abs_set_res(input_dev, ABS_MT_POSITION_X, -- MXT_PIXELS_PER_MM); -- input_abs_set_res(input_dev, ABS_MT_POSITION_Y, -- MXT_PIXELS_PER_MM); -- -- input_dev->name = "Atmel maXTouch Touchpad"; -- } -- - /* For single touch */ - input_set_abs_params(input_dev, ABS_X, 0, data->max_x, 0, 0); - input_set_abs_params(input_dev, ABS_Y, 0, data->max_y, 0, 0); -@@ -1897,6 +1899,12 @@ static int mxt_initialize_input_device(struct mxt_data *data) - input_set_abs_params(input_dev, ABS_PRESSURE, 0, 255, 0, 0); - } - -+ /* If device has buttons we assume it is a touchpad */ -+ if (pdata->t19_num_keys) { -+ mxt_set_up_as_touchpad(input_dev, data); -+ mt_flags |= INPUT_MT_POINTER; -+ } -+ - /* For multi touch */ - error = input_mt_init_slots(input_dev, num_mt_slots, mt_flags); - if (error) { diff --git a/Input-synaptics-allocate-3-slots-to-keep-stability-i.patch b/Input-synaptics-allocate-3-slots-to-keep-stability-i.patch deleted file mode 100644 index 596ec0792..000000000 --- a/Input-synaptics-allocate-3-slots-to-keep-stability-i.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Benjamin Tissoires -Date: Sun, 5 Apr 2015 13:45:04 -0700 -Subject: [PATCH] Input: synaptics - allocate 3 slots to keep stability in - image sensors - -When slowly dropping 1, 2 and then 3 fingers on an image sensor touchpad, -we can see that the first finger gets reassigned a new slot while it did -not move. This is due to the kernel tracking algorithm which can not assign -correctly the 3 touches, being out of slots. - -Declaring that we support 3 slots allows to actually forward: -slot 0 -> down, slot 1 -> up, slot 2 -> down - -Signed-off-by: Benjamin Tissoires -Acked-by: Hans de Goede -Acked-by: Henrik Rydberg ---- - drivers/input/mouse/synaptics.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c -index 63f001530d4c..41c9facc891b 100644 ---- a/drivers/input/mouse/synaptics.c -+++ b/drivers/input/mouse/synaptics.c -@@ -1194,7 +1194,7 @@ static void set_input_params(struct psmouse *psmouse, - ABS_MT_POSITION_Y); - /* Image sensors can report per-contact pressure */ - input_set_abs_params(dev, ABS_MT_PRESSURE, 0, 255, 0, 0); -- input_mt_init_slots(dev, 2, INPUT_MT_POINTER | INPUT_MT_TRACK); -+ input_mt_init_slots(dev, 3, INPUT_MT_POINTER | INPUT_MT_TRACK); - - /* Image sensors can signal 4 and 5 finger clicks */ - __set_bit(BTN_TOOL_QUADTAP, dev->keybit); diff --git a/Input-synaptics-pin-3-touches-when-the-firmware-repo.patch b/Input-synaptics-pin-3-touches-when-the-firmware-repo.patch index 86dabcd88..e697968c7 100644 --- a/Input-synaptics-pin-3-touches-when-the-firmware-repo.patch +++ b/Input-synaptics-pin-3-touches-when-the-firmware-repo.patch @@ -27,10 +27,10 @@ Signed-off-by: Benjamin Tissoires 1 file changed, 8 insertions(+) diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c -index 41c9facc891b..ef91cbd03f92 100644 +index 3a32caf06bf1..58102970f94f 100644 --- a/drivers/input/mouse/synaptics.c +++ b/drivers/input/mouse/synaptics.c -@@ -935,6 +935,14 @@ static void synaptics_report_mt_data(struct psmouse *psmouse, +@@ -940,6 +940,14 @@ static void synaptics_report_mt_data(struct psmouse *psmouse, input_report_abs(dev, ABS_MT_PRESSURE, hw[i]->z); } diff --git a/net-amd-Add-xgbe-a0-driver.patch b/amd-xgbe-a0-Add-support-for-XGBE-on-A0.patch similarity index 98% rename from net-amd-Add-xgbe-a0-driver.patch rename to amd-xgbe-a0-Add-support-for-XGBE-on-A0.patch index 675df129f..6b9d07dc7 100644 --- a/net-amd-Add-xgbe-a0-driver.patch +++ b/amd-xgbe-a0-Add-support-for-XGBE-on-A0.patch @@ -1,26 +1,29 @@ +From b634bc924371a7df6459af04f37c91f65ac59df2 Mon Sep 17 00:00:00 2001 From: Tom Lendacky -Date: Sat, 21 Feb 2015 12:25:12 -0500 -Subject: [PATCH] net: amd: Add xgbe-a0 driver +Date: Thu, 28 May 2015 16:38:57 -0400 +Subject: [PATCH 1/2] amd-xgbe-a0: Add support for XGBE on A0 -Add support for A0 silicon xgbe driver. This won't be upstreamed because -the HW is being replaced with a better version. +Add XGBE driver support for A0 hardware. +Signed-off-by: Tom Lendacky +[fixup timespec -> timespec64] +[use device_dma_is_coherent] Signed-off-by: Mark Salter --- drivers/net/ethernet/amd/Makefile | 1 + drivers/net/ethernet/amd/xgbe-a0/Makefile | 8 + drivers/net/ethernet/amd/xgbe-a0/xgbe-common.h | 1142 +++++++++ - drivers/net/ethernet/amd/xgbe-a0/xgbe-dcb.c | 269 ++ + drivers/net/ethernet/amd/xgbe-a0/xgbe-dcb.c | 269 +++ drivers/net/ethernet/amd/xgbe-a0/xgbe-debugfs.c | 373 +++ drivers/net/ethernet/amd/xgbe-a0/xgbe-desc.c | 636 +++++ - drivers/net/ethernet/amd/xgbe-a0/xgbe-dev.c | 2964 +++++++++++++++++++++++ - drivers/net/ethernet/amd/xgbe-a0/xgbe-drv.c | 2204 +++++++++++++++++ + drivers/net/ethernet/amd/xgbe-a0/xgbe-dev.c | 2930 +++++++++++++++++++++++ + drivers/net/ethernet/amd/xgbe-a0/xgbe-drv.c | 2218 +++++++++++++++++ drivers/net/ethernet/amd/xgbe-a0/xgbe-ethtool.c | 616 +++++ - drivers/net/ethernet/amd/xgbe-a0/xgbe-main.c | 643 +++++ + drivers/net/ethernet/amd/xgbe-a0/xgbe-main.c | 618 +++++ drivers/net/ethernet/amd/xgbe-a0/xgbe-mdio.c | 312 +++ - drivers/net/ethernet/amd/xgbe-a0/xgbe-ptp.c | 284 +++ + drivers/net/ethernet/amd/xgbe-a0/xgbe-ptp.c | 278 +++ drivers/net/ethernet/amd/xgbe-a0/xgbe.h | 868 +++++++ - 13 files changed, 10320 insertions(+) + 13 files changed, 10269 insertions(+) create mode 100644 drivers/net/ethernet/amd/xgbe-a0/Makefile create mode 100644 drivers/net/ethernet/amd/xgbe-a0/xgbe-common.h create mode 100644 drivers/net/ethernet/amd/xgbe-a0/xgbe-dcb.c @@ -35,7 +38,7 @@ Signed-off-by: Mark Salter create mode 100644 drivers/net/ethernet/amd/xgbe-a0/xgbe.h diff --git a/drivers/net/ethernet/amd/Makefile b/drivers/net/ethernet/amd/Makefile -index a38a2dce3eb3..bf0cf2f8d2db 100644 +index a38a2dc..bf0cf2f 100644 --- a/drivers/net/ethernet/amd/Makefile +++ b/drivers/net/ethernet/amd/Makefile @@ -18,3 +18,4 @@ obj-$(CONFIG_PCNET32) += pcnet32.o @@ -45,7 +48,7 @@ index a38a2dce3eb3..bf0cf2f8d2db 100644 +obj-$(CONFIG_AMD_XGBE) += xgbe-a0/ diff --git a/drivers/net/ethernet/amd/xgbe-a0/Makefile b/drivers/net/ethernet/amd/xgbe-a0/Makefile new file mode 100644 -index 000000000000..561116faadae +index 0000000..561116f --- /dev/null +++ b/drivers/net/ethernet/amd/xgbe-a0/Makefile @@ -0,0 +1,8 @@ @@ -59,7 +62,7 @@ index 000000000000..561116faadae +amd-xgbe-a0-$(CONFIG_DEBUG_FS) += xgbe-debugfs.o diff --git a/drivers/net/ethernet/amd/xgbe-a0/xgbe-common.h b/drivers/net/ethernet/amd/xgbe-a0/xgbe-common.h new file mode 100644 -index 000000000000..75b08c63d39f +index 0000000..75b08c6 --- /dev/null +++ b/drivers/net/ethernet/amd/xgbe-a0/xgbe-common.h @@ -0,0 +1,1142 @@ @@ -1207,7 +1210,7 @@ index 000000000000..75b08c63d39f +#endif diff --git a/drivers/net/ethernet/amd/xgbe-a0/xgbe-dcb.c b/drivers/net/ethernet/amd/xgbe-a0/xgbe-dcb.c new file mode 100644 -index 000000000000..343301cbf7b4 +index 0000000..343301c --- /dev/null +++ b/drivers/net/ethernet/amd/xgbe-a0/xgbe-dcb.c @@ -0,0 +1,269 @@ @@ -1482,7 +1485,7 @@ index 000000000000..343301cbf7b4 +} diff --git a/drivers/net/ethernet/amd/xgbe-a0/xgbe-debugfs.c b/drivers/net/ethernet/amd/xgbe-a0/xgbe-debugfs.c new file mode 100644 -index 000000000000..ecfa6f91da22 +index 0000000..ecfa6f9 --- /dev/null +++ b/drivers/net/ethernet/amd/xgbe-a0/xgbe-debugfs.c @@ -0,0 +1,373 @@ @@ -1861,7 +1864,7 @@ index 000000000000..ecfa6f91da22 +} diff --git a/drivers/net/ethernet/amd/xgbe-a0/xgbe-desc.c b/drivers/net/ethernet/amd/xgbe-a0/xgbe-desc.c new file mode 100644 -index 000000000000..5dd57779c82c +index 0000000..5dd5777 --- /dev/null +++ b/drivers/net/ethernet/amd/xgbe-a0/xgbe-desc.c @@ -0,0 +1,636 @@ @@ -2503,10 +2506,10 @@ index 000000000000..5dd57779c82c +} diff --git a/drivers/net/ethernet/amd/xgbe-a0/xgbe-dev.c b/drivers/net/ethernet/amd/xgbe-a0/xgbe-dev.c new file mode 100644 -index 000000000000..f6a3a581cc21 +index 0000000..2d88739 --- /dev/null +++ b/drivers/net/ethernet/amd/xgbe-a0/xgbe-dev.c -@@ -0,0 +1,2964 @@ +@@ -0,0 +1,2930 @@ +/* + * AMD 10Gb Ethernet driver + * @@ -5137,14 +5140,6 @@ index 000000000000..f6a3a581cc21 + + XGMAC_DMA_IOWRITE_BITS(channel, DMA_CH_TCR, ST, 0); + } -+ -+ /*TODO: Poll to be sure the channels have stopped? -+ while (count--) { -+ if (XGMAC_IOREAD_BITS(pdata, DMA_DSR0, TPS) == 6) -+ break; -+ mdelay(1); -+ } -+ */ +} + +static void xgbe_enable_rx(struct xgbe_prv_data *pdata) @@ -5196,15 +5191,6 @@ index 000000000000..f6a3a581cc21 + + XGMAC_DMA_IOWRITE_BITS(channel, DMA_CH_RCR, SR, 0); + } -+ -+ /*TODO: Poll to be sure the channels have stopped? -+ while (count--) { -+ dma_sr0 = XGMAC_IOREAD_BITS(pdata, DMA_DSR0, RPS); -+ if (dma_sr0 == 3 || dma_sr0 == 4) -+ break; -+ mdelay(1); -+ } -+ */ +} + +static void xgbe_powerup_tx(struct xgbe_prv_data *pdata) @@ -5250,14 +5236,6 @@ index 000000000000..f6a3a581cc21 + + XGMAC_DMA_IOWRITE_BITS(channel, DMA_CH_TCR, ST, 0); + } -+ -+ /*TODO: Poll to be sure the channels have stopped? -+ while (count--) { -+ if (XGMAC_IOREAD_BITS(pdata, DMA_DSR0, TPS) == 6) -+ break; -+ mdelay(1); -+ } -+ */ +} + +static void xgbe_powerup_rx(struct xgbe_prv_data *pdata) @@ -5288,15 +5266,6 @@ index 000000000000..f6a3a581cc21 + + XGMAC_DMA_IOWRITE_BITS(channel, DMA_CH_RCR, SR, 0); + } -+ -+ /*TODO: Poll to be sure the channels have stopped? -+ while (count--) { -+ dma_sr0 = XGMAC_IOREAD_BITS(pdata, DMA_DSR0, RPS); -+ if (dma_sr0 == 3 || dma_sr0 == 4) -+ break; -+ mdelay(1); -+ } -+ */ +} + +static int xgbe_init(struct xgbe_prv_data *pdata) @@ -5473,10 +5442,10 @@ index 000000000000..f6a3a581cc21 +} diff --git a/drivers/net/ethernet/amd/xgbe-a0/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe-a0/xgbe-drv.c new file mode 100644 -index 000000000000..acaeaf56b63f +index 0000000..ca4af9e --- /dev/null +++ b/drivers/net/ethernet/amd/xgbe-a0/xgbe-drv.c -@@ -0,0 +1,2204 @@ +@@ -0,0 +1,2218 @@ +/* + * AMD 10Gb Ethernet driver + * @@ -5821,12 +5790,13 @@ index 000000000000..acaeaf56b63f + dma_ch_isr = XGMAC_DMA_IOREAD(channel, DMA_CH_SR); + DBGPR(" DMA_CH%u_ISR = %08x\n", i, dma_ch_isr); + -+ /* If we get a TI or RI interrupt that means per channel DMA -+ * interrupts are not enabled, so we use the private data napi -+ * structure, not the per channel napi structure ++ /* The TI or RI interrupt bits may still be set even if using ++ * per channel DMA interrupts. Check to be sure those are not ++ * enabled before using the private data napi structure. + */ -+ if (XGMAC_GET_BITS(dma_ch_isr, DMA_CH_SR, TI) || -+ XGMAC_GET_BITS(dma_ch_isr, DMA_CH_SR, RI)) { ++ if (!pdata->per_channel_irq && ++ (XGMAC_GET_BITS(dma_ch_isr, DMA_CH_SR, TI) || ++ XGMAC_GET_BITS(dma_ch_isr, DMA_CH_SR, RI))) { + if (napi_schedule_prep(&pdata->napi)) { + /* Disable Tx and Rx interrupts */ + xgbe_disable_rx_tx_ints(pdata); @@ -6001,6 +5971,7 @@ index 000000000000..acaeaf56b63f + hw_feat->sph = XGMAC_GET_BITS(mac_hfr1, MAC_HWF1R, SPHEN); + hw_feat->tso = XGMAC_GET_BITS(mac_hfr1, MAC_HWF1R, TSOEN); + hw_feat->dma_debug = XGMAC_GET_BITS(mac_hfr1, MAC_HWF1R, DBGMEMA); ++ hw_feat->rss = XGMAC_GET_BITS(mac_hfr1, MAC_HWF1R, RSSEN); + hw_feat->tc_cnt = XGMAC_GET_BITS(mac_hfr1, MAC_HWF1R, NUMTC); + hw_feat->hash_table_size = XGMAC_GET_BITS(mac_hfr1, MAC_HWF1R, + HASHTBLSZ); @@ -6030,13 +6001,14 @@ index 000000000000..acaeaf56b63f + break; + } + -+ /* The Queue and Channel counts are zero based so increment them ++ /* The Queue, Channel and TC counts are zero based so increment them + * to get the actual number + */ + hw_feat->rx_q_cnt++; + hw_feat->tx_q_cnt++; + hw_feat->rx_ch_cnt++; + hw_feat->tx_ch_cnt++; ++ hw_feat->tc_cnt++; + +#define XGBE_TC_CNT 2 + hw_feat->tc_cnt = XGBE_TC_CNT; @@ -6088,6 +6060,68 @@ index 000000000000..acaeaf56b63f + } +} + ++static int xgbe_request_irqs(struct xgbe_prv_data *pdata) ++{ ++ struct xgbe_channel *channel; ++ struct net_device *netdev = pdata->netdev; ++ unsigned int i; ++ int ret; ++ ++ ret = devm_request_irq(pdata->dev, pdata->dev_irq, xgbe_isr, 0, ++ netdev->name, pdata); ++ if (ret) { ++ netdev_alert(netdev, "error requesting irq %d\n", ++ pdata->dev_irq); ++ return ret; ++ } ++ ++ if (!pdata->per_channel_irq) ++ return 0; ++ ++ channel = pdata->channel; ++ for (i = 0; i < pdata->channel_count; i++, channel++) { ++ snprintf(channel->dma_irq_name, ++ sizeof(channel->dma_irq_name) - 1, ++ "%s-TxRx-%u", netdev_name(netdev), ++ channel->queue_index); ++ ++ ret = devm_request_irq(pdata->dev, channel->dma_irq, ++ xgbe_dma_isr, 0, ++ channel->dma_irq_name, channel); ++ if (ret) { ++ netdev_alert(netdev, "error requesting irq %d\n", ++ channel->dma_irq); ++ goto err_irq; ++ } ++ } ++ ++ return 0; ++ ++err_irq: ++ /* Using an unsigned int, 'i' will go to UINT_MAX and exit */ ++ for (i--, channel--; i < pdata->channel_count; i--, channel--) ++ devm_free_irq(pdata->dev, channel->dma_irq, channel); ++ ++ devm_free_irq(pdata->dev, pdata->dev_irq, pdata); ++ ++ return ret; ++} ++ ++static void xgbe_free_irqs(struct xgbe_prv_data *pdata) ++{ ++ struct xgbe_channel *channel; ++ unsigned int i; ++ ++ devm_free_irq(pdata->dev, pdata->dev_irq, pdata); ++ ++ if (!pdata->per_channel_irq) ++ return; ++ ++ channel = pdata->channel; ++ for (i = 0; i < pdata->channel_count; i++, channel++) ++ devm_free_irq(pdata->dev, channel->dma_irq, channel); ++} ++ +void xgbe_a0_init_tx_coalesce(struct xgbe_prv_data *pdata) +{ + struct xgbe_hw_if *hw_if = &pdata->hw_if; @@ -6289,20 +6323,20 @@ index 000000000000..acaeaf56b63f + return -EINVAL; + } + -+ phy_stop(pdata->phydev); -+ + spin_lock_irqsave(&pdata->lock, flags); + + if (caller == XGMAC_DRIVER_CONTEXT) + netif_device_detach(netdev); + + netif_tx_stop_all_queues(netdev); -+ xgbe_napi_disable(pdata, 0); + -+ /* Powerdown Tx/Rx */ + hw_if->powerdown_tx(pdata); + hw_if->powerdown_rx(pdata); + ++ xgbe_napi_disable(pdata, 0); ++ ++ phy_stop(pdata->phydev); ++ + pdata->power_down = 1; + + spin_unlock_irqrestore(&pdata->lock, flags); @@ -6333,14 +6367,14 @@ index 000000000000..acaeaf56b63f + + phy_start(pdata->phydev); + -+ /* Enable Tx/Rx */ ++ xgbe_napi_enable(pdata, 0); ++ + hw_if->powerup_tx(pdata); + hw_if->powerup_rx(pdata); + + if (caller == XGMAC_DRIVER_CONTEXT) + netif_device_attach(netdev); + -+ xgbe_napi_enable(pdata, 0); + netif_tx_start_all_queues(netdev); + + spin_unlock_irqrestore(&pdata->lock, flags); @@ -6354,6 +6388,7 @@ index 000000000000..acaeaf56b63f +{ + struct xgbe_hw_if *hw_if = &pdata->hw_if; + struct net_device *netdev = pdata->netdev; ++ int ret; + + DBGPR("-->xgbe_start\n"); + @@ -6363,17 +6398,31 @@ index 000000000000..acaeaf56b63f + + phy_start(pdata->phydev); + ++ xgbe_napi_enable(pdata, 1); ++ ++ ret = xgbe_request_irqs(pdata); ++ if (ret) ++ goto err_napi; ++ + hw_if->enable_tx(pdata); + hw_if->enable_rx(pdata); + + xgbe_init_tx_timers(pdata); + -+ xgbe_napi_enable(pdata, 1); + netif_tx_start_all_queues(netdev); + + DBGPR("<--xgbe_start\n"); + + return 0; ++ ++err_napi: ++ xgbe_napi_disable(pdata, 1); ++ ++ phy_stop(pdata->phydev); ++ ++ hw_if->exit(pdata); ++ ++ return ret; +} + +static void xgbe_stop(struct xgbe_prv_data *pdata) @@ -6386,16 +6435,21 @@ index 000000000000..acaeaf56b63f + + DBGPR("-->xgbe_stop\n"); + -+ phy_stop(pdata->phydev); -+ + netif_tx_stop_all_queues(netdev); -+ xgbe_napi_disable(pdata, 1); + + xgbe_stop_tx_timers(pdata); + + hw_if->disable_tx(pdata); + hw_if->disable_rx(pdata); + ++ xgbe_free_irqs(pdata); ++ ++ xgbe_napi_disable(pdata, 1); ++ ++ phy_stop(pdata->phydev); ++ ++ hw_if->exit(pdata); ++ + channel = pdata->channel; + for (i = 0; i < pdata->channel_count; i++, channel++) { + if (!channel->tx_ring) @@ -6410,10 +6464,6 @@ index 000000000000..acaeaf56b63f + +static void xgbe_restart_dev(struct xgbe_prv_data *pdata) +{ -+ struct xgbe_channel *channel; -+ struct xgbe_hw_if *hw_if = &pdata->hw_if; -+ unsigned int i; -+ + DBGPR("-->xgbe_restart_dev\n"); + + /* If not running, "restart" will happen on open */ @@ -6421,19 +6471,10 @@ index 000000000000..acaeaf56b63f + return; + + xgbe_stop(pdata); -+ synchronize_irq(pdata->dev_irq); -+ if (pdata->per_channel_irq) { -+ channel = pdata->channel; -+ for (i = 0; i < pdata->channel_count; i++, channel++) -+ synchronize_irq(channel->dma_irq); -+ } + + xgbe_free_tx_data(pdata); + xgbe_free_rx_data(pdata); + -+ /* Issue software reset to device */ -+ hw_if->exit(pdata); -+ + xgbe_start(pdata); + + DBGPR("<--xgbe_restart_dev\n"); @@ -6762,10 +6803,7 @@ index 000000000000..acaeaf56b63f +static int xgbe_open(struct net_device *netdev) +{ + struct xgbe_prv_data *pdata = netdev_priv(netdev); -+ struct xgbe_hw_if *hw_if = &pdata->hw_if; + struct xgbe_desc_if *desc_if = &pdata->desc_if; -+ struct xgbe_channel *channel = NULL; -+ unsigned int i = 0; + int ret; + + DBGPR("-->xgbe_open\n"); @@ -6808,55 +6846,14 @@ index 000000000000..acaeaf56b63f + INIT_WORK(&pdata->restart_work, xgbe_restart); + INIT_WORK(&pdata->tx_tstamp_work, xgbe_tx_tstamp); + -+ /* Request interrupts */ -+ ret = devm_request_irq(pdata->dev, pdata->dev_irq, xgbe_isr, 0, -+ netdev->name, pdata); -+ if (ret) { -+ netdev_alert(netdev, "error requesting irq %d\n", -+ pdata->dev_irq); -+ goto err_rings; -+ } -+ -+ if (pdata->per_channel_irq) { -+ channel = pdata->channel; -+ for (i = 0; i < pdata->channel_count; i++, channel++) { -+ snprintf(channel->dma_irq_name, -+ sizeof(channel->dma_irq_name) - 1, -+ "%s-TxRx-%u", netdev_name(netdev), -+ channel->queue_index); -+ -+ ret = devm_request_irq(pdata->dev, channel->dma_irq, -+ xgbe_dma_isr, 0, -+ channel->dma_irq_name, channel); -+ if (ret) { -+ netdev_alert(netdev, -+ "error requesting irq %d\n", -+ channel->dma_irq); -+ goto err_irq; -+ } -+ } -+ } -+ + ret = xgbe_start(pdata); + if (ret) -+ goto err_start; ++ goto err_rings; + + DBGPR("<--xgbe_open\n"); + + return 0; + -+err_start: -+ hw_if->exit(pdata); -+ -+err_irq: -+ if (pdata->per_channel_irq) { -+ /* Using an unsigned int, 'i' will go to UINT_MAX and exit */ -+ for (i--, channel--; i < pdata->channel_count; i--, channel--) -+ devm_free_irq(pdata->dev, channel->dma_irq, channel); -+ } -+ -+ devm_free_irq(pdata->dev, pdata->dev_irq, pdata); -+ +err_rings: + desc_if->free_ring_resources(pdata); + @@ -6878,30 +6875,16 @@ index 000000000000..acaeaf56b63f +static int xgbe_close(struct net_device *netdev) +{ + struct xgbe_prv_data *pdata = netdev_priv(netdev); -+ struct xgbe_hw_if *hw_if = &pdata->hw_if; + struct xgbe_desc_if *desc_if = &pdata->desc_if; -+ struct xgbe_channel *channel; -+ unsigned int i; + + DBGPR("-->xgbe_close\n"); + + /* Stop the device */ + xgbe_stop(pdata); + -+ /* Issue software reset to device */ -+ hw_if->exit(pdata); -+ + /* Free the ring descriptors and buffers */ + desc_if->free_ring_resources(pdata); + -+ /* Release the interrupts */ -+ devm_free_irq(pdata->dev, pdata->dev_irq, pdata); -+ if (pdata->per_channel_irq) { -+ channel = pdata->channel; -+ for (i = 0; i < pdata->channel_count; i++, channel++) -+ devm_free_irq(pdata->dev, channel->dma_irq, channel); -+ } -+ + /* Free the channel and ring structures */ + xgbe_free_channels(pdata); + @@ -7683,7 +7666,7 @@ index 000000000000..acaeaf56b63f +} diff --git a/drivers/net/ethernet/amd/xgbe-a0/xgbe-ethtool.c b/drivers/net/ethernet/amd/xgbe-a0/xgbe-ethtool.c new file mode 100644 -index 000000000000..165ff1ceedcc +index 0000000..165ff1c --- /dev/null +++ b/drivers/net/ethernet/amd/xgbe-a0/xgbe-ethtool.c @@ -0,0 +1,616 @@ @@ -8305,10 +8288,10 @@ index 000000000000..165ff1ceedcc +} diff --git a/drivers/net/ethernet/amd/xgbe-a0/xgbe-main.c b/drivers/net/ethernet/amd/xgbe-a0/xgbe-main.c new file mode 100644 -index 000000000000..a85fb4965835 +index 0000000..deb8551 --- /dev/null +++ b/drivers/net/ethernet/amd/xgbe-a0/xgbe-main.c -@@ -0,0 +1,643 @@ +@@ -0,0 +1,618 @@ +/* + * AMD 10Gb Ethernet driver + * @@ -8495,13 +8478,8 @@ index 000000000000..a85fb4965835 +#ifdef CONFIG_ACPI +static int xgbe_acpi_support(struct xgbe_prv_data *pdata) +{ -+ struct acpi_device *adev = pdata->adev; + struct device *dev = pdata->dev; + u32 property; -+ acpi_handle handle; -+ acpi_status status; -+ unsigned long long data; -+ int cca; + int ret; + + /* Obtain the system clock setting */ @@ -8522,24 +8500,6 @@ index 000000000000..a85fb4965835 + } + pdata->ptpclk_rate = property; + -+ /* Retrieve the device cache coherency value */ -+ handle = adev->handle; -+ do { -+ status = acpi_evaluate_integer(handle, "_CCA", NULL, &data); -+ if (!ACPI_FAILURE(status)) { -+ cca = data; -+ break; -+ } -+ -+ status = acpi_get_parent(handle, &handle); -+ } while (!ACPI_FAILURE(status)); -+ -+ if (ACPI_FAILURE(status)) { -+ dev_err(dev, "error obtaining acpi coherency value\n"); -+ return -EINVAL; -+ } -+ pdata->coherent = !!cca; -+ + return 0; +} +#else /* CONFIG_ACPI */ @@ -8570,9 +8530,6 @@ index 000000000000..a85fb4965835 + } + pdata->ptpclk_rate = clk_get_rate(pdata->ptpclk); + -+ /* Retrieve the device cache coherency value */ -+ pdata->coherent = of_dma_is_coherent(dev->of_node); -+ + return 0; +} +#else /* CONFIG_OF */ @@ -8691,6 +8648,7 @@ index 000000000000..a85fb4965835 + goto err_io; + + /* Set the DMA coherency values */ ++ pdata->coherent = device_dma_is_coherent(pdata->dev); + if (pdata->coherent) { + pdata->axdomain = XGBE_DMA_OS_AXDOMAIN; + pdata->arcache = XGBE_DMA_OS_ARCACHE; @@ -8954,7 +8912,7 @@ index 000000000000..a85fb4965835 +module_platform_driver(xgbe_a0_driver); diff --git a/drivers/net/ethernet/amd/xgbe-a0/xgbe-mdio.c b/drivers/net/ethernet/amd/xgbe-a0/xgbe-mdio.c new file mode 100644 -index 000000000000..b84d0481bed8 +index 0000000..b84d048 --- /dev/null +++ b/drivers/net/ethernet/amd/xgbe-a0/xgbe-mdio.c @@ -0,0 +1,312 @@ @@ -9272,10 +9230,10 @@ index 000000000000..b84d0481bed8 +} diff --git a/drivers/net/ethernet/amd/xgbe-a0/xgbe-ptp.c b/drivers/net/ethernet/amd/xgbe-a0/xgbe-ptp.c new file mode 100644 -index 000000000000..c53c7b2a4b08 +index 0000000..1016aeb --- /dev/null +++ b/drivers/net/ethernet/amd/xgbe-a0/xgbe-ptp.c -@@ -0,0 +1,284 @@ +@@ -0,0 +1,278 @@ +/* + * AMD 10Gb Ethernet driver + * @@ -9449,21 +9407,15 @@ index 000000000000..c53c7b2a4b08 + struct xgbe_prv_data, + ptp_clock_info); + unsigned long flags; -+ u64 nsec; + + spin_lock_irqsave(&pdata->tstamp_lock, flags); -+ -+ nsec = timecounter_read(&pdata->tstamp_tc); -+ -+ nsec += delta; -+ timecounter_init(&pdata->tstamp_tc, &pdata->tstamp_cc, nsec); -+ ++ timecounter_adjtime(&pdata->tstamp_tc, delta); + spin_unlock_irqrestore(&pdata->tstamp_lock, flags); + + return 0; +} + -+static int xgbe_gettime(struct ptp_clock_info *info, struct timespec *ts) ++static int xgbe_gettime(struct ptp_clock_info *info, struct timespec64 *ts) +{ + struct xgbe_prv_data *pdata = container_of(info, + struct xgbe_prv_data, @@ -9477,12 +9429,12 @@ index 000000000000..c53c7b2a4b08 + + spin_unlock_irqrestore(&pdata->tstamp_lock, flags); + -+ *ts = ns_to_timespec(nsec); ++ *ts = ns_to_timespec64(nsec); + + return 0; +} + -+static int xgbe_settime(struct ptp_clock_info *info, const struct timespec *ts) ++static int xgbe_settime(struct ptp_clock_info *info, const struct timespec64 *ts) +{ + struct xgbe_prv_data *pdata = container_of(info, + struct xgbe_prv_data, @@ -9490,7 +9442,7 @@ index 000000000000..c53c7b2a4b08 + unsigned long flags; + u64 nsec; + -+ nsec = timespec_to_ns(ts); ++ nsec = timespec64_to_ns(ts); + + spin_lock_irqsave(&pdata->tstamp_lock, flags); + @@ -9520,8 +9472,8 @@ index 000000000000..c53c7b2a4b08 + info->max_adj = pdata->ptpclk_rate; + info->adjfreq = xgbe_adjfreq; + info->adjtime = xgbe_adjtime; -+ info->gettime = xgbe_gettime; -+ info->settime = xgbe_settime; ++ info->gettime64 = xgbe_gettime; ++ info->settime64 = xgbe_settime; + info->enable = xgbe_enable; + + clock = ptp_clock_register(info, pdata->dev); @@ -9562,7 +9514,7 @@ index 000000000000..c53c7b2a4b08 +} diff --git a/drivers/net/ethernet/amd/xgbe-a0/xgbe.h b/drivers/net/ethernet/amd/xgbe-a0/xgbe.h new file mode 100644 -index 000000000000..dd8500da98a6 +index 0000000..04c00d2 --- /dev/null +++ b/drivers/net/ethernet/amd/xgbe-a0/xgbe.h @@ -0,0 +1,868 @@ @@ -9692,7 +9644,7 @@ index 000000000000..dd8500da98a6 +#include +#include +#include -+#include ++#include +#include +#include + @@ -10434,3 +10386,6 @@ index 000000000000..dd8500da98a6 +#endif + +#endif +-- +2.4.5 + diff --git a/blk-loop-avoid-too-many-pending-per-work-IO.patch b/blk-loop-avoid-too-many-pending-per-work-IO.patch index 1016995b1..606882119 100644 --- a/blk-loop-avoid-too-many-pending-per-work-IO.patch +++ b/blk-loop-avoid-too-many-pending-per-work-IO.patch @@ -1,133 +1,10 @@ -Documentation/workqueue.txt: - If there is dependency among multiple work items used - during memory reclaim, they should be queued to separate - wq each with WQ_MEM_RECLAIM. - -Loop devices can be stacked, so we have to convert to per-device -workqueue. One example is Fedora live CD. - -Fixes: b5dd2f6047ca108001328aac0e8588edd15f1778 -Cc: stable@vger.kernel.org (v4.0) -Cc: Justin M. Forbes -Signed-off-by: Ming Lei ---- - drivers/block/loop.c | 30 ++++++++++++++---------------- - drivers/block/loop.h | 1 + - 2 files changed, 15 insertions(+), 16 deletions(-) - -diff --git a/drivers/block/loop.c b/drivers/block/loop.c -index ae3fcb4..3dc1598 100644 ---- a/drivers/block/loop.c -+++ b/drivers/block/loop.c -@@ -86,8 +86,6 @@ static DEFINE_MUTEX(loop_index_mutex); - static int max_part; - static int part_shift; - --static struct workqueue_struct *loop_wq; -- - /* - * Transfer functions - */ -@@ -725,6 +723,12 @@ static int loop_set_fd(struct loop_device *lo, fmode_t mode, - size = get_loop_size(lo, file); - if ((loff_t)(sector_t)size != size) - goto out_putf; -+ error = -ENOMEM; -+ lo->wq = alloc_workqueue("kloopd%d", -+ WQ_MEM_RECLAIM | WQ_HIGHPRI | WQ_UNBOUND, 0, -+ lo->lo_number); -+ if (!lo->wq) -+ goto out_putf; - - error = 0; - -@@ -872,6 +876,8 @@ static int loop_clr_fd(struct loop_device *lo) - lo->lo_flags = 0; - if (!part_shift) - lo->lo_disk->flags |= GENHD_FL_NO_PART_SCAN; -+ destroy_workqueue(lo->wq); -+ lo->wq = NULL; - mutex_unlock(&lo->lo_ctl_mutex); - /* - * Need not hold lo_ctl_mutex to fput backing file. -@@ -1425,9 +1431,13 @@ static int loop_queue_rq(struct blk_mq_hw_ctx *hctx, - const struct blk_mq_queue_data *bd) - { - struct loop_cmd *cmd = blk_mq_rq_to_pdu(bd->rq); -+ struct loop_device *lo = cmd->rq->q->queuedata; - - blk_mq_start_request(bd->rq); - -+ if (lo->lo_state != Lo_bound) -+ return -EIO; -+ - if (cmd->rq->cmd_flags & REQ_WRITE) { - struct loop_device *lo = cmd->rq->q->queuedata; - bool need_sched = true; -@@ -1441,9 +1451,9 @@ static int loop_queue_rq(struct blk_mq_hw_ctx *hctx, - spin_unlock_irq(&lo->lo_lock); - - if (need_sched) -- queue_work(loop_wq, &lo->write_work); -+ queue_work(lo->wq, &lo->write_work); - } else { -- queue_work(loop_wq, &cmd->read_work); -+ queue_work(lo->wq, &cmd->read_work); - } - - return BLK_MQ_RQ_QUEUE_OK; -@@ -1455,9 +1465,6 @@ static void loop_handle_cmd(struct loop_cmd *cmd) - struct loop_device *lo = cmd->rq->q->queuedata; - int ret = -EIO; - -- if (lo->lo_state != Lo_bound) -- goto failed; -- - if (write && (lo->lo_flags & LO_FLAGS_READ_ONLY)) - goto failed; - -@@ -1806,13 +1813,6 @@ static int __init loop_init(void) - goto misc_out; - } - -- loop_wq = alloc_workqueue("kloopd", -- WQ_MEM_RECLAIM | WQ_HIGHPRI | WQ_UNBOUND, 0); -- if (!loop_wq) { -- err = -ENOMEM; -- goto misc_out; -- } -- - blk_register_region(MKDEV(LOOP_MAJOR, 0), range, - THIS_MODULE, loop_probe, NULL, NULL); - -@@ -1850,8 +1850,6 @@ static void __exit loop_exit(void) - blk_unregister_region(MKDEV(LOOP_MAJOR, 0), range); - unregister_blkdev(LOOP_MAJOR, "loop"); - -- destroy_workqueue(loop_wq); -- - misc_deregister(&loop_misc); - } - -diff --git a/drivers/block/loop.h b/drivers/block/loop.h -index 301c27f..49564ed 100644 ---- a/drivers/block/loop.h -+++ b/drivers/block/loop.h -@@ -54,6 +54,7 @@ struct loop_device { - gfp_t old_gfp_mask; - - spinlock_t lo_lock; -+ struct workqueue_struct *wq; - struct list_head write_cmd_head; - struct work_struct write_work; - bool write_started; --- -1.9.1 If there are too many pending per work I/O, too many high priority work thread can be generated so that system performance can be effected. -This patch limits the max_active parameter of workqueue as 16. +This patch limits the max pending per work I/O as 16, +and will fackback to single queue mode when the max +number is reached. This patch fixes Fedora 22 live booting performance regression when it is booted from squashfs over dm @@ -146,24 +23,82 @@ as loop block, and ext3fs.img is inside the squashfs Fixes: b5dd2f6047ca108001328aac0e8588edd15f1778 Cc: stable@vger.kernel.org (v4.0) -Cc: Justin M. Forbes +Reported-by: Justin M. Forbes +Tested-by: Justin M. Forbes Signed-off-by: Ming Lei --- - drivers/block/loop.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + drivers/block/loop.c | 19 +++++++++++++++++-- + drivers/block/loop.h | 2 ++ + 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/drivers/block/loop.c b/drivers/block/loop.c -index 3dc1598..1bee523 100644 +index ae3fcb4..5a728c6 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c -@@ -725,7 +725,7 @@ static int loop_set_fd(struct loop_device *lo, fmode_t mode, - goto out_putf; - error = -ENOMEM; - lo->wq = alloc_workqueue("kloopd%d", -- WQ_MEM_RECLAIM | WQ_HIGHPRI | WQ_UNBOUND, 0, -+ WQ_MEM_RECLAIM | WQ_HIGHPRI | WQ_UNBOUND, 16, - lo->lo_number); - if (!lo->wq) - goto out_putf; +@@ -1425,13 +1425,24 @@ static int loop_queue_rq(struct blk_mq_hw_ctx *hctx, + const struct blk_mq_queue_data *bd) + { + struct loop_cmd *cmd = blk_mq_rq_to_pdu(bd->rq); ++ struct loop_device *lo = cmd->rq->q->queuedata; ++ bool single_queue = !!(cmd->rq->cmd_flags & REQ_WRITE); ++ ++ /* ++ * Fallback to single queue mode if the pending per work ++ * I/O number reaches 16, otherwise too many high priority ++ * worker thread may effect system performance as reported ++ * in fedora live booting from squashfs over loop. ++ */ ++ if (atomic_read(&lo->pending_per_work_io) >= 16) ++ single_queue = true; + + blk_mq_start_request(bd->rq); + +- if (cmd->rq->cmd_flags & REQ_WRITE) { +- struct loop_device *lo = cmd->rq->q->queuedata; ++ if (single_queue) { + bool need_sched = true; + ++ cmd->per_work_io = false; + spin_lock_irq(&lo->lo_lock); + if (lo->write_started) + need_sched = false; +@@ -1443,6 +1454,8 @@ static int loop_queue_rq(struct blk_mq_hw_ctx *hctx, + if (need_sched) + queue_work(loop_wq, &lo->write_work); + } else { ++ atomic_inc(&lo->pending_per_work_io); ++ cmd->per_work_io = true; + queue_work(loop_wq, &cmd->read_work); + } + +@@ -1467,6 +1480,8 @@ static void loop_handle_cmd(struct loop_cmd *cmd) + if (ret) + cmd->rq->errors = -EIO; + blk_mq_complete_request(cmd->rq); ++ if (cmd->per_work_io) ++ atomic_dec(&lo->pending_per_work_io); + } + + static void loop_queue_write_work(struct work_struct *work) +diff --git a/drivers/block/loop.h b/drivers/block/loop.h +index 301c27f..eb855f5 100644 +--- a/drivers/block/loop.h ++++ b/drivers/block/loop.h +@@ -57,6 +57,7 @@ struct loop_device { + struct list_head write_cmd_head; + struct work_struct write_work; + bool write_started; ++ atomic_t pending_per_work_io; + int lo_state; + struct mutex lo_ctl_mutex; + +@@ -68,6 +69,7 @@ struct loop_device { + struct loop_cmd { + struct work_struct read_work; + struct request *rq; ++ bool per_work_io; + struct list_head list; + }; + -- 1.9.1 diff --git a/compile-fixes.patch b/compile-fixes.patch deleted file mode 100644 index 34c08ce47..000000000 --- a/compile-fixes.patch +++ /dev/null @@ -1,6 +0,0 @@ -# -# Small compile fixes (For more involved fixes, please use a separate patch). -# -# Please add the errors from gcc before the diffs to save others having -# to do a compile to figure out what your diff is fixing. Thanks. -# diff --git a/config-arm-generic b/config-arm-generic index b45703849..e11223fb3 100644 --- a/config-arm-generic +++ b/config-arm-generic @@ -1,4 +1,5 @@ CONFIG_KUSER_HELPERS=y +# CONFIG_VDSO is not set # CONFIG_ASYMMETRIC_KEY_TYPE is not set CONFIG_COMMON_CLK=y CONFIG_EARLY_PRINTK=y @@ -42,15 +43,16 @@ CONFIG_HAVE_PERF_USER_STACK_DUMP=y # ARM AMBA generic HW CONFIG_ARM_AMBA=y # CONFIG_TEGRA_AHB is not set +CONFIG_KERNEL_MODE_NEON=y CONFIG_ARM_CCI=y CONFIG_ARM_CCN=y +CONFIG_ARM_CCI400_PMU=y CONFIG_ARM_DMA_USE_IOMMU=y CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8 CONFIG_ARM_GIC=y CONFIG_ARM_GIC_V2M=y CONFIG_ARM_GIC_V3=y CONFIG_ARM_GIC_V3_ITS=y -CONFIG_KVM_ARM_VGIC=y CONFIG_ARM_GLOBAL_TIMER=y CONFIG_ARM_SMMU=y CONFIG_MMC_ARMMMCI=y @@ -75,7 +77,8 @@ CONFIG_CLKSRC_VERSATILE=y CONFIG_POWER_RESET_VERSATILE=y # CONFIG_ARM_CHARLCD is not set -# Power/Thermal/Cpufreq +# Power management / thermal / cpu scaling +# CONFIG_ARM_CPUIDLE is not set # CONFIG_ARM_DT_BL_CPUFREQ is not set # CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set @@ -107,6 +110,20 @@ CONFIG_THERMAL_OF=y # CONFIG_MDIO_BUS_MUX_GPIO is not set # CONFIG_MDIO_BUS_MUX_MMIOREG is not set +# Mailbox +CONFIG_MAILBOX=y +CONFIG_ARM_MHU=m +# CONFIG_PL320_MBOX is not set + +# HW crypto and rng +CONFIG_ARM_CRYPTO=y +CONFIG_CRYPTO_AES_ARM=m +# CONFIG_CRYPTO_AES_ARM_BS is not set +CONFIG_CRYPTO_SHA1_ARM=m +CONFIG_CRYPTO_SHA256_ARM=m +CONFIG_CRYPTO_SHA1_ARM_NEON=m +CONFIG_CRYPTO_SHA512_ARM_NEON=m + # USB CONFIG_USB_OHCI_HCD_PLATFORM=m CONFIG_USB_EHCI_HCD_PLATFORM=m @@ -121,6 +138,7 @@ CONFIG_MMC_DW_PLTFM=m CONFIG_MMC_DW_PCI=m CONFIG_SPI_DW_MMIO=m CONFIG_SPI_DW_PCI=m +# CONFIG_SPI_DW_MID_DMA is not set # CONFIG_MMC_DW_IDMAC is not set # CONFIG_MMC_DW_K3 is not set # CONFIG_MMC_QCOM_DML is not set @@ -134,7 +152,6 @@ CONFIG_USB_DWC3=m CONFIG_USB_DWC3_DUAL_ROLE=y CONFIG_USB_DWC3_PCI=m # CONFIG_USB_DWC3_DEBUG is not set -# CONFIG_DWC3_HOST_USB3_LPM_ENABLE is not set CONFIG_DW_WATCHDOG=m CONFIG_PCIE_DW=y # CONFIG_MMC_DW_EXYNOS is not set @@ -143,6 +160,7 @@ CONFIG_PCIE_DW=y CONFIG_EXTCON=m CONFIG_EXTCON_GPIO=m CONFIG_EXTCON_ADC_JACK=m +CONFIG_EXTCON_USB_GPIO=m # CONFIG_EXTCON_SM5502 is not set # CONFIG_EXTCON_RT8973A is not set @@ -204,6 +222,7 @@ CONFIG_THERMAL_GOV_USER_SPACE=y CONFIG_CMA=y CONFIG_DMA_CMA=y # CONFIG_CMA_DEBUG is not set +CONFIG_CMA_DEBUGFS=y CONFIG_CMA_SIZE_MBYTES=16 CONFIG_CMA_SIZE_SEL_MBYTES=y # CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set @@ -237,6 +256,7 @@ CONFIG_CMA_AREAS=7 # CONFIG_PATA_PLATFORM is not set # CONFIG_USB_ULPI is not set # CONFIG_KEYBOARD_OMAP4 is not set +# CONFIG_KEYBOARD_BCM is not set # CONFIG_PHY_SAMSUNG_USB2 is not set ### turn off things which make no sense on embedded SoC @@ -295,6 +315,7 @@ CONFIG_CMA_AREAS=7 # drm # CONFIG_DRM_VMWGFX is not set +# CONFIG_DRM_MSM_DSI is not set # CONFIG_IMX_IPUV3_CORE is not set # CONFIG_DEBUG_SET_MODULE_RONX is not set diff --git a/config-arm64 b/config-arm64 index 02dc10b49..af8db0ae7 100644 --- a/config-arm64 +++ b/config-arm64 @@ -14,6 +14,9 @@ CONFIG_ARCH_SEATTLE=y # CONFIG_ARCH_FSL_LS2085A is not set # CONFIG_ARCH_MEDIATEK is not set # CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_QCOM is not set +# CONFIG_ARCH_SPRD is not set +# CONFIG_ARCH_ZYNQMP is not set # Erratum CONFIG_ARM64_ERRATUM_826319=y @@ -38,7 +41,6 @@ CONFIG_CMDLINE="console=ttyAMA0" CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_GENERIC_CSUM=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_IO=y @@ -72,8 +74,6 @@ CONFIG_SPARSEMEM_VMEMMAP=y # CONFIG_SYS_HYPERVISOR is not set # CONFIG_THERMAL is not set -CONFIG_VIRTUALIZATION=y -CONFIG_VM_EVENT_COUNTERS=y CONFIG_EFI=y CONFIG_EFI_VARS=y @@ -95,8 +95,6 @@ CONFIG_CRYPTO_DEV_CCP=y CONFIG_CRYPTO_DEV_CCP_DD=m CONFIG_CRYPTO_DEV_CCP_CRYPTO=m -CONFIG_ARM64_CPUIDLE=y - # APM Xgene CONFIG_POWER_RESET_XGENE=y CONFIG_COMMON_CLK_XGENE=y @@ -108,6 +106,7 @@ CONFIG_RTC_DRV_XGENE=m CONFIG_HW_RANDOM_XGENE=m CONFIG_GPIO_XGENE=y CONFIG_GPIO_XGENE_SB=m +CONFIG_XGENE_DMA=m # busted build for various reasons # uses pci_* for some reason to allocate DMA buffers @@ -126,7 +125,6 @@ CONFIG_HOTPLUG_PCI=y # CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set # CONFIG_PNP_DEBUG_MESSAGES is not set -CONFIG_SBSAUART_TTY=y CONFIG_I2C_SCMI=m CONFIG_SENSORS_ACPI_POWER=m @@ -140,6 +138,7 @@ CONFIG_ACPI_IPMI=y CONFIG_ACPI_CONTAINER=y CONFIG_ACPI_HED=m CONFIG_ACPI_CUSTOM_METHOD=m +CONFIG_PCC=y CONFIG_NET_SB1000=y CONFIG_AMD_XGBE=m @@ -166,4 +165,4 @@ CONFIG_SATA_AHCI_PLATFORM=y CONFIG_DEBUG_SECTION_MISMATCH=y -CONFIG_EDAC_XGENE=y +# CONFIG_FSL_MC_BUS is not set diff --git a/config-armv7 b/config-armv7 index 41dc87c45..51386606c 100644 --- a/config-armv7 +++ b/config-armv7 @@ -2,7 +2,6 @@ # CONFIG_ARCH_BERLIN is not set # CONFIG_ARCH_KEYSTONE is not set -CONFIG_ARCH_MVEBU=y CONFIG_ARCH_MXC=y CONFIG_ARCH_OMAP3=y CONFIG_ARCH_OMAP4=y @@ -18,56 +17,6 @@ CONFIG_ARCH_ZYNQ=y # CONFIG_ARM_VIRT_EXT is not set # CONFIG_VIRTUALIZATION is not set -# mvebu -CONFIG_MACH_ARMADA_370=y -CONFIG_MACH_ARMADA_375=y -CONFIG_MACH_ARMADA_38X=y -CONFIG_MACH_ARMADA_XP=y -CONFIG_MACH_DOVE=y - -CONFIG_MVEBU_DEVBUS=y -CONFIG_PCI_MVEBU=y -CONFIG_CACHE_TAUROS2=y -CONFIG_MV_XOR=y -CONFIG_CRYPTO_DEV_MV_CESA=m -CONFIG_MV643XX_ETH=m -CONFIG_PINCTRL_MVEBU=y -CONFIG_PINCTRL_ARMADA_370=y -CONFIG_PINCTRL_ARMADA_XP=y -# CONFIG_ARM_MVEBU_V7_CPUIDLE is not set -CONFIG_PINCTRL_DOVE=y -CONFIG_EDAC_MV64X60=m -CONFIG_RTC_DRV_S35390A=m -CONFIG_RTC_DRV_88PM80X=m -CONFIG_RTC_DRV_ISL12057=m -CONFIG_RTC_DRV_MV=m -CONFIG_RTC_DRV_ARMADA38X=m -CONFIG_MVNETA=m -CONFIG_GPIO_MVEBU=y -CONFIG_MVEBU_CLK_CORE=y -CONFIG_MVEBU_CLK_COREDIV=y -CONFIG_MMC_MVSDIO=m -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 -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_COMMON_CLK_SI5351=m -CONFIG_RTC_DRV_ARMADA38X=m -# CONFIG_CACHE_FEROCEON_L2 is not set -# CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set - # omap CONFIG_ARCH_OMAP2PLUS_TYPICAL=y CONFIG_SOC_OMAP5=y @@ -75,7 +24,6 @@ CONFIG_SOC_OMAP5=y CONFIG_SOC_OMAP3430=y CONFIG_SOC_TI81XX=y # CONFIG_MACH_CM_T35 is not set -# CONFIG_MACH_DEVKIT8000 is not set # CONFIG_MACH_NOKIA_RX51 is not set # CONFIG_MACH_OMAP_LDP is not set # CONFIG_MACH_OMAP3_BEAGLE is not set @@ -84,8 +32,6 @@ CONFIG_SOC_TI81XX=y # CONFIG_MACH_OMAP3_PANDORA is not set # CONFIG_MACH_OMAP3_TORPEDO is not set # CONFIG_MACH_OVERO is not set -# CONFIG_MACH_SBC3530 is not set -# CONFIG_MACH_TOUCHBOOK is not set CONFIG_SOC_HAS_REALTIME_COUNTER=y CONFIG_OMAP_RESET_CLOCKS=y @@ -102,6 +48,7 @@ CONFIG_DMA_OMAP=m CONFIG_OMAP_IOMMU=y CONFIG_HWSPINLOCK_OMAP=m # CONFIG_OMAP3_SDRC_AC_TIMING is not set +# CONFIG_PHY_DM816X_USB is not set CONFIG_SERIAL_OMAP=y CONFIG_SERIAL_OMAP_CONSOLE=y @@ -296,7 +243,6 @@ CONFIG_TI_CPSW_ALE=m CONFIG_TI_CPTS=y # Builtin needed for BBone White CONFIG_REGULATOR_TPS65217=y -CONFIG_INPUT_TPS65218_PWRBUTTON=m CONFIG_TI_EMIF=m CONFIG_DRM_TILCDC=m CONFIG_SPI_DAVINCI=m @@ -313,6 +259,7 @@ CONFIG_TI_AM335X_ADC=m CONFIG_PWM_TIPWMSS=y CONFIG_MFD_TPS65218=m CONFIG_REGULATOR_TPS65218=m +CONFIG_INPUT_TPS65218_PWRBUTTON=m CONFIG_VIDEO_AM437X_VPFE=m # QCom @@ -321,7 +268,6 @@ CONFIG_ARCH_MSM8960=y CONFIG_ARCH_MSM8974=y CONFIG_SERIAL_MSM=y CONFIG_SERIAL_MSM_CONSOLE=y -CONFIG_SERIAL_MSM_HS=m CONFIG_PINCTRL_APQ8064=m CONFIG_PINCTRL_APQ8084=m CONFIG_PINCTRL_IPQ8064=m @@ -330,6 +276,7 @@ CONFIG_PINCTRL_MSM8X74=m CONFIG_PINCTRL_MSM8916=m CONFIG_PINCTRL_QCOM_SPMI_PMIC=m CONFIG_COMMON_CLK_QCOM=m +# CONFIG_MSM_GCC_8916 is not set # CONFIG_IPQ_LCC_806X is not set # CONFIG_MSM_LCC_8960 is not set CONFIG_MFD_QCOM_RPM=m @@ -365,6 +312,7 @@ CONFIG_MFD_PM8XXX=m CONFIG_KEYBOARD_PMIC8XXX=m CONFIG_INPUT_PM8XXX_VIBRATOR=m CONFIG_INPUT_PMIC8XXX_PWRKEY=m +CONFIG_INPUT_PM8941_PWRKEY=m CONFIG_RTC_DRV_PM8XXX=m # CONFIG_DRM_MSM_REGISTER_LOGGING is not set CONFIG_QCOM_WDT=m @@ -373,6 +321,12 @@ CONFIG_SPMI=m CONFIG_SPMI_MSM_PMIC_ARB=m CONFIG_QCOM_SPMI_IADC=m CONFIG_QCOM_SPMI_VADC=m +CONFIG_LEDS_PM8941_WLED=m +CONFIG_SND_SOC_QCOM=m +CONFIG_SND_SOC_LPASS_CPU=m +CONFIG_SND_SOC_LPASS_PLATFORM=m +CONFIG_SND_SOC_STORM=m +CONFIG_PHY_QCOM_UFS=m # i.MX # CONFIG_MXC_DEBUG_BOARD is not set @@ -401,6 +355,8 @@ CONFIG_USB_CHIPIDEA_HOST=y CONFIG_USB_FSL_USB2=m CONFIG_NET_VENDOR_FREESCALE=y CONFIG_FEC=m +# CONFIG_FSL_PQ_MDIO is not set +# CONFIG_FSL_XGMAC_MDIO is not set CONFIG_KEYBOARD_IMX=m CONFIG_KEYBOARD_STMPE=m CONFIG_TOUCHSCREEN_STMPE=m @@ -613,7 +569,7 @@ CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y CONFIG_COMMON_CLK_AXI_CLKGEN=m CONFIG_COMMON_CLK_SI570=m CONFIG_COMMON_CLK_XLNX_CLKWZRD=m -CONFIG_ARM_ZYNQ_CPUIDLE=y +# CONFIG_ARM_ZYNQ_CPUIDLE is not set CONFIG_LATTICE_ECP3_CONFIG=m CONFIG_NET_VENDOR_XILINX=y CONFIG_XILINX_EMACLITE=m @@ -664,4 +620,3 @@ CONFIG_REGULATOR_MAX8649=m CONFIG_REGULATOR_MAX8660=m CONFIG_REGULATOR_MAX8907=m CONFIG_REGULATOR_MAX8952=m -CONFIG_REGULATOR_MAX8973=m diff --git a/config-armv7-generic b/config-armv7-generic index f403e8174..48dac0ca1 100644 --- a/config-armv7-generic +++ b/config-armv7-generic @@ -14,7 +14,6 @@ CONFIG_VFP=y CONFIG_VFPv3=y CONFIG_NEON=y CONFIG_IWMMXT=y -CONFIG_KERNEL_MODE_NEON=y CONFIG_ARM_UNWIND=y CONFIG_ARM_THUMB=y @@ -72,6 +71,8 @@ CONFIG_ARCH_VIRT=y # CONFIG_ARCH_VEXPRESS_SPC is not set # CONFIG_ARCH_WM8850 is not set # CONFIG_ARCH_DIGICOLOR is not set +# CONFIG_ARCH_ALPINE is not set +# CONFIG_ARCH_AT91 is not set # errata # v5/v6 @@ -116,17 +117,12 @@ CONFIG_RCU_FANOUT=32 CONFIG_CHECKPOINT_RESTORE=y # Power management / thermal / cpu scaling -CONFIG_CPU_IDLE=y -# CONFIG_CPU_IDLE_GOV_LADDER is not set -CONFIG_CPU_IDLE_GOV_MENU=y -# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set - CONFIG_PM_OPP=y CONFIG_ARM_CPU_SUSPEND=y CONFIG_ARM_PSCI=y CONFIG_THERMAL=y CONFIG_CLOCK_THERMAL=y -CONFIG_CPUFREQ_DT=y +CONFIG_CPUFREQ_DT=m # CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set CONFIG_PM_DEVFREQ=y CONFIG_PM_DEVFREQ_EVENT=y @@ -144,6 +140,7 @@ CONFIG_UACCESS_WITH_MEMCPY=y CONFIG_PCI_HOST_GENERIC=y # CONFIG_PCI_LAYERSCAPE is not set +# CONFIG_PCIE_IPROC is not set CONFIG_LBDAF=y @@ -193,6 +190,7 @@ CONFIG_STMMAC_PLATFORM=m CONFIG_EEPROM_SUNXI_SID=m CONFIG_RTC_DRV_SUNXI=m CONFIG_PHY_SUN4I_USB=m +# CONFIG_PHY_SUN9I_USB is not set CONFIG_AHCI_SUNXI=m CONFIG_SPI_SUN4I=m CONFIG_SPI_SUN6I=m @@ -202,6 +200,7 @@ CONFIG_GPIO_PCA953X=m CONFIG_TOUCHSCREEN_SUN4I=m CONFIG_MFD_AXP20X=y CONFIG_REGULATOR_AXP20X=m +CONFIG_AXP288_FUEL_GAUGE=m CONFIG_IR_SUNXI=m CONFIG_MDIO_SUN4I=m CONFIG_SUN4I_EMAC=m @@ -225,14 +224,14 @@ CONFIG_SOC_EXYNOS5410=y CONFIG_SOC_EXYNOS5800=y CONFIG_SERIAL_SAMSUNG=y CONFIG_SERIAL_SAMSUNG_CONSOLE=y +CONFIG_ARM_EXYNOS_CPUFREQ=m CONFIG_ARM_EXYNOS5250_CPUFREQ=y -CONFIG_ARM_EXYNOS5440_CPUFREQ=y +CONFIG_ARM_EXYNOS5440_CPUFREQ=m CONFIG_ARM_EXYNOS_CPU_FREQ_BOOST_SW=y -CONFIG_ARM_EXYNOS_CPUIDLE=y -CONFIG_DEVFREQ_EVENT_EXYNOS_PPMU=y +# CONFIG_ARM_EXYNOS_CPUIDLE is not set CONFIG_ARM_EXYNOS5_BUS_DEVFREQ=m # CONFIG_EXYNOS5420_MCPM not set -CONFIG_ARM_EXYNOS_CPUFREQ=m +CONFIG_DEVFREQ_EVENT_EXYNOS_PPMU=y CONFIG_I2C_EXYNOS5=m CONFIG_I2C_S3C2410=m @@ -397,6 +396,58 @@ CONFIG_RTC_DRV_AS3722=y CONFIG_TI_SOC_THERMAL=m CONFIG_TI_THERMAL=y +# mvebu +CONFIG_ARCH_MVEBU=y +CONFIG_MACH_ARMADA_370=y +CONFIG_MACH_ARMADA_375=y +CONFIG_MACH_ARMADA_38X=y +CONFIG_MACH_ARMADA_39X=y +CONFIG_MACH_ARMADA_XP=y +CONFIG_MACH_DOVE=y + +CONFIG_MVEBU_DEVBUS=y +CONFIG_PCI_MVEBU=y +CONFIG_CACHE_TAUROS2=y +CONFIG_MV_XOR=y +CONFIG_CRYPTO_DEV_MV_CESA=m +CONFIG_MV643XX_ETH=m +CONFIG_PINCTRL_MVEBU=y +CONFIG_PINCTRL_ARMADA_370=y +CONFIG_PINCTRL_ARMADA_XP=y +# CONFIG_ARM_MVEBU_V7_CPUIDLE is not set +CONFIG_PINCTRL_DOVE=y +CONFIG_EDAC_MV64X60=m +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_88PM80X=m +CONFIG_RTC_DRV_ISL12057=m +CONFIG_RTC_DRV_MV=m +CONFIG_RTC_DRV_ARMADA38X=m +CONFIG_MVNETA=m +CONFIG_GPIO_MVEBU=y +CONFIG_MVEBU_CLK_CORE=y +CONFIG_MVEBU_CLK_COREDIV=y +CONFIG_MMC_MVSDIO=m +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 +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_COMMON_CLK_SI5351=m +CONFIG_RTC_DRV_ARMADA38X=m +# CONFIG_CACHE_FEROCEON_L2 is not set +# CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set + # DRM panels CONFIG_DRM_PANEL=y CONFIG_DRM_PANEL_SIMPLE=m @@ -447,6 +498,7 @@ CONFIG_USB_CONFIGFS_SERIAL=y # CONFIG_USB_CONFIGFS_F_MIDI is not set # CONFIG_USB_CONFIGFS_F_HID is not set # CONFIG_USB_CONFIGFS_F_UVC is not set +# CONFIG_USB_CONFIGFS_F_PRINTER is not set # CONFIG_USB_GADGET_DEBUG is not set # CONFIG_USB_GADGET_DEBUG_FILES is not set @@ -495,6 +547,7 @@ CONFIG_PINCONF=y CONFIG_PINCTRL=y CONFIG_PINCTRL_SINGLE=y CONFIG_GENERIC_PINCONF=y +# CONFIG_PINCTRL_AMD is not set # CONFIG_PINCTRL_SAMSUNG is not set # CONFIG_PINCTRL_MSM8X74 is not set # CONFIG_PINCTRL_BCM281XX is not set @@ -551,21 +604,15 @@ CONFIG_I2C_DESIGNWARE_PLATFORM=m CONFIG_I2C_MV64XXX=m # HW crypto and rng -CONFIG_CRYPTO_SHA1_ARM=m -CONFIG_CRYPTO_AES_ARM=m -# CONFIG_CRYPTO_AES_ARM_BS is not set -CONFIG_CRYPTO_SHA1_ARM_NEON=m -CONFIG_CRYPTO_SHA512_ARM_NEON=m +# CONFIG_CRYPTO_SHA1_ARM_CE is not set +# CONFIG_CRYPTO_SHA2_ARM_CE is not set +# CONFIG_CRYPTO_AES_ARM_CE is not set +# CONFIG_CRYPTO_GHASH_ARM_CE is not set # DMA CONFIG_TI_PRIV_EDMA=y CONFIG_TI_EDMA=y -# Watchdog - -# Mailbox -CONFIG_MAILBOX=y - # MTD # CONFIG_MG_DISK is not set CONFIG_MTD_DATAFLASH=m @@ -757,6 +804,9 @@ CONFIG_UBIFS_FS_ADVANCED_COMPR=y CONFIG_UBIFS_FS_LZO=y CONFIG_UBIFS_FS_ZLIB=y +# vfio +# CONFIG_VFIO_PLATFORM is not set + # Sensors CONFIG_SENSORS_HTU21=m @@ -767,6 +817,8 @@ CONFIG_MFD_CROS_EC_SPI=m CONFIG_KEYBOARD_CROS_EC=m CONFIG_I2C_CROS_EC_TUNNEL=m CONFIG_SND_SOC_TS3A227E=m +CONFIG_CHROME_PLATFORMS=y +CONFIG_CROS_EC_CHARDEV=m CONFIG_R8188EU=m # CONFIG_88EU_AP_MODE is not set @@ -830,6 +882,7 @@ CONFIG_R8188EU=m # CONFIG_POWER_RESET_BRCMSTB is not set # CONFIG_INPUT_TPS65218_PWRBUTTON is not set # CONFIG_CLK_QORIQ is not set +# CONFIG_QORIQ_CPUFREQ is not set # Debug options. We need to deal with them at some point like x86 # CONFIG_DEBUG_USER is not set diff --git a/config-armv7-lpae b/config-armv7-lpae index 87a209a2f..5166b6cd4 100644 --- a/config-armv7-lpae +++ b/config-armv7-lpae @@ -1,7 +1,6 @@ # ARM A15 lpae unified arch kernel CONFIG_ARCH_KEYSTONE=y -# CONFIG_ARCH_MVEBU is not set # CONFIG_ARCH_MXC is not set # CONFIG_ARCH_OMAP3 is not set # CONFIG_ARCH_OMAP4 is not set @@ -16,7 +15,6 @@ CONFIG_ARM_LPAE=y CONFIG_SYS_SUPPORTS_HUGETLBFS=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y CONFIG_ARM_VIRT_EXT=y -CONFIG_VIRTUALIZATION=y CONFIG_ARM_DMA_IOMMU_ALIGNMENT=8 CONFIG_CMA_SIZE_SEL_MBYTES=y @@ -29,7 +27,6 @@ CONFIG_ARM_ERRATA_773022=y CONFIG_KVM=y CONFIG_KVM_ARM_HOST=y CONFIG_KVM_ARM_MAX_VCPUS=8 -CONFIG_KVM_ARM_TIMER=y # CONFIG_XEN is not set CONFIG_XEN_FBDEV_FRONTEND=y @@ -54,7 +51,7 @@ CONFIG_XEN_WDT=m CONFIG_KEYSTONE_USB_PHY=m CONFIG_USB_DWC3_KEYSTONE=m CONFIG_GPIO_DAVINCI=y -CONFIG_I2C_DAVINCI=m +# CONFIG_I2C_DAVINCI is not set CONFIG_TI_AEMIF=m CONFIG_POWER_RESET_KEYSTONE=y CONFIG_DAVINCI_WATCHDOG=m diff --git a/config-generic b/config-generic index dfb2b41e2..9d8e10606 100644 --- a/config-generic +++ b/config-generic @@ -52,6 +52,7 @@ CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_FUTEX=y CONFIG_EPOLL=y +CONFIG_BPF_SYSCALL=y CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y @@ -202,6 +203,7 @@ CONFIG_BINFMT_MISC=m # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_CDCE706 is not set +# CONFIG_COMMON_CLK_PWM is not set # # Generic Driver Options @@ -264,6 +266,7 @@ CONFIG_MTD=m # CONFIG_SM_FTL is not set # CONFIG_MTD_OOPS is not set # CONFIG_MTD_SWAP is not set +# CONFIG_MTD_PARTITIONED_MASTER is not set # # RAM/ROM/Flash chip drivers @@ -364,6 +367,7 @@ CONFIG_BLK_DEV_OSD=m CONFIG_BLK_DEV_RAM=m CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=16384 +CONFIG_BLK_DEV_PMEM=m CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_IO_TRACE=y @@ -382,11 +386,13 @@ CONFIG_BLK_DEV_THROTTLING=y # CONFIG_BLK_DEV_HD is not set # CONFIG_BLK_DEV_RSXX is not set +CONFIG_VIRTUALIZATION=y CONFIG_SCSI_VIRTIO=m CONFIG_VIRTIO_BLK=m CONFIG_VIRTIO_PCI=m CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_INPUT=m CONFIG_VIRTIO_MMIO=m # CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set CONFIG_VIRTIO_NET=m @@ -642,6 +648,7 @@ CONFIG_MD=y CONFIG_BLK_DEV_MD=y CONFIG_MD_AUTODETECT=y CONFIG_MD_FAULTY=m +# CONFIG_MD_CLUSTER is not set CONFIG_MD_LINEAR=m CONFIG_MD_MULTIPATH=m CONFIG_MD_RAID0=m @@ -655,6 +662,7 @@ CONFIG_BCACHE=m CONFIG_ASYNC_RAID6_TEST=m CONFIG_BLK_DEV_DM=y +# CONFIG_DM_MQ_DEFAULT is not set CONFIG_DM_CRYPT=m CONFIG_DM_DEBUG=y CONFIG_DM_DELAY=m @@ -676,6 +684,7 @@ CONFIG_DM_RAID=m CONFIG_DM_FLAKEY=m CONFIG_DM_VERITY=m CONFIG_DM_SWITCH=m +CONFIG_DM_LOG_WRITES=m # # Fusion MPT device support @@ -1149,6 +1158,7 @@ CONFIG_IP_DCCP_CCID3=y # CONFIG_TIPC=m # CONFIG_TIPC_MEDIA_IB is not set +CONFIG_TIPC_MEDIA_UDP=y CONFIG_NETLABEL=y @@ -1359,7 +1369,6 @@ CONFIG_ATL1=m CONFIG_ATL1C=m CONFIG_ATL1E=m CONFIG_NET_CADENCE=y -CONFIG_ARM_AT91_ETHER=m CONFIG_MACB=m CONFIG_NET_VENDOR_BROCADE=y @@ -1856,10 +1865,20 @@ CONFIG_IEEE802154_CC2520=m CONFIG_MAC802154=m CONFIG_NET_MPLS_GSO=m +CONFIG_MPLS_ROUTING=m CONFIG_NET_SWITCHDEV=y CONFIG_6LOWPAN=m +CONFIG_6LOWPAN_NHC=m +CONFIG_6LOWPAN_NHC_DEST=m +CONFIG_6LOWPAN_NHC_FRAGMENT=m +CONFIG_6LOWPAN_NHC_HOP=m +CONFIG_6LOWPAN_NHC_IPV6=m +CONFIG_6LOWPAN_NHC_MOBILITY=m +CONFIG_6LOWPAN_NHC_ROUTING=m +CONFIG_6LOWPAN_NHC_UDP=m + # # Token Ring devices @@ -1923,6 +1942,7 @@ CONFIG_NFC_ST21NFCA=m CONFIG_NFC_ST21NFCA_I2C=m # CONFIG_NFC_ST21NFCB is not set # CONFIG_NFC_ST21NFCB_I2C is not set +# CONFIG_NFC_NXP_NCI is not set # CONFIG_NFC_NCI_SPI is not set @@ -1972,6 +1992,7 @@ CONFIG_BT_BREDR=y CONFIG_BT_LE=y CONFIG_BT_6LOWPAN=m # CONFIG_BT_SELFTEST is not set +# CONFIG_BT_DEBUGFS is not set CONFIG_BT_SCO=y CONFIG_BT_CMTP=m CONFIG_BT_RFCOMM=m @@ -1987,11 +2008,14 @@ CONFIG_BT_HIDP=m CONFIG_BT_HCIBTUSB=m # Disable the BT_HCIUSB driver. # It sucks more power than BT_HCIBTUSB which has the same functionality. +CONFIG_BT_HCIBTUSB_BCM=y CONFIG_BT_HCIUART=m CONFIG_BT_HCIUART_H4=y CONFIG_BT_HCIUART_BCSP=y CONFIG_BT_HCIUART_ATH3K=y CONFIG_BT_HCIUART_3WIRE=y +CONFIG_BT_HCIUART_INTEL=y +CONFIG_BT_HCIUART_BCM=y CONFIG_BT_HCIDTL1=m CONFIG_BT_HCIBT3C=m CONFIG_BT_HCIBLUECARD=m @@ -2225,6 +2249,8 @@ CONFIG_MOUSE_PS2=y # CONFIG_MOUSE_PS2_TOUCHKIT is not set CONFIG_MOUSE_PS2_ELANTECH=y CONFIG_MOUSE_PS2_SENTELIC=y +# Fedora 22 and 23 don't have a new enough xorg-x11-drv-vmmouse. Revisit +# CONFIG_MOUSE_PS2_VMMOUSE is not set CONFIG_MOUSE_SERIAL=m CONFIG_MOUSE_VSXXXAA=m CONFIG_MOUSE_APPLETOUCH=m @@ -2315,6 +2341,8 @@ CONFIG_TOUCHSCREEN_ZFORCE=m # CONFIG_TOUCHSCREEN_AD7877 is not set # CONFIG_TOUCHSCREEN_TSC2005 is not set # CONFIG_TOUCHSCREEN_AR1021_I2C is not set +# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set +# CONFIG_TOUCHSCREEN_SX8654 is not set CONFIG_INPUT_MISC=y CONFIG_INPUT_E3X0_BUTTON=m @@ -2366,7 +2394,7 @@ CONFIG_TCG_TIS=m CONFIG_TCG_NSC=m CONFIG_TCG_ATMEL=m # CONFIG_TCG_INFINEON is not set -# CONFIG_TCG_TIS_I2C_ST33 is not set +# CONFIG_TCG_TIS_ST33ZP24 is not set # CONFIG_TCG_XEN is not set CONFIG_TELCLOCK=m @@ -2394,7 +2422,6 @@ CONFIG_CYCLADES=m 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 # CONFIG_SERIAL_ALTERA_UART is not set @@ -2573,6 +2600,7 @@ CONFIG_SENSORS_MCP3021=m CONFIG_SENSORS_NCT6775=m CONFIG_SENSORS_NCT6683=m CONFIG_SENSORS_NCT7802=m +CONFIG_SENSORS_NCT7904=m CONFIG_SENSORS_NTC_THERMISTOR=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m @@ -2688,6 +2716,7 @@ CONFIG_HID_SENSOR_IIO_TRIGGER=m # CONFIG_APDS9300 is not set CONFIG_CM32181=m # CONFIG_CM3232 is not set +# CONFIG_CM3323 is not set # CONFIG_CM36651 is not set # CONFIG_GP2AP020A00F is not set # CONFIG_TSL2583 is not set @@ -2756,6 +2785,7 @@ CONFIG_HID_SENSOR_DEVICE_ROTATION=m # CONFIG_ADIS16480 is not set # CONFIG_DHT11 is not set # CONFIG_MPL3115 is not set +# CONFIG_MS5611 is not set # CONFIG_MPL115 is not set # CONFIG_SI7005 is not set # CONFIG_SI7020 is not set @@ -2902,6 +2932,7 @@ CONFIG_WM831X_WATCHDOG=m # CONFIG_MEN_A21_WDT is not set # CONFIG_GPIO_WATCHDOG is not set # CONFIG_XILINX_WATCHDOG is not set +# CONFIG_CADENCE_WATCHDOG is not set CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=m @@ -2919,6 +2950,7 @@ CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set CONFIG_RTC_DRV_CMOS=y +CONFIG_RTC_DRV_ABX80X=m CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m @@ -3017,6 +3049,7 @@ CONFIG_DRM_CIRRUS_QEMU=m # do not enable on f17 or older # CONFIG_DRM_TDFX is not set # CONFIG_DRM_R128 is not set CONFIG_DRM_RADEON=m +CONFIG_DRM_RADEON_USERPTR=y # CONFIG_DRM_RADEON_UMS is not set # CONFIG_DRM_I810 is not set # CONFIG_DRM_MGA is not set @@ -3042,9 +3075,11 @@ CONFIG_DRM_VMWGFX_FBCON=y CONFIG_DRM_QXL=m CONFIG_DRM_BOCHS=m CONFIG_DRM_PTN3460=m +CONFIG_DRM_PS8622=m # CONFIG_DRM_PANEL is not set # CONFIG_DRM_PANEL_SIMPLE is not set # CONFIG_DRM_PANEL_S6E8AA0 is not set +CONFIG_DRM_VGEM=m # # PCMCIA character devices @@ -3071,12 +3106,14 @@ CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y CONFIG_MEDIA_RADIO_SUPPORT=y CONFIG_MEDIA_RC_SUPPORT=y CONFIG_MEDIA_CONTROLLER=y +# CONFIG_MEDIA_CONTROLLER_DVB is not set # CONFIG_MEDIA_SDR_SUPPORT is not set CONFIG_VIDEO_DEV=m # CONFIG_VIDEO_ADV_DEBUG is not set CONFIG_VIDEO_V4L2=y CONFIG_VIDEO_V4L2_SUBDEV_API=y # CONFIG_VIDEO_VIVI is not set +# CONFIG_VIDEO_XILINX is not set # CONFIG_USB_SI4713 is not set # CONFIG_PLATFORM_SI4713 is not set # CONFIG_I2C_SI4713 is not set @@ -3678,6 +3715,7 @@ CONFIG_HID_BATTERY_STRENGTH=y CONFIG_HIDRAW=y CONFIG_UHID=m CONFIG_HID_PID=y +CONFIG_HID_LOGITECH=m CONFIG_LOGITECH_FF=y CONFIG_HID_LOGITECH_DJ=m CONFIG_HID_LOGITECH_HIDPP=m @@ -3688,22 +3726,28 @@ CONFIG_HID_WACOM=m CONFIG_ZEROPLUS_FF=y CONFIG_USB_HIDDEV=y CONFIG_USB_IDMOUSE=m +CONFIG_HID_CYPRESS=m CONFIG_DRAGONRISE_FF=y CONFIG_GREENASIA_FF=y CONFIG_SMARTJOYPLUS_FF=y CONFIG_LOGIG940_FF=y CONFIG_LOGIWHEELS_FF=y CONFIG_HID_MAGICMOUSE=y +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m CONFIG_HID_MULTITOUCH=m CONFIG_HID_NTRIG=y CONFIG_HID_PLANTRONICS=m CONFIG_HID_PRIMAX=m CONFIG_HID_BETOP_FF=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m CONFIG_HID_PRODIKEYS=m CONFIG_HID_DRAGONRISE=m CONFIG_HID_GYRATION=m CONFIG_HID_ICADE=m CONFIG_HID_TWINHAN=m +CONFIG_HID_KENSINGTON=m CONFIG_HID_ORTEK=m CONFIG_HID_PANTHERLORD=m CONFIG_HID_PENMOUNT=m @@ -3730,9 +3774,11 @@ CONFIG_HID_SENSOR_MAGNETOMETER_3D=m CONFIG_HID_SENSOR_ALS=m # CONFIG_HID_SENSOR_PROX is not set CONFIG_HID_SENSOR_ACCEL_3D=m +# CONFIG_HID_SENSOR_CUSTOM_SENSOR is not set CONFIG_HID_EMS_FF=m CONFIG_HID_ELECOM=m CONFIG_HID_ELO=m +CONFIG_HID_EZKEY=m CONFIG_HID_UCLOGIC=m CONFIG_HID_WALTOP=m CONFIG_HID_ACRUX=m @@ -3741,7 +3787,6 @@ CONFIG_HID_KEYTOUCH=m CONFIG_HID_LCPOWER=m CONFIG_HID_HOLTEK=m CONFIG_HOLTEK_FF=y -CONFIG_HID_HUION=m CONFIG_HID_GT683R=m CONFIG_HID_SPEEDLINK=m CONFIG_HID_WIIMOTE=m @@ -3750,6 +3795,9 @@ CONFIG_HID_SAITEK=m CONFIG_HID_TIVO=m CONFIG_HID_GENERIC=y CONFIG_HID_AUREAL=m +CONFIG_HID_A4TECH=m +CONFIG_HID_APPLE=m +CONFIG_HID_BELKIN=m CONFIG_HID_APPLEIR=m # CONFIG_HID_CP2112 is not set CONFIG_HID_LENOVO=m @@ -3992,6 +4040,7 @@ CONFIG_USB_YUREX=m CONFIG_USB_EZUSB_FX2=m CONFIG_USB_HSIC_USB3503=m # CONFIG_USB_LINK_LAYER_TEST is not set +CONFIG_USB_CHAOSKEY=m CONFIG_USB_LCD=m CONFIG_USB_LD=m CONFIG_USB_LEGOTOWER=m @@ -4081,6 +4130,7 @@ CONFIG_MFD_VIPERBOARD=m # CONFIG_MFD_CS5535 is not set # CONFIG_MFD_STMPE is not set # CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_MT6397 is not set # CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TC3589X is not set # CONFIG_MFD_WL1273_CORE is not set @@ -4110,6 +4160,8 @@ CONFIG_MFD_VIPERBOARD=m # CONFIG_MFD_RN5T618 is not set # CONFIG_MFD_DA9150 is not set # CONFIG_MFD_RT5033 is not set +# CONFIG_MFD_SKY81452 is not set +# CONFIG_MFD_MAX77843 is not set # CONFIG_EZX_PCAP is not set # CONFIG_INTEL_SOC_PMIC is not set @@ -4126,6 +4178,7 @@ CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT23=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y +# CONFIG_EXT4_ENCRYPTION is not set CONFIG_JBD2=y CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m @@ -4549,6 +4602,7 @@ CONFIG_CRYPTO_FIPS=y CONFIG_CRYPTO_USER_API_HASH=y CONFIG_CRYPTO_USER_API_SKCIPHER=y CONFIG_CRYPTO_USER_API_RNG=y +CONFIG_CRYPTO_USER_API_AEAD=y CONFIG_CRYPTO_MANAGER=y # Note, CONFIG_CRYPTO_MANAGER_DISABLE_TESTS needs to be unset, or FIPS will be disabled. # CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set @@ -4702,7 +4756,7 @@ CONFIG_SCHED_DEBUG=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y CONFIG_SCHED_OMIT_FRAME_POINTER=y -CONFIG_RT_GROUP_SCHED=y +# CONFIG_RT_GROUP_SCHED is not set CONFIG_SCHED_AUTOGROUP=y CONFIG_CPUSETS=y @@ -4841,6 +4895,7 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y # 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_QCOM is not set # CONFIG_SND_SOC_SGTL5000 is not set # CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set # CONFIG_SND_SOC_TAS5086 is not set @@ -4858,6 +4913,8 @@ CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y # CONFIG_SND_SOC_WM8770 is not set # CONFIG_SND_SOC_WM8776 is not set # CONFIG_SND_SOC_WM8804 is not set +# CONFIG_SND_SOC_WM8804_I2C is not set +# CONFIG_SND_SOC_WM8804_SPI is not set # CONFIG_SND_SOC_WM8903 is not set # CONFIG_SND_SOC_WM8962 is not set # CONFIG_SND_SOC_TPA6130A2 is not set @@ -4916,6 +4973,7 @@ CONFIG_LEDS_DELL_NETBOOKS=m # CONFIG_LEDS_LP8501 is not set # CONFIG_LEDS_LP8860 is not set # CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_PM8941_WLED is not set # CONFIG_LEDS_SYSCON is not set CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m @@ -4954,6 +5012,9 @@ CONFIG_DW_DMAC_PCI=m # CONFIG_FSL_EDMA is not set # CONFIG_NBPFAXI_DMA is not set CONFIG_ASYNC_TX_DMA=y +# CONFIG_HSU_DMA is not set +# CONFIG_HSU_DMA_PCI is not set +# CONFIG_XGENE_DMA is not set CONFIG_UNUSED_SYMBOLS=y @@ -4974,6 +5035,7 @@ CONFIG_FUNCTION_PROFILER=y # CONFIG_TRACEPOINT_BENCHMARK is not set CONFIG_RING_BUFFER_BENCHMARK=m # CONFIG_RING_BUFFER_STARTUP_TEST is not set +# CONFIG_TRACE_ENUM_MAP_FILE is not set # CONFIG_RBTREE_TEST is not set # CONFIG_INTERVAL_TREE_TEST is not set CONFIG_FUNCTION_TRACER=y @@ -4990,6 +5052,7 @@ CONFIG_HZ_1000=y CONFIG_NO_HZ=y # CONFIG_SCHED_STACK_END_CHECK is not set +# CONFIG_DEBUG_TIMEKEEPING is not set CONFIG_TIMER_STATS=y CONFIG_HIGH_RES_TIMERS=y CONFIG_PERF_EVENTS=y @@ -5032,6 +5095,7 @@ CONFIG_APM_POWER=m CONFIG_POWER_RESET=y # CONFIG_POWER_RESET_LTC2952 is not set # CONFIG_POWER_RESET_SYSCON is not set +# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set # CONFIG_BATTERY_GAUGE_LTC2941 is not set # CONFIG_POWER_RESET_RESTART is not set @@ -5161,7 +5225,6 @@ CONFIG_STAGING_MEDIA=y # CONFIG_I2C_BCM2048 is not set # CONFIG_DT3155 is not set # CONFIG_PRISM2_USB is not set -# CONFIG_ECHO is not set CONFIG_USB_ATMEL=m # CONFIG_COMEDI is not set # CONFIG_PANEL is not set @@ -5212,6 +5275,7 @@ CONFIG_USBIP_HOST=m # CONFIG_DVB_MN88473 is not set # CONFIG_FB_SM7XX is not set # CONFIG_FB_TFT is not set +# CONFIG_FB_SM750 is not set # END OF STAGING # @@ -5241,6 +5305,8 @@ CONFIG_RCU_NOCB_CPU=y CONFIG_RCU_NOCB_CPU_ALL=y CONFIG_RCU_CPU_STALL_TIMEOUT=60 CONFIG_RCU_TORTURE_TEST=m +# CONFIG_RCU_TORTURE_TEST_SLOW_INIT is not set +CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY=3 # CONFIG_RCU_TRACE is not set # CONFIG_RCU_CPU_STALL_INFO is not set # CONFIG_TASKS_RCU is not set @@ -5329,6 +5395,7 @@ CONFIG_GPIO_VIPERBOARD=m # CONFIG_GPIO_MC33880 is not set # CONFIG_GPIO_MCP23S08 is not set # CONFIG_GPIO_XILINX is not set +# CONFIG_GPIO_ALTERA is not set # FIXME: Why? @@ -5352,7 +5419,7 @@ CONFIG_TCM_IBLOCK=m CONFIG_TCM_FILEIO=m CONFIG_TCM_PSCSI=m CONFIG_TCM_FC=m -CONFIG_TCM_USER=m +CONFIG_TCM_USER2=m CONFIG_HWSPINLOCK=m @@ -5366,6 +5433,7 @@ CONFIG_PSTORE_RAM=m # CONFIG_TEST_USER_COPY is not set # CONFIG_TEST_BPF is not set # CONFIG_TEST_UDELAY is not set +# CONFIG_MEMTEST is not set # CONFIG_TEST_HEXDUMP is not set # CONFIG_TEST_RHASHTABLE is not set @@ -5402,6 +5470,7 @@ CONFIG_FMC_WRITE_EEPROM=m CONFIG_FMC_CHARDEV=m # CONFIG_GENWQE is not set +CONFIG_ECHO=m CONFIG_POWERCAP=y # CONFIG_THUNDERBOLT is not set @@ -5435,11 +5504,7 @@ CONFIG_POWERCAP=y # CONFIG_GLOB_SELFTEST is not set -# CONFIG_SBSAUART_TTY is not set - # CONFIG_SERIAL_8250_FINTEK is not set # set in x86-generic presently # CONFIG_TOUCHSCREEN_GOODIX is not set - -CONFIG_PCI_ECAM=y diff --git a/config-powerpc-generic b/config-powerpc-generic index 00aaace9a..07008552e 100644 --- a/config-powerpc-generic +++ b/config-powerpc-generic @@ -326,6 +326,7 @@ CONFIG_I2C_MPC=m # CONFIG_CRYPTO_DEV_FSL_CAAM is not set # CONFIG_CRYPTO_SHA1_PPC is not set +# CONFIG_CRYPTO_MD5_PPC is not set # CONFIG_CAN_FLEXCAN is not set # CONFIG_NET_VENDOR_XILINX is not set diff --git a/config-powerpc64 b/config-powerpc64 index e0eebe270..6b4bbae59 100644 --- a/config-powerpc64 +++ b/config-powerpc64 @@ -11,7 +11,6 @@ CONFIG_PPC_MAPLE=y CONFIG_PPC_PSERIES=y CONFIG_PPC_PMAC=y CONFIG_PPC_POWERNV=y -CONFIG_PPC_POWERNV_RTAS=y CONFIG_SENSORS_IBMPOWERNV=y CONFIG_HW_RANDOM_POWERNV=m CONFIG_POWERNV_CPUFREQ=m @@ -20,7 +19,6 @@ CONFIG_SCOM_DEBUGFS=y # CONFIG_PPC_PASEMI is not set # CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set # CONFIG_PPC_PS3 is not set -# CONFIG_PPC_CELLEB is not set # CONFIG_PPC_CELL_QPACE is not set CONFIG_PMAC_RACKMETER=m CONFIG_IBMEBUS=y @@ -70,7 +68,6 @@ CONFIG_PATA_SCC=m CONFIG_APM_EMULATION=m CONFIG_PPC64=y -CONFIG_VIRT_CPU_ACCOUNTING=y CONFIG_NR_CPUS=1024 # CONFIG_FB_PLATINUM is not set # CONFIG_FB_VALKYRIE is not set @@ -119,7 +116,6 @@ CONFIG_EDAC_CPC925=m CONFIG_FRAME_WARN=2048 CONFIG_FORCE_MAX_ZONEORDER=9 -CONFIG_VIRTUALIZATION=y CONFIG_VSX=y @@ -135,10 +131,12 @@ CONFIG_RCU_FANOUT=64 CONFIG_CMA=y # CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set CONFIG_CMA_AREAS=7 CONFIG_KVM_BOOK3S_64=m CONFIG_KVM_BOOK3S_64_HV=m CONFIG_KVM_BOOK3S_64_PR=m +# CONFIG_KVM_BOOK3S_HV_EXIT_TIMING is not set # CONFIG_KVM_EXIT_TIMING is not set CONFIG_KVM_XICS=y @@ -173,6 +171,8 @@ CONFIG_CRYPTO_DEV_NX=y CONFIG_CRYPTO_842=m CONFIG_CRYPTO_DEV_NX_ENCRYPT=m CONFIG_CRYPTO_DEV_NX_COMPRESS=m +CONFIG_CRYPTO_DEV_VMX=y +CONFIG_CRYPTO_DEV_VMX_ENCRYPT=y CONFIG_CXL=m diff --git a/config-powerpc64p7 b/config-powerpc64p7 index c3d97065a..76dcf5d3c 100644 --- a/config-powerpc64p7 +++ b/config-powerpc64p7 @@ -6,7 +6,6 @@ CONFIG_POWER7_CPU=y CONFIG_PPC_PSERIES=y # CONFIG_PPC_PMAC is not set CONFIG_PPC_POWERNV=y -CONFIG_PPC_POWERNV_RTAS=y CONFIG_HW_RANDOM_POWERNV=m CONFIG_SENSORS_IBMPOWERNV=y CONFIG_POWERNV_CPUFREQ=m @@ -15,7 +14,6 @@ CONFIG_SCOM_DEBUGFS=y # CONFIG_PPC_PASEMI is not set # CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set # CONFIG_PPC_PS3 is not set -# CONFIG_PPC_CELLEB is not set # CONFIG_PPC_CELL_QPACE is not set CONFIG_IBMEBUS=y CONFIG_RTAS_FLASH=y @@ -60,7 +58,6 @@ CONFIG_PATA_SCC=m CONFIG_APM_EMULATION=m CONFIG_PPC64=y -CONFIG_VIRT_CPU_ACCOUNTING=y CONFIG_NR_CPUS=1024 # CONFIG_FB_PLATINUM is not set # CONFIG_FB_VALKYRIE is not set @@ -109,7 +106,6 @@ CONFIG_EDAC_CPC925=m CONFIG_FRAME_WARN=2048 CONFIG_FORCE_MAX_ZONEORDER=9 -CONFIG_VIRTUALIZATION=y CONFIG_VSX=y @@ -125,10 +121,12 @@ CONFIG_RCU_FANOUT=64 CONFIG_CMA=y # CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set CONFIG_CMA_AREAS=7 CONFIG_KVM_BOOK3S_64=m CONFIG_KVM_BOOK3S_64_HV=m CONFIG_KVM_BOOK3S_64_PR=m +# CONFIG_KVM_BOOK3S_HV_EXIT_TIMING is not set # CONFIG_KVM_EXIT_TIMING is not set CONFIG_KVM_XICS=y @@ -163,6 +161,8 @@ CONFIG_CRYPTO_DEV_NX=y CONFIG_CRYPTO_842=m CONFIG_CRYPTO_DEV_NX_ENCRYPT=m CONFIG_CRYPTO_DEV_NX_COMPRESS=m +CONFIG_CRYPTO_DEV_VMX=y +CONFIG_CRYPTO_DEV_VMX_ENCRYPT=y CONFIG_CXL=m diff --git a/config-s390x b/config-s390x index 829412f39..ec433936d 100644 --- a/config-s390x +++ b/config-s390x @@ -1,5 +1,4 @@ CONFIG_64BIT=y -# CONFIG_MARCH_G5 is not set # CONFIG_MARCH_Z900 is not set CONFIG_MARCH_Z9_109=y # CONFIG_MARCH_Z990 is not set @@ -147,10 +146,6 @@ CONFIG_DIAG288_WATCHDOG=m CONFIG_VMLOGRDR=m CONFIG_MONREADER=m -CONFIG_VIRT_CPU_ACCOUNTING=y - -# CONFIG_CLAW is not set - # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set # CONFIG_MII is not set @@ -176,7 +171,6 @@ CONFIG_CTCM=m CONFIG_QETH_L2=m CONFIG_QETH_L3=m CONFIG_CRYPTO_SHA512_S390=m -CONFIG_VIRTUALIZATION=y CONFIG_KVM=m # CONFIG_KVM_S390_UCONTROL is not set CONFIG_S390_GUEST=y diff --git a/config-x86-32-generic b/config-x86-32-generic index c2b27269c..dfdedf147 100644 --- a/config-x86-32-generic +++ b/config-x86-32-generic @@ -219,3 +219,4 @@ CONFIG_BACKLIGHT_PWM=m # CONFIG_COMMON_CLK_SI570 is not set # CONFIG_COMMON_CLK_QCOM is not set # CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set +# CONFIG_KEYBOARD_BCM is not set diff --git a/config-x86-generic b/config-x86-generic index 4889e216c..ac134cfed 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -257,7 +257,6 @@ CONFIG_CRASH_DUMP=y CONFIG_PROC_VMCORE=y CONFIG_CRASH=m -CONFIG_VIRTUALIZATION=y CONFIG_KVM=m CONFIG_KVM_INTEL=m CONFIG_KVM_AMD=m @@ -353,6 +352,7 @@ CONFIG_HP_ILO=m CONFIG_BACKLIGHT_APPLE=m +CONFIG_X86_PMEM_LEGACY=y CONFIG_X86_CHECK_BIOS_CORRUPTION=y @@ -427,7 +427,6 @@ CONFIG_INTEL_IDLE=y CONFIG_F71808E_WDT=m CONFIG_HPWDT_NMI_DECODING=y # CONFIG_MFD_TPS6586X is not set -# CONFIG_INTEL_MID_DMAC is not set # CONFIG_GPIO_INTEL_MID is not set CONFIG_PCH_DMA=m CONFIG_INTEL_IPS=m @@ -491,6 +490,7 @@ CONFIG_NFC_MICROREAD_MEI=m CONFIG_X86_INTEL_LPSS=y # CONFIG_X86_AMD_PLATFORM_DEVICE is not set +# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set CONFIG_IOSF_MBI=m # CONFIG_IOSF_MBI_DEBUG is not set @@ -500,6 +500,8 @@ CONFIG_PWM_LPSS_PLATFORM=m CONFIG_PINCTRL=y CONFIG_PINCTRL_BAYTRAIL=y CONFIG_PINCTRL_CHERRYVIEW=m +# CONFIG_PINCTRL_AMD is not set +CONFIG_PINCTRL_SUNRISEPOINT=m #baytrail/cherrytrail stuff CONFIG_KEYBOARD_GPIO=m diff --git a/criu-no-expert.patch b/criu-no-expert.patch index 91b24763b..3e3ee6122 100644 --- a/criu-no-expert.patch +++ b/criu-no-expert.patch @@ -9,10 +9,10 @@ Upstream-status: Fedora mustard 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/init/Kconfig b/init/Kconfig -index 9a782b02e4d5..d97b5032d4b0 100644 +index dc24dec..1598edb 100644 --- a/init/Kconfig +++ b/init/Kconfig -@@ -1135,7 +1135,7 @@ config DEBUG_BLK_CGROUP +@@ -1144,7 +1144,7 @@ config DEBUG_BLK_CGROUP endif # CGROUPS config CHECKPOINT_RESTORE @@ -21,12 +21,12 @@ index 9a782b02e4d5..d97b5032d4b0 100644 default n help Enables additional kernel features in a sake of checkpoint/restore. -@@ -1146,7 +1146,7 @@ config CHECKPOINT_RESTORE +@@ -1155,7 +1155,7 @@ config CHECKPOINT_RESTORE If unsure, say N here. menuconfig NAMESPACES - bool "Namespaces support" if EXPERT + bool "Namespaces support" + depends on MULTIUSER default !EXPERT help - Provides the way to make tasks work with different objects using diff --git a/drm-i915-Disable-verbose-state-checks.patch b/drm-i915-Disable-verbose-state-checks.patch deleted file mode 100644 index cb69624a3..000000000 --- a/drm-i915-Disable-verbose-state-checks.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: Josh Boyer -Date: Thu, 29 Jan 2015 14:03:17 -0500 -Subject: [PATCH] drm/i915: Disable verbose state checks - -For stable releases, we disable the verbose state checks in the i915 driver. -They are mostly for development purposes and they fill the retrace server -to the point of uselessness. We leave these enabled in rawhide kernels, -where they are both more likely to get attention from upstream and more -likely to be fixable. - -Signed-off-by: Josh Boyer ---- - drivers/gpu/drm/i915/i915_params.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c -index 44f2262a5553..09566acd995d 100644 ---- a/drivers/gpu/drm/i915/i915_params.c -+++ b/drivers/gpu/drm/i915/i915_params.c -@@ -51,7 +51,7 @@ struct i915_params i915 __read_mostly = { - .disable_vtd_wa = 0, - .use_mmio_flip = 0, - .mmio_debug = 0, -- .verbose_state_checks = 1, -+ .verbose_state_checks = 0, - .nuclear_pageflip = 0, - }; - diff --git a/drm-i915-Fix-ilk-watermarks-calculation-when-primary.patch b/drm-i915-Fix-ilk-watermarks-calculation-when-primary.patch deleted file mode 100644 index acbe6bfc3..000000000 --- a/drm-i915-Fix-ilk-watermarks-calculation-when-primary.patch +++ /dev/null @@ -1,100 +0,0 @@ -From: Ander Conselvan de Oliveira -Date: Wed, 20 May 2015 16:32:34 +0300 -Subject: [PATCH] drm/i915: Fix ilk watermarks calculation when primary plane - is disabled - -On Fedora 21 or 22, when the transition from the X server to the wayland -compositor is done, the CRTC with the login screen is left active with a -disabled fb. A cursor ioctl after the transition causes the watermarks -to be updated, but due to the logic in intel_crtc_active() checking for -the primary plane fb, the update considers all planes to be disabled, -untimately setting the wrong watermark values and causing screen -flicker. Since the crtc is active, a modeset done later is skipped and -replaced with a flip, which doesn't update the watermarks. - -This regression was introduced somewhere between v3.16 and v3.17. -Another issue prevented me from doing a full bisect, but the issue was -introduced in one of the following skipped commits: - - commit 7707e6535f43328e05e4729ac96eee864b90e8a4 - Author: Rob Clark - Date: Thu Jul 17 23:30:04 2014 -0400 - - drm/i915: use helpers - - commit ca5a1b9ba0fb5291b555a23b76dbe5f6c30bfd7a - Merge: c7dbc6c 3488229 - Author: Dave Airlie - Date: Wed Jul 9 10:38:42 2014 +1000 - - Merge tag 'drm-intel-next-2014-06-20' of git://anongit.freedesktop.org/drm-intel into drm-next - - commit c51f71679042a5f388d9580ffbede14c897f1e86 - Merge: b957f45 7b3c29f - Author: Dave Airlie - Date: Sat Jul 19 16:43:41 2014 +1000 - - Merge tag 'drm-intel-next-2014-07-11' of git://anongit.freedesktop.org/drm-intel into drm-next - -This patch is a simplified version of the following commits: - - commit 3dd512fbda0d87d1c3fb44bf878b262baee98fb6 - Author: Matt Roper - Date: Fri Feb 27 10:12:00 2015 -0800 - - drm/i915: Kill intel_crtc->cursor_{width, height} (v2) - - commit 54da691deb123c045259ebf4f5c67381244f58f1 - Author: Thomas Gummerer - Date: Thu May 14 09:16:39 2015 +0200 - - drm/i915: fix screen flickering - - commit 3ef00284e6a48f7deb0784ccca0478ebb7d4bcfc - Author: Matt Roper - Date: Mon Mar 9 10:19:24 2015 -0700 - - drm/i915: Use crtc->state->active in ilk/skl watermark calculations (v3) - -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90508 -Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1218688 -Cc: stable@vger.kernel.org -Cc: Dave Airlie -Cc: Jani Nikula -Signed-off-by: Ander Conselvan de Oliveira ---- - drivers/gpu/drm/i915/intel_pm.c | 14 +++++++++++--- - 1 file changed, 11 insertions(+), 3 deletions(-) - -diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c -index 24d77ddcc5f4..3d67f8e496de 100644 ---- a/drivers/gpu/drm/i915/intel_pm.c -+++ b/drivers/gpu/drm/i915/intel_pm.c -@@ -1898,16 +1898,24 @@ static void ilk_compute_wm_parameters(struct drm_crtc *crtc, - enum pipe pipe = intel_crtc->pipe; - struct drm_plane *plane; - -- if (!intel_crtc_active(crtc)) -+ if (!intel_crtc->active) - return; - - p->active = true; - p->pipe_htotal = intel_crtc->config->base.adjusted_mode.crtc_htotal; - p->pixel_rate = ilk_pipe_pixel_rate(dev, crtc); -- p->pri.bytes_per_pixel = crtc->primary->fb->bits_per_pixel / 8; -+ -+ -+ if (crtc->primary->fb) -+ p->pri.bytes_per_pixel = crtc->primary->fb->bits_per_pixel / 8; -+ else -+ p->pri.bytes_per_pixel = 4; -+ - p->cur.bytes_per_pixel = 4; -+ - p->pri.horiz_pixels = intel_crtc->config->pipe_src_w; -- p->cur.horiz_pixels = intel_crtc->cursor_width; -+ p->cur.horiz_pixels = intel_crtc->base.cursor->state->crtc_w; -+ - /* TODO: for now, assume primary and cursor planes are always enabled. */ - p->pri.enabled = true; - p->cur.enabled = true; diff --git a/drm-i915-turn-off-wc-mmaps.patch b/drm-i915-turn-off-wc-mmaps.patch index 72daeec79..c81b89226 100644 --- a/drm-i915-turn-off-wc-mmaps.patch +++ b/drm-i915-turn-off-wc-mmaps.patch @@ -7,15 +7,15 @@ Subject: [PATCH] drm: i915: turn off wc mmaps 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c -index 1a46787129e7..e41096ea77f1 100644 +index d2df321ba634..775a5b11a366 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c -@@ -147,7 +147,7 @@ static int i915_getparam(struct drm_device *dev, void *data, +@@ -151,7 +151,7 @@ static int i915_getparam(struct drm_device *dev, void *data, value = 1; break; case I915_PARAM_MMAP_VERSION: - value = 1; + value = 0; break; - default: - DRM_DEBUG("Unknown parameter %d\n", param->param); + case I915_PARAM_SUBSLICE_TOTAL: + value = INTEL_INFO(dev)->subslice_total; diff --git a/efi-Add-EFI_SECURE_BOOT-bit.patch b/efi-Add-EFI_SECURE_BOOT-bit.patch index 1ca9af69e..318a8e70d 100644 --- a/efi-Add-EFI_SECURE_BOOT-bit.patch +++ b/efi-Add-EFI_SECURE_BOOT-bit.patch @@ -12,10 +12,10 @@ Signed-off-by: Josh Boyer 2 files changed, 3 insertions(+) diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index a3d8174dedf9..26c5d54124c1 100644 +index c2e4f52cad30..5def6b4143fa 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c -@@ -1153,7 +1153,9 @@ void __init setup_arch(char **cmdline_p) +@@ -1162,7 +1162,9 @@ void __init setup_arch(char **cmdline_p) #ifdef CONFIG_EFI_SECURE_BOOT_SIG_ENFORCE if (boot_params.secure_boot) { @@ -26,14 +26,14 @@ index a3d8174dedf9..26c5d54124c1 100644 #endif diff --git a/include/linux/efi.h b/include/linux/efi.h -index cf7e431cbc73..c74cbd892032 100644 +index 85ef051ac6fb..de3e45088d4a 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h -@@ -942,6 +942,7 @@ extern int __init efi_setup_pcdp_console(char *); - #define EFI_64BIT 5 /* Is the firmware 64-bit? */ +@@ -959,6 +959,7 @@ extern int __init efi_setup_pcdp_console(char *); #define EFI_PARAVIRT 6 /* Access is via a paravirt interface */ #define EFI_ARCH_1 7 /* First arch-specific bit */ -+#define EFI_SECURE_BOOT 8 /* Are we in Secure Boot mode? */ + #define EFI_DBG 8 /* Print additional debug info at runtime */ ++#define EFI_SECURE_BOOT 9 /* Are we in Secure Boot mode? */ #ifdef CONFIG_EFI /* diff --git a/efi-Add-esrt-support.patch b/efi-Add-esrt-support.patch index 8a4bdaeac..bb6807fec 100644 --- a/efi-Add-esrt-support.patch +++ b/efi-Add-esrt-support.patch @@ -1,4 +1,4 @@ -From dba4f00838fc8696a92d15c2b7f71c8227181f04 Mon Sep 17 00:00:00 2001 +From 081e34b1c72e9e366a9d8046eb1eac850b03561e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Nov 2014 10:18:22 -0500 Subject: [PATCH] efi: Add esrt support. @@ -124,13 +124,13 @@ index 0000000..6e431d1 + 6 - Battery power event + diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c -index dbc8627..b4c9fbbc 100644 +index 02744df..3b984c3 100644 --- a/arch/x86/platform/efi/efi.c +++ b/arch/x86/platform/efi/efi.c -@@ -492,6 +492,8 @@ void __init efi_init(void) - return; +@@ -501,6 +501,8 @@ void __init efi_init(void) - print_efi_memmap(); + if (efi_enabled(EFI_DBG)) + print_efi_memmap(); + + efi_esrt_init(); } @@ -734,7 +734,7 @@ index 0000000..20c0cbd +MODULE_DESCRIPTION("EFI System Resource Table support"); +MODULE_LICENSE("GPL"); diff --git a/include/linux/efi.h b/include/linux/efi.h -index cf7e431..bb12adf 100644 +index af5be03..024c27e 100644 --- a/include/linux/efi.h +++ b/include/linux/efi.h @@ -583,6 +583,9 @@ void efi_native_runtime_setup(void); diff --git a/ext4-Allocate-entire-range-in-zero-range.patch b/ext4-Allocate-entire-range-in-zero-range.patch deleted file mode 100644 index 62cd890ca..000000000 --- a/ext4-Allocate-entire-range-in-zero-range.patch +++ /dev/null @@ -1,75 +0,0 @@ -From: Lukas Czerner -Date: Wed, 18 Feb 2015 17:49:28 +0100 -Subject: [PATCH] ext4: Allocate entire range in zero range - -Currently there is a bug in zero range code which causes zero range -calls to only allocate block aligned portion of the range, while -ignoring the rest in some cases. - -In some cases, namely if the end of the range is past isize, we do -attempt to preallocate the last nonaligned block. However this might -cause kernel to BUG() in some carefully designed zero range requests on -setups where page size > block size. - -Fix this problem by first preallocating the entire range, including the -nonaligned edges and converting the written extents to unwritten in the -next step. This approach will also give us the advantage of having the -range to be as linearly contiguous as possible. - -Signed-off-by: Lukas Czerner ---- - fs/ext4/extents.c | 31 +++++++++++++++++++------------ - 1 file changed, 19 insertions(+), 12 deletions(-) - -diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c -index ea4ee1732143..410841e364ef 100644 ---- a/fs/ext4/extents.c -+++ b/fs/ext4/extents.c -@@ -4803,12 +4803,6 @@ static long ext4_zero_range(struct file *file, loff_t offset, - else - max_blocks -= lblk; - -- flags = EXT4_GET_BLOCKS_CREATE_UNWRIT_EXT | -- EXT4_GET_BLOCKS_CONVERT_UNWRITTEN | -- EXT4_EX_NOCACHE; -- if (mode & FALLOC_FL_KEEP_SIZE) -- flags |= EXT4_GET_BLOCKS_KEEP_SIZE; -- - mutex_lock(&inode->i_mutex); - - /* -@@ -4825,15 +4819,28 @@ static long ext4_zero_range(struct file *file, loff_t offset, - ret = inode_newsize_ok(inode, new_size); - if (ret) - goto out_mutex; -- /* -- * If we have a partial block after EOF we have to allocate -- * the entire block. -- */ -- if (partial_end) -- max_blocks += 1; - } - -+ flags = EXT4_GET_BLOCKS_CREATE_UNWRIT_EXT; -+ if (mode & FALLOC_FL_KEEP_SIZE) -+ flags |= EXT4_GET_BLOCKS_KEEP_SIZE; -+ -+ /* Preallocate the range including the unaligned edges */ -+ if (partial_begin || partial_end) { -+ ret = ext4_alloc_file_blocks(file, -+ round_down(offset, 1 << blkbits) >> blkbits, -+ (round_up((offset + len), 1 << blkbits) - -+ round_down(offset, 1 << blkbits)) >> blkbits, -+ new_size, flags, mode); -+ if (ret) -+ goto out_mutex; -+ -+ } -+ -+ /* Zero range excluding the unaligned edges */ - if (max_blocks > 0) { -+ flags |= (EXT4_GET_BLOCKS_CONVERT_UNWRITTEN | -+ EXT4_EX_NOCACHE); - - /* Now release the pages and zero block aligned part of pages*/ - truncate_pagecache_range(inode, start, end - 1); diff --git a/hibernate-freeze-filesystems.patch b/hibernate-freeze-filesystems.patch deleted file mode 100644 index f037468b6..000000000 --- a/hibernate-freeze-filesystems.patch +++ /dev/null @@ -1,290 +0,0 @@ -Bugzilla: N/A -Upstream-status: Sent in 2012. Pinged again on Dec 17, 2013 - -commit b94887bbc0621e1e8402e7f0ec4bc3adf46c9a6e -Author: Rafael J. Wysocki -Date: Fri Feb 17 12:42:08 2012 -0500 - - Freeze all filesystems during system suspend and (kernel-driven) - hibernation by calling freeze_supers() for all superblocks and thaw - them during the subsequent resume with the help of thaw_supers(). - - This makes filesystems stay in a consistent state in case something - goes wrong between system suspend (or hibernation) and the subsequent - resume (e.g. journal replays won't be necessary in those cases). In - particular, this should help to solve a long-standing issue that, in - some cases, during resume from hibernation the boot loader causes the - journal to be replied for the filesystem containing the kernel image - and/or initrd causing it to become inconsistent with the information - stored in the hibernation image. - - The user-space-driven hibernation (s2disk) is not covered by this - change, because the freezing of filesystems prevents s2disk from - accessing device special files it needs to do its job. - - This change is based on earlier work by Nigel Cunningham. - - Signed-off-by: Rafael J. Wysocki - - Rebased to 3.3-rc3 by Josh Boyer - -diff --git a/fs/super.c b/fs/super.c -index 6015c02..c8057fa 100644 ---- a/fs/super.c -+++ b/fs/super.c -@@ -594,6 +594,79 @@ void iterate_supers_type(struct file_system_type *type, - EXPORT_SYMBOL(iterate_supers_type); - - /** -+ * thaw_supers - call thaw_super() for all superblocks -+ */ -+void thaw_supers(void) -+{ -+ struct super_block *sb, *p = NULL; -+ -+ spin_lock(&sb_lock); -+ list_for_each_entry(sb, &super_blocks, s_list) { -+ if (hlist_unhashed(&sb->s_instances)) -+ continue; -+ sb->s_count++; -+ spin_unlock(&sb_lock); -+ -+ if (sb->s_flags & MS_FROZEN) { -+ thaw_super(sb); -+ sb->s_flags &= ~MS_FROZEN; -+ } -+ -+ spin_lock(&sb_lock); -+ if (p) -+ __put_super(p); -+ p = sb; -+ } -+ if (p) -+ __put_super(p); -+ spin_unlock(&sb_lock); -+} -+ -+/** -+ * freeze_supers - call freeze_super() for all superblocks -+ */ -+int freeze_supers(void) -+{ -+ struct super_block *sb, *p = NULL; -+ int error = 0; -+ -+ spin_lock(&sb_lock); -+ /* -+ * Freeze in reverse order so filesystems depending on others are -+ * frozen in the right order (eg. loopback on ext3). -+ */ -+ list_for_each_entry_reverse(sb, &super_blocks, s_list) { -+ if (hlist_unhashed(&sb->s_instances)) -+ continue; -+ sb->s_count++; -+ spin_unlock(&sb_lock); -+ -+ if (sb->s_root && sb->s_frozen != SB_FREEZE_TRANS -+ && !(sb->s_flags & MS_RDONLY)) { -+ error = freeze_super(sb); -+ if (!error) -+ sb->s_flags |= MS_FROZEN; -+ } -+ -+ spin_lock(&sb_lock); -+ if (error) -+ break; -+ if (p) -+ __put_super(p); -+ p = sb; -+ } -+ if (p) -+ __put_super(p); -+ spin_unlock(&sb_lock); -+ -+ if (error) -+ thaw_supers(); -+ -+ return error; -+} -+ -+ -+/** - * get_super - get the superblock of a device - * @bdev: device to get the superblock for - * -diff --git a/include/linux/fs.h b/include/linux/fs.h -index 386da09..a164f4a 100644 ---- a/include/linux/fs.h -+++ b/include/linux/fs.h -@@ -210,6 +210,7 @@ struct inodes_stat_t { - #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */ - #define MS_I_VERSION (1<<23) /* Update inode I_version field */ - #define MS_STRICTATIME (1<<24) /* Always perform atime updates */ -+#define MS_FROZEN (1<<25) /* Frozen filesystem */ - #define MS_NOSEC (1<<28) - #define MS_BORN (1<<29) - #define MS_ACTIVE (1<<30) -@@ -2501,6 +2502,8 @@ extern void drop_super(struct super_block *sb); - extern void iterate_supers(void (*)(struct super_block *, void *), void *); - extern void iterate_supers_type(struct file_system_type *, - void (*)(struct super_block *, void *), void *); -+extern int freeze_supers(void); -+extern void thaw_supers(void); - - extern int dcache_dir_open(struct inode *, struct file *); - extern int dcache_dir_close(struct inode *, struct file *); -diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c -index 6d6d288..492fc62 100644 ---- a/kernel/power/hibernate.c -+++ b/kernel/power/hibernate.c -@@ -626,12 +626,17 @@ int hibernate(void) - if (error) - goto Finish; - -- error = hibernation_snapshot(hibernation_mode == HIBERNATION_PLATFORM); -+ error = freeze_supers(); - if (error) - goto Thaw; -+ -+ error = hibernation_snapshot(hibernation_mode == HIBERNATION_PLATFORM); -+ if (error) -+ goto Thaw_fs; -+ - if (freezer_test_done) { - freezer_test_done = false; -- goto Thaw; -+ goto Thaw_fs; - } - - if (in_suspend) { -@@ -655,6 +660,8 @@ int hibernate(void) - pr_debug("PM: Image restored successfully.\n"); - } - -+ Thaw_fs: -+ thaw_supers(); - Thaw: - thaw_processes(); - Finish: -diff --git a/kernel/power/power.h b/kernel/power/power.h -index 21724ee..40d6f64 100644 ---- a/kernel/power/power.h -+++ b/kernel/power/power.h -@@ -1,3 +1,4 @@ -+#include - #include - #include - #include -@@ -227,45 +228,3 @@ enum { - #define TEST_MAX (__TEST_AFTER_LAST - 1) - - extern int pm_test_level; -- --#ifdef CONFIG_SUSPEND_FREEZER --static inline int suspend_freeze_processes(void) --{ -- int error; -- -- error = freeze_processes(); -- -- /* -- * freeze_processes() automatically thaws every task if freezing -- * fails. So we need not do anything extra upon error. -- */ -- if (error) -- goto Finish; -- -- error = freeze_kernel_threads(); -- -- /* -- * freeze_kernel_threads() thaws only kernel threads upon freezing -- * failure. So we have to thaw the userspace tasks ourselves. -- */ -- if (error) -- thaw_processes(); -- -- Finish: -- return error; --} -- --static inline void suspend_thaw_processes(void) --{ -- thaw_processes(); --} --#else --static inline int suspend_freeze_processes(void) --{ -- return 0; --} -- --static inline void suspend_thaw_processes(void) --{ --} --#endif -diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c -index 4fd51be..5f51fc7 100644 ---- a/kernel/power/suspend.c -+++ b/kernel/power/suspend.c -@@ -29,6 +29,62 @@ - - #include "power.h" - -+#ifdef CONFIG_SUSPEND_FREEZER -+ -+static inline int suspend_freeze_processes(void) -+{ -+ int error; -+ -+ error = freeze_processes(); -+ -+ /* -+ * freeze_processes() automatically thaws every task if freezing -+ * fails. So we need not do anything extra upon error. -+ */ -+ -+ if (error) -+ goto Finish; -+ -+ error = freeze_supers(); -+ if (error) { -+ thaw_processes(); -+ goto Finish; -+ } -+ -+ error = freeze_kernel_threads(); -+ -+ /* -+ * freeze_kernel_threads() thaws only kernel threads upon freezing -+ * failure. So we have to thaw the userspace tasks ourselves. -+ */ -+ if (error) { -+ thaw_supers(); -+ thaw_processes(); -+ } -+ -+Finish: -+ return error; -+} -+ -+static inline void suspend_thaw_processes(void) -+{ -+ thaw_supers(); -+ thaw_processes(); -+} -+ -+#else /* !CONFIG_SUSPEND_FREEZER */ -+ -+static inline int suspend_freeze_processes(void) -+{ -+ return 0; -+} -+ -+static inline void suspend_thaw_processes(void) -+{ -+} -+ -+#endif /* !CONFIG_SUSPEND_FREEZER */ -+ - const char *const pm_states[PM_SUSPEND_MAX] = { - [PM_SUSPEND_STANDBY] = "standby", - [PM_SUSPEND_MEM] = "mem", diff --git a/ideapad_laptop-Add-Lenovo-G40-30-to-devices-without-.patch b/ideapad_laptop-Add-Lenovo-G40-30-to-devices-without-.patch deleted file mode 100644 index d281ee5d5..000000000 --- a/ideapad_laptop-Add-Lenovo-G40-30-to-devices-without-.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 9b071a43553d6b2df4364951639f61076a8dd676 Mon Sep 17 00:00:00 2001 -From: Philippe Coval -Date: Sat, 2 May 2015 15:14:08 +0200 -Subject: [PATCH] ideapad_laptop: Add Lenovo G40-30 to devices without radio - switch - -Lenovo G40-30 does not provide any physical radio switch to user. -Therefore disable the rfkill switch identically to the Yoga 2 approach. -(Note for later, models ids are sorted alphabetically). - -Benefit is to make wireless available again without unloading module. - -It was tested successfully on 4.1.0-rc1 base with this model: -(LENOVO_MT_80FY_BU_idea_FM_Lenovo G40-30). - -BugLink: https://bugs.launchpad.net/ideapad-laptop/+bug/1450946 -Cc: platform-driver-x86@vger.kernel.org -Cc: linux-kernel@vger.kernel.org -Signed-off-by: Philippe Coval -Signed-off-by: Darren Hart ---- - drivers/platform/x86/ideapad-laptop.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/drivers/platform/x86/ideapad-laptop.c b/drivers/platform/x86/ideapad-laptop.c -index b3d419a..b496db8 100644 ---- a/drivers/platform/x86/ideapad-laptop.c -+++ b/drivers/platform/x86/ideapad-laptop.c -@@ -830,6 +830,13 @@ static void ideapad_acpi_notify(acpi_handle handle, u32 event, void *data) - */ - static const struct dmi_system_id no_hw_rfkill_list[] = { - { -+ .ident = "Lenovo G40-30", -+ .matches = { -+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), -+ DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo G40-30"), -+ }, -+ }, -+ { - .ident = "Lenovo Yoga 2 11 / 13 / Pro", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), --- -2.4.3 - diff --git a/kernel.spec b/kernel.spec index 18c14146e..3e9d49947 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,19 +42,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 200 +%global baserelease 100 %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 0 +%define base_sublevel 1 ## If this is a released kernel ## %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 9 +%define stable_update 3 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -492,17 +492,12 @@ Patch00: patch-4.%{base_sublevel}-git%{gitrev}.xz %endif %endif -# we also need compile fixes for -vanilla -Patch04: compile-fixes.patch - # build tweak for build ID magic, even for -vanilla Patch05: kbuild-AFTER_LINK.patch %if !%{nopatches} -# revert upstream patches we get via other methods -Patch09: upstream-reverts.patch # Git trees. # Standalone patches @@ -560,7 +555,6 @@ Patch1020: efi-Add-esrt-support.patch # nouveau + drm fixes # intel drm is all merged upstream Patch1826: drm-i915-hush-check-crtc-state.patch -Patch1827: drm-i915-Disable-verbose-state-checks.patch # Quiet boot fixes @@ -571,8 +565,6 @@ Patch1827: drm-i915-Disable-verbose-state-checks.patch # patches headed upstream Patch12016: disable-i8042-check-on-apple-mac.patch -Patch14000: hibernate-freeze-filesystems.patch - Patch14010: lis3-improve-handling-of-null-rate.patch Patch15000: watchdog-Disable-watchdog-on-virtual-machines.patch @@ -580,23 +572,23 @@ Patch15000: watchdog-Disable-watchdog-on-virtual-machines.patch # PPC # ARM64 -Patch21000: net-amd-Add-xgbe-a0-driver.patch -Patch21001: amd-xgbe-phy-a0-Add-support-for-XGBE-PHY-on-A0.patch -Patch21002: arm64-avoid-needing-console-to-enable-serial-console.patch -Patch21003: usb-make-xhci-platform-driver-use-64-bit-or-32-bit-D.patch +Patch16000: amd-xgbe-a0-Add-support-for-XGBE-on-A0.patch +Patch16001: amd-xgbe-phy-a0-Add-support-for-XGBE-PHY-on-A0.patch +Patch16002: arm64-avoid-needing-console-to-enable-serial-console.patch +Patch16003: usb-make-xhci-platform-driver-use-64-bit-or-32-bit-D.patch # ARMv7 -Patch21020: ARM-tegra-usb-no-reset.patch -Patch21021: arm-dts-am335x-boneblack-lcdc-add-panel-info.patch -Patch21022: arm-dts-am335x-boneblack-add-cpu0-opp-points.patch -Patch21023: arm-dts-am335x-bone-common-enable-and-use-i2c2.patch -Patch21024: arm-dts-am335x-bone-common-setup-default-pinmux-http.patch -Patch21025: arm-dts-am335x-bone-common-add-uart2_pins-uart4_pins.patch -Patch21026: pinctrl-pinctrl-single-must-be-initialized-early.patch -Patch21027: 0001-drivers-rtc-rtc-em3027.c-add-device-tree-support.patch -Patch21028: arm-i.MX6-Utilite-device-dtb.patch +Patch16020: ARM-tegra-usb-no-reset.patch +Patch16021: arm-dts-am335x-boneblack-lcdc-add-panel-info.patch +Patch16022: arm-dts-am335x-boneblack-add-cpu0-opp-points.patch +Patch16023: arm-dts-am335x-bone-common-enable-and-use-i2c2.patch +Patch16024: arm-dts-am335x-bone-common-setup-default-pinmux-http.patch +Patch16025: arm-dts-am335x-bone-common-add-uart2_pins-uart4_pins.patch +Patch16026: pinctrl-pinctrl-single-must-be-initialized-early.patch -Patch21100: arm-highbank-l2-reverts.patch +Patch16028: arm-i.MX6-Utilite-device-dtb.patch + +Patch16030: arm-highbank-l2-reverts.patch #rhbz 754518 Patch21235: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch @@ -607,89 +599,43 @@ Patch21242: criu-no-expert.patch #rhbz 892811 Patch21247: ath9k-rx-dma-stop-check.patch -Patch22000: weird-root-dentry-name-debug.patch - -#CVE-2015-0275 rhbz 1193907 1195178 -Patch26138: ext4-Allocate-entire-range-in-zero-range.patch - -#rhbz 1196825 -Patch26140: security-yama-Remove-unnecessary-selects-from-Kconfi.patch - -#rhbz 1201532 -Patch26168: HID-multitouch-add-support-of-clickpads.patch - -#rhbz 1187004 -Patch26170: acpi-video-Allow-forcing-native-backlight-on-non-win.patch -Patch26171: acpi-video-Add-force-native-backlight-quirk-for-Leno.patch - #CVE-2015-2150 rhbz 1196266 1200397 Patch26175: xen-pciback-Don-t-disable-PCI_COMMAND-on-PCI-device-.patch -#rhbz 1210801 -Patch26179: HID-logitech-hidpp-add-a-module-parameter-to-keep-fi.patch - -#rhbz 1209088 -Patch26180: Input-atmel_mxt_ts-implement-support-for-T100-touch-.patch -Patch26181: Input-atmel_mxt_ts-split-out-touchpad-initialisation.patch -Patch26182: Input-atmel_mxt_ts-add-support-for-Google-Pixel-2.patch - -#rhbz 1188741 -Patch26183: 0001-ALSA-hda-realtek-Support-Dell-headset-mode-for-ALC28.patch -Patch26184: 0001-ALSA-hda-realtek-Support-headset-mode-for-ALC286-288.patch +#rhbz 1212230 +Patch26176: Input-synaptics-pin-3-touches-when-the-firmware-repo.patch #rhbz 1210857 Patch26192: blk-loop-avoid-too-many-pending-per-work-IO.patch -#rhbz 1206036 1215989 -Patch26193: toshiba_acpi-Do-not-register-vendor-backlight-when-a.patch - -#rhbz 1219343 -Patch26200: 0001-HID-usbhid-Add-HID_QUIRK_NOGET-for-Aten-DVI-KVM-swit.patch - #rhbz 1220118 Patch26202: media-Fix-regression-in-some-more-dib0700-based-devi.patch Patch26203: v4l-uvcvideo-Fix-incorrect-bandwidth-with-Chicony-de.patch -#rhbz 1204390 -Patch26204: 0001-cx18-add-missing-caps-for-the-PCM-video-device.patch - -#rhbz 1218688 -Patch26205: drm-i915-Fix-ilk-watermarks-calculation-when-primary.patch - #rhbz 1217249 Patch26214: acpi_video-Add-enable_native_backlight-quirk-for-Mac.patch #rhbz 1225563 Patch26215: HID-lenovo-set-INPUT_PROP_POINTING_STICK.patch -#rhbz 1218882 -Patch26216: 0001-target-use-vfs_iter_read-write-in-fd_do_rw.patch - #rhbz 1133378 Patch26219: firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch -# FAF Problem 885578 -Patch26220: 0001-mwifiex-use-del_timer-variant-in-interrupt-context.patch - #rhbz 1226743 Patch26221: drm-i915-turn-off-wc-mmaps.patch -#rhbz 1212230 -Patch26238: Input-Revert-Revert-synaptics-use-dmax-in-input_mt_a.patch -Patch26239: Input-synaptics-allocate-3-slots-to-keep-stability-i.patch -Patch26240: Input-synaptics-pin-3-touches-when-the-firmware-repo.patch - # CVE-2015-XXXX rhbz 1230770 1230774 -Patch26241: kvm-x86-fix-kvm_apic_has_events-to-check-for-NULL-po.patch +Patch26231: kvm-x86-fix-kvm_apic_has_events-to-check-for-NULL-po.patch # rhbz 1227891 Patch26250: HID-rmi-Disable-populating-F30-when-the-touchpad-has.patch # rhbz 1192270 -Patch26251: ideapad_laptop-Add-Lenovo-G40-30-to-devices-without-.patch Patch26252: ideapad_laptop-Lenovo-G50-30-fix-rfkill-reports-wire.patch +# rhbz 1180920 1206724 +Patch26253: pcmcia-fix-a-boot-time-warning-in-pcmcia-cs-code.patch # END OF PATCH DEFINITIONS @@ -1246,16 +1192,9 @@ done ApplyPatch kbuild-AFTER_LINK.patch -# -# misc small stuff to make things compile -# -ApplyOptionalPatch compile-fixes.patch %if !%{nopatches} -# revert patches from upstream that conflict or that we get via other means -ApplyOptionalPatch upstream-reverts.patch -R - # Architecture patches # x86(-64) ApplyPatch lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch @@ -1263,7 +1202,7 @@ ApplyPatch lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch # PPC # ARM64 -ApplyPatch net-amd-Add-xgbe-a0-driver.patch +ApplyPatch amd-xgbe-a0-Add-support-for-XGBE-on-A0.patch ApplyPatch amd-xgbe-phy-a0-Add-support-for-XGBE-PHY-on-A0.patch ApplyPatch arm64-avoid-needing-console-to-enable-serial-console.patch ApplyPatch usb-make-xhci-platform-driver-use-64-bit-or-32-bit-D.patch @@ -1272,13 +1211,14 @@ ApplyPatch usb-make-xhci-platform-driver-use-64-bit-or-32-bit-D.patch # ARM # ApplyPatch ARM-tegra-usb-no-reset.patch + ApplyPatch arm-dts-am335x-boneblack-lcdc-add-panel-info.patch ApplyPatch arm-dts-am335x-boneblack-add-cpu0-opp-points.patch ApplyPatch arm-dts-am335x-bone-common-enable-and-use-i2c2.patch ApplyPatch arm-dts-am335x-bone-common-setup-default-pinmux-http.patch ApplyPatch arm-dts-am335x-bone-common-add-uart2_pins-uart4_pins.patch ApplyPatch pinctrl-pinctrl-single-must-be-initialized-early.patch -ApplyPatch 0001-drivers-rtc-rtc-em3027.c-add-device-tree-support.patch + ApplyPatch arm-i.MX6-Utilite-device-dtb.patch ApplyPatch arm-highbank-l2-reverts.patch @@ -1377,16 +1317,12 @@ ApplyPatch efi-Add-esrt-support.patch # Intel DRM ApplyPatch drm-i915-hush-check-crtc-state.patch -ApplyPatch drm-i915-Disable-verbose-state-checks.patch # Radeon DRM # Patches headed upstream ApplyPatch disable-i8042-check-on-apple-mac.patch -# FIXME: REBASE -#ApplyPatch hibernate-freeze-filesystems.patch - ApplyPatch lis3-improve-handling-of-null-rate.patch # Disable watchdog on virtual machines. @@ -1395,77 +1331,35 @@ ApplyPatch watchdog-Disable-watchdog-on-virtual-machines.patch #rhbz 754518 ApplyPatch scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch -#pplyPatch weird-root-dentry-name-debug.patch - # https://fedoraproject.org/wiki/Features/Checkpoint_Restore ApplyPatch criu-no-expert.patch #rhbz 892811 ApplyPatch ath9k-rx-dma-stop-check.patch -#CVE-2015-0275 rhbz 1193907 1195178 -ApplyPatch ext4-Allocate-entire-range-in-zero-range.patch - -#rhbz 1196825 -ApplyPatch security-yama-Remove-unnecessary-selects-from-Kconfi.patch - -#rhbz 1201532 -ApplyPatch HID-multitouch-add-support-of-clickpads.patch - -#rhbz 1187004 -ApplyPatch acpi-video-Allow-forcing-native-backlight-on-non-win.patch -ApplyPatch acpi-video-Add-force-native-backlight-quirk-for-Leno.patch - #CVE-2015-2150 rhbz 1196266 1200397 ApplyPatch xen-pciback-Don-t-disable-PCI_COMMAND-on-PCI-device-.patch -#rhbz 1210801 -ApplyPatch HID-logitech-hidpp-add-a-module-parameter-to-keep-fi.patch - -#rhbz 1209088 -ApplyPatch Input-atmel_mxt_ts-implement-support-for-T100-touch-.patch -ApplyPatch Input-atmel_mxt_ts-split-out-touchpad-initialisation.patch -ApplyPatch Input-atmel_mxt_ts-add-support-for-Google-Pixel-2.patch - -#rhbz 1188741 -ApplyPatch 0001-ALSA-hda-realtek-Support-Dell-headset-mode-for-ALC28.patch -ApplyPatch 0001-ALSA-hda-realtek-Support-headset-mode-for-ALC286-288.patch +#rhbz 1212230 +ApplyPatch Input-synaptics-pin-3-touches-when-the-firmware-repo.patch #rhbz 1210857 ApplyPatch blk-loop-avoid-too-many-pending-per-work-IO.patch -#rhbz 1206036 1215989 -ApplyPatch toshiba_acpi-Do-not-register-vendor-backlight-when-a.patch - -#rhbz 1219343 -ApplyPatch 0001-HID-usbhid-Add-HID_QUIRK_NOGET-for-Aten-DVI-KVM-swit.patch - #rhbz 1220118 ApplyPatch media-Fix-regression-in-some-more-dib0700-based-devi.patch ApplyPatch v4l-uvcvideo-Fix-incorrect-bandwidth-with-Chicony-de.patch -#rhbz 1204390 -ApplyPatch 0001-cx18-add-missing-caps-for-the-PCM-video-device.patch - -#rhbz 1218688 -ApplyPatch drm-i915-Fix-ilk-watermarks-calculation-when-primary.patch - #rhbz 1217249 ApplyPatch acpi_video-Add-enable_native_backlight-quirk-for-Mac.patch #rhbz 1225563 ApplyPatch HID-lenovo-set-INPUT_PROP_POINTING_STICK.patch -#rhbz 1218882 -ApplyPatch 0001-target-use-vfs_iter_read-write-in-fd_do_rw.patch - #rhbz 1133378 ApplyPatch firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch -# FAF Problem 885578 -ApplyPatch 0001-mwifiex-use-del_timer-variant-in-interrupt-context.patch - #rhbz 1226743 ApplyPatch drm-i915-turn-off-wc-mmaps.patch @@ -1481,9 +1375,10 @@ ApplyPatch kvm-x86-fix-kvm_apic_has_events-to-check-for-NULL-po.patch ApplyPatch HID-rmi-Disable-populating-F30-when-the-touchpad-has.patch # rhbz 1192270 -ApplyPatch ideapad_laptop-Add-Lenovo-G40-30-to-devices-without-.patch ApplyPatch ideapad_laptop-Lenovo-G50-30-fix-rfkill-reports-wire.patch +# rhbz 1180920 1206724 +ApplyPatch pcmcia-fix-a-boot-time-warning-in-pcmcia-cs-code.patch # END OF PATCH APPLICATIONS @@ -1890,7 +1785,7 @@ BuildKernel %make_target %kernel_image %endif %global perf_make \ - make -s %{?cross_opts} %{?_smp_mflags} -C tools/perf V=1 WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_LIBNUMA=1 NO_STRLCPY=1 NO_BIONIC=1 prefix=%{_prefix} + make -s EXTRA_CFLAGS="${RPM_OPT_FLAGS}" LDFLAGS="%{__global_ldflags}" %{?cross_opts} %{?_smp_mflags} -C tools/perf V=1 NO_PERF_READ_VDSO32=1 WERROR=0 NO_LIBUNWIND=1 HAVE_CPLUS_DEMANGLE=1 NO_GTK2=1 NO_STRLCPY=1 NO_BIONIC=1 prefix=%{_prefix} %if %{with_perf} # perf %{perf_make} DESTDIR=$RPM_BUILD_ROOT all @@ -2344,6 +2239,10 @@ fi # ||----w | # || || %changelog +* Thu Jul 23 2015 Laura Abbott - 4.1.3-100 +- Linux v4.1.3 rebase +- Fix warning from pcmcia (rhbz 1180920 1206724) + * Wed Jul 22 2015 Laura Abbott - 4.0.9-200 - Linux v4.0.9 - Add patches for Ideapad RF switches (rhbz 1192270) diff --git a/pcmcia-fix-a-boot-time-warning-in-pcmcia-cs-code.patch b/pcmcia-fix-a-boot-time-warning-in-pcmcia-cs-code.patch new file mode 100644 index 000000000..fab3d2708 --- /dev/null +++ b/pcmcia-fix-a-boot-time-warning-in-pcmcia-cs-code.patch @@ -0,0 +1,66 @@ +From d3046ba809ce4a3c34d605000cdce48c6ba54b6c Mon Sep 17 00:00:00 2001 +From: Dmitry Eremin-Solenikov +Date: Mon, 30 Mar 2015 14:33:45 +0300 +Subject: [PATCH] pcmcia: fix a boot time warning in pcmcia cs code + +During bootup pcmcia (pccardd) code enforces the following warning +backtrace: + +do not call blocking ops when !TASK_RUNNING; state=1 set at [] pccardd+0xb8/0x3fc +Modules linked in: +CPU: 0 PID: 14 Comm: pccardd Not tainted 4.0.0-rc6+ #11 +Hardware name: Sharp-Collie +[] (unwind_backtrace) from [] (show_stack+0x10/0x14) +[] (show_stack) from [] (warn_slowpath_common+0x74/0xac) +[] (warn_slowpath_common) from [] (warn_slowpath_fmt+0x30/0x40) +[] (warn_slowpath_fmt) from [] (__might_sleep+0x84/0xa0) +[] (__might_sleep) from [] (mutex_lock_nested+0x24/0x388) +[] (mutex_lock_nested) from [] (pccardd+0xf8/0x3fc) +[] (pccardd) from [] (kthread+0xdc/0xfc) +[] (kthread) from [] (ret_from_fork+0x14/0x2c) +---[ end trace fd94911637eed4ba ]--- + +This happens due to kthread trying to lock mutex in a TASK_INTERRUPTIBLE +state. Limit TASK_INTERRUPTIBLE task state to the schedule() call only, +so that the rest of the code runs in TASK_RUNNING state. + +Signed-off-by: Dmitry Eremin-Solenikov +Signed-off-by: Greg Kroah-Hartman +--- + drivers/pcmcia/cs.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/drivers/pcmcia/cs.c b/drivers/pcmcia/cs.c +index 5292db6..367d45e 100644 +--- a/drivers/pcmcia/cs.c ++++ b/drivers/pcmcia/cs.c +@@ -626,8 +626,6 @@ static int pccardd(void *__skt) + unsigned int events; + unsigned int sysfs_events; + +- set_current_state(TASK_INTERRUPTIBLE); +- + spin_lock_irqsave(&skt->thread_lock, flags); + events = skt->thread_events; + skt->thread_events = 0; +@@ -675,11 +673,15 @@ static int pccardd(void *__skt) + if (kthread_should_stop()) + break; + ++ set_current_state(TASK_INTERRUPTIBLE); ++ + schedule(); ++ ++ /* make sure we are running */ ++ __set_current_state(TASK_RUNNING); ++ + try_to_freeze(); + } +- /* make sure we are running before we exit */ +- set_current_state(TASK_RUNNING); + + /* shut down socket, if a device is still present */ + if (skt->state & SOCKET_PRESENT) { +-- +2.4.3 + diff --git a/security-yama-Remove-unnecessary-selects-from-Kconfi.patch b/security-yama-Remove-unnecessary-selects-from-Kconfi.patch deleted file mode 100644 index 4e0171ba2..000000000 --- a/security-yama-Remove-unnecessary-selects-from-Kconfi.patch +++ /dev/null @@ -1,25 +0,0 @@ -From: Stephen Smalley -Date: Fri, 27 Feb 2015 16:23:59 -0500 -Subject: [PATCH] security/yama: Remove unnecessary selects from Kconfig. - -Yama selects SECURITYFS and SECURITY_PATH, but requires neither. -Remove them. - -Signed-off-by: Stephen Smalley ---- - security/yama/Kconfig | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/security/yama/Kconfig b/security/yama/Kconfig -index 20ef5143c0c0..3123e1da2fed 100644 ---- a/security/yama/Kconfig -+++ b/security/yama/Kconfig -@@ -1,8 +1,6 @@ - config SECURITY_YAMA - bool "Yama support" - depends on SECURITY -- select SECURITYFS -- select SECURITY_PATH - default n - help - This selects Yama, which extends DAC support with additional diff --git a/sources b/sources index aa73c431b..16fe6bbd6 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -a86916bd12798220da9eb4a1eec3616d linux-4.0.tar.xz -d125eecce68ab6fb5f1f23523c2c04b8 perf-man-4.0.tar.gz -9f73dca514eeeff32bbb33265fe3bb02 patch-4.0.9.xz +fe9dc0f6729f36400ea81aa41d614c37 linux-4.1.tar.xz +5b4d0e18c713a479a7b4c1aa53a7432b perf-man-4.1.tar.gz +6a388f552b05243ae4165735da839e24 patch-4.1.3.xz diff --git a/toshiba_acpi-Do-not-register-vendor-backlight-when-a.patch b/toshiba_acpi-Do-not-register-vendor-backlight-when-a.patch deleted file mode 100644 index 94b3bcf45..000000000 --- a/toshiba_acpi-Do-not-register-vendor-backlight-when-a.patch +++ /dev/null @@ -1,94 +0,0 @@ -From: Hans de Goede -Date: Tue, 21 Apr 2015 12:01:32 +0200 -Subject: [PATCH] toshiba_acpi: Do not register vendor backlight when - acpi_video bl is available - -commit a39f46df33c6 ("toshiba_acpi: Fix regression caused by backlight extra -check code") causes the backlight to no longer work on the Toshiba Z30, -reverting that commit fixes this but restores the original issue fixed -by that commit. - -Looking at the toshiba_acpi backlight code for a fix for this I noticed that -the toshiba code is the only code under platform/x86 which unconditionally -registers a vendor acpi backlight interface, without checking for acpi_video -backlight support first. - -This commit adds the necessary checks bringing toshiba_acpi in line with the -other drivers, and fixing the Z30 regression without needing to revert the -commit causing it. - -Chances are that there will be some Toshiba models which have a non working -acpi-video implementation while the toshiba vendor backlight interface does -work, this commit adds an empty dmi_id table where such systems can be added, -this is identical to how other drivers handle such systems. - -BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1206036 -BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=86521 -Signed-off-by: Hans de Goede -Reviewed-and-tested-by: Azael Avalos -Signed-off-by: Darren Hart ---- - drivers/platform/x86/Kconfig | 1 + - drivers/platform/x86/toshiba_acpi.c | 23 +++++++++++++++++++++++ - 2 files changed, 24 insertions(+) - -diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig -index 97527614141b..f9f205cb1f11 100644 ---- a/drivers/platform/x86/Kconfig -+++ b/drivers/platform/x86/Kconfig -@@ -614,6 +614,7 @@ config ACPI_TOSHIBA - depends on INPUT - depends on RFKILL || RFKILL = n - depends on SERIO_I8042 || SERIO_I8042 = n -+ depends on ACPI_VIDEO || ACPI_VIDEO = n - select INPUT_POLLDEV - select INPUT_SPARSEKMAP - ---help--- -diff --git a/drivers/platform/x86/toshiba_acpi.c b/drivers/platform/x86/toshiba_acpi.c -index dbcb7a8915b8..2da716c3b648 100644 ---- a/drivers/platform/x86/toshiba_acpi.c -+++ b/drivers/platform/x86/toshiba_acpi.c -@@ -51,6 +51,7 @@ - #include - #include - #include -+#include - - MODULE_AUTHOR("John Belmonte"); - MODULE_DESCRIPTION("Toshiba Laptop ACPI Extras Driver"); -@@ -281,6 +282,14 @@ static const struct key_entry toshiba_acpi_alt_keymap[] = { - }; - - /* -+ * List of models which have a broken acpi-video backlight interface and thus -+ * need to use the toshiba (vendor) interface instead. -+ */ -+static const struct dmi_system_id toshiba_vendor_backlight_dmi[] = { -+ {} -+}; -+ -+/* - * Utility - */ - -@@ -2541,6 +2550,20 @@ static int toshiba_acpi_setup_backlight(struct toshiba_acpi_dev *dev) - ret = get_tr_backlight_status(dev, &enabled); - dev->tr_backlight_supported = !ret; - -+ /* -+ * Tell acpi-video-detect code to prefer vendor backlight on all -+ * systems with transflective backlight and on dmi matched systems. -+ */ -+ if (dev->tr_backlight_supported || -+ dmi_check_system(toshiba_vendor_backlight_dmi)) -+ acpi_video_dmi_promote_vendor(); -+ -+ if (acpi_video_backlight_support()) -+ return 0; -+ -+ /* acpi-video may have loaded before we called dmi_promote_vendor() */ -+ acpi_video_unregister_backlight(); -+ - memset(&props, 0, sizeof(props)); - props.type = BACKLIGHT_PLATFORM; - props.max_brightness = HCI_LCD_BRIGHTNESS_LEVELS - 1; diff --git a/upstream-reverts.patch b/upstream-reverts.patch deleted file mode 100644 index 607602cfc..000000000 --- a/upstream-reverts.patch +++ /dev/null @@ -1 +0,0 @@ -nil diff --git a/weird-root-dentry-name-debug.patch b/weird-root-dentry-name-debug.patch deleted file mode 100644 index 9179fc9b3..000000000 --- a/weird-root-dentry-name-debug.patch +++ /dev/null @@ -1,22 +0,0 @@ -Bugzilla: 787171 766277 -Upstream-status: Fedora mustard - -debug patch for bz 787171/766277 - -diff --git a/fs/dcache.c b/fs/dcache.c -index bcbdb33..a6a5fdb 100644 ---- a/fs/dcache.c -+++ b/fs/dcache.c -@@ -2530,8 +2530,10 @@ global_root: - */ - if (IS_ROOT(dentry) && - (dentry->d_name.len != 1 || dentry->d_name.name[0] != '/')) { -- WARN(1, "Root dentry has weird name <%.*s>\n", -- (int) dentry->d_name.len, dentry->d_name.name); -+ WARN(1, "Root dentry has weird name <%.*s> vfsmnt:%s fs:%s\n", -+ (int) dentry->d_name.len, dentry->d_name.name, -+ vfsmnt->mnt_root->d_name.name, -+ vfsmnt->mnt_sb->s_type->name); - } - if (!slash) - error = prepend(buffer, buflen, "/", 1); diff --git a/x86-Lock-down-IO-port-access-when-module-security-is.patch b/x86-Lock-down-IO-port-access-when-module-security-is.patch index 697f5b103..4c1211d43 100644 --- a/x86-Lock-down-IO-port-access-when-module-security-is.patch +++ b/x86-Lock-down-IO-port-access-when-module-security-is.patch @@ -14,7 +14,7 @@ Signed-off-by: Matthew Garrett 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c -index 4ddaf66ea35f..00b440307419 100644 +index 37dae792dbbe..1ecc03ca3c15 100644 --- a/arch/x86/kernel/ioport.c +++ b/arch/x86/kernel/ioport.c @@ -15,6 +15,7 @@ @@ -44,13 +44,13 @@ index 4ddaf66ea35f..00b440307419 100644 } regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | (level << 12); diff --git a/drivers/char/mem.c b/drivers/char/mem.c -index 297110c12635..efe38c1bc234 100644 +index 6b1721f978c2..53fe675f9bd7 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c @@ -27,6 +27,7 @@ #include #include - #include + #include +#include #include