summaryrefslogtreecommitdiffstats
path: root/patch-5.11-redhat.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patch-5.11-redhat.patch')
-rw-r--r--patch-5.11-redhat.patch164
1 files changed, 159 insertions, 5 deletions
diff --git a/patch-5.11-redhat.patch b/patch-5.11-redhat.patch
index 0cddf9360..aee2a1f28 100644
--- a/patch-5.11-redhat.patch
+++ b/patch-5.11-redhat.patch
@@ -66,7 +66,16 @@
sound/hda/Kconfig | 14 +
sound/hda/intel-dsp-config.c | 29 +-
sound/soc/intel/atom/sst-mfld-platform-pcm.c | 6 +-
- 68 files changed, 2268 insertions(+), 255 deletions(-)
+ sound/soc/sof/intel/apl.c | 3 +-
+ sound/soc/sof/intel/cnl.c | 3 +-
+ sound/soc/sof/intel/hda-dsp.c | 6 +
+ sound/soc/sof/intel/hda.h | 1 +
+ sound/soc/sof/intel/icl.c | 3 +-
+ sound/soc/sof/intel/tgl.c | 1 +
+ sound/soc/sof/ops.h | 8 +
+ sound/soc/sof/sof-pci-dev.c | 2 +-
+ sound/soc/sof/sof-priv.h | 4 +-
+ 77 files changed, 2294 insertions(+), 260 deletions(-)
diff --git a/Documentation/ABI/testing/sysfs-platform_profile b/Documentation/ABI/testing/sysfs-platform_profile
new file mode 100644
@@ -280,7 +289,7 @@ index 000000000000..c33a71263d9e
+ 2. Add the new profile name, along with a clear description of the
+ expected behaviour, to the sysfs-platform_profile ABI documentation.
diff --git a/Makefile b/Makefile
-index 7578e0d9622f..74679ade5579 100644
+index 1e31504aab61..59a5c8126afe 100644
--- a/Makefile
+++ b/Makefile
@@ -495,6 +495,7 @@ KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE
@@ -442,7 +451,7 @@ index 1fbed91c73bc..73f5724342b1 100644
/* boot_command_line has been already set up in early.c */
*cmdline_p = boot_command_line;
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index 740f3bdb3f61..db04c427e35c 100644
+index df964571a6b4..200db376f728 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -19,6 +19,7 @@
@@ -467,7 +476,7 @@ index 740f3bdb3f61..db04c427e35c 100644
dmi_setup();
/*
-@@ -1113,19 +1121,7 @@ void __init setup_arch(char **cmdline_p)
+@@ -1116,19 +1124,7 @@ void __init setup_arch(char **cmdline_p)
/* Allocate bigger log buffer */
setup_log_buf(1);
@@ -778,7 +787,7 @@ index 000000000000..4a59c5993bde
+MODULE_AUTHOR("Mark Pearson <markpearson@lenovo.com>");
+MODULE_LICENSE("GPL");
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
-index a4fdf61b0644..9aa6d898fadd 100644
+index 239eeeafc62f..bb8c046fc4cb 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -1638,6 +1638,15 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device)
@@ -3833,3 +3842,148 @@ index 9e9b05883557..aa5dd590ddd5 100644
},
},
{
+diff --git a/sound/soc/sof/intel/apl.c b/sound/soc/sof/intel/apl.c
+index fc29b91b8932..c7ed2b3d6abc 100644
+--- a/sound/soc/sof/intel/apl.c
++++ b/sound/soc/sof/intel/apl.c
+@@ -27,9 +27,10 @@ static const struct snd_sof_debugfs_map apl_dsp_debugfs[] = {
+
+ /* apollolake ops */
+ const struct snd_sof_dsp_ops sof_apl_ops = {
+- /* probe and remove */
++ /* probe/remove/shutdown */
+ .probe = hda_dsp_probe,
+ .remove = hda_dsp_remove,
++ .shutdown = hda_dsp_shutdown,
+
+ /* Register IO */
+ .write = sof_io_write,
+diff --git a/sound/soc/sof/intel/cnl.c b/sound/soc/sof/intel/cnl.c
+index e38db519f38d..094cde17a1b7 100644
+--- a/sound/soc/sof/intel/cnl.c
++++ b/sound/soc/sof/intel/cnl.c
+@@ -232,9 +232,10 @@ void cnl_ipc_dump(struct snd_sof_dev *sdev)
+
+ /* cannonlake ops */
+ const struct snd_sof_dsp_ops sof_cnl_ops = {
+- /* probe and remove */
++ /* probe/remove/shutdown */
+ .probe = hda_dsp_probe,
+ .remove = hda_dsp_remove,
++ .shutdown = hda_dsp_shutdown,
+
+ /* Register IO */
+ .write = sof_io_write,
+diff --git a/sound/soc/sof/intel/hda-dsp.c b/sound/soc/sof/intel/hda-dsp.c
+index 012bac41fee0..03b0f178ca08 100644
+--- a/sound/soc/sof/intel/hda-dsp.c
++++ b/sound/soc/sof/intel/hda-dsp.c
+@@ -885,6 +885,12 @@ int hda_dsp_suspend(struct snd_sof_dev *sdev, u32 target_state)
+ return snd_sof_dsp_set_power_state(sdev, &target_dsp_state);
+ }
+
++int hda_dsp_shutdown(struct snd_sof_dev *sdev)
++{
++ sdev->system_suspend_target = SOF_SUSPEND_S3;
++ return snd_sof_suspend(sdev->dev);
++}
++
+ int hda_dsp_set_hw_params_upon_resume(struct snd_sof_dev *sdev)
+ {
+ #if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA)
+diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h
+index a3b6f3e9121c..010577885913 100644
+--- a/sound/soc/sof/intel/hda.h
++++ b/sound/soc/sof/intel/hda.h
+@@ -512,6 +512,7 @@ int hda_dsp_resume(struct snd_sof_dev *sdev);
+ int hda_dsp_runtime_suspend(struct snd_sof_dev *sdev);
+ int hda_dsp_runtime_resume(struct snd_sof_dev *sdev);
+ int hda_dsp_runtime_idle(struct snd_sof_dev *sdev);
++int hda_dsp_shutdown(struct snd_sof_dev *sdev);
+ int hda_dsp_set_hw_params_upon_resume(struct snd_sof_dev *sdev);
+ void hda_dsp_dump_skl(struct snd_sof_dev *sdev, u32 flags);
+ void hda_dsp_dump(struct snd_sof_dev *sdev, u32 flags);
+diff --git a/sound/soc/sof/intel/icl.c b/sound/soc/sof/intel/icl.c
+index e9d5a0a58504..88a74be8a0c1 100644
+--- a/sound/soc/sof/intel/icl.c
++++ b/sound/soc/sof/intel/icl.c
+@@ -26,9 +26,10 @@ static const struct snd_sof_debugfs_map icl_dsp_debugfs[] = {
+
+ /* Icelake ops */
+ const struct snd_sof_dsp_ops sof_icl_ops = {
+- /* probe and remove */
++ /* probe/remove/shutdown */
+ .probe = hda_dsp_probe,
+ .remove = hda_dsp_remove,
++ .shutdown = hda_dsp_shutdown,
+
+ /* Register IO */
+ .write = sof_io_write,
+diff --git a/sound/soc/sof/intel/tgl.c b/sound/soc/sof/intel/tgl.c
+index 2252ca38ff4b..4f661f042d4d 100644
+--- a/sound/soc/sof/intel/tgl.c
++++ b/sound/soc/sof/intel/tgl.c
+@@ -25,6 +25,7 @@ const struct snd_sof_dsp_ops sof_tgl_ops = {
+ /* probe and remove */
+ .probe = hda_dsp_probe,
+ .remove = hda_dsp_remove,
++ .shutdown = hda_dsp_shutdown,
+
+ /* Register IO */
+ .write = sof_io_write,
+diff --git a/sound/soc/sof/ops.h b/sound/soc/sof/ops.h
+index 95e748b36903..7562097bd7d5 100644
+--- a/sound/soc/sof/ops.h
++++ b/sound/soc/sof/ops.h
+@@ -37,6 +37,14 @@ static inline int snd_sof_remove(struct snd_sof_dev *sdev)
+ return 0;
+ }
+
++static inline int snd_sof_shutdown(struct snd_sof_dev *sdev)
++{
++ if (sof_ops(sdev)->shutdown)
++ return sof_ops(sdev)->shutdown(sdev);
++
++ return 0;
++}
++
+ /* control */
+
+ /*
+diff --git a/sound/soc/sof/sof-pci-dev.c b/sound/soc/sof/sof-pci-dev.c
+index 9adf50b20a73..a93b3aa6349c 100644
+--- a/sound/soc/sof/sof-pci-dev.c
++++ b/sound/soc/sof/sof-pci-dev.c
+@@ -269,7 +269,7 @@ static const struct sof_dev_desc ehl_desc = {
+ .default_tplg_path = "intel/sof-tplg",
+ .default_fw_filename = "sof-ehl.ri",
+ .nocodec_tplg_filename = "sof-ehl-nocodec.tplg",
+- .ops = &sof_cnl_ops,
++ .ops = &sof_tgl_ops,
+ };
+ #endif
+
+diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
+index 68da8f797403..8d0c33c6d053 100644
+--- a/sound/soc/sof/sof-priv.h
++++ b/sound/soc/sof/sof-priv.h
+@@ -98,9 +98,10 @@ struct snd_sof_pdata;
+ */
+ struct snd_sof_dsp_ops {
+
+- /* probe and remove */
++ /* probe/remove/shutdown */
+ int (*probe)(struct snd_sof_dev *sof_dev); /* mandatory */
+ int (*remove)(struct snd_sof_dev *sof_dev); /* optional */
++ int (*shutdown)(struct snd_sof_dev *sof_dev); /* optional */
+
+ /* DSP core boot / reset */
+ int (*run)(struct snd_sof_dev *sof_dev); /* mandatory */
+@@ -460,6 +461,7 @@ struct snd_sof_dev {
+
+ int snd_sof_device_probe(struct device *dev, struct snd_sof_pdata *plat_data);
+ int snd_sof_device_remove(struct device *dev);
++int snd_sof_device_shutdown(struct device *dev);
+
+ int snd_sof_runtime_suspend(struct device *dev);
+ int snd_sof_runtime_resume(struct device *dev);