Update patches for v5.2
This commit is contained in:
parent
21508168a7
commit
9cf56369b0
|
@ -59,10 +59,10 @@ index d3d2dbfba680..0b7f617a6e9b 100644
|
||||||
buffer_desc = acpi_ut_create_buffer_object(buffer_length);
|
buffer_desc = acpi_ut_create_buffer_object(buffer_length);
|
||||||
if (!buffer_desc) {
|
if (!buffer_desc) {
|
||||||
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
|
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
|
||||||
index a1ed13183559..501d06d4f196 100644
|
index 5d5cc6111081..4fefae580dec 100644
|
||||||
--- a/drivers/platform/x86/Kconfig
|
--- a/drivers/platform/x86/Kconfig
|
||||||
+++ b/drivers/platform/x86/Kconfig
|
+++ b/drivers/platform/x86/Kconfig
|
||||||
@@ -622,6 +622,103 @@ config THINKPAD_ACPI_HOTKEY_POLL
|
@@ -623,6 +623,103 @@ config THINKPAD_ACPI_HOTKEY_POLL
|
||||||
If you are not sure, say Y here. The driver enables polling only if
|
If you are not sure, say Y here. The driver enables polling only if
|
||||||
it is strictly necessary to do so.
|
it is strictly necessary to do so.
|
||||||
|
|
||||||
|
@ -167,7 +167,7 @@ index a1ed13183559..501d06d4f196 100644
|
||||||
tristate "Thinkpad Hard Drive Active Protection System (hdaps)"
|
tristate "Thinkpad Hard Drive Active Protection System (hdaps)"
|
||||||
depends on INPUT
|
depends on INPUT
|
||||||
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
|
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
|
||||||
index 86cb76677bc8..be1ce92a365d 100644
|
index 87b0069bd781..8b12c19dc165 100644
|
||||||
--- a/drivers/platform/x86/Makefile
|
--- a/drivers/platform/x86/Makefile
|
||||||
+++ b/drivers/platform/x86/Makefile
|
+++ b/drivers/platform/x86/Makefile
|
||||||
@@ -39,6 +39,7 @@ obj-$(CONFIG_TC1100_WMI) += tc1100-wmi.o
|
@@ -39,6 +39,7 @@ obj-$(CONFIG_TC1100_WMI) += tc1100-wmi.o
|
|
@ -13,7 +13,7 @@ Subject: [PATCH 02/12] suspend
|
||||||
6 files changed, 40 insertions(+), 1 deletion(-)
|
6 files changed, 40 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h
|
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h
|
||||||
index 527d64545023..35840869c8d4 100644
|
index 55553d293a98..506656ec65ea 100644
|
||||||
--- a/drivers/nvme/host/nvme.h
|
--- a/drivers/nvme/host/nvme.h
|
||||||
+++ b/drivers/nvme/host/nvme.h
|
+++ b/drivers/nvme/host/nvme.h
|
||||||
@@ -92,6 +92,11 @@ enum nvme_quirks {
|
@@ -92,6 +92,11 @@ enum nvme_quirks {
|
||||||
|
@ -29,7 +29,7 @@ index 527d64545023..35840869c8d4 100644
|
||||||
|
|
||||||
/*
|
/*
|
||||||
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
|
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
|
||||||
index 914eea2ea557..1d1ea00b43ac 100644
|
index 524d6bd6d095..33b23fbff191 100644
|
||||||
--- a/drivers/nvme/host/pci.c
|
--- a/drivers/nvme/host/pci.c
|
||||||
+++ b/drivers/nvme/host/pci.c
|
+++ b/drivers/nvme/host/pci.c
|
||||||
@@ -23,6 +23,7 @@
|
@@ -23,6 +23,7 @@
|
||||||
|
@ -40,7 +40,7 @@ index 914eea2ea557..1d1ea00b43ac 100644
|
||||||
|
|
||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
#include "nvme.h"
|
#include "nvme.h"
|
||||||
@@ -2864,8 +2865,11 @@ static int nvme_suspend(struct device *dev)
|
@@ -2839,8 +2840,11 @@ static int nvme_suspend(struct device *dev)
|
||||||
{
|
{
|
||||||
struct pci_dev *pdev = to_pci_dev(dev);
|
struct pci_dev *pdev = to_pci_dev(dev);
|
||||||
struct nvme_dev *ndev = pci_get_drvdata(pdev);
|
struct nvme_dev *ndev = pci_get_drvdata(pdev);
|
||||||
|
@ -53,7 +53,7 @@ index 914eea2ea557..1d1ea00b43ac 100644
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2971,6 +2975,10 @@ static const struct pci_device_id nvme_id_table[] = {
|
@@ -2946,6 +2950,10 @@ static const struct pci_device_id nvme_id_table[] = {
|
||||||
.driver_data = NVME_QUIRK_LIGHTNVM, },
|
.driver_data = NVME_QUIRK_LIGHTNVM, },
|
||||||
{ PCI_DEVICE(0x1d1d, 0x2601), /* CNEX Granby */
|
{ PCI_DEVICE(0x1d1d, 0x2601), /* CNEX Granby */
|
||||||
.driver_data = NVME_QUIRK_LIGHTNVM, },
|
.driver_data = NVME_QUIRK_LIGHTNVM, },
|
||||||
|
@ -65,10 +65,10 @@ index 914eea2ea557..1d1ea00b43ac 100644
|
||||||
{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2001) },
|
{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2001) },
|
||||||
{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2003) },
|
{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2003) },
|
||||||
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
|
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
|
||||||
index cc616a5f6a8f..e2e95850383b 100644
|
index 0f16acc323c6..b9ddb77586c7 100644
|
||||||
--- a/drivers/pci/quirks.c
|
--- a/drivers/pci/quirks.c
|
||||||
+++ b/drivers/pci/quirks.c
|
+++ b/drivers/pci/quirks.c
|
||||||
@@ -1357,6 +1357,10 @@ DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_AL, PCI_ANY_ID,
|
@@ -1356,6 +1356,10 @@ DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_AL, PCI_ANY_ID,
|
||||||
occur when mode detecting */
|
occur when mode detecting */
|
||||||
DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_VIA, PCI_ANY_ID,
|
DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_VENDOR_ID_VIA, PCI_ANY_ID,
|
||||||
PCI_CLASS_STORAGE_IDE, 8, quirk_no_ata_d3);
|
PCI_CLASS_STORAGE_IDE, 8, quirk_no_ata_d3);
|
||||||
|
@ -91,10 +91,10 @@ index 70e86148cb1e..44e07bd7e7ee 100644
|
||||||
+
|
+
|
||||||
#endif /* _LINUX_PCI_IDS_H */
|
#endif /* _LINUX_PCI_IDS_H */
|
||||||
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
|
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
|
||||||
index 0bd595a0b610..a8385e8894a5 100644
|
index 096211299c07..0cb0fe170977 100644
|
||||||
--- a/kernel/power/suspend.c
|
--- a/kernel/power/suspend.c
|
||||||
+++ b/kernel/power/suspend.c
|
+++ b/kernel/power/suspend.c
|
||||||
@@ -526,6 +526,8 @@ int suspend_devices_and_enter(suspend_state_t state)
|
@@ -533,6 +533,8 @@ int suspend_devices_and_enter(suspend_state_t state)
|
||||||
goto Resume_devices;
|
goto Resume_devices;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ index 0bd595a0b610..a8385e8894a5 100644
|
||||||
/**
|
/**
|
||||||
* suspend_finish - Clean up before finishing the suspend sequence.
|
* suspend_finish - Clean up before finishing the suspend sequence.
|
||||||
*
|
*
|
||||||
@@ -534,6 +536,15 @@ int suspend_devices_and_enter(suspend_state_t state)
|
@@ -541,6 +543,15 @@ int suspend_devices_and_enter(suspend_state_t state)
|
||||||
*/
|
*/
|
||||||
static void suspend_finish(void)
|
static void suspend_finish(void)
|
||||||
{
|
{
|
||||||
|
@ -120,10 +120,10 @@ index 0bd595a0b610..a8385e8894a5 100644
|
||||||
pm_notifier_call_chain(PM_POST_SUSPEND);
|
pm_notifier_call_chain(PM_POST_SUSPEND);
|
||||||
pm_restore_console();
|
pm_restore_console();
|
||||||
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
|
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
|
||||||
index 387efbaf464a..f2762f5989a8 100644
|
index 1beca96fb625..4b98db9bbc88 100644
|
||||||
--- a/kernel/sysctl.c
|
--- a/kernel/sysctl.c
|
||||||
+++ b/kernel/sysctl.c
|
+++ b/kernel/sysctl.c
|
||||||
@@ -321,7 +321,16 @@ static int min_extfrag_threshold;
|
@@ -318,7 +318,16 @@ static int min_extfrag_threshold;
|
||||||
static int max_extfrag_threshold = 1000;
|
static int max_extfrag_threshold = 1000;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -10,10 +10,10 @@ Subject: [PATCH 03/12] buttons
|
||||||
3 files changed, 143 insertions(+), 15 deletions(-)
|
3 files changed, 143 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
|
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
|
||||||
index e15ed1bb8558..d88951da5e81 100644
|
index d07c1eb15aa6..7d9ae394e597 100644
|
||||||
--- a/drivers/input/misc/Kconfig
|
--- a/drivers/input/misc/Kconfig
|
||||||
+++ b/drivers/input/misc/Kconfig
|
+++ b/drivers/input/misc/Kconfig
|
||||||
@@ -791,10 +791,10 @@ config INPUT_IDEAPAD_SLIDEBAR
|
@@ -813,10 +813,10 @@ config INPUT_IDEAPAD_SLIDEBAR
|
||||||
|
|
||||||
config INPUT_SOC_BUTTON_ARRAY
|
config INPUT_SOC_BUTTON_ARRAY
|
||||||
tristate "Windows-compatible SoC Button Array"
|
tristate "Windows-compatible SoC Button Array"
|
||||||
|
@ -28,7 +28,7 @@ index e15ed1bb8558..d88951da5e81 100644
|
||||||
To compile this driver as a module, choose M here: the
|
To compile this driver as a module, choose M here: the
|
||||||
module will be called soc_button_array.
|
module will be called soc_button_array.
|
||||||
diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c
|
diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c
|
||||||
index bb458beecb43..85be24fbe30b 100644
|
index 55cd6e0b409c..8f21c062c85d 100644
|
||||||
--- a/drivers/input/misc/soc_button_array.c
|
--- a/drivers/input/misc/soc_button_array.c
|
||||||
+++ b/drivers/input/misc/soc_button_array.c
|
+++ b/drivers/input/misc/soc_button_array.c
|
||||||
@@ -29,6 +29,11 @@ struct soc_button_info {
|
@@ -29,6 +29,11 @@ struct soc_button_info {
|
||||||
|
@ -58,7 +58,7 @@ index bb458beecb43..85be24fbe30b 100644
|
||||||
|
|
||||||
gpio_keys[n_buttons].type = info->event_type;
|
gpio_keys[n_buttons].type = info->event_type;
|
||||||
gpio_keys[n_buttons].code = info->event_code;
|
gpio_keys[n_buttons].code = info->event_code;
|
||||||
@@ -313,23 +323,26 @@ static int soc_button_remove(struct platform_device *pdev)
|
@@ -309,23 +319,26 @@ static int soc_button_remove(struct platform_device *pdev)
|
||||||
static int soc_button_probe(struct platform_device *pdev)
|
static int soc_button_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct device *dev = &pdev->dev;
|
struct device *dev = &pdev->dev;
|
||||||
|
@ -93,7 +93,7 @@ index bb458beecb43..85be24fbe30b 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
error = gpiod_count(dev, NULL);
|
error = gpiod_count(dev, NULL);
|
||||||
@@ -361,7 +374,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
@@ -357,7 +370,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
||||||
if (!priv->children[0] && !priv->children[1])
|
if (!priv->children[0] && !priv->children[1])
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ index bb458beecb43..85be24fbe30b 100644
|
||||||
devm_kfree(dev, button_info);
|
devm_kfree(dev, button_info);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -372,7 +385,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
@@ -368,7 +381,7 @@ static int soc_button_probe(struct platform_device *pdev)
|
||||||
* is defined in section 2.8.7.2 of "Windows ACPI Design Guide for SoC
|
* is defined in section 2.8.7.2 of "Windows ACPI Design Guide for SoC
|
||||||
* Platforms"
|
* Platforms"
|
||||||
*/
|
*/
|
||||||
|
@ -111,7 +111,7 @@ index bb458beecb43..85be24fbe30b 100644
|
||||||
{ "power", 0, EV_KEY, KEY_POWER, false, true },
|
{ "power", 0, EV_KEY, KEY_POWER, false, true },
|
||||||
{ "home", 1, EV_KEY, KEY_LEFTMETA, false, true },
|
{ "home", 1, EV_KEY, KEY_LEFTMETA, false, true },
|
||||||
{ "volume_up", 2, EV_KEY, KEY_VOLUMEUP, true, false },
|
{ "volume_up", 2, EV_KEY, KEY_VOLUMEUP, true, false },
|
||||||
@@ -381,9 +394,77 @@ static struct soc_button_info soc_button_PNP0C40[] = {
|
@@ -377,9 +390,77 @@ static struct soc_button_info soc_button_PNP0C40[] = {
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
|
@ -21,10 +21,10 @@ Subject: [PATCH 04/12] cameras
|
||||||
create mode 100644 drivers/staging/ov5693/ov5693.h
|
create mode 100644 drivers/staging/ov5693/ov5693.h
|
||||||
|
|
||||||
diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
|
diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
|
||||||
index 10cfe8e51626..a5e6499dec2c 100644
|
index 66ee168ddc7e..e4bccfab9da1 100644
|
||||||
--- a/drivers/media/usb/uvc/uvc_driver.c
|
--- a/drivers/media/usb/uvc/uvc_driver.c
|
||||||
+++ b/drivers/media/usb/uvc/uvc_driver.c
|
+++ b/drivers/media/usb/uvc/uvc_driver.c
|
||||||
@@ -2399,6 +2399,46 @@ static const struct uvc_device_info uvc_quirk_force_y8 = {
|
@@ -2394,6 +2394,46 @@ static const struct uvc_device_info uvc_quirk_force_y8 = {
|
||||||
* though they are compliant.
|
* though they are compliant.
|
||||||
*/
|
*/
|
||||||
static const struct usb_device_id uvc_ids[] = {
|
static const struct usb_device_id uvc_ids[] = {
|
||||||
|
@ -72,13 +72,13 @@ index 10cfe8e51626..a5e6499dec2c 100644
|
||||||
{ .match_flags = USB_DEVICE_ID_MATCH_DEVICE
|
{ .match_flags = USB_DEVICE_ID_MATCH_DEVICE
|
||||||
| USB_DEVICE_ID_MATCH_INT_INFO,
|
| USB_DEVICE_ID_MATCH_INT_INFO,
|
||||||
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
|
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
|
||||||
index d1b17ddcd354..f51e5f6f2053 100644
|
index 0da0d3f0b5e4..1fffb6f5a3be 100644
|
||||||
--- a/drivers/staging/Makefile
|
--- a/drivers/staging/Makefile
|
||||||
+++ b/drivers/staging/Makefile
|
+++ b/drivers/staging/Makefile
|
||||||
@@ -51,3 +51,4 @@ obj-$(CONFIG_SOC_MT7621) += mt7621-dts/
|
@@ -49,3 +49,4 @@ obj-$(CONFIG_XIL_AXIS_FIFO) += axis-fifo/
|
||||||
obj-$(CONFIG_STAGING_GASKET_FRAMEWORK) += gasket/
|
|
||||||
obj-$(CONFIG_XIL_AXIS_FIFO) += axis-fifo/
|
|
||||||
obj-$(CONFIG_EROFS_FS) += erofs/
|
obj-$(CONFIG_EROFS_FS) += erofs/
|
||||||
|
obj-$(CONFIG_FIELDBUS_DEV) += fieldbus/
|
||||||
|
obj-$(CONFIG_KPC2000) += kpc2000/
|
||||||
+obj-$(CONFIG_VIDEO_OV5693) += ov5693/
|
+obj-$(CONFIG_VIDEO_OV5693) += ov5693/
|
||||||
diff --git a/drivers/staging/ov5693/Kconfig b/drivers/staging/ov5693/Kconfig
|
diff --git a/drivers/staging/ov5693/Kconfig b/drivers/staging/ov5693/Kconfig
|
||||||
new file mode 100644
|
new file mode 100644
|
|
@ -13,12 +13,12 @@ Subject: [PATCH 05/12] ipts
|
||||||
drivers/gpu/drm/i915/i915_params.h | 5 +-
|
drivers/gpu/drm/i915/i915_params.h | 5 +-
|
||||||
drivers/gpu/drm/i915/intel_dp.c | 4 +-
|
drivers/gpu/drm/i915/intel_dp.c | 4 +-
|
||||||
drivers/gpu/drm/i915/intel_guc.h | 1 +
|
drivers/gpu/drm/i915/intel_guc.h | 1 +
|
||||||
drivers/gpu/drm/i915/intel_guc_submission.c | 90 +-
|
drivers/gpu/drm/i915/intel_guc_submission.c | 89 +-
|
||||||
drivers/gpu/drm/i915/intel_guc_submission.h | 4 +
|
drivers/gpu/drm/i915/intel_guc_submission.h | 4 +
|
||||||
drivers/gpu/drm/i915/intel_ipts.c | 657 ++++++++++++
|
drivers/gpu/drm/i915/intel_ipts.c | 657 ++++++++++++
|
||||||
drivers/gpu/drm/i915/intel_ipts.h | 36 +
|
drivers/gpu/drm/i915/intel_ipts.h | 36 +
|
||||||
drivers/gpu/drm/i915/intel_lrc.c | 12 +-
|
drivers/gpu/drm/i915/intel_lrc.c | 15 +-
|
||||||
drivers/gpu/drm/i915/intel_lrc.h | 9 +
|
drivers/gpu/drm/i915/intel_lrc.h | 6 +
|
||||||
drivers/gpu/drm/i915/intel_panel.c | 7 +
|
drivers/gpu/drm/i915/intel_panel.c | 7 +
|
||||||
drivers/hid/hid-multitouch.c | 22 +-
|
drivers/hid/hid-multitouch.c | 22 +-
|
||||||
drivers/misc/Kconfig | 1 +
|
drivers/misc/Kconfig | 1 +
|
||||||
|
@ -35,7 +35,7 @@ Subject: [PATCH 05/12] ipts
|
||||||
drivers/misc/ipts/ipts-kernel.h | 23 +
|
drivers/misc/ipts/ipts-kernel.h | 23 +
|
||||||
drivers/misc/ipts/ipts-mei-msgs.h | 585 +++++++++++
|
drivers/misc/ipts/ipts-mei-msgs.h | 585 +++++++++++
|
||||||
drivers/misc/ipts/ipts-mei.c | 282 +++++
|
drivers/misc/ipts/ipts-mei.c | 282 +++++
|
||||||
drivers/misc/ipts/ipts-msg-handler.c | 431 ++++++++
|
drivers/misc/ipts/ipts-msg-handler.c | 437 ++++++++
|
||||||
drivers/misc/ipts/ipts-msg-handler.h | 32 +
|
drivers/misc/ipts/ipts-msg-handler.h | 32 +
|
||||||
drivers/misc/ipts/ipts-resource.c | 277 +++++
|
drivers/misc/ipts/ipts-resource.c | 277 +++++
|
||||||
drivers/misc/ipts/ipts-resource.h | 30 +
|
drivers/misc/ipts/ipts-resource.h | 30 +
|
||||||
|
@ -45,7 +45,7 @@ Subject: [PATCH 05/12] ipts
|
||||||
drivers/misc/mei/hw-me-regs.h | 1 +
|
drivers/misc/mei/hw-me-regs.h | 1 +
|
||||||
drivers/misc/mei/pci-me.c | 1 +
|
drivers/misc/mei/pci-me.c | 1 +
|
||||||
include/linux/intel_ipts_if.h | 75 ++
|
include/linux/intel_ipts_if.h | 75 ++
|
||||||
41 files changed, 5573 insertions(+), 25 deletions(-)
|
41 files changed, 5578 insertions(+), 25 deletions(-)
|
||||||
create mode 100644 drivers/gpu/drm/i915/intel_ipts.c
|
create mode 100644 drivers/gpu/drm/i915/intel_ipts.c
|
||||||
create mode 100644 drivers/gpu/drm/i915/intel_ipts.h
|
create mode 100644 drivers/gpu/drm/i915/intel_ipts.h
|
||||||
create mode 100644 drivers/misc/ipts/Kconfig
|
create mode 100644 drivers/misc/ipts/Kconfig
|
||||||
|
@ -70,10 +70,10 @@ Subject: [PATCH 05/12] ipts
|
||||||
create mode 100644 include/linux/intel_ipts_if.h
|
create mode 100644 include/linux/intel_ipts_if.h
|
||||||
|
|
||||||
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
|
diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
|
||||||
index 1787e1299b1b..43df660cd309 100644
|
index fbcb0904f4a8..1a273956b41c 100644
|
||||||
--- a/drivers/gpu/drm/i915/Makefile
|
--- a/drivers/gpu/drm/i915/Makefile
|
||||||
+++ b/drivers/gpu/drm/i915/Makefile
|
+++ b/drivers/gpu/drm/i915/Makefile
|
||||||
@@ -164,6 +164,9 @@ i915-y += dvo_ch7017.o \
|
@@ -170,6 +170,9 @@ i915-y += dvo_ch7017.o \
|
||||||
vlv_dsi_pll.o \
|
vlv_dsi_pll.o \
|
||||||
intel_vdsc.o
|
intel_vdsc.o
|
||||||
|
|
||||||
|
@ -84,18 +84,18 @@ index 1787e1299b1b..43df660cd309 100644
|
||||||
i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o
|
i915-$(CONFIG_DRM_I915_CAPTURE_ERROR) += i915_gpu_error.o
|
||||||
i915-$(CONFIG_DRM_I915_SELFTEST) += \
|
i915-$(CONFIG_DRM_I915_SELFTEST) += \
|
||||||
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
|
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
|
||||||
index 9df65d386d11..40f24ebf88ba 100644
|
index 1ad88e6d7c04..f3a175bfe499 100644
|
||||||
--- a/drivers/gpu/drm/i915/i915_drv.c
|
--- a/drivers/gpu/drm/i915/i915_drv.c
|
||||||
+++ b/drivers/gpu/drm/i915/i915_drv.c
|
+++ b/drivers/gpu/drm/i915/i915_drv.c
|
||||||
@@ -56,6 +56,7 @@
|
@@ -63,6 +63,7 @@
|
||||||
#include "intel_drv.h"
|
#include "intel_sprite.h"
|
||||||
#include "intel_uc.h"
|
#include "intel_uc.h"
|
||||||
#include "intel_workarounds.h"
|
#include "intel_workarounds.h"
|
||||||
+#include "intel_ipts.h"
|
+#include "intel_ipts.h"
|
||||||
|
|
||||||
static struct drm_driver driver;
|
static struct drm_driver driver;
|
||||||
|
|
||||||
@@ -711,6 +712,9 @@ static int i915_load_modeset_init(struct drm_device *dev)
|
@@ -723,6 +724,9 @@ static int i915_load_modeset_init(struct drm_device *dev)
|
||||||
|
|
||||||
intel_init_ipc(dev_priv);
|
intel_init_ipc(dev_priv);
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ index 9df65d386d11..40f24ebf88ba 100644
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
cleanup_gem:
|
cleanup_gem:
|
||||||
@@ -1748,6 +1752,9 @@ void i915_driver_unload(struct drm_device *dev)
|
@@ -1912,6 +1916,9 @@ void i915_driver_unload(struct drm_device *dev)
|
||||||
|
|
||||||
disable_rpm_wakeref_asserts(dev_priv);
|
disable_rpm_wakeref_asserts(dev_priv);
|
||||||
|
|
||||||
|
@ -114,8 +114,8 @@ index 9df65d386d11..40f24ebf88ba 100644
|
||||||
+
|
+
|
||||||
i915_driver_unregister(dev_priv);
|
i915_driver_unregister(dev_priv);
|
||||||
|
|
||||||
/* Flush any external code that still may be under the RCU lock */
|
/*
|
||||||
@@ -1884,6 +1891,9 @@ static int i915_drm_suspend(struct drm_device *dev)
|
@@ -2050,6 +2057,9 @@ static int i915_drm_suspend(struct drm_device *dev)
|
||||||
struct pci_dev *pdev = dev_priv->drm.pdev;
|
struct pci_dev *pdev = dev_priv->drm.pdev;
|
||||||
pci_power_t opregion_target_state;
|
pci_power_t opregion_target_state;
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ index 9df65d386d11..40f24ebf88ba 100644
|
||||||
disable_rpm_wakeref_asserts(dev_priv);
|
disable_rpm_wakeref_asserts(dev_priv);
|
||||||
|
|
||||||
/* We do a lot of poking in a lot of registers, make sure they work
|
/* We do a lot of poking in a lot of registers, make sure they work
|
||||||
@@ -2080,6 +2090,9 @@ static int i915_drm_resume(struct drm_device *dev)
|
@@ -2246,6 +2256,9 @@ static int i915_drm_resume(struct drm_device *dev)
|
||||||
|
|
||||||
enable_rpm_wakeref_asserts(dev_priv);
|
enable_rpm_wakeref_asserts(dev_priv);
|
||||||
|
|
||||||
|
@ -136,10 +136,10 @@ index 9df65d386d11..40f24ebf88ba 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
|
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
|
||||||
index 0c4a76bca5c6..fada1122556a 100644
|
index 066fd2a12851..2a872d8725b5 100644
|
||||||
--- a/drivers/gpu/drm/i915/i915_drv.h
|
--- a/drivers/gpu/drm/i915/i915_drv.h
|
||||||
+++ b/drivers/gpu/drm/i915/i915_drv.h
|
+++ b/drivers/gpu/drm/i915/i915_drv.h
|
||||||
@@ -3119,6 +3119,9 @@ void i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj,
|
@@ -3184,6 +3184,9 @@ void i915_gem_object_do_bit_17_swizzle(struct drm_i915_gem_object *obj,
|
||||||
void i915_gem_object_save_bit_17_swizzle(struct drm_i915_gem_object *obj,
|
void i915_gem_object_save_bit_17_swizzle(struct drm_i915_gem_object *obj,
|
||||||
struct sg_table *pages);
|
struct sg_table *pages);
|
||||||
|
|
||||||
|
@ -150,11 +150,11 @@ index 0c4a76bca5c6..fada1122556a 100644
|
||||||
__i915_gem_context_lookup_rcu(struct drm_i915_file_private *file_priv, u32 id)
|
__i915_gem_context_lookup_rcu(struct drm_i915_file_private *file_priv, u32 id)
|
||||||
{
|
{
|
||||||
diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
|
diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
|
||||||
index 280813a4bf82..0e9a93bcf72b 100644
|
index dd728b26b5aa..ae3209b79b25 100644
|
||||||
--- a/drivers/gpu/drm/i915/i915_gem_context.c
|
--- a/drivers/gpu/drm/i915/i915_gem_context.c
|
||||||
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
|
+++ b/drivers/gpu/drm/i915/i915_gem_context.c
|
||||||
@@ -555,6 +555,18 @@ static bool needs_preempt_context(struct drm_i915_private *i915)
|
@@ -565,6 +565,18 @@ static bool needs_preempt_context(struct drm_i915_private *i915)
|
||||||
return HAS_LOGICAL_RING_PREEMPTION(i915);
|
return HAS_EXECLISTS(i915);
|
||||||
}
|
}
|
||||||
|
|
||||||
+struct i915_gem_context *i915_gem_context_create_ipts(struct drm_device *dev)
|
+struct i915_gem_context *i915_gem_context_create_ipts(struct drm_device *dev)
|
||||||
|
@ -164,7 +164,7 @@ index 280813a4bf82..0e9a93bcf72b 100644
|
||||||
+
|
+
|
||||||
+ BUG_ON(!mutex_is_locked(&dev->struct_mutex));
|
+ BUG_ON(!mutex_is_locked(&dev->struct_mutex));
|
||||||
+
|
+
|
||||||
+ ctx = i915_gem_create_context(dev_priv, NULL);
|
+ ctx = i915_gem_create_context(dev_priv, 0);
|
||||||
+
|
+
|
||||||
+ return ctx;
|
+ return ctx;
|
||||||
+}
|
+}
|
||||||
|
@ -173,19 +173,19 @@ index 280813a4bf82..0e9a93bcf72b 100644
|
||||||
{
|
{
|
||||||
struct i915_gem_context *ctx;
|
struct i915_gem_context *ctx;
|
||||||
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
|
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
|
||||||
index 441d2674b272..ad066f43cd4f 100644
|
index b92cfd69134b..78fcd4b78480 100644
|
||||||
--- a/drivers/gpu/drm/i915/i915_irq.c
|
--- a/drivers/gpu/drm/i915/i915_irq.c
|
||||||
+++ b/drivers/gpu/drm/i915/i915_irq.c
|
+++ b/drivers/gpu/drm/i915/i915_irq.c
|
||||||
@@ -37,6 +37,7 @@
|
@@ -41,6 +41,7 @@
|
||||||
#include "i915_drv.h"
|
|
||||||
#include "i915_trace.h"
|
#include "i915_trace.h"
|
||||||
#include "intel_drv.h"
|
#include "intel_drv.h"
|
||||||
|
#include "intel_psr.h"
|
||||||
+#include "intel_ipts.h"
|
+#include "intel_ipts.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DOC: interrupt handling
|
* DOC: interrupt handling
|
||||||
@@ -1452,6 +1453,9 @@ gen8_cs_irq_handler(struct intel_engine_cs *engine, u32 iir)
|
@@ -1520,6 +1521,9 @@ gen8_cs_irq_handler(struct intel_engine_cs *engine, u32 iir)
|
||||||
tasklet |= USES_GUC_SUBMISSION(engine->i915);
|
tasklet |= intel_engine_needs_breadcrumb_tasklet(engine);
|
||||||
}
|
}
|
||||||
|
|
||||||
+ if (iir & GT_RENDER_PIPECTL_NOTIFY_INTERRUPT && i915_modparams.enable_ipts)
|
+ if (iir & GT_RENDER_PIPECTL_NOTIFY_INTERRUPT && i915_modparams.enable_ipts)
|
||||||
|
@ -194,16 +194,16 @@ index 441d2674b272..ad066f43cd4f 100644
|
||||||
if (tasklet)
|
if (tasklet)
|
||||||
tasklet_hi_schedule(&engine->execlists.tasklet);
|
tasklet_hi_schedule(&engine->execlists.tasklet);
|
||||||
}
|
}
|
||||||
@@ -3879,7 +3883,8 @@ static void gen8_gt_irq_postinstall(struct drm_i915_private *dev_priv)
|
@@ -4055,7 +4059,8 @@ static void gen8_gt_irq_postinstall(struct drm_i915_private *dev_priv)
|
||||||
{
|
|
||||||
/* These are interrupts we'll toggle with the ring mask register */
|
/* These are interrupts we'll toggle with the ring mask register */
|
||||||
u32 gt_interrupts[] = {
|
u32 gt_interrupts[] = {
|
||||||
- GT_RENDER_USER_INTERRUPT << GEN8_RCS_IRQ_SHIFT |
|
- (GT_RENDER_USER_INTERRUPT << GEN8_RCS_IRQ_SHIFT |
|
||||||
+ GT_RENDER_PIPECTL_NOTIFY_INTERRUPT << GEN8_RCS_IRQ_SHIFT |
|
+ (GT_RENDER_PIPECTL_NOTIFY_INTERRUPT << GEN8_RCS_IRQ_SHIFT |
|
||||||
+ GT_RENDER_USER_INTERRUPT << GEN8_RCS_IRQ_SHIFT |
|
+ GT_RENDER_USER_INTERRUPT << GEN8_RCS_IRQ_SHIFT |
|
||||||
GT_CONTEXT_SWITCH_INTERRUPT << GEN8_RCS_IRQ_SHIFT |
|
GT_CONTEXT_SWITCH_INTERRUPT << GEN8_RCS_IRQ_SHIFT |
|
||||||
GT_RENDER_USER_INTERRUPT << GEN8_BCS_IRQ_SHIFT |
|
GT_RENDER_USER_INTERRUPT << GEN8_BCS_IRQ_SHIFT |
|
||||||
GT_CONTEXT_SWITCH_INTERRUPT << GEN8_BCS_IRQ_SHIFT,
|
GT_CONTEXT_SWITCH_INTERRUPT << GEN8_BCS_IRQ_SHIFT),
|
||||||
diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
|
diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
|
||||||
index b5be0abbba35..831f2bcae687 100644
|
index b5be0abbba35..831f2bcae687 100644
|
||||||
--- a/drivers/gpu/drm/i915/i915_params.c
|
--- a/drivers/gpu/drm/i915/i915_params.c
|
||||||
|
@ -244,10 +244,10 @@ index 3f14e9881a0d..e314a2414041 100644
|
||||||
#define MEMBER(T, member, ...) T member;
|
#define MEMBER(T, member, ...) T member;
|
||||||
struct i915_params {
|
struct i915_params {
|
||||||
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
|
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
|
||||||
index 48da4a969a0a..c332d0686085 100644
|
index 560274d1c50b..e305a35de9c2 100644
|
||||||
--- a/drivers/gpu/drm/i915/intel_dp.c
|
--- a/drivers/gpu/drm/i915/intel_dp.c
|
||||||
+++ b/drivers/gpu/drm/i915/intel_dp.c
|
+++ b/drivers/gpu/drm/i915/intel_dp.c
|
||||||
@@ -2874,8 +2874,8 @@ void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode)
|
@@ -2899,8 +2899,8 @@ void intel_dp_sink_dpms(struct intel_dp *intel_dp, int mode)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (mode != DRM_MODE_DPMS_ON) {
|
if (mode != DRM_MODE_DPMS_ON) {
|
||||||
|
@ -259,10 +259,10 @@ index 48da4a969a0a..c332d0686085 100644
|
||||||
ret = drm_dp_dpcd_writeb(&intel_dp->aux, DP_SET_POWER,
|
ret = drm_dp_dpcd_writeb(&intel_dp->aux, DP_SET_POWER,
|
||||||
DP_SET_POWER_D3);
|
DP_SET_POWER_D3);
|
||||||
diff --git a/drivers/gpu/drm/i915/intel_guc.h b/drivers/gpu/drm/i915/intel_guc.h
|
diff --git a/drivers/gpu/drm/i915/intel_guc.h b/drivers/gpu/drm/i915/intel_guc.h
|
||||||
index 744220296653..459589588063 100644
|
index 2c59ff8d9f39..d7f91693972f 100644
|
||||||
--- a/drivers/gpu/drm/i915/intel_guc.h
|
--- a/drivers/gpu/drm/i915/intel_guc.h
|
||||||
+++ b/drivers/gpu/drm/i915/intel_guc.h
|
+++ b/drivers/gpu/drm/i915/intel_guc.h
|
||||||
@@ -66,6 +66,7 @@ struct intel_guc {
|
@@ -67,6 +67,7 @@ struct intel_guc {
|
||||||
|
|
||||||
struct intel_guc_client *execbuf_client;
|
struct intel_guc_client *execbuf_client;
|
||||||
struct intel_guc_client *preempt_client;
|
struct intel_guc_client *preempt_client;
|
||||||
|
@ -271,10 +271,10 @@ index 744220296653..459589588063 100644
|
||||||
struct guc_preempt_work preempt_work[I915_NUM_ENGINES];
|
struct guc_preempt_work preempt_work[I915_NUM_ENGINES];
|
||||||
struct workqueue_struct *preempt_wq;
|
struct workqueue_struct *preempt_wq;
|
||||||
diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c
|
diff --git a/drivers/gpu/drm/i915/intel_guc_submission.c b/drivers/gpu/drm/i915/intel_guc_submission.c
|
||||||
index 8bc8aa54aa35..9ddd5ace6f6f 100644
|
index 46cd0e70aecb..e84c805f7340 100644
|
||||||
--- a/drivers/gpu/drm/i915/intel_guc_submission.c
|
--- a/drivers/gpu/drm/i915/intel_guc_submission.c
|
||||||
+++ b/drivers/gpu/drm/i915/intel_guc_submission.c
|
+++ b/drivers/gpu/drm/i915/intel_guc_submission.c
|
||||||
@@ -94,12 +94,17 @@ static inline struct i915_priolist *to_priolist(struct rb_node *rb)
|
@@ -93,12 +93,17 @@ static inline struct i915_priolist *to_priolist(struct rb_node *rb)
|
||||||
|
|
||||||
static inline bool is_high_priority(struct intel_guc_client *client)
|
static inline bool is_high_priority(struct intel_guc_client *client)
|
||||||
{
|
{
|
||||||
|
@ -294,7 +294,7 @@ index 8bc8aa54aa35..9ddd5ace6f6f 100644
|
||||||
unsigned long offset;
|
unsigned long offset;
|
||||||
unsigned long end;
|
unsigned long end;
|
||||||
u16 id;
|
u16 id;
|
||||||
@@ -112,10 +117,15 @@ static int reserve_doorbell(struct intel_guc_client *client)
|
@@ -111,10 +116,14 @@ static int reserve_doorbell(struct intel_guc_client *client)
|
||||||
* priority contexts, the second half for high-priority ones.
|
* priority contexts, the second half for high-priority ones.
|
||||||
*/
|
*/
|
||||||
offset = 0;
|
offset = 0;
|
||||||
|
@ -304,8 +304,7 @@ index 8bc8aa54aa35..9ddd5ace6f6f 100644
|
||||||
- end += offset;
|
- end += offset;
|
||||||
+ if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) {
|
+ if (IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv)) {
|
||||||
+ end = GUC_NUM_DOORBELLS;
|
+ end = GUC_NUM_DOORBELLS;
|
||||||
+ }
|
+ } else {
|
||||||
+ else {
|
|
||||||
+ end = GUC_NUM_DOORBELLS/2;
|
+ end = GUC_NUM_DOORBELLS/2;
|
||||||
+ if (is_high_priority(client)) {
|
+ if (is_high_priority(client)) {
|
||||||
+ offset = end;
|
+ offset = end;
|
||||||
|
@ -314,7 +313,7 @@ index 8bc8aa54aa35..9ddd5ace6f6f 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
id = find_next_zero_bit(client->guc->doorbell_bitmap, end, offset);
|
id = find_next_zero_bit(client->guc->doorbell_bitmap, end, offset);
|
||||||
@@ -373,9 +383,15 @@ static void guc_stage_desc_init(struct intel_guc_client *client)
|
@@ -372,9 +381,15 @@ static void guc_stage_desc_init(struct intel_guc_client *client)
|
||||||
desc = __get_stage_desc(client);
|
desc = __get_stage_desc(client);
|
||||||
memset(desc, 0, sizeof(*desc));
|
memset(desc, 0, sizeof(*desc));
|
||||||
|
|
||||||
|
@ -333,7 +332,7 @@ index 8bc8aa54aa35..9ddd5ace6f6f 100644
|
||||||
desc->attribute |= GUC_STAGE_DESC_ATTR_PREEMPT;
|
desc->attribute |= GUC_STAGE_DESC_ATTR_PREEMPT;
|
||||||
desc->stage_id = client->stage_id;
|
desc->stage_id = client->stage_id;
|
||||||
desc->priority = client->priority;
|
desc->priority = client->priority;
|
||||||
@@ -1204,7 +1220,8 @@ static void guc_interrupts_capture(struct drm_i915_private *dev_priv)
|
@@ -1302,7 +1317,8 @@ static void guc_interrupts_capture(struct drm_i915_private *dev_priv)
|
||||||
I915_WRITE(RING_MODE_GEN7(engine), irqs);
|
I915_WRITE(RING_MODE_GEN7(engine), irqs);
|
||||||
|
|
||||||
/* route USER_INTERRUPT to Host, all others are sent to GuC. */
|
/* route USER_INTERRUPT to Host, all others are sent to GuC. */
|
||||||
|
@ -343,7 +342,7 @@ index 8bc8aa54aa35..9ddd5ace6f6f 100644
|
||||||
GT_RENDER_USER_INTERRUPT << GEN8_BCS_IRQ_SHIFT;
|
GT_RENDER_USER_INTERRUPT << GEN8_BCS_IRQ_SHIFT;
|
||||||
/* These three registers have the same bit definitions */
|
/* These three registers have the same bit definitions */
|
||||||
I915_WRITE(GUC_BCS_RCS_IER, ~irqs);
|
I915_WRITE(GUC_BCS_RCS_IER, ~irqs);
|
||||||
@@ -1345,6 +1362,59 @@ void intel_guc_submission_disable(struct intel_guc *guc)
|
@@ -1449,6 +1465,59 @@ void intel_guc_submission_disable(struct intel_guc *guc)
|
||||||
guc_clients_disable(guc);
|
guc_clients_disable(guc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -357,7 +356,7 @@ index 8bc8aa54aa35..9ddd5ace6f6f 100644
|
||||||
+
|
+
|
||||||
+ /* client for execbuf submission */
|
+ /* client for execbuf submission */
|
||||||
+ client = guc_client_alloc(dev_priv,
|
+ client = guc_client_alloc(dev_priv,
|
||||||
+ INTEL_INFO(dev_priv)->ring_mask,
|
+ INTEL_INFO(dev_priv)->engine_mask,
|
||||||
+ IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv) ? GUC_CLIENT_PRIORITY_HIGH : GUC_CLIENT_PRIORITY_NORMAL,
|
+ IS_SKYLAKE(dev_priv) || IS_KABYLAKE(dev_priv) ? GUC_CLIENT_PRIORITY_HIGH : GUC_CLIENT_PRIORITY_NORMAL,
|
||||||
+ ctx);
|
+ ctx);
|
||||||
+ if (IS_ERR(client)) {
|
+ if (IS_ERR(client)) {
|
||||||
|
@ -404,10 +403,10 @@ index 8bc8aa54aa35..9ddd5ace6f6f 100644
|
||||||
#include "selftests/intel_guc.c"
|
#include "selftests/intel_guc.c"
|
||||||
#endif
|
#endif
|
||||||
diff --git a/drivers/gpu/drm/i915/intel_guc_submission.h b/drivers/gpu/drm/i915/intel_guc_submission.h
|
diff --git a/drivers/gpu/drm/i915/intel_guc_submission.h b/drivers/gpu/drm/i915/intel_guc_submission.h
|
||||||
index 169c54568340..245a8de1df2a 100644
|
index aa5e6749c925..c9e5c14e7f67 100644
|
||||||
--- a/drivers/gpu/drm/i915/intel_guc_submission.h
|
--- a/drivers/gpu/drm/i915/intel_guc_submission.h
|
||||||
+++ b/drivers/gpu/drm/i915/intel_guc_submission.h
|
+++ b/drivers/gpu/drm/i915/intel_guc_submission.h
|
||||||
@@ -83,5 +83,9 @@ void intel_guc_submission_disable(struct intel_guc *guc);
|
@@ -84,5 +84,9 @@ void intel_guc_submission_disable(struct intel_guc *guc);
|
||||||
void intel_guc_submission_fini(struct intel_guc *guc);
|
void intel_guc_submission_fini(struct intel_guc *guc);
|
||||||
int intel_guc_preempt_work_create(struct intel_guc *guc);
|
int intel_guc_preempt_work_create(struct intel_guc *guc);
|
||||||
void intel_guc_preempt_work_destroy(struct intel_guc *guc);
|
void intel_guc_preempt_work_destroy(struct intel_guc *guc);
|
||||||
|
@ -419,7 +418,7 @@ index 169c54568340..245a8de1df2a 100644
|
||||||
#endif
|
#endif
|
||||||
diff --git a/drivers/gpu/drm/i915/intel_ipts.c b/drivers/gpu/drm/i915/intel_ipts.c
|
diff --git a/drivers/gpu/drm/i915/intel_ipts.c b/drivers/gpu/drm/i915/intel_ipts.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..b276a2f7839c
|
index 000000000000..efc9607f6f73
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/gpu/drm/i915/intel_ipts.c
|
+++ b/drivers/gpu/drm/i915/intel_ipts.c
|
||||||
@@ -0,0 +1,657 @@
|
@@ -0,0 +1,657 @@
|
||||||
|
@ -600,7 +599,6 @@ index 000000000000..b276a2f7839c
|
||||||
+ struct i915_gem_context *ipts_ctx = NULL;
|
+ struct i915_gem_context *ipts_ctx = NULL;
|
||||||
+ struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
|
+ struct drm_i915_private *dev_priv = to_i915(intel_ipts.dev);
|
||||||
+ struct intel_context *ce = NULL;
|
+ struct intel_context *ce = NULL;
|
||||||
+ struct intel_context *pin_ret;
|
|
||||||
+ int ret = 0;
|
+ int ret = 0;
|
||||||
+
|
+
|
||||||
+ /* Initialize the context right away.*/
|
+ /* Initialize the context right away.*/
|
||||||
|
@ -618,7 +616,7 @@ index 000000000000..b276a2f7839c
|
||||||
+ goto err_unlock;
|
+ goto err_unlock;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ ce = to_intel_context(ipts_ctx, dev_priv->engine[RCS]);
|
+ ce = intel_context_pin(ipts_ctx, dev_priv->engine[RCS0]);
|
||||||
+ if (IS_ERR(ce)) {
|
+ if (IS_ERR(ce)) {
|
||||||
+ DRM_ERROR("Failed to create intel context (error %ld)\n",
|
+ DRM_ERROR("Failed to create intel context (error %ld)\n",
|
||||||
+ PTR_ERR(ce));
|
+ PTR_ERR(ce));
|
||||||
|
@ -626,15 +624,15 @@ index 000000000000..b276a2f7839c
|
||||||
+ goto err_unlock;
|
+ goto err_unlock;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ ret = execlists_context_deferred_alloc(ipts_ctx, dev_priv->engine[RCS], ce);
|
+ ret = execlists_context_deferred_alloc(ce, ce->engine);
|
||||||
+ if (ret) {
|
+ if (ret) {
|
||||||
+ DRM_DEBUG("lr context allocation failed : %d\n", ret);
|
+ DRM_DEBUG("lr context allocation failed : %d\n", ret);
|
||||||
+ goto err_ctx;
|
+ goto err_ctx;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ pin_ret = execlists_context_pin(dev_priv->engine[RCS], ipts_ctx);
|
+ ret = execlists_context_pin(ce);
|
||||||
+ if (IS_ERR(pin_ret)) {
|
+ if (ret) {
|
||||||
+ DRM_DEBUG("lr context pinning failed : %ld\n", PTR_ERR(pin_ret));
|
+ DRM_DEBUG("lr context pinning failed : %d\n", ret);
|
||||||
+ goto err_ctx;
|
+ goto err_ctx;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
@ -667,7 +665,7 @@ index 000000000000..b276a2f7839c
|
||||||
+
|
+
|
||||||
+ ipts_ctx = intel_ipts.ipts_context;
|
+ ipts_ctx = intel_ipts.ipts_context;
|
||||||
+
|
+
|
||||||
+ ce = to_intel_context(ipts_ctx, dev_priv->engine[RCS]);
|
+ ce = intel_context_lookup(ipts_ctx, dev_priv->engine[RCS0]);
|
||||||
+
|
+
|
||||||
+ /* Initialize the context right away.*/
|
+ /* Initialize the context right away.*/
|
||||||
+ ret = i915_mutex_lock_interruptible(intel_ipts.dev);
|
+ ret = i915_mutex_lock_interruptible(intel_ipts.dev);
|
||||||
|
@ -677,6 +675,7 @@ index 000000000000..b276a2f7839c
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ execlists_context_unpin(ce);
|
+ execlists_context_unpin(ce);
|
||||||
|
+ intel_context_unpin(ce);
|
||||||
+ i915_gem_context_put(ipts_ctx);
|
+ i915_gem_context_put(ipts_ctx);
|
||||||
+
|
+
|
||||||
+ mutex_unlock(&intel_ipts.dev->struct_mutex);
|
+ mutex_unlock(&intel_ipts.dev->struct_mutex);
|
||||||
|
@ -1123,21 +1122,22 @@ index 000000000000..45d7d1273adf
|
||||||
+
|
+
|
||||||
+#endif //_INTEL_IPTS_H_
|
+#endif //_INTEL_IPTS_H_
|
||||||
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
|
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
|
||||||
index 5e98fd79bd9d..523bc6354481 100644
|
index 11e5a86610bf..4adf38cad6da 100644
|
||||||
--- a/drivers/gpu/drm/i915/intel_lrc.c
|
--- a/drivers/gpu/drm/i915/intel_lrc.c
|
||||||
+++ b/drivers/gpu/drm/i915/intel_lrc.c
|
+++ b/drivers/gpu/drm/i915/intel_lrc.c
|
||||||
@@ -164,9 +164,6 @@
|
@@ -166,8 +166,8 @@
|
||||||
#define WA_TAIL_DWORDS 2
|
|
||||||
#define WA_TAIL_BYTES (sizeof(u32) * WA_TAIL_DWORDS)
|
|
||||||
|
|
||||||
-static int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
|
#define ACTIVE_PRIORITY (I915_PRIORITY_NOSEMAPHORE)
|
||||||
- struct intel_engine_cs *engine,
|
|
||||||
- struct intel_context *ce);
|
-static int execlists_context_deferred_alloc(struct intel_context *ce,
|
||||||
|
- struct intel_engine_cs *engine);
|
||||||
|
+int execlists_context_deferred_alloc(struct intel_context *ce,
|
||||||
|
+ struct intel_engine_cs *engine);
|
||||||
static void execlists_init_reg_state(u32 *reg_state,
|
static void execlists_init_reg_state(u32 *reg_state,
|
||||||
struct i915_gem_context *ctx,
|
struct intel_context *ce,
|
||||||
struct intel_engine_cs *engine,
|
struct intel_engine_cs *engine,
|
||||||
@@ -1209,7 +1206,7 @@ static void execlists_context_destroy(struct intel_context *ce)
|
@@ -1183,7 +1183,7 @@ static void __context_unpin(struct i915_vma *vma)
|
||||||
i915_gem_object_put(ce->state->obj);
|
__i915_vma_unpin(vma);
|
||||||
}
|
}
|
||||||
|
|
||||||
-static void execlists_context_unpin(struct intel_context *ce)
|
-static void execlists_context_unpin(struct intel_context *ce)
|
||||||
|
@ -1145,16 +1145,16 @@ index 5e98fd79bd9d..523bc6354481 100644
|
||||||
{
|
{
|
||||||
struct intel_engine_cs *engine;
|
struct intel_engine_cs *engine;
|
||||||
|
|
||||||
@@ -1344,7 +1341,7 @@ static const struct intel_context_ops execlists_context_ops = {
|
@@ -1285,7 +1285,7 @@ __execlists_context_pin(struct intel_context *ce,
|
||||||
.destroy = execlists_context_destroy,
|
return ret;
|
||||||
};
|
}
|
||||||
|
|
||||||
-static struct intel_context *
|
-static int execlists_context_pin(struct intel_context *ce)
|
||||||
+struct intel_context *
|
+int execlists_context_pin(struct intel_context *ce)
|
||||||
execlists_context_pin(struct intel_engine_cs *engine,
|
|
||||||
struct i915_gem_context *ctx)
|
|
||||||
{
|
{
|
||||||
@@ -2399,6 +2396,9 @@ int logical_render_ring_init(struct intel_engine_cs *engine)
|
return __execlists_context_pin(ce, ce->engine);
|
||||||
|
}
|
||||||
|
@@ -2520,6 +2520,9 @@ int logical_render_ring_init(struct intel_engine_cs *engine)
|
||||||
engine->emit_flush = gen8_emit_flush_render;
|
engine->emit_flush = gen8_emit_flush_render;
|
||||||
engine->emit_fini_breadcrumb = gen8_emit_fini_breadcrumb_rcs;
|
engine->emit_fini_breadcrumb = gen8_emit_fini_breadcrumb_rcs;
|
||||||
|
|
||||||
|
@ -1164,48 +1164,47 @@ index 5e98fd79bd9d..523bc6354481 100644
|
||||||
ret = logical_ring_init(engine);
|
ret = logical_ring_init(engine);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
@@ -2754,7 +2754,7 @@ populate_lr_context(struct i915_gem_context *ctx,
|
@@ -2881,8 +2884,8 @@ static struct i915_timeline *get_timeline(struct i915_gem_context *ctx)
|
||||||
return ret;
|
return i915_timeline_create(ctx->i915, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
-static int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
|
-static int execlists_context_deferred_alloc(struct intel_context *ce,
|
||||||
+int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
|
- struct intel_engine_cs *engine)
|
||||||
struct intel_engine_cs *engine,
|
+int execlists_context_deferred_alloc(struct intel_context *ce,
|
||||||
struct intel_context *ce)
|
+ struct intel_engine_cs *engine)
|
||||||
{
|
{
|
||||||
|
struct drm_i915_gem_object *ctx_obj;
|
||||||
|
struct i915_vma *vma;
|
||||||
diff --git a/drivers/gpu/drm/i915/intel_lrc.h b/drivers/gpu/drm/i915/intel_lrc.h
|
diff --git a/drivers/gpu/drm/i915/intel_lrc.h b/drivers/gpu/drm/i915/intel_lrc.h
|
||||||
index f1aec8a6986f..faa403f1378d 100644
|
index 84aa230ea27b..0e8008eb0f3a 100644
|
||||||
--- a/drivers/gpu/drm/i915/intel_lrc.h
|
--- a/drivers/gpu/drm/i915/intel_lrc.h
|
||||||
+++ b/drivers/gpu/drm/i915/intel_lrc.h
|
+++ b/drivers/gpu/drm/i915/intel_lrc.h
|
||||||
@@ -112,6 +112,15 @@ void intel_execlists_show_requests(struct intel_engine_cs *engine,
|
@@ -115,6 +115,12 @@ void intel_execlists_show_requests(struct intel_engine_cs *engine,
|
||||||
const char *prefix),
|
const char *prefix),
|
||||||
unsigned int max);
|
unsigned int max);
|
||||||
|
|
||||||
+struct intel_context *
|
+int execlists_context_pin(struct intel_context *ce);
|
||||||
+execlists_context_pin(struct intel_engine_cs *engine,
|
|
||||||
+ struct i915_gem_context *ctx);
|
|
||||||
+void execlists_context_unpin(struct intel_context *ce);
|
+void execlists_context_unpin(struct intel_context *ce);
|
||||||
+int execlists_context_deferred_alloc(struct i915_gem_context *ctx,
|
+int execlists_context_deferred_alloc(struct intel_context *ce,
|
||||||
+ struct intel_engine_cs *engine,
|
+ struct intel_engine_cs *engine);
|
||||||
+ struct intel_context *ce);
|
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
u32 gen8_make_rpcs(struct drm_i915_private *i915, struct intel_sseu *ctx_sseu);
|
u32 gen8_make_rpcs(struct drm_i915_private *i915, struct intel_sseu *ctx_sseu);
|
||||||
|
|
||||||
#endif /* _INTEL_LRC_H_ */
|
#endif /* _INTEL_LRC_H_ */
|
||||||
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
|
diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
|
||||||
index beca98d2b035..2fce56e17047 100644
|
index 4ab4ce6569e7..2d3c523ba5c7 100644
|
||||||
--- a/drivers/gpu/drm/i915/intel_panel.c
|
--- a/drivers/gpu/drm/i915/intel_panel.c
|
||||||
+++ b/drivers/gpu/drm/i915/intel_panel.c
|
+++ b/drivers/gpu/drm/i915/intel_panel.c
|
||||||
@@ -34,6 +34,7 @@
|
@@ -37,6 +37,7 @@
|
||||||
#include <linux/moduleparam.h>
|
#include "intel_connector.h"
|
||||||
#include <linux/pwm.h>
|
|
||||||
#include "intel_drv.h"
|
#include "intel_drv.h"
|
||||||
|
#include "intel_panel.h"
|
||||||
+#include "intel_ipts.h"
|
+#include "intel_ipts.h"
|
||||||
|
|
||||||
#define CRC_PMIC_PWM_PERIOD_NS 21333
|
#define CRC_PMIC_PWM_PERIOD_NS 21333
|
||||||
|
|
||||||
@@ -659,6 +660,9 @@ static void lpt_disable_backlight(const struct drm_connector_state *old_conn_sta
|
@@ -730,6 +731,9 @@ static void lpt_disable_backlight(const struct drm_connector_state *old_conn_sta
|
||||||
struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
|
struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
|
||||||
u32 tmp;
|
u32 tmp;
|
||||||
|
|
||||||
|
@ -1215,7 +1214,7 @@ index beca98d2b035..2fce56e17047 100644
|
||||||
intel_panel_actually_set_backlight(old_conn_state, 0);
|
intel_panel_actually_set_backlight(old_conn_state, 0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -846,6 +850,9 @@ static void lpt_enable_backlight(const struct intel_crtc_state *crtc_state,
|
@@ -917,6 +921,9 @@ static void lpt_enable_backlight(const struct intel_crtc_state *crtc_state,
|
||||||
|
|
||||||
/* This won't stick until the above enable. */
|
/* This won't stick until the above enable. */
|
||||||
intel_panel_actually_set_backlight(conn_state, panel->backlight.level);
|
intel_panel_actually_set_backlight(conn_state, panel->backlight.level);
|
||||||
|
@ -1229,7 +1228,7 @@ diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
|
||||||
index 42bb635895cf..3a362f107188 100644
|
index 42bb635895cf..3a362f107188 100644
|
||||||
--- a/drivers/hid/hid-multitouch.c
|
--- a/drivers/hid/hid-multitouch.c
|
||||||
+++ b/drivers/hid/hid-multitouch.c
|
+++ b/drivers/hid/hid-multitouch.c
|
||||||
@@ -173,6 +173,7 @@ struct mt_device {
|
@@ -169,6 +169,7 @@ struct mt_device {
|
||||||
static void mt_post_parse_default_settings(struct mt_device *td,
|
static void mt_post_parse_default_settings(struct mt_device *td,
|
||||||
struct mt_application *app);
|
struct mt_application *app);
|
||||||
static void mt_post_parse(struct mt_device *td, struct mt_application *app);
|
static void mt_post_parse(struct mt_device *td, struct mt_application *app);
|
||||||
|
@ -1237,7 +1236,7 @@ index 42bb635895cf..3a362f107188 100644
|
||||||
|
|
||||||
/* classes of device behavior */
|
/* classes of device behavior */
|
||||||
#define MT_CLS_DEFAULT 0x0001
|
#define MT_CLS_DEFAULT 0x0001
|
||||||
@@ -799,8 +800,11 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
|
@@ -795,8 +796,11 @@ static int mt_touch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
|
||||||
app->scantime_logical_max = field->logical_maximum;
|
app->scantime_logical_max = field->logical_maximum;
|
||||||
return 1;
|
return 1;
|
||||||
case HID_DG_CONTACTCOUNT:
|
case HID_DG_CONTACTCOUNT:
|
||||||
|
@ -1251,7 +1250,7 @@ index 42bb635895cf..3a362f107188 100644
|
||||||
return 1;
|
return 1;
|
||||||
case HID_DG_AZIMUTH:
|
case HID_DG_AZIMUTH:
|
||||||
/*
|
/*
|
||||||
@@ -1290,9 +1294,11 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,
|
@@ -1286,9 +1290,11 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,
|
||||||
field->application != HID_DG_TOUCHSCREEN &&
|
field->application != HID_DG_TOUCHSCREEN &&
|
||||||
field->application != HID_DG_PEN &&
|
field->application != HID_DG_PEN &&
|
||||||
field->application != HID_DG_TOUCHPAD &&
|
field->application != HID_DG_TOUCHPAD &&
|
||||||
|
@ -1263,7 +1262,7 @@ index 42bb635895cf..3a362f107188 100644
|
||||||
field->application != HID_GD_WIRELESS_RADIO_CTLS &&
|
field->application != HID_GD_WIRELESS_RADIO_CTLS &&
|
||||||
field->application != HID_GD_SYSTEM_MULTIAXIS &&
|
field->application != HID_GD_SYSTEM_MULTIAXIS &&
|
||||||
!(field->application == HID_VD_ASUS_CUSTOM_MEDIA_KEYS &&
|
!(field->application == HID_VD_ASUS_CUSTOM_MEDIA_KEYS &&
|
||||||
@@ -1344,6 +1350,14 @@ static int mt_input_mapped(struct hid_device *hdev, struct hid_input *hi,
|
@@ -1340,6 +1346,14 @@ static int mt_input_mapped(struct hid_device *hdev, struct hid_input *hi,
|
||||||
struct mt_device *td = hid_get_drvdata(hdev);
|
struct mt_device *td = hid_get_drvdata(hdev);
|
||||||
struct mt_report_data *rdata;
|
struct mt_report_data *rdata;
|
||||||
|
|
||||||
|
@ -1278,7 +1277,7 @@ index 42bb635895cf..3a362f107188 100644
|
||||||
rdata = mt_find_report_data(td, field->report);
|
rdata = mt_find_report_data(td, field->report);
|
||||||
if (rdata && rdata->is_mt_collection) {
|
if (rdata && rdata->is_mt_collection) {
|
||||||
/* We own these mappings, tell hid-input to ignore them */
|
/* We own these mappings, tell hid-input to ignore them */
|
||||||
@@ -1555,12 +1569,13 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi)
|
@@ -1551,12 +1565,13 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi)
|
||||||
/* already handled by hid core */
|
/* already handled by hid core */
|
||||||
break;
|
break;
|
||||||
case HID_DG_TOUCHSCREEN:
|
case HID_DG_TOUCHSCREEN:
|
||||||
|
@ -1293,7 +1292,7 @@ index 42bb635895cf..3a362f107188 100644
|
||||||
break;
|
break;
|
||||||
case HID_VD_ASUS_CUSTOM_MEDIA_KEYS:
|
case HID_VD_ASUS_CUSTOM_MEDIA_KEYS:
|
||||||
suffix = "Custom Media Keys";
|
suffix = "Custom Media Keys";
|
||||||
@@ -1676,6 +1691,7 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
@@ -1672,6 +1687,7 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||||
td->hdev = hdev;
|
td->hdev = hdev;
|
||||||
td->mtclass = *mtclass;
|
td->mtclass = *mtclass;
|
||||||
td->inputmode_value = MT_INPUTMODE_TOUCHSCREEN;
|
td->inputmode_value = MT_INPUTMODE_TOUCHSCREEN;
|
||||||
|
@ -1302,10 +1301,10 @@ index 42bb635895cf..3a362f107188 100644
|
||||||
|
|
||||||
INIT_LIST_HEAD(&td->applications);
|
INIT_LIST_HEAD(&td->applications);
|
||||||
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
|
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
|
||||||
index 42ab8ec92a04..86d926510285 100644
|
index 85fc77148d19..b697f05eaf31 100644
|
||||||
--- a/drivers/misc/Kconfig
|
--- a/drivers/misc/Kconfig
|
||||||
+++ b/drivers/misc/Kconfig
|
+++ b/drivers/misc/Kconfig
|
||||||
@@ -539,6 +539,7 @@ source "drivers/misc/ti-st/Kconfig"
|
@@ -500,6 +500,7 @@ source "drivers/misc/ti-st/Kconfig"
|
||||||
source "drivers/misc/lis3lv02d/Kconfig"
|
source "drivers/misc/lis3lv02d/Kconfig"
|
||||||
source "drivers/misc/altera-stapl/Kconfig"
|
source "drivers/misc/altera-stapl/Kconfig"
|
||||||
source "drivers/misc/mei/Kconfig"
|
source "drivers/misc/mei/Kconfig"
|
||||||
|
@ -1314,7 +1313,7 @@ index 42ab8ec92a04..86d926510285 100644
|
||||||
source "drivers/misc/mic/Kconfig"
|
source "drivers/misc/mic/Kconfig"
|
||||||
source "drivers/misc/genwqe/Kconfig"
|
source "drivers/misc/genwqe/Kconfig"
|
||||||
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
|
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
|
||||||
index d5b7d3404dc7..e5f6cbc33f7e 100644
|
index b9affcdaa3d6..e681e345a9ed 100644
|
||||||
--- a/drivers/misc/Makefile
|
--- a/drivers/misc/Makefile
|
||||||
+++ b/drivers/misc/Makefile
|
+++ b/drivers/misc/Makefile
|
||||||
@@ -45,6 +45,7 @@ obj-y += lis3lv02d/
|
@@ -45,6 +45,7 @@ obj-y += lis3lv02d/
|
||||||
|
@ -4329,10 +4328,10 @@ index 000000000000..199e49cb8d70
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
diff --git a/drivers/misc/ipts/ipts-msg-handler.c b/drivers/misc/ipts/ipts-msg-handler.c
|
diff --git a/drivers/misc/ipts/ipts-msg-handler.c b/drivers/misc/ipts/ipts-msg-handler.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000000..8b214f975c03
|
index 000000000000..db5356a1c84e
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/misc/ipts/ipts-msg-handler.c
|
+++ b/drivers/misc/ipts/ipts-msg-handler.c
|
||||||
@@ -0,0 +1,431 @@
|
@@ -0,0 +1,437 @@
|
||||||
+#include <linux/mei_cl_bus.h>
|
+#include <linux/mei_cl_bus.h>
|
||||||
+
|
+
|
||||||
+#include "ipts.h"
|
+#include "ipts.h"
|
||||||
|
@ -4486,6 +4485,9 @@ index 000000000000..8b214f975c03
|
||||||
+ old_state = ipts_get_state(ipts);
|
+ old_state = ipts_get_state(ipts);
|
||||||
+ ipts_set_state(ipts, IPTS_STA_STOPPING);
|
+ ipts_set_state(ipts, IPTS_STA_STOPPING);
|
||||||
+
|
+
|
||||||
|
+ ipts_send_sensor_quiesce_io_cmd(ipts);
|
||||||
|
+ ipts_send_sensor_clear_mem_window_cmd(ipts);
|
||||||
|
+
|
||||||
+ if (old_state < IPTS_STA_RESOURCE_READY)
|
+ if (old_state < IPTS_STA_RESOURCE_READY)
|
||||||
+ return;
|
+ return;
|
||||||
+
|
+
|
||||||
|
@ -4602,6 +4604,9 @@ index 000000000000..8b214f975c03
|
||||||
+ break;
|
+ break;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
+ if (ipts_get_state(ipts) == IPTS_STA_STOPPING)
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
+ /* allocate default resource : common & hid only */
|
+ /* allocate default resource : common & hid only */
|
||||||
+ if (!ipts_is_default_resource_ready(ipts)) {
|
+ if (!ipts_is_default_resource_ready(ipts)) {
|
||||||
+ ret = ipts_allocate_default_resource(ipts);
|
+ ret = ipts_allocate_default_resource(ipts);
|
||||||
|
@ -6069,10 +6074,10 @@ index 000000000000..1fcd02146b50
|
||||||
+
|
+
|
||||||
+#endif // _IPTS_H_
|
+#endif // _IPTS_H_
|
||||||
diff --git a/drivers/misc/mei/hw-me-regs.h b/drivers/misc/mei/hw-me-regs.h
|
diff --git a/drivers/misc/mei/hw-me-regs.h b/drivers/misc/mei/hw-me-regs.h
|
||||||
index bb1ee9834a02..2bbffe8aad40 100644
|
index d74b182e19f3..a4021bc7d6b3 100644
|
||||||
--- a/drivers/misc/mei/hw-me-regs.h
|
--- a/drivers/misc/mei/hw-me-regs.h
|
||||||
+++ b/drivers/misc/mei/hw-me-regs.h
|
+++ b/drivers/misc/mei/hw-me-regs.h
|
||||||
@@ -119,6 +119,7 @@
|
@@ -59,6 +59,7 @@
|
||||||
|
|
||||||
#define MEI_DEV_ID_SPT 0x9D3A /* Sunrise Point */
|
#define MEI_DEV_ID_SPT 0x9D3A /* Sunrise Point */
|
||||||
#define MEI_DEV_ID_SPT_2 0x9D3B /* Sunrise Point 2 */
|
#define MEI_DEV_ID_SPT_2 0x9D3B /* Sunrise Point 2 */
|
||||||
|
@ -6081,10 +6086,10 @@ index bb1ee9834a02..2bbffe8aad40 100644
|
||||||
#define MEI_DEV_ID_SPT_H_2 0xA13B /* Sunrise Point H 2 */
|
#define MEI_DEV_ID_SPT_H_2 0xA13B /* Sunrise Point H 2 */
|
||||||
|
|
||||||
diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c
|
diff --git a/drivers/misc/mei/pci-me.c b/drivers/misc/mei/pci-me.c
|
||||||
index 3ab946ad3257..c37daa561486 100644
|
index 7a2b3545a7f9..c3c684cbd17d 100644
|
||||||
--- a/drivers/misc/mei/pci-me.c
|
--- a/drivers/misc/mei/pci-me.c
|
||||||
+++ b/drivers/misc/mei/pci-me.c
|
+++ b/drivers/misc/mei/pci-me.c
|
||||||
@@ -86,6 +86,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
|
@@ -77,6 +77,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
|
||||||
|
|
||||||
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT, MEI_ME_PCH8_CFG)},
|
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT, MEI_ME_PCH8_CFG)},
|
||||||
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_2, MEI_ME_PCH8_CFG)},
|
{MEI_PCI_DEVICE(MEI_DEV_ID_SPT_2, MEI_ME_PCH8_CFG)},
|
|
@ -43,10 +43,10 @@ index b1636ce22060..676175ffe613 100644
|
||||||
#define USB_DEVICE_ID_MS_PIXART_MOUSE 0x00cb
|
#define USB_DEVICE_ID_MS_PIXART_MOUSE 0x00cb
|
||||||
|
|
||||||
diff --git a/drivers/hid/hid-microsoft.c b/drivers/hid/hid-microsoft.c
|
diff --git a/drivers/hid/hid-microsoft.c b/drivers/hid/hid-microsoft.c
|
||||||
index 330cb073cb66..f45fea460678 100644
|
index 8b3a922bdad3..0290a16881e5 100644
|
||||||
--- a/drivers/hid/hid-microsoft.c
|
--- a/drivers/hid/hid-microsoft.c
|
||||||
+++ b/drivers/hid/hid-microsoft.c
|
+++ b/drivers/hid/hid-microsoft.c
|
||||||
@@ -441,7 +441,8 @@ static const struct hid_device_id ms_devices[] = {
|
@@ -438,7 +438,8 @@ static const struct hid_device_id ms_devices[] = {
|
||||||
.driver_data = MS_HIDINPUT },
|
.driver_data = MS_HIDINPUT },
|
||||||
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_COMFORT_KEYBOARD),
|
{ HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_COMFORT_KEYBOARD),
|
||||||
.driver_data = MS_ERGONOMY},
|
.driver_data = MS_ERGONOMY},
|
|
@ -8,7 +8,7 @@ Subject: [PATCH 07/12] sdcard-reader
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
|
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
|
||||||
index b10d14af6416..300289c0dd98 100644
|
index 2f94568ba385..b90ed9c06449 100644
|
||||||
--- a/drivers/usb/core/hub.c
|
--- a/drivers/usb/core/hub.c
|
||||||
+++ b/drivers/usb/core/hub.c
|
+++ b/drivers/usb/core/hub.c
|
||||||
@@ -4201,7 +4201,8 @@ void usb_enable_lpm(struct usb_device *udev)
|
@@ -4201,7 +4201,8 @@ void usb_enable_lpm(struct usb_device *udev)
|
|
@ -33,7 +33,7 @@ index 042a1d07f686..fc9041f58e9f 100644
|
||||||
|
|
||||||
skb_src = skb_dequeue(&pra_list->skb_head);
|
skb_src = skb_dequeue(&pra_list->skb_head);
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
|
diff --git a/drivers/net/wireless/marvell/mwifiex/cfg80211.c b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
|
||||||
index e582d9b3e50c..92c49eb3c5a3 100644
|
index e11a4bb67172..c3461a203deb 100644
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
|
--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
|
+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
|
||||||
@@ -437,7 +437,10 @@ mwifiex_cfg80211_set_power_mgmt(struct wiphy *wiphy,
|
@@ -437,7 +437,10 @@ mwifiex_cfg80211_set_power_mgmt(struct wiphy *wiphy,
|
||||||
|
@ -49,10 +49,10 @@ index e582d9b3e50c..92c49eb3c5a3 100644
|
||||||
return mwifiex_drv_set_power(priv, &ps_mode);
|
return mwifiex_drv_set_power(priv, &ps_mode);
|
||||||
}
|
}
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/cmdevt.c b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
|
diff --git a/drivers/net/wireless/marvell/mwifiex/cmdevt.c b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
|
||||||
index 60db2b969e20..efae99018c3c 100644
|
index 8c35441fd9b7..71872139931e 100644
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/cmdevt.c
|
--- a/drivers/net/wireless/marvell/mwifiex/cmdevt.c
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
|
+++ b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
|
||||||
@@ -1000,6 +1000,7 @@ mwifiex_cmd_timeout_func(struct timer_list *t)
|
@@ -1006,6 +1006,7 @@ mwifiex_cmd_timeout_func(struct timer_list *t)
|
||||||
if (cmd_node->wait_q_enabled) {
|
if (cmd_node->wait_q_enabled) {
|
||||||
adapter->cmd_wait_q.status = -ETIMEDOUT;
|
adapter->cmd_wait_q.status = -ETIMEDOUT;
|
||||||
mwifiex_cancel_pending_ioctl(adapter);
|
mwifiex_cancel_pending_ioctl(adapter);
|
||||||
|
@ -60,7 +60,7 @@ index 60db2b969e20..efae99018c3c 100644
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (adapter->hw_status == MWIFIEX_HW_STATUS_INITIALIZING) {
|
if (adapter->hw_status == MWIFIEX_HW_STATUS_INITIALIZING) {
|
||||||
@@ -1007,11 +1008,11 @@ mwifiex_cmd_timeout_func(struct timer_list *t)
|
@@ -1013,11 +1014,11 @@ mwifiex_cmd_timeout_func(struct timer_list *t)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ index 60db2b969e20..efae99018c3c 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -1577,6 +1578,7 @@ int mwifiex_ret_get_hw_spec(struct mwifiex_private *priv,
|
@@ -1583,6 +1584,7 @@ int mwifiex_ret_get_hw_spec(struct mwifiex_private *priv,
|
||||||
adapter->key_api_minor_ver);
|
adapter->key_api_minor_ver);
|
||||||
break;
|
break;
|
||||||
case FW_API_VER_ID:
|
case FW_API_VER_ID:
|
||||||
|
@ -97,7 +97,7 @@ index 1fb76d2f5d3f..fb32379da99d 100644
|
||||||
|
|
||||||
struct hw_spec_api_rev {
|
struct hw_spec_api_rev {
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c
|
diff --git a/drivers/net/wireless/marvell/mwifiex/main.c b/drivers/net/wireless/marvell/mwifiex/main.c
|
||||||
index 20cee5c397fb..13e49a3ae812 100644
|
index f6da8edab7f1..51a65f26206b 100644
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/main.c
|
--- a/drivers/net/wireless/marvell/mwifiex/main.c
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/main.c
|
+++ b/drivers/net/wireless/marvell/mwifiex/main.c
|
||||||
@@ -163,6 +163,7 @@ void mwifiex_queue_main_work(struct mwifiex_adapter *adapter)
|
@@ -163,6 +163,7 @@ void mwifiex_queue_main_work(struct mwifiex_adapter *adapter)
|
||||||
|
@ -228,7 +228,7 @@ index 4ed10cf82f9a..485360e8534b 100644
|
||||||
"deepsleep enabled=0(default), deepsleep disabled=1");
|
"deepsleep enabled=0(default), deepsleep disabled=1");
|
||||||
/*
|
/*
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
|
diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
|
||||||
index 69e3b624adbb..884bad677cc3 100644
|
index 24b33e20e7a9..51d0f34625e1 100644
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
|
--- a/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
|
+++ b/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c
|
||||||
@@ -48,9 +48,14 @@ mwifiex_process_cmdresp_error(struct mwifiex_private *priv,
|
@@ -48,9 +48,14 @@ mwifiex_process_cmdresp_error(struct mwifiex_private *priv,
|
|
@ -11,10 +11,10 @@ Subject: [PATCH 09/12] surface3-power
|
||||||
create mode 100644 drivers/platform/x86/surface3_power.c
|
create mode 100644 drivers/platform/x86/surface3_power.c
|
||||||
|
|
||||||
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
|
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
|
||||||
index 501d06d4f196..21ffc03cd372 100644
|
index 4fefae580dec..25df8d2866c6 100644
|
||||||
--- a/drivers/platform/x86/Kconfig
|
--- a/drivers/platform/x86/Kconfig
|
||||||
+++ b/drivers/platform/x86/Kconfig
|
+++ b/drivers/platform/x86/Kconfig
|
||||||
@@ -1300,6 +1300,13 @@ config SURFACE_3_BUTTON
|
@@ -1301,6 +1301,13 @@ config SURFACE_3_BUTTON
|
||||||
---help---
|
---help---
|
||||||
This driver handles the power/home/volume buttons on the Microsoft Surface 3 tablet.
|
This driver handles the power/home/volume buttons on the Microsoft Surface 3 tablet.
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ index 501d06d4f196..21ffc03cd372 100644
|
||||||
tristate "Intel P-Unit IPC Driver"
|
tristate "Intel P-Unit IPC Driver"
|
||||||
---help---
|
---help---
|
||||||
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
|
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
|
||||||
index be1ce92a365d..278ce32df99f 100644
|
index 8b12c19dc165..58b07217c3cf 100644
|
||||||
--- a/drivers/platform/x86/Makefile
|
--- a/drivers/platform/x86/Makefile
|
||||||
+++ b/drivers/platform/x86/Makefile
|
+++ b/drivers/platform/x86/Makefile
|
||||||
@@ -85,6 +85,7 @@ obj-$(CONFIG_INTEL_PMC_IPC) += intel_pmc_ipc.o
|
@@ -85,6 +85,7 @@ obj-$(CONFIG_INTEL_PMC_IPC) += intel_pmc_ipc.o
|
|
@ -85,10 +85,10 @@ Subject: [PATCH 10/12] mwlwifi
|
||||||
create mode 100644 drivers/net/wireless/marvell/mwlwifi/vendor_cmd.h
|
create mode 100644 drivers/net/wireless/marvell/mwlwifi/vendor_cmd.h
|
||||||
|
|
||||||
diff --git a/drivers/net/wireless/marvell/Kconfig b/drivers/net/wireless/marvell/Kconfig
|
diff --git a/drivers/net/wireless/marvell/Kconfig b/drivers/net/wireless/marvell/Kconfig
|
||||||
index 27038901d3ee..3982c80f6df9 100644
|
index dff82fdbea78..c0790dbd52c0 100644
|
||||||
--- a/drivers/net/wireless/marvell/Kconfig
|
--- a/drivers/net/wireless/marvell/Kconfig
|
||||||
+++ b/drivers/net/wireless/marvell/Kconfig
|
+++ b/drivers/net/wireless/marvell/Kconfig
|
||||||
@@ -14,6 +14,7 @@ if WLAN_VENDOR_MARVELL
|
@@ -15,6 +15,7 @@ if WLAN_VENDOR_MARVELL
|
||||||
source "drivers/net/wireless/marvell/libertas/Kconfig"
|
source "drivers/net/wireless/marvell/libertas/Kconfig"
|
||||||
source "drivers/net/wireless/marvell/libertas_tf/Kconfig"
|
source "drivers/net/wireless/marvell/libertas_tf/Kconfig"
|
||||||
source "drivers/net/wireless/marvell/mwifiex/Kconfig"
|
source "drivers/net/wireless/marvell/mwifiex/Kconfig"
|
||||||
|
@ -97,10 +97,10 @@ index 27038901d3ee..3982c80f6df9 100644
|
||||||
config MWL8K
|
config MWL8K
|
||||||
tristate "Marvell 88W8xxx PCI/PCIe Wireless support"
|
tristate "Marvell 88W8xxx PCI/PCIe Wireless support"
|
||||||
diff --git a/drivers/net/wireless/marvell/Makefile b/drivers/net/wireless/marvell/Makefile
|
diff --git a/drivers/net/wireless/marvell/Makefile b/drivers/net/wireless/marvell/Makefile
|
||||||
index 1b0a7d2bc8e6..04dff3388a41 100644
|
index 25f6d5d2fa0c..00fccce28cdd 100644
|
||||||
--- a/drivers/net/wireless/marvell/Makefile
|
--- a/drivers/net/wireless/marvell/Makefile
|
||||||
+++ b/drivers/net/wireless/marvell/Makefile
|
+++ b/drivers/net/wireless/marvell/Makefile
|
||||||
@@ -2,5 +2,6 @@ obj-$(CONFIG_LIBERTAS) += libertas/
|
@@ -3,5 +3,6 @@ obj-$(CONFIG_LIBERTAS) += libertas/
|
||||||
|
|
||||||
obj-$(CONFIG_LIBERTAS_THINFIRM) += libertas_tf/
|
obj-$(CONFIG_LIBERTAS_THINFIRM) += libertas_tf/
|
||||||
obj-$(CONFIG_MWIFIEX) += mwifiex/
|
obj-$(CONFIG_MWIFIEX) += mwifiex/
|
|
@ -11,10 +11,10 @@ Subject: [PATCH 12/12] surfacebook2-dgpu
|
||||||
create mode 100644 drivers/platform/x86/surfacebook2_dgpu_hps.c
|
create mode 100644 drivers/platform/x86/surfacebook2_dgpu_hps.c
|
||||||
|
|
||||||
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
|
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
|
||||||
index 21ffc03cd372..200d4d55da98 100644
|
index 25df8d2866c6..fb52b557198e 100644
|
||||||
--- a/drivers/platform/x86/Kconfig
|
--- a/drivers/platform/x86/Kconfig
|
||||||
+++ b/drivers/platform/x86/Kconfig
|
+++ b/drivers/platform/x86/Kconfig
|
||||||
@@ -483,6 +483,15 @@ config SURFACE3_WMI
|
@@ -484,6 +484,15 @@ config SURFACE3_WMI
|
||||||
To compile this driver as a module, choose M here: the module will
|
To compile this driver as a module, choose M here: the module will
|
||||||
be called surface3-wmi.
|
be called surface3-wmi.
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ index 21ffc03cd372..200d4d55da98 100644
|
||||||
tristate "ThinkPad ACPI Laptop Extras"
|
tristate "ThinkPad ACPI Laptop Extras"
|
||||||
depends on ACPI
|
depends on ACPI
|
||||||
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
|
diff --git a/drivers/platform/x86/Makefile b/drivers/platform/x86/Makefile
|
||||||
index 278ce32df99f..0faf98020b84 100644
|
index 58b07217c3cf..d18d3dcc5749 100644
|
||||||
--- a/drivers/platform/x86/Makefile
|
--- a/drivers/platform/x86/Makefile
|
||||||
+++ b/drivers/platform/x86/Makefile
|
+++ b/drivers/platform/x86/Makefile
|
||||||
@@ -49,6 +49,7 @@ obj-$(CONFIG_ACPI_WMI) += wmi.o
|
@@ -49,6 +49,7 @@ obj-$(CONFIG_ACPI_WMI) += wmi.o
|
Loading…
Reference in a new issue