Compare commits
30 commits
kernel-wat
...
master
Author | SHA1 | Date | |
---|---|---|---|
43aaa36cd7 | |||
e5c2f49c1e | |||
44d15ab270 | |||
57fe2f4f40 | |||
3ef102d597 | |||
fe8d8fddb4 | |||
ff7468d749 | |||
50d9c1dc0d | |||
5c4f97cc49 | |||
6944979a79 | |||
727b5a2078 | |||
fee068eee7 | |||
69db543758 | |||
0da642adc7 | |||
8f5660341b | |||
daac927ae7 | |||
3c1b47315d | |||
f7268974dc | |||
47d64ee435 | |||
852fcb1c2f | |||
398a046a41 | |||
fcdab44b7f | |||
cfbf70ce88 | |||
b4f7c66d93 | |||
3187d8c8db | |||
0a6559d21e | |||
61cce717b6 | |||
4e0f8e9253 | |||
fcc945709d | |||
100a927a4f |
125
.github/workflows/fedora-40.yml
vendored
Normal file
125
.github/workflows/fedora-40.yml
vendored
Normal file
|
@ -0,0 +1,125 @@
|
||||||
|
name: Fedora 40
|
||||||
|
|
||||||
|
env:
|
||||||
|
FEDORA: 40
|
||||||
|
GPG_KEY_ID: 56C464BAAC421453
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'fedora-40-*'
|
||||||
|
|
||||||
|
repository_dispatch:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Build Kernel
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Maximize disk space
|
||||||
|
uses: easimon/maximize-build-space@master
|
||||||
|
with:
|
||||||
|
root-reserve-mb: 5120
|
||||||
|
remove-dotnet: true
|
||||||
|
remove-android: true
|
||||||
|
remove-docker-images: true
|
||||||
|
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Initialize containers
|
||||||
|
run: |
|
||||||
|
bash ./.github/scripts/container/create.sh \
|
||||||
|
registry.fedoraproject.org/fedora:${{ env.FEDORA }}
|
||||||
|
|
||||||
|
- name: Install build dependencies
|
||||||
|
run: |
|
||||||
|
bash ./.github/scripts/container/exec.sh \
|
||||||
|
-- \
|
||||||
|
bash ./.github/scripts/package/fedora.sh setup-builddeps
|
||||||
|
|
||||||
|
- name: Setup secureboot certificate
|
||||||
|
env:
|
||||||
|
SB_KEY: ${{ secrets.SURFACE_SB_KEY }}
|
||||||
|
run: |
|
||||||
|
bash ./.github/scripts/container/exec.sh \
|
||||||
|
-e SB_KEY \
|
||||||
|
-- \
|
||||||
|
bash ./.github/scripts/package/fedora.sh setup-secureboot
|
||||||
|
|
||||||
|
- name: Build packages
|
||||||
|
run: |
|
||||||
|
bash ./.github/scripts/container/exec.sh \
|
||||||
|
-- \
|
||||||
|
bash ./.github/scripts/package/fedora.sh build-packages
|
||||||
|
|
||||||
|
- name: Sign packages
|
||||||
|
env:
|
||||||
|
GPG_KEY: ${{ secrets.LINUX_SURFACE_GPG_KEY }}
|
||||||
|
run: |
|
||||||
|
bash ./.github/scripts/container/exec.sh \
|
||||||
|
-e GPG_KEY \
|
||||||
|
-e GPG_KEY_ID \
|
||||||
|
-- \
|
||||||
|
bash ./.github/scripts/package/fedora.sh sign-packages
|
||||||
|
|
||||||
|
- name: Upload artifacts
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: fedora-${{ env.FEDORA }}-latest
|
||||||
|
path: pkg/fedora/kernel-surface/out/x86_64
|
||||||
|
|
||||||
|
release:
|
||||||
|
name: Publish release
|
||||||
|
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/')
|
||||||
|
needs: [build]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Download artifacts
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: fedora-${{ env.FEDORA }}-latest
|
||||||
|
path: fedora-${{ env.FEDORA }}-latest
|
||||||
|
|
||||||
|
- name: Upload assets
|
||||||
|
uses: svenstaro/upload-release-action@v2
|
||||||
|
with:
|
||||||
|
repo_token: ${{ secrets.LINUX_SURFACE_BOT_TOKEN }}
|
||||||
|
file: ./*-latest/*
|
||||||
|
tag: ${{ github.ref }}
|
||||||
|
overwrite: true
|
||||||
|
file_glob: true
|
||||||
|
|
||||||
|
repo:
|
||||||
|
name: Update package repository
|
||||||
|
needs: [release]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Download artifacts
|
||||||
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: fedora-${{ env.FEDORA }}-latest
|
||||||
|
path: fedora-${{ env.FEDORA }}-latest
|
||||||
|
|
||||||
|
- name: Initialize containers
|
||||||
|
run: |
|
||||||
|
bash ./.github/scripts/container/create.sh \
|
||||||
|
registry.fedoraproject.org/fedora:${{ env.FEDORA }}
|
||||||
|
|
||||||
|
- name: Update repository
|
||||||
|
env:
|
||||||
|
SURFACEBOT_TOKEN: ${{ secrets.LINUX_SURFACE_BOT_TOKEN }}
|
||||||
|
GIT_REF: ${{ github.ref }}
|
||||||
|
BRANCH_STAGING: u/staging
|
||||||
|
run: |
|
||||||
|
bash ./.github/scripts/container/exec.sh \
|
||||||
|
-e SURFACEBOT_TOKEN \
|
||||||
|
-e GIT_REF \
|
||||||
|
-e BRANCH_STAGING \
|
||||||
|
-e GITHUB_REPOSITORY \
|
||||||
|
-- \
|
||||||
|
bash ./.github/scripts/repository/fedora.sh ${{ env.FEDORA }}
|
|
@ -96,7 +96,6 @@ If you have questions or need support, please join our [Matrix Space][matrix-spa
|
||||||
This space contains
|
This space contains
|
||||||
- a [support channel][matrix-support] for general support and
|
- a [support channel][matrix-support] for general support and
|
||||||
- a [development channel][matrix-development] for all development related questions and discussions.
|
- a [development channel][matrix-development] for all development related questions and discussions.
|
||||||
If you prefer IRC, you can also join in via our channel at [`libera.chat/#linux-surface`][liberachat], to which the matrix room is bridged to.
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
This repository contains patches, which are either derivative work targeting a specific already licensed source, i.e. parts of the Linux kernel, or introduce new parts to the Linux kernel.
|
This repository contains patches, which are either derivative work targeting a specific already licensed source, i.e. parts of the Linux kernel, or introduce new parts to the Linux kernel.
|
||||||
|
@ -112,7 +111,6 @@ License texts can be obtained at https://github.com/torvalds/linux/tree/master/L
|
||||||
[matrix-space]: https://matrix.to/#/#linux-surface:matrix.org
|
[matrix-space]: https://matrix.to/#/#linux-surface:matrix.org
|
||||||
[matrix-support]: https://matrix.to/#/#linux-surface-support:matrix.org
|
[matrix-support]: https://matrix.to/#/#linux-surface-support:matrix.org
|
||||||
[matrix-development]: https://matrix.to/#/#linux-surface-development:matrix.org
|
[matrix-development]: https://matrix.to/#/#linux-surface-development:matrix.org
|
||||||
[liberachat]: https://web.libera.chat/#linux-surface
|
|
||||||
|
|
||||||
[hibernate-setup]: https://fitzcarraldoblog.wordpress.com/2018/07/14/configuring-lubuntu-18-04-to-enable-hibernation-using-a-swap-file
|
[hibernate-setup]: https://fitzcarraldoblog.wordpress.com/2018/07/14/configuring-lubuntu-18-04-to-enable-hibernation-using-a-swap-file
|
||||||
[releases]: https://github.com/linux-surface/linux-surface/releases
|
[releases]: https://github.com/linux-surface/linux-surface/releases
|
||||||
|
|
|
@ -1,74 +0,0 @@
|
||||||
##
|
|
||||||
## Surface Aggregator Module
|
|
||||||
##
|
|
||||||
CONFIG_SURFACE_AGGREGATOR=m
|
|
||||||
# CONFIG_SURFACE_AGGREGATOR_ERROR_INJECTION is not set
|
|
||||||
CONFIG_SURFACE_AGGREGATOR_BUS=y
|
|
||||||
CONFIG_SURFACE_AGGREGATOR_CDEV=m
|
|
||||||
CONFIG_SURFACE_AGGREGATOR_HUB=m
|
|
||||||
CONFIG_SURFACE_AGGREGATOR_REGISTRY=m
|
|
||||||
CONFIG_SURFACE_AGGREGATOR_TABLET_SWITCH=m
|
|
||||||
|
|
||||||
CONFIG_SURFACE_ACPI_NOTIFY=m
|
|
||||||
CONFIG_SURFACE_DTX=m
|
|
||||||
CONFIG_SURFACE_PLATFORM_PROFILE=m
|
|
||||||
|
|
||||||
CONFIG_SURFACE_HID=m
|
|
||||||
CONFIG_SURFACE_KBD=m
|
|
||||||
|
|
||||||
CONFIG_BATTERY_SURFACE=m
|
|
||||||
CONFIG_CHARGER_SURFACE=m
|
|
||||||
|
|
||||||
CONFIG_SENSORS_SURFACE_TEMP=m
|
|
||||||
CONFIG_SENSORS_SURFACE_FAN=m
|
|
||||||
|
|
||||||
##
|
|
||||||
## Surface Hotplug
|
|
||||||
##
|
|
||||||
CONFIG_SURFACE_HOTPLUG=m
|
|
||||||
|
|
||||||
##
|
|
||||||
## IPTS and ITHC touchscreen
|
|
||||||
##
|
|
||||||
## This only enables the user interface for IPTS/ITHC data.
|
|
||||||
## For the touchscreen to work, you need to install iptsd.
|
|
||||||
##
|
|
||||||
CONFIG_HID_IPTS=m
|
|
||||||
CONFIG_HID_ITHC=m
|
|
||||||
|
|
||||||
##
|
|
||||||
## Cameras: IPU3
|
|
||||||
##
|
|
||||||
CONFIG_VIDEO_DW9719=m
|
|
||||||
CONFIG_VIDEO_IPU3_IMGU=m
|
|
||||||
CONFIG_VIDEO_IPU3_CIO2=m
|
|
||||||
CONFIG_CIO2_BRIDGE=y
|
|
||||||
CONFIG_INTEL_SKL_INT3472=m
|
|
||||||
CONFIG_REGULATOR_TPS68470=m
|
|
||||||
CONFIG_COMMON_CLK_TPS68470=m
|
|
||||||
|
|
||||||
##
|
|
||||||
## Cameras: Sensor drivers
|
|
||||||
##
|
|
||||||
CONFIG_VIDEO_OV5693=m
|
|
||||||
CONFIG_VIDEO_OV7251=m
|
|
||||||
CONFIG_VIDEO_OV8865=m
|
|
||||||
|
|
||||||
##
|
|
||||||
## Surface 3: atomisp causes problems (see issue #1095). Disable it for now.
|
|
||||||
##
|
|
||||||
# CONFIG_INTEL_ATOMISP is not set
|
|
||||||
|
|
||||||
##
|
|
||||||
## ALS Sensor for Surface Book 3, Surface Laptop 3, Surface Pro 7
|
|
||||||
##
|
|
||||||
CONFIG_APDS9960=m
|
|
||||||
|
|
||||||
##
|
|
||||||
## Other Drivers
|
|
||||||
##
|
|
||||||
CONFIG_INPUT_SOC_BUTTON_ARRAY=m
|
|
||||||
CONFIG_SURFACE_3_POWER_OPREGION=m
|
|
||||||
CONFIG_SURFACE_PRO3_BUTTON=m
|
|
||||||
CONFIG_SURFACE_GPE=m
|
|
||||||
CONFIG_SURFACE_BOOK1_DGPU_SWITCH=m
|
|
|
@ -1,6 +1,6 @@
|
||||||
# One-shot automatic screen rotation
|
# One-shot automatic screen rotation
|
||||||
|
|
||||||
There are many scripts around (you can find some [here](https://gist.github.com/mildmojo/48e9025070a2ba40795c, where this script was published first)), which rotate the screen automatically. Many desktop environment have this feature built in, but if you like a one-shot automatic rotation facility, this is for you.
|
There are many scripts around (you can find some [here](https://gist.github.com/mildmojo/48e9025070a2ba40795c), where this script was published first), which rotate the screen automatically. Many desktop environment have this feature built in, but if you like a one-shot automatic rotation facility, this is for you.
|
||||||
|
|
||||||
|
|
||||||
## Motivation
|
## Motivation
|
||||||
|
|
|
@ -1,101 +0,0 @@
|
||||||
From 76879eb77d3fb3b308492c40cc88d8449bbfa760 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tsuchiya Yuto <kitakar@gmail.com>
|
|
||||||
Date: Sun, 18 Oct 2020 16:42:44 +0900
|
|
||||||
Subject: [PATCH] (surface3-oemb) add DMI matches for Surface 3 with broken DMI
|
|
||||||
table
|
|
||||||
|
|
||||||
On some Surface 3, the DMI table gets corrupted for unknown reasons
|
|
||||||
and breaks existing DMI matching used for device-specific quirks.
|
|
||||||
|
|
||||||
This commit adds the (broken) DMI data into dmi_system_id tables used
|
|
||||||
for quirks so that each driver can enable quirks even on the affected
|
|
||||||
systems.
|
|
||||||
|
|
||||||
On affected systems, DMI data will look like this:
|
|
||||||
$ grep . /sys/devices/virtual/dmi/id/{bios_vendor,board_name,board_vendor,\
|
|
||||||
chassis_vendor,product_name,sys_vendor}
|
|
||||||
/sys/devices/virtual/dmi/id/bios_vendor:American Megatrends Inc.
|
|
||||||
/sys/devices/virtual/dmi/id/board_name:OEMB
|
|
||||||
/sys/devices/virtual/dmi/id/board_vendor:OEMB
|
|
||||||
/sys/devices/virtual/dmi/id/chassis_vendor:OEMB
|
|
||||||
/sys/devices/virtual/dmi/id/product_name:OEMB
|
|
||||||
/sys/devices/virtual/dmi/id/sys_vendor:OEMB
|
|
||||||
|
|
||||||
Expected:
|
|
||||||
$ grep . /sys/devices/virtual/dmi/id/{bios_vendor,board_name,board_vendor,\
|
|
||||||
chassis_vendor,product_name,sys_vendor}
|
|
||||||
/sys/devices/virtual/dmi/id/bios_vendor:American Megatrends Inc.
|
|
||||||
/sys/devices/virtual/dmi/id/board_name:Surface 3
|
|
||||||
/sys/devices/virtual/dmi/id/board_vendor:Microsoft Corporation
|
|
||||||
/sys/devices/virtual/dmi/id/chassis_vendor:Microsoft Corporation
|
|
||||||
/sys/devices/virtual/dmi/id/product_name:Surface 3
|
|
||||||
/sys/devices/virtual/dmi/id/sys_vendor:Microsoft Corporation
|
|
||||||
|
|
||||||
Signed-off-by: Tsuchiya Yuto <kitakar@gmail.com>
|
|
||||||
Patchset: surface3-oemb
|
|
||||||
---
|
|
||||||
drivers/platform/surface/surface3-wmi.c | 7 +++++++
|
|
||||||
sound/soc/codecs/rt5645.c | 9 +++++++++
|
|
||||||
sound/soc/intel/common/soc-acpi-intel-cht-match.c | 8 ++++++++
|
|
||||||
3 files changed, 24 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/platform/surface/surface3-wmi.c b/drivers/platform/surface/surface3-wmi.c
|
|
||||||
index ca4602bcc7dea..490b9731068ae 100644
|
|
||||||
--- a/drivers/platform/surface/surface3-wmi.c
|
|
||||||
+++ b/drivers/platform/surface/surface3-wmi.c
|
|
||||||
@@ -37,6 +37,13 @@ static const struct dmi_system_id surface3_dmi_table[] = {
|
|
||||||
DMI_MATCH(DMI_PRODUCT_NAME, "Surface 3"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ .matches = {
|
|
||||||
+ DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
|
|
||||||
+ DMI_MATCH(DMI_SYS_VENDOR, "OEMB"),
|
|
||||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "OEMB"),
|
|
||||||
+ },
|
|
||||||
+ },
|
|
||||||
#endif
|
|
||||||
{ }
|
|
||||||
};
|
|
||||||
diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c
|
|
||||||
index f86fc7cd104d4..12e365b046c3e 100644
|
|
||||||
--- a/sound/soc/codecs/rt5645.c
|
|
||||||
+++ b/sound/soc/codecs/rt5645.c
|
|
||||||
@@ -3719,6 +3719,15 @@ static const struct dmi_system_id dmi_platform_data[] = {
|
|
||||||
},
|
|
||||||
.driver_data = (void *)&intel_braswell_platform_data,
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ .ident = "Microsoft Surface 3",
|
|
||||||
+ .matches = {
|
|
||||||
+ DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
|
|
||||||
+ DMI_MATCH(DMI_SYS_VENDOR, "OEMB"),
|
|
||||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "OEMB"),
|
|
||||||
+ },
|
|
||||||
+ .driver_data = (void *)&intel_braswell_platform_data,
|
|
||||||
+ },
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Match for the GPDwin which unfortunately uses somewhat
|
|
||||||
diff --git a/sound/soc/intel/common/soc-acpi-intel-cht-match.c b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
|
|
||||||
index 5e2ec60e2954b..207868c699f29 100644
|
|
||||||
--- a/sound/soc/intel/common/soc-acpi-intel-cht-match.c
|
|
||||||
+++ b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
|
|
||||||
@@ -27,6 +27,14 @@ static const struct dmi_system_id cht_table[] = {
|
|
||||||
DMI_MATCH(DMI_PRODUCT_NAME, "Surface 3"),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ .callback = cht_surface_quirk_cb,
|
|
||||||
+ .matches = {
|
|
||||||
+ DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
|
|
||||||
+ DMI_MATCH(DMI_SYS_VENDOR, "OEMB"),
|
|
||||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "OEMB"),
|
|
||||||
+ },
|
|
||||||
+ },
|
|
||||||
{ }
|
|
||||||
};
|
|
||||||
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
|
@ -1,400 +0,0 @@
|
||||||
From e71b728669d67c4a10224b4a9abb38ec598ecd35 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
|
|
||||||
Date: Tue, 3 Nov 2020 13:28:04 +0100
|
|
||||||
Subject: [PATCH] mwifiex: Add quirk resetting the PCI bridge on MS Surface
|
|
||||||
devices
|
|
||||||
|
|
||||||
The most recent firmware of the 88W8897 card reports a hardcoded LTR
|
|
||||||
value to the system during initialization, probably as an (unsuccessful)
|
|
||||||
attempt of the developers to fix firmware crashes. This LTR value
|
|
||||||
prevents most of the Microsoft Surface devices from entering deep
|
|
||||||
powersaving states (either platform C-State 10 or S0ix state), because
|
|
||||||
the exit latency of that state would be higher than what the card can
|
|
||||||
tolerate.
|
|
||||||
|
|
||||||
Turns out the card works just the same (including the firmware crashes)
|
|
||||||
no matter if that hardcoded LTR value is reported or not, so it's kind
|
|
||||||
of useless and only prevents us from saving power.
|
|
||||||
|
|
||||||
To get rid of those hardcoded LTR reports, it's possible to reset the
|
|
||||||
PCI bridge device after initializing the cards firmware. I'm not exactly
|
|
||||||
sure why that works, maybe the power management subsystem of the PCH
|
|
||||||
resets its stored LTR values when doing a function level reset of the
|
|
||||||
bridge device. Doing the reset once after starting the wifi firmware
|
|
||||||
works very well, probably because the firmware only reports that LTR
|
|
||||||
value a single time during firmware startup.
|
|
||||||
|
|
||||||
Patchset: mwifiex
|
|
||||||
---
|
|
||||||
drivers/net/wireless/marvell/mwifiex/pcie.c | 12 +++++++++
|
|
||||||
.../wireless/marvell/mwifiex/pcie_quirks.c | 26 +++++++++++++------
|
|
||||||
.../wireless/marvell/mwifiex/pcie_quirks.h | 1 +
|
|
||||||
3 files changed, 31 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
|
|
||||||
index 6697132ecc977..f06b4ebc5bd8e 100644
|
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/pcie.c
|
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
|
|
||||||
@@ -1771,9 +1771,21 @@ mwifiex_pcie_send_boot_cmd(struct mwifiex_adapter *adapter, struct sk_buff *skb)
|
|
||||||
static int mwifiex_pcie_init_fw_port(struct mwifiex_adapter *adapter)
|
|
||||||
{
|
|
||||||
struct pcie_service_card *card = adapter->card;
|
|
||||||
+ struct pci_dev *pdev = card->dev;
|
|
||||||
+ struct pci_dev *parent_pdev = pci_upstream_bridge(pdev);
|
|
||||||
const struct mwifiex_pcie_card_reg *reg = card->pcie.reg;
|
|
||||||
int tx_wrap = card->txbd_wrptr & reg->tx_wrap_mask;
|
|
||||||
|
|
||||||
+ /* Trigger a function level reset of the PCI bridge device, this makes
|
|
||||||
+ * the firmware of PCIe 88W8897 cards stop reporting a fixed LTR value
|
|
||||||
+ * that prevents the system from entering package C10 and S0ix powersaving
|
|
||||||
+ * states.
|
|
||||||
+ * We need to do it here because it must happen after firmware
|
|
||||||
+ * initialization and this function is called after that is done.
|
|
||||||
+ */
|
|
||||||
+ if (card->quirks & QUIRK_DO_FLR_ON_BRIDGE)
|
|
||||||
+ pci_reset_function(parent_pdev);
|
|
||||||
+
|
|
||||||
/* Write the RX ring read pointer in to reg->rx_rdptr */
|
|
||||||
if (mwifiex_write_reg(adapter, reg->rx_rdptr, card->rxbd_rdptr |
|
|
||||||
tx_wrap)) {
|
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
|
||||||
index dd6d21f1dbfd7..f46b06f8d6435 100644
|
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
|
||||||
@@ -13,7 +13,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Surface Pro 4"),
|
|
||||||
},
|
|
||||||
- .driver_data = (void *)QUIRK_FW_RST_D3COLD,
|
|
||||||
+ .driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.ident = "Surface Pro 5",
|
|
||||||
@@ -22,7 +23,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "Surface_Pro_1796"),
|
|
||||||
},
|
|
||||||
- .driver_data = (void *)QUIRK_FW_RST_D3COLD,
|
|
||||||
+ .driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.ident = "Surface Pro 5 (LTE)",
|
|
||||||
@@ -31,7 +33,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "Surface_Pro_1807"),
|
|
||||||
},
|
|
||||||
- .driver_data = (void *)QUIRK_FW_RST_D3COLD,
|
|
||||||
+ .driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.ident = "Surface Pro 6",
|
|
||||||
@@ -39,7 +42,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Surface Pro 6"),
|
|
||||||
},
|
|
||||||
- .driver_data = (void *)QUIRK_FW_RST_D3COLD,
|
|
||||||
+ .driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.ident = "Surface Book 1",
|
|
||||||
@@ -47,7 +51,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Surface Book"),
|
|
||||||
},
|
|
||||||
- .driver_data = (void *)QUIRK_FW_RST_D3COLD,
|
|
||||||
+ .driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.ident = "Surface Book 2",
|
|
||||||
@@ -55,7 +60,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Surface Book 2"),
|
|
||||||
},
|
|
||||||
- .driver_data = (void *)QUIRK_FW_RST_D3COLD,
|
|
||||||
+ .driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.ident = "Surface Laptop 1",
|
|
||||||
@@ -63,7 +69,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Surface Laptop"),
|
|
||||||
},
|
|
||||||
- .driver_data = (void *)QUIRK_FW_RST_D3COLD,
|
|
||||||
+ .driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.ident = "Surface Laptop 2",
|
|
||||||
@@ -71,7 +78,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Surface Laptop 2"),
|
|
||||||
},
|
|
||||||
- .driver_data = (void *)QUIRK_FW_RST_D3COLD,
|
|
||||||
+ .driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
},
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
@@ -89,6 +97,8 @@ void mwifiex_initialize_quirks(struct pcie_service_card *card)
|
|
||||||
dev_info(&pdev->dev, "no quirks enabled\n");
|
|
||||||
if (card->quirks & QUIRK_FW_RST_D3COLD)
|
|
||||||
dev_info(&pdev->dev, "quirk reset_d3cold enabled\n");
|
|
||||||
+ if (card->quirks & QUIRK_DO_FLR_ON_BRIDGE)
|
|
||||||
+ dev_info(&pdev->dev, "quirk do_flr_on_bridge enabled\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mwifiex_pcie_set_power_d3cold(struct pci_dev *pdev)
|
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
|
||||||
index d6ff964aec5bf..5d30ae39d65ec 100644
|
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
|
||||||
@@ -4,6 +4,7 @@
|
|
||||||
#include "pcie.h"
|
|
||||||
|
|
||||||
#define QUIRK_FW_RST_D3COLD BIT(0)
|
|
||||||
+#define QUIRK_DO_FLR_ON_BRIDGE BIT(1)
|
|
||||||
|
|
||||||
void mwifiex_initialize_quirks(struct pcie_service_card *card);
|
|
||||||
int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
||||||
From 9b184ddbe3389c304cb91df8737e4fb64acd1a1d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tsuchiya Yuto <kitakar@gmail.com>
|
|
||||||
Date: Sun, 4 Oct 2020 00:11:49 +0900
|
|
||||||
Subject: [PATCH] mwifiex: pcie: disable bridge_d3 for Surface gen4+
|
|
||||||
|
|
||||||
Currently, mwifiex fw will crash after suspend on recent kernel series.
|
|
||||||
On Windows, it seems that the root port of wifi will never enter D3 state
|
|
||||||
(stay on D0 state). And on Linux, disabling the D3 state for the
|
|
||||||
bridge fixes fw crashing after suspend.
|
|
||||||
|
|
||||||
This commit disables the D3 state of root port on driver initialization
|
|
||||||
and fixes fw crashing after suspend.
|
|
||||||
|
|
||||||
Signed-off-by: Tsuchiya Yuto <kitakar@gmail.com>
|
|
||||||
Patchset: mwifiex
|
|
||||||
---
|
|
||||||
drivers/net/wireless/marvell/mwifiex/pcie.c | 7 +++++
|
|
||||||
.../wireless/marvell/mwifiex/pcie_quirks.c | 27 +++++++++++++------
|
|
||||||
.../wireless/marvell/mwifiex/pcie_quirks.h | 1 +
|
|
||||||
3 files changed, 27 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
|
|
||||||
index f06b4ebc5bd8e..07f13b52ddb92 100644
|
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/pcie.c
|
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
|
|
||||||
@@ -370,6 +370,7 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev,
|
|
||||||
const struct pci_device_id *ent)
|
|
||||||
{
|
|
||||||
struct pcie_service_card *card;
|
|
||||||
+ struct pci_dev *parent_pdev = pci_upstream_bridge(pdev);
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
pr_debug("info: vendor=0x%4.04X device=0x%4.04X rev=%d\n",
|
|
||||||
@@ -411,6 +412,12 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev,
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /* disable bridge_d3 for Surface gen4+ devices to fix fw crashing
|
|
||||||
+ * after suspend
|
|
||||||
+ */
|
|
||||||
+ if (card->quirks & QUIRK_NO_BRIDGE_D3)
|
|
||||||
+ parent_pdev->bridge_d3 = false;
|
|
||||||
+
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
|
||||||
index f46b06f8d6435..99b024ecbadea 100644
|
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
|
||||||
@@ -14,7 +14,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Surface Pro 4"),
|
|
||||||
},
|
|
||||||
.driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
- QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE |
|
|
||||||
+ QUIRK_NO_BRIDGE_D3),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.ident = "Surface Pro 5",
|
|
||||||
@@ -24,7 +25,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "Surface_Pro_1796"),
|
|
||||||
},
|
|
||||||
.driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
- QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE |
|
|
||||||
+ QUIRK_NO_BRIDGE_D3),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.ident = "Surface Pro 5 (LTE)",
|
|
||||||
@@ -34,7 +36,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "Surface_Pro_1807"),
|
|
||||||
},
|
|
||||||
.driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
- QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE |
|
|
||||||
+ QUIRK_NO_BRIDGE_D3),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.ident = "Surface Pro 6",
|
|
||||||
@@ -43,7 +46,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Surface Pro 6"),
|
|
||||||
},
|
|
||||||
.driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
- QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE |
|
|
||||||
+ QUIRK_NO_BRIDGE_D3),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.ident = "Surface Book 1",
|
|
||||||
@@ -52,7 +56,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Surface Book"),
|
|
||||||
},
|
|
||||||
.driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
- QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE |
|
|
||||||
+ QUIRK_NO_BRIDGE_D3),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.ident = "Surface Book 2",
|
|
||||||
@@ -61,7 +66,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Surface Book 2"),
|
|
||||||
},
|
|
||||||
.driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
- QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE |
|
|
||||||
+ QUIRK_NO_BRIDGE_D3),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.ident = "Surface Laptop 1",
|
|
||||||
@@ -70,7 +76,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Surface Laptop"),
|
|
||||||
},
|
|
||||||
.driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
- QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE |
|
|
||||||
+ QUIRK_NO_BRIDGE_D3),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.ident = "Surface Laptop 2",
|
|
||||||
@@ -79,7 +86,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
|
||||||
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Surface Laptop 2"),
|
|
||||||
},
|
|
||||||
.driver_data = (void *)(QUIRK_FW_RST_D3COLD |
|
|
||||||
- QUIRK_DO_FLR_ON_BRIDGE),
|
|
||||||
+ QUIRK_DO_FLR_ON_BRIDGE |
|
|
||||||
+ QUIRK_NO_BRIDGE_D3),
|
|
||||||
},
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
@@ -99,6 +107,9 @@ void mwifiex_initialize_quirks(struct pcie_service_card *card)
|
|
||||||
dev_info(&pdev->dev, "quirk reset_d3cold enabled\n");
|
|
||||||
if (card->quirks & QUIRK_DO_FLR_ON_BRIDGE)
|
|
||||||
dev_info(&pdev->dev, "quirk do_flr_on_bridge enabled\n");
|
|
||||||
+ if (card->quirks & QUIRK_NO_BRIDGE_D3)
|
|
||||||
+ dev_info(&pdev->dev,
|
|
||||||
+ "quirk no_brigde_d3 enabled\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void mwifiex_pcie_set_power_d3cold(struct pci_dev *pdev)
|
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
|
||||||
index 5d30ae39d65ec..c14eb56eb9118 100644
|
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
|
||||||
@@ -5,6 +5,7 @@
|
|
||||||
|
|
||||||
#define QUIRK_FW_RST_D3COLD BIT(0)
|
|
||||||
#define QUIRK_DO_FLR_ON_BRIDGE BIT(1)
|
|
||||||
+#define QUIRK_NO_BRIDGE_D3 BIT(2)
|
|
||||||
|
|
||||||
void mwifiex_initialize_quirks(struct pcie_service_card *card);
|
|
||||||
int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
||||||
From 30f499c577548fd760be821ecb0d289c1e994bc7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
|
|
||||||
Date: Thu, 25 Mar 2021 11:33:02 +0100
|
|
||||||
Subject: [PATCH] Bluetooth: btusb: Lower passive lescan interval on Marvell
|
|
||||||
88W8897
|
|
||||||
|
|
||||||
The Marvell 88W8897 combined wifi and bluetooth card (pcie+usb version)
|
|
||||||
is used in a lot of Microsoft Surface devices, and all those devices
|
|
||||||
suffer from very low 2.4GHz wifi connection speeds while bluetooth is
|
|
||||||
enabled. The reason for that is that the default passive scanning
|
|
||||||
interval for Bluetooth Low Energy devices is quite high in Linux
|
|
||||||
(interval of 60 msec and scan window of 30 msec, see hci_core.c), and
|
|
||||||
the Marvell chip is known for its bad bt+wifi coexisting performance.
|
|
||||||
|
|
||||||
So decrease that passive scan interval and make the scan window shorter
|
|
||||||
on this particular device to allow for spending more time transmitting
|
|
||||||
wifi signals: The new scan interval is 250 msec (0x190 * 0.625 msec) and
|
|
||||||
the new scan window is 6.25 msec (0xa * 0,625 msec).
|
|
||||||
|
|
||||||
This change has a very large impact on the 2.4GHz wifi speeds and gets
|
|
||||||
it up to performance comparable with the Windows driver, which seems to
|
|
||||||
apply a similar quirk.
|
|
||||||
|
|
||||||
The interval and window length were tested and found to work very well
|
|
||||||
with a lot of Bluetooth Low Energy devices, including the Surface Pen, a
|
|
||||||
Bluetooth Speaker and two modern Bluetooth headphones. All devices were
|
|
||||||
discovered immediately after turning them on. Even lower values were
|
|
||||||
also tested, but they introduced longer delays until devices get
|
|
||||||
discovered.
|
|
||||||
|
|
||||||
Patchset: mwifiex
|
|
||||||
---
|
|
||||||
drivers/bluetooth/btusb.c | 15 +++++++++++++++
|
|
||||||
1 file changed, 15 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
|
|
||||||
index 954f7f3b5cc30..9f2fe98ba8d9c 100644
|
|
||||||
--- a/drivers/bluetooth/btusb.c
|
|
||||||
+++ b/drivers/bluetooth/btusb.c
|
|
||||||
@@ -64,6 +64,7 @@ static struct usb_driver btusb_driver;
|
|
||||||
#define BTUSB_INTEL_BROKEN_INITIAL_NCMD BIT(25)
|
|
||||||
#define BTUSB_INTEL_NO_WBS_SUPPORT BIT(26)
|
|
||||||
#define BTUSB_ACTIONS_SEMI BIT(27)
|
|
||||||
+#define BTUSB_LOWER_LESCAN_INTERVAL BIT(28)
|
|
||||||
|
|
||||||
static const struct usb_device_id btusb_table[] = {
|
|
||||||
/* Generic Bluetooth USB device */
|
|
||||||
@@ -467,6 +468,7 @@ static const struct usb_device_id blacklist_table[] = {
|
|
||||||
{ USB_DEVICE(0x1286, 0x2044), .driver_info = BTUSB_MARVELL },
|
|
||||||
{ USB_DEVICE(0x1286, 0x2046), .driver_info = BTUSB_MARVELL },
|
|
||||||
{ USB_DEVICE(0x1286, 0x204e), .driver_info = BTUSB_MARVELL },
|
|
||||||
+ { USB_DEVICE(0x1286, 0x204c), .driver_info = BTUSB_LOWER_LESCAN_INTERVAL },
|
|
||||||
|
|
||||||
/* Intel Bluetooth devices */
|
|
||||||
{ USB_DEVICE(0x8087, 0x0025), .driver_info = BTUSB_INTEL_COMBINED },
|
|
||||||
@@ -3968,6 +3970,19 @@ static int btusb_probe(struct usb_interface *intf,
|
|
||||||
if (id->driver_info & BTUSB_MARVELL)
|
|
||||||
hdev->set_bdaddr = btusb_set_bdaddr_marvell;
|
|
||||||
|
|
||||||
+ /* The Marvell 88W8897 combined wifi and bluetooth card is known for
|
|
||||||
+ * very bad bt+wifi coexisting performance.
|
|
||||||
+ *
|
|
||||||
+ * Decrease the passive BT Low Energy scan interval a bit
|
|
||||||
+ * (0x0190 * 0.625 msec = 250 msec) and make the scan window shorter
|
|
||||||
+ * (0x000a * 0,625 msec = 6.25 msec). This allows for significantly
|
|
||||||
+ * higher wifi throughput while passively scanning for BT LE devices.
|
|
||||||
+ */
|
|
||||||
+ if (id->driver_info & BTUSB_LOWER_LESCAN_INTERVAL) {
|
|
||||||
+ hdev->le_scan_interval = 0x0190;
|
|
||||||
+ hdev->le_scan_window = 0x000a;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (IS_ENABLED(CONFIG_BT_HCIBTUSB_MTK) &&
|
|
||||||
(id->driver_info & BTUSB_MEDIATEK)) {
|
|
||||||
hdev->setup = btusb_mtk_setup;
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
|
@ -1,121 +0,0 @@
|
||||||
From da7072dd854e2207493a87582bfe1360ed97c828 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Date: Sat, 27 Feb 2021 00:45:52 +0100
|
|
||||||
Subject: [PATCH] ath10k: Add module parameters to override board files
|
|
||||||
|
|
||||||
Some Surface devices, specifically the Surface Go and AMD version of the
|
|
||||||
Surface Laptop 3 (wich both come with QCA6174 WiFi chips), work better
|
|
||||||
with a different board file, as it seems that the firmeware included
|
|
||||||
upstream is buggy.
|
|
||||||
|
|
||||||
As it is generally not a good idea to randomly overwrite files, let
|
|
||||||
alone doing so via packages, we add module parameters to override those
|
|
||||||
file names in the driver. This allows us to package/deploy the override
|
|
||||||
via a modprobe.d config.
|
|
||||||
|
|
||||||
Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Patchset: ath10k
|
|
||||||
---
|
|
||||||
drivers/net/wireless/ath/ath10k/core.c | 58 ++++++++++++++++++++++++++
|
|
||||||
1 file changed, 58 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
|
|
||||||
index 6cdb225b7eacc..19c036751fb16 100644
|
|
||||||
--- a/drivers/net/wireless/ath/ath10k/core.c
|
|
||||||
+++ b/drivers/net/wireless/ath/ath10k/core.c
|
|
||||||
@@ -38,6 +38,9 @@ static bool fw_diag_log;
|
|
||||||
/* frame mode values are mapped as per enum ath10k_hw_txrx_mode */
|
|
||||||
unsigned int ath10k_frame_mode = ATH10K_HW_TXRX_NATIVE_WIFI;
|
|
||||||
|
|
||||||
+static char *override_board = "";
|
|
||||||
+static char *override_board2 = "";
|
|
||||||
+
|
|
||||||
unsigned long ath10k_coredump_mask = BIT(ATH10K_FW_CRASH_DUMP_REGISTERS) |
|
|
||||||
BIT(ATH10K_FW_CRASH_DUMP_CE_DATA);
|
|
||||||
|
|
||||||
@@ -50,6 +53,9 @@ module_param(fw_diag_log, bool, 0644);
|
|
||||||
module_param_named(frame_mode, ath10k_frame_mode, uint, 0644);
|
|
||||||
module_param_named(coredump_mask, ath10k_coredump_mask, ulong, 0444);
|
|
||||||
|
|
||||||
+module_param(override_board, charp, 0644);
|
|
||||||
+module_param(override_board2, charp, 0644);
|
|
||||||
+
|
|
||||||
MODULE_PARM_DESC(debug_mask, "Debugging mask");
|
|
||||||
MODULE_PARM_DESC(uart_print, "Uart target debugging");
|
|
||||||
MODULE_PARM_DESC(skip_otp, "Skip otp failure for calibration in testmode");
|
|
||||||
@@ -59,6 +65,9 @@ MODULE_PARM_DESC(frame_mode,
|
|
||||||
MODULE_PARM_DESC(coredump_mask, "Bitfield of what to include in firmware crash file");
|
|
||||||
MODULE_PARM_DESC(fw_diag_log, "Diag based fw log debugging");
|
|
||||||
|
|
||||||
+MODULE_PARM_DESC(override_board, "Override for board.bin file");
|
|
||||||
+MODULE_PARM_DESC(override_board2, "Override for board-2.bin file");
|
|
||||||
+
|
|
||||||
static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
|
||||||
{
|
|
||||||
.id = QCA988X_HW_2_0_VERSION,
|
|
||||||
@@ -911,6 +920,42 @@ static int ath10k_init_configure_target(struct ath10k *ar)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static const char *ath10k_override_board_fw_file(struct ath10k *ar,
|
|
||||||
+ const char *file)
|
|
||||||
+{
|
|
||||||
+ if (strcmp(file, "board.bin") == 0) {
|
|
||||||
+ if (strcmp(override_board, "") == 0)
|
|
||||||
+ return file;
|
|
||||||
+
|
|
||||||
+ if (strcmp(override_board, "none") == 0) {
|
|
||||||
+ dev_info(ar->dev, "firmware override: pretending 'board.bin' does not exist\n");
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ dev_info(ar->dev, "firmware override: replacing 'board.bin' with '%s'\n",
|
|
||||||
+ override_board);
|
|
||||||
+
|
|
||||||
+ return override_board;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (strcmp(file, "board-2.bin") == 0) {
|
|
||||||
+ if (strcmp(override_board2, "") == 0)
|
|
||||||
+ return file;
|
|
||||||
+
|
|
||||||
+ if (strcmp(override_board2, "none") == 0) {
|
|
||||||
+ dev_info(ar->dev, "firmware override: pretending 'board-2.bin' does not exist\n");
|
|
||||||
+ return NULL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ dev_info(ar->dev, "firmware override: replacing 'board-2.bin' with '%s'\n",
|
|
||||||
+ override_board2);
|
|
||||||
+
|
|
||||||
+ return override_board2;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return file;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static const struct firmware *ath10k_fetch_fw_file(struct ath10k *ar,
|
|
||||||
const char *dir,
|
|
||||||
const char *file)
|
|
||||||
@@ -925,6 +970,19 @@ static const struct firmware *ath10k_fetch_fw_file(struct ath10k *ar,
|
|
||||||
if (dir == NULL)
|
|
||||||
dir = ".";
|
|
||||||
|
|
||||||
+ /* HACK: Override board.bin and board-2.bin files if specified.
|
|
||||||
+ *
|
|
||||||
+ * Some Surface devices perform better with a different board
|
|
||||||
+ * configuration. To this end, one would need to replace the board.bin
|
|
||||||
+ * file with the modified config and remove the board-2.bin file.
|
|
||||||
+ * Unfortunately, that's not a solution that we can easily package. So
|
|
||||||
+ * we add module options to perform these overrides here.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+ file = ath10k_override_board_fw_file(ar, file);
|
|
||||||
+ if (!file)
|
|
||||||
+ return ERR_PTR(-ENOENT);
|
|
||||||
+
|
|
||||||
snprintf(filename, sizeof(filename), "%s/%s", dir, file);
|
|
||||||
ret = firmware_request_nowarn(&fw, filename, ar->dev);
|
|
||||||
ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot fw request '%s': %d\n",
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,335 +0,0 @@
|
||||||
From 93304c49c78e9088b13bf6af9d5f52676930c0bb Mon Sep 17 00:00:00 2001
|
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Date: Sat, 25 Jul 2020 17:19:53 +0200
|
|
||||||
Subject: [PATCH] i2c: acpi: Implement RawBytes read access
|
|
||||||
|
|
||||||
Microsoft Surface Pro 4 and Book 1 devices access the MSHW0030 I2C
|
|
||||||
device via a generic serial bus operation region and RawBytes read
|
|
||||||
access. On the Surface Book 1, this access is required to turn on (and
|
|
||||||
off) the discrete GPU.
|
|
||||||
|
|
||||||
Multiple things are to note here:
|
|
||||||
|
|
||||||
a) The RawBytes access is device/driver dependent. The ACPI
|
|
||||||
specification states:
|
|
||||||
|
|
||||||
> Raw accesses assume that the writer has knowledge of the bus that
|
|
||||||
> the access is made over and the device that is being accessed. The
|
|
||||||
> protocol may only ensure that the buffer is transmitted to the
|
|
||||||
> appropriate driver, but the driver must be able to interpret the
|
|
||||||
> buffer to communicate to a register.
|
|
||||||
|
|
||||||
Thus this implementation may likely not work on other devices
|
|
||||||
accessing I2C via the RawBytes accessor type.
|
|
||||||
|
|
||||||
b) The MSHW0030 I2C device is an HID-over-I2C device which seems to
|
|
||||||
serve multiple functions:
|
|
||||||
|
|
||||||
1. It is the main access point for the legacy-type Surface Aggregator
|
|
||||||
Module (also referred to as SAM-over-HID, as opposed to the newer
|
|
||||||
SAM-over-SSH/UART). It has currently not been determined on how
|
|
||||||
support for the legacy SAM should be implemented. Likely via a
|
|
||||||
custom HID driver.
|
|
||||||
|
|
||||||
2. It seems to serve as the HID device for the Integrated Sensor Hub.
|
|
||||||
This might complicate matters with regards to implementing a
|
|
||||||
SAM-over-HID driver required by legacy SAM.
|
|
||||||
|
|
||||||
In light of this, the simplest approach has been chosen for now.
|
|
||||||
However, it may make more sense regarding breakage and compatibility to
|
|
||||||
either provide functionality for replacing or enhancing the default
|
|
||||||
operation region handler via some additional API functions, or even to
|
|
||||||
completely blacklist MSHW0030 from the I2C core and provide a custom
|
|
||||||
driver for it.
|
|
||||||
|
|
||||||
Replacing/enhancing the default operation region handler would, however,
|
|
||||||
either require some sort of secondary driver and access point for it,
|
|
||||||
from which the new API functions would be called and the new handler
|
|
||||||
(part) would be installed, or hard-coding them via some sort of
|
|
||||||
quirk-like interface into the I2C core.
|
|
||||||
|
|
||||||
Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Patchset: surface-sam-over-hid
|
|
||||||
---
|
|
||||||
drivers/i2c/i2c-core-acpi.c | 35 +++++++++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 35 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
|
|
||||||
index 4dd777cc0c89f..b2338618163ad 100644
|
|
||||||
--- a/drivers/i2c/i2c-core-acpi.c
|
|
||||||
+++ b/drivers/i2c/i2c-core-acpi.c
|
|
||||||
@@ -639,6 +639,28 @@ static int acpi_gsb_i2c_write_bytes(struct i2c_client *client,
|
|
||||||
return (ret == 1) ? 0 : -EIO;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static int acpi_gsb_i2c_write_raw_bytes(struct i2c_client *client,
|
|
||||||
+ u8 *data, u8 data_len)
|
|
||||||
+{
|
|
||||||
+ struct i2c_msg msgs[1];
|
|
||||||
+ int ret = AE_OK;
|
|
||||||
+
|
|
||||||
+ msgs[0].addr = client->addr;
|
|
||||||
+ msgs[0].flags = client->flags;
|
|
||||||
+ msgs[0].len = data_len + 1;
|
|
||||||
+ msgs[0].buf = data;
|
|
||||||
+
|
|
||||||
+ ret = i2c_transfer(client->adapter, msgs, ARRAY_SIZE(msgs));
|
|
||||||
+
|
|
||||||
+ if (ret < 0) {
|
|
||||||
+ dev_err(&client->adapter->dev, "i2c write failed: %d\n", ret);
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* 1 transfer must have completed successfully */
|
|
||||||
+ return (ret == 1) ? 0 : -EIO;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static acpi_status
|
|
||||||
i2c_acpi_space_handler(u32 function, acpi_physical_address command,
|
|
||||||
u32 bits, u64 *value64,
|
|
||||||
@@ -740,6 +762,19 @@ i2c_acpi_space_handler(u32 function, acpi_physical_address command,
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
+ case ACPI_GSB_ACCESS_ATTRIB_RAW_BYTES:
|
|
||||||
+ if (action == ACPI_READ) {
|
|
||||||
+ dev_warn(&adapter->dev,
|
|
||||||
+ "protocol 0x%02x not supported for client 0x%02x\n",
|
|
||||||
+ accessor_type, client->addr);
|
|
||||||
+ ret = AE_BAD_PARAMETER;
|
|
||||||
+ goto err;
|
|
||||||
+ } else {
|
|
||||||
+ status = acpi_gsb_i2c_write_raw_bytes(client,
|
|
||||||
+ gsb->data, info->access_length);
|
|
||||||
+ }
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
default:
|
|
||||||
dev_warn(&adapter->dev, "protocol 0x%02x not supported for client 0x%02x\n",
|
|
||||||
accessor_type, client->addr);
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
||||||
From dceded4d08d4f48e96d998d13135e0702bc84c0b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Date: Sat, 13 Feb 2021 16:41:18 +0100
|
|
||||||
Subject: [PATCH] platform/surface: Add driver for Surface Book 1 dGPU switch
|
|
||||||
|
|
||||||
Add driver exposing the discrete GPU power-switch of the Microsoft
|
|
||||||
Surface Book 1 to user-space.
|
|
||||||
|
|
||||||
On the Surface Book 1, the dGPU power is controlled via the Surface
|
|
||||||
System Aggregator Module (SAM). The specific SAM-over-HID command for
|
|
||||||
this is exposed via ACPI. This module provides a simple driver exposing
|
|
||||||
the ACPI call via a sysfs parameter to user-space, so that users can
|
|
||||||
easily power-on/-off the dGPU.
|
|
||||||
|
|
||||||
Patchset: surface-sam-over-hid
|
|
||||||
---
|
|
||||||
drivers/platform/surface/Kconfig | 7 +
|
|
||||||
drivers/platform/surface/Makefile | 1 +
|
|
||||||
.../surface/surfacebook1_dgpu_switch.c | 162 ++++++++++++++++++
|
|
||||||
3 files changed, 170 insertions(+)
|
|
||||||
create mode 100644 drivers/platform/surface/surfacebook1_dgpu_switch.c
|
|
||||||
|
|
||||||
diff --git a/drivers/platform/surface/Kconfig b/drivers/platform/surface/Kconfig
|
|
||||||
index b629e82af97c0..68656e8f309ed 100644
|
|
||||||
--- a/drivers/platform/surface/Kconfig
|
|
||||||
+++ b/drivers/platform/surface/Kconfig
|
|
||||||
@@ -149,6 +149,13 @@ config SURFACE_AGGREGATOR_TABLET_SWITCH
|
|
||||||
Select M or Y here, if you want to provide tablet-mode switch input
|
|
||||||
events on the Surface Pro 8, Surface Pro X, and Surface Laptop Studio.
|
|
||||||
|
|
||||||
+config SURFACE_BOOK1_DGPU_SWITCH
|
|
||||||
+ tristate "Surface Book 1 dGPU Switch Driver"
|
|
||||||
+ depends on SYSFS
|
|
||||||
+ help
|
|
||||||
+ This driver provides a sysfs switch to set the power-state of the
|
|
||||||
+ discrete GPU found on the Microsoft Surface Book 1.
|
|
||||||
+
|
|
||||||
config SURFACE_DTX
|
|
||||||
tristate "Surface DTX (Detachment System) Driver"
|
|
||||||
depends on SURFACE_AGGREGATOR
|
|
||||||
diff --git a/drivers/platform/surface/Makefile b/drivers/platform/surface/Makefile
|
|
||||||
index 53344330939bf..7efcd0cdb5329 100644
|
|
||||||
--- a/drivers/platform/surface/Makefile
|
|
||||||
+++ b/drivers/platform/surface/Makefile
|
|
||||||
@@ -12,6 +12,7 @@ obj-$(CONFIG_SURFACE_AGGREGATOR_CDEV) += surface_aggregator_cdev.o
|
|
||||||
obj-$(CONFIG_SURFACE_AGGREGATOR_HUB) += surface_aggregator_hub.o
|
|
||||||
obj-$(CONFIG_SURFACE_AGGREGATOR_REGISTRY) += surface_aggregator_registry.o
|
|
||||||
obj-$(CONFIG_SURFACE_AGGREGATOR_TABLET_SWITCH) += surface_aggregator_tabletsw.o
|
|
||||||
+obj-$(CONFIG_SURFACE_BOOK1_DGPU_SWITCH) += surfacebook1_dgpu_switch.o
|
|
||||||
obj-$(CONFIG_SURFACE_DTX) += surface_dtx.o
|
|
||||||
obj-$(CONFIG_SURFACE_GPE) += surface_gpe.o
|
|
||||||
obj-$(CONFIG_SURFACE_HOTPLUG) += surface_hotplug.o
|
|
||||||
diff --git a/drivers/platform/surface/surfacebook1_dgpu_switch.c b/drivers/platform/surface/surfacebook1_dgpu_switch.c
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000000..8b816ed8f35c6
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/drivers/platform/surface/surfacebook1_dgpu_switch.c
|
|
||||||
@@ -0,0 +1,162 @@
|
|
||||||
+// SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
+
|
|
||||||
+#include <linux/kernel.h>
|
|
||||||
+#include <linux/module.h>
|
|
||||||
+#include <linux/acpi.h>
|
|
||||||
+#include <linux/platform_device.h>
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#ifdef pr_fmt
|
|
||||||
+#undef pr_fmt
|
|
||||||
+#endif
|
|
||||||
+#define pr_fmt(fmt) "%s:%s: " fmt, KBUILD_MODNAME, __func__
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+static const guid_t dgpu_sw_guid = GUID_INIT(0x6fd05c69, 0xcde3, 0x49f4,
|
|
||||||
+ 0x95, 0xed, 0xab, 0x16, 0x65, 0x49, 0x80, 0x35);
|
|
||||||
+
|
|
||||||
+#define DGPUSW_ACPI_PATH_DSM "\\_SB_.PCI0.LPCB.EC0_.VGBI"
|
|
||||||
+#define DGPUSW_ACPI_PATH_HGON "\\_SB_.PCI0.RP05.HGON"
|
|
||||||
+#define DGPUSW_ACPI_PATH_HGOF "\\_SB_.PCI0.RP05.HGOF"
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+static int sb1_dgpu_sw_dsmcall(void)
|
|
||||||
+{
|
|
||||||
+ union acpi_object *ret;
|
|
||||||
+ acpi_handle handle;
|
|
||||||
+ acpi_status status;
|
|
||||||
+
|
|
||||||
+ status = acpi_get_handle(NULL, DGPUSW_ACPI_PATH_DSM, &handle);
|
|
||||||
+ if (status)
|
|
||||||
+ return -EINVAL;
|
|
||||||
+
|
|
||||||
+ ret = acpi_evaluate_dsm_typed(handle, &dgpu_sw_guid, 1, 1, NULL, ACPI_TYPE_BUFFER);
|
|
||||||
+ if (!ret)
|
|
||||||
+ return -EINVAL;
|
|
||||||
+
|
|
||||||
+ ACPI_FREE(ret);
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int sb1_dgpu_sw_hgon(void)
|
|
||||||
+{
|
|
||||||
+ struct acpi_buffer buf = {ACPI_ALLOCATE_BUFFER, NULL};
|
|
||||||
+ acpi_status status;
|
|
||||||
+
|
|
||||||
+ status = acpi_evaluate_object(NULL, DGPUSW_ACPI_PATH_HGON, NULL, &buf);
|
|
||||||
+ if (status) {
|
|
||||||
+ pr_err("failed to run HGON: %d\n", status);
|
|
||||||
+ return -EINVAL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (buf.pointer)
|
|
||||||
+ ACPI_FREE(buf.pointer);
|
|
||||||
+
|
|
||||||
+ pr_info("turned-on dGPU via HGON\n");
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int sb1_dgpu_sw_hgof(void)
|
|
||||||
+{
|
|
||||||
+ struct acpi_buffer buf = {ACPI_ALLOCATE_BUFFER, NULL};
|
|
||||||
+ acpi_status status;
|
|
||||||
+
|
|
||||||
+ status = acpi_evaluate_object(NULL, DGPUSW_ACPI_PATH_HGOF, NULL, &buf);
|
|
||||||
+ if (status) {
|
|
||||||
+ pr_err("failed to run HGOF: %d\n", status);
|
|
||||||
+ return -EINVAL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (buf.pointer)
|
|
||||||
+ ACPI_FREE(buf.pointer);
|
|
||||||
+
|
|
||||||
+ pr_info("turned-off dGPU via HGOF\n");
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+static ssize_t dgpu_dsmcall_store(struct device *dev, struct device_attribute *attr,
|
|
||||||
+ const char *buf, size_t len)
|
|
||||||
+{
|
|
||||||
+ int status, value;
|
|
||||||
+
|
|
||||||
+ status = kstrtoint(buf, 0, &value);
|
|
||||||
+ if (status < 0)
|
|
||||||
+ return status;
|
|
||||||
+
|
|
||||||
+ if (value != 1)
|
|
||||||
+ return -EINVAL;
|
|
||||||
+
|
|
||||||
+ status = sb1_dgpu_sw_dsmcall();
|
|
||||||
+
|
|
||||||
+ return status < 0 ? status : len;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static ssize_t dgpu_power_store(struct device *dev, struct device_attribute *attr,
|
|
||||||
+ const char *buf, size_t len)
|
|
||||||
+{
|
|
||||||
+ bool power;
|
|
||||||
+ int status;
|
|
||||||
+
|
|
||||||
+ status = kstrtobool(buf, &power);
|
|
||||||
+ if (status < 0)
|
|
||||||
+ return status;
|
|
||||||
+
|
|
||||||
+ if (power)
|
|
||||||
+ status = sb1_dgpu_sw_hgon();
|
|
||||||
+ else
|
|
||||||
+ status = sb1_dgpu_sw_hgof();
|
|
||||||
+
|
|
||||||
+ return status < 0 ? status : len;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static DEVICE_ATTR_WO(dgpu_dsmcall);
|
|
||||||
+static DEVICE_ATTR_WO(dgpu_power);
|
|
||||||
+
|
|
||||||
+static struct attribute *sb1_dgpu_sw_attrs[] = {
|
|
||||||
+ &dev_attr_dgpu_dsmcall.attr,
|
|
||||||
+ &dev_attr_dgpu_power.attr,
|
|
||||||
+ NULL,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static const struct attribute_group sb1_dgpu_sw_attr_group = {
|
|
||||||
+ .attrs = sb1_dgpu_sw_attrs,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+static int sb1_dgpu_sw_probe(struct platform_device *pdev)
|
|
||||||
+{
|
|
||||||
+ return sysfs_create_group(&pdev->dev.kobj, &sb1_dgpu_sw_attr_group);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int sb1_dgpu_sw_remove(struct platform_device *pdev)
|
|
||||||
+{
|
|
||||||
+ sysfs_remove_group(&pdev->dev.kobj, &sb1_dgpu_sw_attr_group);
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * The dGPU power seems to be actually handled by MSHW0040. However, that is
|
|
||||||
+ * also the power-/volume-button device with a mainline driver. So let's use
|
|
||||||
+ * MSHW0041 instead for now, which seems to be the LTCH (latch/DTX) device.
|
|
||||||
+ */
|
|
||||||
+static const struct acpi_device_id sb1_dgpu_sw_match[] = {
|
|
||||||
+ { "MSHW0041", },
|
|
||||||
+ { },
|
|
||||||
+};
|
|
||||||
+MODULE_DEVICE_TABLE(acpi, sb1_dgpu_sw_match);
|
|
||||||
+
|
|
||||||
+static struct platform_driver sb1_dgpu_sw = {
|
|
||||||
+ .probe = sb1_dgpu_sw_probe,
|
|
||||||
+ .remove = sb1_dgpu_sw_remove,
|
|
||||||
+ .driver = {
|
|
||||||
+ .name = "surfacebook1_dgpu_switch",
|
|
||||||
+ .acpi_match_table = sb1_dgpu_sw_match,
|
|
||||||
+ .probe_type = PROBE_PREFER_ASYNCHRONOUS,
|
|
||||||
+ },
|
|
||||||
+};
|
|
||||||
+module_platform_driver(sb1_dgpu_sw);
|
|
||||||
+
|
|
||||||
+MODULE_AUTHOR("Maximilian Luz <luzmaximilian@gmail.com>");
|
|
||||||
+MODULE_DESCRIPTION("Discrete GPU Power-Switch for Surface Book 1");
|
|
||||||
+MODULE_LICENSE("GPL");
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
|
@ -1,149 +0,0 @@
|
||||||
From 332992c3953274300ba7d88fd282454685e2c41f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sachi King <nakato@nakato.io>
|
|
||||||
Date: Tue, 5 Oct 2021 00:05:09 +1100
|
|
||||||
Subject: [PATCH] Input: soc_button_array - support AMD variant Surface devices
|
|
||||||
|
|
||||||
The power button on the AMD variant of the Surface Laptop uses the
|
|
||||||
same MSHW0040 device ID as the 5th and later generation of Surface
|
|
||||||
devices, however they report 0 for their OEM platform revision. As the
|
|
||||||
_DSM does not exist on the devices requiring special casing, check for
|
|
||||||
the existance of the _DSM to determine if soc_button_array should be
|
|
||||||
loaded.
|
|
||||||
|
|
||||||
Fixes: c394159310d0 ("Input: soc_button_array - add support for newer surface devices")
|
|
||||||
Co-developed-by: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
|
|
||||||
Signed-off-by: Sachi King <nakato@nakato.io>
|
|
||||||
Patchset: surface-button
|
|
||||||
---
|
|
||||||
drivers/input/misc/soc_button_array.c | 33 +++++++--------------------
|
|
||||||
1 file changed, 8 insertions(+), 25 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c
|
|
||||||
index 9116f4248fd09..eba53cb0139e3 100644
|
|
||||||
--- a/drivers/input/misc/soc_button_array.c
|
|
||||||
+++ b/drivers/input/misc/soc_button_array.c
|
|
||||||
@@ -542,8 +542,8 @@ static const struct soc_device_data soc_device_MSHW0028 = {
|
|
||||||
* Both, the Surface Pro 4 (surfacepro3_button.c) and the above mentioned
|
|
||||||
* devices use MSHW0040 for power and volume buttons, however the way they
|
|
||||||
* have to be addressed differs. Make sure that we only load this drivers
|
|
||||||
- * for the correct devices by checking the OEM Platform Revision provided by
|
|
||||||
- * the _DSM method.
|
|
||||||
+ * for the correct devices by checking if the OEM Platform Revision DSM call
|
|
||||||
+ * exists.
|
|
||||||
*/
|
|
||||||
#define MSHW0040_DSM_REVISION 0x01
|
|
||||||
#define MSHW0040_DSM_GET_OMPR 0x02 // get OEM Platform Revision
|
|
||||||
@@ -554,31 +554,14 @@ static const guid_t MSHW0040_DSM_UUID =
|
|
||||||
static int soc_device_check_MSHW0040(struct device *dev)
|
|
||||||
{
|
|
||||||
acpi_handle handle = ACPI_HANDLE(dev);
|
|
||||||
- union acpi_object *result;
|
|
||||||
- u64 oem_platform_rev = 0; // valid revisions are nonzero
|
|
||||||
-
|
|
||||||
- // get OEM platform revision
|
|
||||||
- result = acpi_evaluate_dsm_typed(handle, &MSHW0040_DSM_UUID,
|
|
||||||
- MSHW0040_DSM_REVISION,
|
|
||||||
- MSHW0040_DSM_GET_OMPR, NULL,
|
|
||||||
- ACPI_TYPE_INTEGER);
|
|
||||||
-
|
|
||||||
- if (result) {
|
|
||||||
- oem_platform_rev = result->integer.value;
|
|
||||||
- ACPI_FREE(result);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- /*
|
|
||||||
- * If the revision is zero here, the _DSM evaluation has failed. This
|
|
||||||
- * indicates that we have a Pro 4 or Book 1 and this driver should not
|
|
||||||
- * be used.
|
|
||||||
- */
|
|
||||||
- if (oem_platform_rev == 0)
|
|
||||||
- return -ENODEV;
|
|
||||||
+ bool exists;
|
|
||||||
|
|
||||||
- dev_dbg(dev, "OEM Platform Revision %llu\n", oem_platform_rev);
|
|
||||||
+ // check if OEM platform revision DSM call exists
|
|
||||||
+ exists = acpi_check_dsm(handle, &MSHW0040_DSM_UUID,
|
|
||||||
+ MSHW0040_DSM_REVISION,
|
|
||||||
+ BIT(MSHW0040_DSM_GET_OMPR));
|
|
||||||
|
|
||||||
- return 0;
|
|
||||||
+ return exists ? 0 : -ENODEV;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
||||||
From 7265155cf0b725b9b099f2ad717e47f47cb0a2de Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sachi King <nakato@nakato.io>
|
|
||||||
Date: Tue, 5 Oct 2021 00:22:57 +1100
|
|
||||||
Subject: [PATCH] platform/surface: surfacepro3_button: don't load on amd
|
|
||||||
variant
|
|
||||||
|
|
||||||
The AMD variant of the Surface Laptop report 0 for their OEM platform
|
|
||||||
revision. The Surface devices that require the surfacepro3_button
|
|
||||||
driver do not have the _DSM that gets the OEM platform revision. If the
|
|
||||||
method does not exist, load surfacepro3_button.
|
|
||||||
|
|
||||||
Fixes: 64dd243d7356 ("platform/x86: surfacepro3_button: Fix device check")
|
|
||||||
Co-developed-by: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
|
|
||||||
Signed-off-by: Sachi King <nakato@nakato.io>
|
|
||||||
Patchset: surface-button
|
|
||||||
---
|
|
||||||
drivers/platform/surface/surfacepro3_button.c | 30 ++++---------------
|
|
||||||
1 file changed, 6 insertions(+), 24 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/platform/surface/surfacepro3_button.c b/drivers/platform/surface/surfacepro3_button.c
|
|
||||||
index 242fb690dcaf7..30eea54dbb477 100644
|
|
||||||
--- a/drivers/platform/surface/surfacepro3_button.c
|
|
||||||
+++ b/drivers/platform/surface/surfacepro3_button.c
|
|
||||||
@@ -149,7 +149,8 @@ static int surface_button_resume(struct device *dev)
|
|
||||||
/*
|
|
||||||
* Surface Pro 4 and Surface Book 2 / Surface Pro 2017 use the same device
|
|
||||||
* ID (MSHW0040) for the power/volume buttons. Make sure this is the right
|
|
||||||
- * device by checking for the _DSM method and OEM Platform Revision.
|
|
||||||
+ * device by checking for the _DSM method and OEM Platform Revision DSM
|
|
||||||
+ * function.
|
|
||||||
*
|
|
||||||
* Returns true if the driver should bind to this device, i.e. the device is
|
|
||||||
* either MSWH0028 (Pro 3) or MSHW0040 on a Pro 4 or Book 1.
|
|
||||||
@@ -157,30 +158,11 @@ static int surface_button_resume(struct device *dev)
|
|
||||||
static bool surface_button_check_MSHW0040(struct acpi_device *dev)
|
|
||||||
{
|
|
||||||
acpi_handle handle = dev->handle;
|
|
||||||
- union acpi_object *result;
|
|
||||||
- u64 oem_platform_rev = 0; // valid revisions are nonzero
|
|
||||||
-
|
|
||||||
- // get OEM platform revision
|
|
||||||
- result = acpi_evaluate_dsm_typed(handle, &MSHW0040_DSM_UUID,
|
|
||||||
- MSHW0040_DSM_REVISION,
|
|
||||||
- MSHW0040_DSM_GET_OMPR,
|
|
||||||
- NULL, ACPI_TYPE_INTEGER);
|
|
||||||
-
|
|
||||||
- /*
|
|
||||||
- * If evaluating the _DSM fails, the method is not present. This means
|
|
||||||
- * that we have either MSHW0028 or MSHW0040 on Pro 4 or Book 1, so we
|
|
||||||
- * should use this driver. We use revision 0 indicating it is
|
|
||||||
- * unavailable.
|
|
||||||
- */
|
|
||||||
-
|
|
||||||
- if (result) {
|
|
||||||
- oem_platform_rev = result->integer.value;
|
|
||||||
- ACPI_FREE(result);
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- dev_dbg(&dev->dev, "OEM Platform Revision %llu\n", oem_platform_rev);
|
|
||||||
|
|
||||||
- return oem_platform_rev == 0;
|
|
||||||
+ // make sure that OEM platform revision DSM call does not exist
|
|
||||||
+ return !acpi_check_dsm(handle, &MSHW0040_DSM_UUID,
|
|
||||||
+ MSHW0040_DSM_REVISION,
|
|
||||||
+ BIT(MSHW0040_DSM_GET_OMPR));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
|
@ -1,574 +0,0 @@
|
||||||
From 4b411a238c6d341ad2aae63f870c69866014ee76 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Date: Sat, 18 Feb 2023 01:02:49 +0100
|
|
||||||
Subject: [PATCH] USB: quirks: Add USB_QUIRK_DELAY_INIT for Surface Go 3
|
|
||||||
Type-Cover
|
|
||||||
|
|
||||||
The touchpad on the Type-Cover of the Surface Go 3 is sometimes not
|
|
||||||
being initialized properly. Apply USB_QUIRK_DELAY_INIT to fix this
|
|
||||||
issue.
|
|
||||||
|
|
||||||
More specifically, the device in question is a fairly standard modern
|
|
||||||
touchpad with pointer and touchpad input modes. During setup, the device
|
|
||||||
needs to be switched from pointer- to touchpad-mode (which is done in
|
|
||||||
hid-multitouch) to fully utilize it as intended. Unfortunately, however,
|
|
||||||
this seems to occasionally fail silently, leaving the device in
|
|
||||||
pointer-mode. Applying USB_QUIRK_DELAY_INIT seems to fix this.
|
|
||||||
|
|
||||||
Link: https://github.com/linux-surface/linux-surface/issues/1059
|
|
||||||
Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Patchset: surface-typecover
|
|
||||||
---
|
|
||||||
drivers/usb/core/quirks.c | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
|
|
||||||
index 15e9bd180a1d2..0d70461d01e16 100644
|
|
||||||
--- a/drivers/usb/core/quirks.c
|
|
||||||
+++ b/drivers/usb/core/quirks.c
|
|
||||||
@@ -220,6 +220,9 @@ static const struct usb_device_id usb_quirk_list[] = {
|
|
||||||
/* Microsoft Surface Dock Ethernet (RTL8153 GigE) */
|
|
||||||
{ USB_DEVICE(0x045e, 0x07c6), .driver_info = USB_QUIRK_NO_LPM },
|
|
||||||
|
|
||||||
+ /* Microsoft Surface Go 3 Type-Cover */
|
|
||||||
+ { USB_DEVICE(0x045e, 0x09b5), .driver_info = USB_QUIRK_DELAY_INIT },
|
|
||||||
+
|
|
||||||
/* Cherry Stream G230 2.0 (G85-231) and 3.0 (G85-232) */
|
|
||||||
{ USB_DEVICE(0x046a, 0x0023), .driver_info = USB_QUIRK_RESET_RESUME },
|
|
||||||
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
||||||
From 9a9c3f07226da0ba6adef5a651dbe376e101ed74 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
|
|
||||||
Date: Thu, 5 Nov 2020 13:09:45 +0100
|
|
||||||
Subject: [PATCH] hid/multitouch: Turn off Type Cover keyboard backlight when
|
|
||||||
suspending
|
|
||||||
|
|
||||||
The Type Cover for Microsoft Surface devices supports a special usb
|
|
||||||
control request to disable or enable the built-in keyboard backlight.
|
|
||||||
On Windows, this request happens when putting the device into suspend or
|
|
||||||
resuming it, without it the backlight of the Type Cover will remain
|
|
||||||
enabled for some time even though the computer is suspended, which looks
|
|
||||||
weird to the user.
|
|
||||||
|
|
||||||
So add support for this special usb control request to hid-multitouch,
|
|
||||||
which is the driver that's handling the Type Cover.
|
|
||||||
|
|
||||||
The reason we have to use a pm_notifier for this instead of the usual
|
|
||||||
suspend/resume methods is that those won't get called in case the usb
|
|
||||||
device is already autosuspended.
|
|
||||||
|
|
||||||
Also, if the device is autosuspended, we have to briefly autoresume it
|
|
||||||
in order to send the request. Doing that should be fine, the usb-core
|
|
||||||
driver does something similar during suspend inside choose_wakeup().
|
|
||||||
|
|
||||||
To make sure we don't send that request to every device but only to
|
|
||||||
devices which support it, add a new quirk
|
|
||||||
MT_CLS_WIN_8_MS_SURFACE_TYPE_COVER to hid-multitouch. For now this quirk
|
|
||||||
is only enabled for the usb id of the Surface Pro 2017 Type Cover, which
|
|
||||||
is where I confirmed that it's working.
|
|
||||||
|
|
||||||
Patchset: surface-typecover
|
|
||||||
---
|
|
||||||
drivers/hid/hid-multitouch.c | 100 ++++++++++++++++++++++++++++++++++-
|
|
||||||
1 file changed, 98 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
|
|
||||||
index 5ec1f174127a3..a7a12b56f79cb 100644
|
|
||||||
--- a/drivers/hid/hid-multitouch.c
|
|
||||||
+++ b/drivers/hid/hid-multitouch.c
|
|
||||||
@@ -34,7 +34,10 @@
|
|
||||||
#include <linux/device.h>
|
|
||||||
#include <linux/hid.h>
|
|
||||||
#include <linux/module.h>
|
|
||||||
+#include <linux/pm_runtime.h>
|
|
||||||
#include <linux/slab.h>
|
|
||||||
+#include <linux/suspend.h>
|
|
||||||
+#include <linux/usb.h>
|
|
||||||
#include <linux/input/mt.h>
|
|
||||||
#include <linux/jiffies.h>
|
|
||||||
#include <linux/string.h>
|
|
||||||
@@ -47,6 +50,7 @@ MODULE_DESCRIPTION("HID multitouch panels");
|
|
||||||
MODULE_LICENSE("GPL");
|
|
||||||
|
|
||||||
#include "hid-ids.h"
|
|
||||||
+#include "usbhid/usbhid.h"
|
|
||||||
|
|
||||||
/* quirks to control the device */
|
|
||||||
#define MT_QUIRK_NOT_SEEN_MEANS_UP BIT(0)
|
|
||||||
@@ -72,12 +76,15 @@ MODULE_LICENSE("GPL");
|
|
||||||
#define MT_QUIRK_FORCE_MULTI_INPUT BIT(20)
|
|
||||||
#define MT_QUIRK_DISABLE_WAKEUP BIT(21)
|
|
||||||
#define MT_QUIRK_ORIENTATION_INVERT BIT(22)
|
|
||||||
+#define MT_QUIRK_HAS_TYPE_COVER_BACKLIGHT BIT(23)
|
|
||||||
|
|
||||||
#define MT_INPUTMODE_TOUCHSCREEN 0x02
|
|
||||||
#define MT_INPUTMODE_TOUCHPAD 0x03
|
|
||||||
|
|
||||||
#define MT_BUTTONTYPE_CLICKPAD 0
|
|
||||||
|
|
||||||
+#define MS_TYPE_COVER_FEATURE_REPORT_USAGE 0xff050086
|
|
||||||
+
|
|
||||||
enum latency_mode {
|
|
||||||
HID_LATENCY_NORMAL = 0,
|
|
||||||
HID_LATENCY_HIGH = 1,
|
|
||||||
@@ -169,6 +176,8 @@ struct mt_device {
|
|
||||||
|
|
||||||
struct list_head applications;
|
|
||||||
struct list_head reports;
|
|
||||||
+
|
|
||||||
+ struct notifier_block pm_notifier;
|
|
||||||
};
|
|
||||||
|
|
||||||
static void mt_post_parse_default_settings(struct mt_device *td,
|
|
||||||
@@ -213,6 +222,7 @@ static void mt_post_parse(struct mt_device *td, struct mt_application *app);
|
|
||||||
#define MT_CLS_GOOGLE 0x0111
|
|
||||||
#define MT_CLS_RAZER_BLADE_STEALTH 0x0112
|
|
||||||
#define MT_CLS_SMART_TECH 0x0113
|
|
||||||
+#define MT_CLS_WIN_8_MS_SURFACE_TYPE_COVER 0x0114
|
|
||||||
|
|
||||||
#define MT_DEFAULT_MAXCONTACT 10
|
|
||||||
#define MT_MAX_MAXCONTACT 250
|
|
||||||
@@ -397,6 +407,16 @@ static const struct mt_class mt_classes[] = {
|
|
||||||
MT_QUIRK_CONTACT_CNT_ACCURATE |
|
|
||||||
MT_QUIRK_SEPARATE_APP_REPORT,
|
|
||||||
},
|
|
||||||
+ { .name = MT_CLS_WIN_8_MS_SURFACE_TYPE_COVER,
|
|
||||||
+ .quirks = MT_QUIRK_HAS_TYPE_COVER_BACKLIGHT |
|
|
||||||
+ MT_QUIRK_ALWAYS_VALID |
|
|
||||||
+ MT_QUIRK_IGNORE_DUPLICATES |
|
|
||||||
+ MT_QUIRK_HOVERING |
|
|
||||||
+ MT_QUIRK_CONTACT_CNT_ACCURATE |
|
|
||||||
+ MT_QUIRK_STICKY_FINGERS |
|
|
||||||
+ MT_QUIRK_WIN8_PTP_BUTTONS,
|
|
||||||
+ .export_all_inputs = true
|
|
||||||
+ },
|
|
||||||
{ }
|
|
||||||
};
|
|
||||||
|
|
||||||
@@ -1721,6 +1741,69 @@ static void mt_expired_timeout(struct timer_list *t)
|
|
||||||
clear_bit_unlock(MT_IO_FLAGS_RUNNING, &td->mt_io_flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
+static void get_type_cover_backlight_field(struct hid_device *hdev,
|
|
||||||
+ struct hid_field **field)
|
|
||||||
+{
|
|
||||||
+ struct hid_report_enum *rep_enum;
|
|
||||||
+ struct hid_report *rep;
|
|
||||||
+ struct hid_field *cur_field;
|
|
||||||
+ int i, j;
|
|
||||||
+
|
|
||||||
+ rep_enum = &hdev->report_enum[HID_FEATURE_REPORT];
|
|
||||||
+ list_for_each_entry(rep, &rep_enum->report_list, list) {
|
|
||||||
+ for (i = 0; i < rep->maxfield; i++) {
|
|
||||||
+ cur_field = rep->field[i];
|
|
||||||
+
|
|
||||||
+ for (j = 0; j < cur_field->maxusage; j++) {
|
|
||||||
+ if (cur_field->usage[j].hid
|
|
||||||
+ == MS_TYPE_COVER_FEATURE_REPORT_USAGE) {
|
|
||||||
+ *field = cur_field;
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void update_keyboard_backlight(struct hid_device *hdev, bool enabled)
|
|
||||||
+{
|
|
||||||
+ struct usb_device *udev = hid_to_usb_dev(hdev);
|
|
||||||
+ struct hid_field *field = NULL;
|
|
||||||
+
|
|
||||||
+ /* Wake up the device in case it's already suspended */
|
|
||||||
+ pm_runtime_get_sync(&udev->dev);
|
|
||||||
+
|
|
||||||
+ get_type_cover_backlight_field(hdev, &field);
|
|
||||||
+ if (!field) {
|
|
||||||
+ hid_err(hdev, "couldn't find backlight field\n");
|
|
||||||
+ goto out;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ field->value[field->index] = enabled ? 0x01ff00ff : 0x00ff00ff;
|
|
||||||
+ hid_hw_request(hdev, field->report, HID_REQ_SET_REPORT);
|
|
||||||
+
|
|
||||||
+out:
|
|
||||||
+ pm_runtime_put_sync(&udev->dev);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int mt_pm_notifier(struct notifier_block *notifier,
|
|
||||||
+ unsigned long pm_event,
|
|
||||||
+ void *unused)
|
|
||||||
+{
|
|
||||||
+ struct mt_device *td =
|
|
||||||
+ container_of(notifier, struct mt_device, pm_notifier);
|
|
||||||
+ struct hid_device *hdev = td->hdev;
|
|
||||||
+
|
|
||||||
+ if (td->mtclass.quirks & MT_QUIRK_HAS_TYPE_COVER_BACKLIGHT) {
|
|
||||||
+ if (pm_event == PM_SUSPEND_PREPARE)
|
|
||||||
+ update_keyboard_backlight(hdev, 0);
|
|
||||||
+ else if (pm_event == PM_POST_SUSPEND)
|
|
||||||
+ update_keyboard_backlight(hdev, 1);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return NOTIFY_DONE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
|
||||||
{
|
|
||||||
int ret, i;
|
|
||||||
@@ -1744,6 +1827,9 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
|
||||||
td->inputmode_value = MT_INPUTMODE_TOUCHSCREEN;
|
|
||||||
hid_set_drvdata(hdev, td);
|
|
||||||
|
|
||||||
+ td->pm_notifier.notifier_call = mt_pm_notifier;
|
|
||||||
+ register_pm_notifier(&td->pm_notifier);
|
|
||||||
+
|
|
||||||
INIT_LIST_HEAD(&td->applications);
|
|
||||||
INIT_LIST_HEAD(&td->reports);
|
|
||||||
|
|
||||||
@@ -1782,15 +1868,19 @@ static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
|
||||||
timer_setup(&td->release_timer, mt_expired_timeout, 0);
|
|
||||||
|
|
||||||
ret = hid_parse(hdev);
|
|
||||||
- if (ret != 0)
|
|
||||||
+ if (ret != 0) {
|
|
||||||
+ unregister_pm_notifier(&td->pm_notifier);
|
|
||||||
return ret;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (mtclass->quirks & MT_QUIRK_FIX_CONST_CONTACT_ID)
|
|
||||||
mt_fix_const_fields(hdev, HID_DG_CONTACTID);
|
|
||||||
|
|
||||||
ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
|
|
||||||
- if (ret)
|
|
||||||
+ if (ret) {
|
|
||||||
+ unregister_pm_notifier(&td->pm_notifier);
|
|
||||||
return ret;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
ret = sysfs_create_group(&hdev->dev.kobj, &mt_attribute_group);
|
|
||||||
if (ret)
|
|
||||||
@@ -1842,6 +1932,7 @@ static void mt_remove(struct hid_device *hdev)
|
|
||||||
{
|
|
||||||
struct mt_device *td = hid_get_drvdata(hdev);
|
|
||||||
|
|
||||||
+ unregister_pm_notifier(&td->pm_notifier);
|
|
||||||
del_timer_sync(&td->release_timer);
|
|
||||||
|
|
||||||
sysfs_remove_group(&hdev->dev.kobj, &mt_attribute_group);
|
|
||||||
@@ -2228,6 +2319,11 @@ static const struct hid_device_id mt_devices[] = {
|
|
||||||
MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
|
|
||||||
USB_DEVICE_ID_XIROKU_CSR2) },
|
|
||||||
|
|
||||||
+ /* Microsoft Surface type cover */
|
|
||||||
+ { .driver_data = MT_CLS_WIN_8_MS_SURFACE_TYPE_COVER,
|
|
||||||
+ HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY,
|
|
||||||
+ USB_VENDOR_ID_MICROSOFT, 0x09c0) },
|
|
||||||
+
|
|
||||||
/* Google MT devices */
|
|
||||||
{ .driver_data = MT_CLS_GOOGLE,
|
|
||||||
HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, USB_VENDOR_ID_GOOGLE,
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
||||||
From a7b440ae4e327bd517c25f3942344ea6b9b94756 Mon Sep 17 00:00:00 2001
|
|
||||||
From: PJungkamp <p.jungkamp@gmail.com>
|
|
||||||
Date: Fri, 25 Feb 2022 12:04:25 +0100
|
|
||||||
Subject: [PATCH] hid/multitouch: Add support for surface pro type cover tablet
|
|
||||||
switch
|
|
||||||
|
|
||||||
The Surface Pro Type Cover has several non standard HID usages in it's
|
|
||||||
hid report descriptor.
|
|
||||||
I noticed that, upon folding the typecover back, a vendor specific range
|
|
||||||
of 4 32 bit integer hid usages is transmitted.
|
|
||||||
Only the first byte of the message seems to convey reliable information
|
|
||||||
about the keyboard state.
|
|
||||||
|
|
||||||
0x22 => Normal (keys enabled)
|
|
||||||
0x33 => Folded back (keys disabled)
|
|
||||||
0x53 => Rotated left/right side up (keys disabled)
|
|
||||||
0x13 => Cover closed (keys disabled)
|
|
||||||
0x43 => Folded back and Tablet upside down (keys disabled)
|
|
||||||
This list may not be exhaustive.
|
|
||||||
|
|
||||||
The tablet mode switch will be disabled for a value of 0x22 and enabled
|
|
||||||
on any other value.
|
|
||||||
|
|
||||||
Patchset: surface-typecover
|
|
||||||
---
|
|
||||||
drivers/hid/hid-multitouch.c | 148 +++++++++++++++++++++++++++++------
|
|
||||||
1 file changed, 122 insertions(+), 26 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
|
|
||||||
index a7a12b56f79cb..d4ac41f2f9a8a 100644
|
|
||||||
--- a/drivers/hid/hid-multitouch.c
|
|
||||||
+++ b/drivers/hid/hid-multitouch.c
|
|
||||||
@@ -77,6 +77,7 @@ MODULE_LICENSE("GPL");
|
|
||||||
#define MT_QUIRK_DISABLE_WAKEUP BIT(21)
|
|
||||||
#define MT_QUIRK_ORIENTATION_INVERT BIT(22)
|
|
||||||
#define MT_QUIRK_HAS_TYPE_COVER_BACKLIGHT BIT(23)
|
|
||||||
+#define MT_QUIRK_HAS_TYPE_COVER_TABLET_MODE_SWITCH BIT(24)
|
|
||||||
|
|
||||||
#define MT_INPUTMODE_TOUCHSCREEN 0x02
|
|
||||||
#define MT_INPUTMODE_TOUCHPAD 0x03
|
|
||||||
@@ -84,6 +85,8 @@ MODULE_LICENSE("GPL");
|
|
||||||
#define MT_BUTTONTYPE_CLICKPAD 0
|
|
||||||
|
|
||||||
#define MS_TYPE_COVER_FEATURE_REPORT_USAGE 0xff050086
|
|
||||||
+#define MS_TYPE_COVER_TABLET_MODE_SWITCH_USAGE 0xff050072
|
|
||||||
+#define MS_TYPE_COVER_APPLICATION 0xff050050
|
|
||||||
|
|
||||||
enum latency_mode {
|
|
||||||
HID_LATENCY_NORMAL = 0,
|
|
||||||
@@ -409,6 +412,7 @@ static const struct mt_class mt_classes[] = {
|
|
||||||
},
|
|
||||||
{ .name = MT_CLS_WIN_8_MS_SURFACE_TYPE_COVER,
|
|
||||||
.quirks = MT_QUIRK_HAS_TYPE_COVER_BACKLIGHT |
|
|
||||||
+ MT_QUIRK_HAS_TYPE_COVER_TABLET_MODE_SWITCH |
|
|
||||||
MT_QUIRK_ALWAYS_VALID |
|
|
||||||
MT_QUIRK_IGNORE_DUPLICATES |
|
|
||||||
MT_QUIRK_HOVERING |
|
|
||||||
@@ -1390,6 +1394,9 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,
|
|
||||||
field->application != HID_CP_CONSUMER_CONTROL &&
|
|
||||||
field->application != HID_GD_WIRELESS_RADIO_CTLS &&
|
|
||||||
field->application != HID_GD_SYSTEM_MULTIAXIS &&
|
|
||||||
+ !(field->application == MS_TYPE_COVER_APPLICATION &&
|
|
||||||
+ application->quirks & MT_QUIRK_HAS_TYPE_COVER_TABLET_MODE_SWITCH &&
|
|
||||||
+ usage->hid == MS_TYPE_COVER_TABLET_MODE_SWITCH_USAGE) &&
|
|
||||||
!(field->application == HID_VD_ASUS_CUSTOM_MEDIA_KEYS &&
|
|
||||||
application->quirks & MT_QUIRK_ASUS_CUSTOM_UP))
|
|
||||||
return -1;
|
|
||||||
@@ -1417,6 +1424,21 @@ static int mt_input_mapping(struct hid_device *hdev, struct hid_input *hi,
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /*
|
|
||||||
+ * The Microsoft Surface Pro Typecover has a non-standard HID
|
|
||||||
+ * tablet mode switch on a vendor specific usage page with vendor
|
|
||||||
+ * specific usage.
|
|
||||||
+ */
|
|
||||||
+ if (field->application == MS_TYPE_COVER_APPLICATION &&
|
|
||||||
+ application->quirks & MT_QUIRK_HAS_TYPE_COVER_TABLET_MODE_SWITCH &&
|
|
||||||
+ usage->hid == MS_TYPE_COVER_TABLET_MODE_SWITCH_USAGE) {
|
|
||||||
+ usage->type = EV_SW;
|
|
||||||
+ usage->code = SW_TABLET_MODE;
|
|
||||||
+ *max = SW_MAX;
|
|
||||||
+ *bit = hi->input->swbit;
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (rdata->is_mt_collection)
|
|
||||||
return mt_touch_input_mapping(hdev, hi, field, usage, bit, max,
|
|
||||||
application);
|
|
||||||
@@ -1438,6 +1460,7 @@ static int mt_input_mapped(struct hid_device *hdev, struct hid_input *hi,
|
|
||||||
{
|
|
||||||
struct mt_device *td = hid_get_drvdata(hdev);
|
|
||||||
struct mt_report_data *rdata;
|
|
||||||
+ struct input_dev *input;
|
|
||||||
|
|
||||||
rdata = mt_find_report_data(td, field->report);
|
|
||||||
if (rdata && rdata->is_mt_collection) {
|
|
||||||
@@ -1445,6 +1468,19 @@ static int mt_input_mapped(struct hid_device *hdev, struct hid_input *hi,
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /*
|
|
||||||
+ * We own an input device which acts as a tablet mode switch for
|
|
||||||
+ * the Surface Pro Typecover.
|
|
||||||
+ */
|
|
||||||
+ if (field->application == MS_TYPE_COVER_APPLICATION &&
|
|
||||||
+ rdata->application->quirks & MT_QUIRK_HAS_TYPE_COVER_TABLET_MODE_SWITCH &&
|
|
||||||
+ usage->hid == MS_TYPE_COVER_TABLET_MODE_SWITCH_USAGE) {
|
|
||||||
+ input = hi->input;
|
|
||||||
+ input_set_capability(input, EV_SW, SW_TABLET_MODE);
|
|
||||||
+ input_report_switch(input, SW_TABLET_MODE, 0);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* let hid-core decide for the others */
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -1454,11 +1490,21 @@ static int mt_event(struct hid_device *hid, struct hid_field *field,
|
|
||||||
{
|
|
||||||
struct mt_device *td = hid_get_drvdata(hid);
|
|
||||||
struct mt_report_data *rdata;
|
|
||||||
+ struct input_dev *input;
|
|
||||||
|
|
||||||
rdata = mt_find_report_data(td, field->report);
|
|
||||||
if (rdata && rdata->is_mt_collection)
|
|
||||||
return mt_touch_event(hid, field, usage, value);
|
|
||||||
|
|
||||||
+ if (field->application == MS_TYPE_COVER_APPLICATION &&
|
|
||||||
+ rdata->application->quirks & MT_QUIRK_HAS_TYPE_COVER_TABLET_MODE_SWITCH &&
|
|
||||||
+ usage->hid == MS_TYPE_COVER_TABLET_MODE_SWITCH_USAGE) {
|
|
||||||
+ input = field->hidinput->input;
|
|
||||||
+ input_report_switch(input, SW_TABLET_MODE, (value & 0xFF) != 0x22);
|
|
||||||
+ input_sync(input);
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1611,6 +1657,42 @@ static void mt_post_parse(struct mt_device *td, struct mt_application *app)
|
|
||||||
app->quirks &= ~MT_QUIRK_CONTACT_CNT_ACCURATE;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static int get_type_cover_field(struct hid_report_enum *rep_enum,
|
|
||||||
+ struct hid_field **field, int usage)
|
|
||||||
+{
|
|
||||||
+ struct hid_report *rep;
|
|
||||||
+ struct hid_field *cur_field;
|
|
||||||
+ int i, j;
|
|
||||||
+
|
|
||||||
+ list_for_each_entry(rep, &rep_enum->report_list, list) {
|
|
||||||
+ for (i = 0; i < rep->maxfield; i++) {
|
|
||||||
+ cur_field = rep->field[i];
|
|
||||||
+ if (cur_field->application != MS_TYPE_COVER_APPLICATION)
|
|
||||||
+ continue;
|
|
||||||
+ for (j = 0; j < cur_field->maxusage; j++) {
|
|
||||||
+ if (cur_field->usage[j].hid == usage) {
|
|
||||||
+ *field = cur_field;
|
|
||||||
+ return true;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ return false;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void request_type_cover_tablet_mode_switch(struct hid_device *hdev)
|
|
||||||
+{
|
|
||||||
+ struct hid_field *field;
|
|
||||||
+
|
|
||||||
+ if (get_type_cover_field(&hdev->report_enum[HID_INPUT_REPORT],
|
|
||||||
+ &field,
|
|
||||||
+ MS_TYPE_COVER_TABLET_MODE_SWITCH_USAGE)) {
|
|
||||||
+ hid_hw_request(hdev, field->report, HID_REQ_GET_REPORT);
|
|
||||||
+ } else {
|
|
||||||
+ hid_err(hdev, "couldn't find tablet mode field\n");
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi)
|
|
||||||
{
|
|
||||||
struct mt_device *td = hid_get_drvdata(hdev);
|
|
||||||
@@ -1659,6 +1741,13 @@ static int mt_input_configured(struct hid_device *hdev, struct hid_input *hi)
|
|
||||||
/* force BTN_STYLUS to allow tablet matching in udev */
|
|
||||||
__set_bit(BTN_STYLUS, hi->input->keybit);
|
|
||||||
break;
|
|
||||||
+ case MS_TYPE_COVER_APPLICATION:
|
|
||||||
+ if (td->mtclass.quirks & MT_QUIRK_HAS_TYPE_COVER_TABLET_MODE_SWITCH) {
|
|
||||||
+ suffix = "Tablet Mode Switch";
|
|
||||||
+ request_type_cover_tablet_mode_switch(hdev);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ fallthrough;
|
|
||||||
default:
|
|
||||||
suffix = "UNKNOWN";
|
|
||||||
break;
|
|
||||||
@@ -1741,30 +1830,6 @@ static void mt_expired_timeout(struct timer_list *t)
|
|
||||||
clear_bit_unlock(MT_IO_FLAGS_RUNNING, &td->mt_io_flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
-static void get_type_cover_backlight_field(struct hid_device *hdev,
|
|
||||||
- struct hid_field **field)
|
|
||||||
-{
|
|
||||||
- struct hid_report_enum *rep_enum;
|
|
||||||
- struct hid_report *rep;
|
|
||||||
- struct hid_field *cur_field;
|
|
||||||
- int i, j;
|
|
||||||
-
|
|
||||||
- rep_enum = &hdev->report_enum[HID_FEATURE_REPORT];
|
|
||||||
- list_for_each_entry(rep, &rep_enum->report_list, list) {
|
|
||||||
- for (i = 0; i < rep->maxfield; i++) {
|
|
||||||
- cur_field = rep->field[i];
|
|
||||||
-
|
|
||||||
- for (j = 0; j < cur_field->maxusage; j++) {
|
|
||||||
- if (cur_field->usage[j].hid
|
|
||||||
- == MS_TYPE_COVER_FEATURE_REPORT_USAGE) {
|
|
||||||
- *field = cur_field;
|
|
||||||
- return;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
static void update_keyboard_backlight(struct hid_device *hdev, bool enabled)
|
|
||||||
{
|
|
||||||
struct usb_device *udev = hid_to_usb_dev(hdev);
|
|
||||||
@@ -1773,8 +1838,9 @@ static void update_keyboard_backlight(struct hid_device *hdev, bool enabled)
|
|
||||||
/* Wake up the device in case it's already suspended */
|
|
||||||
pm_runtime_get_sync(&udev->dev);
|
|
||||||
|
|
||||||
- get_type_cover_backlight_field(hdev, &field);
|
|
||||||
- if (!field) {
|
|
||||||
+ if (!get_type_cover_field(&hdev->report_enum[HID_FEATURE_REPORT],
|
|
||||||
+ &field,
|
|
||||||
+ MS_TYPE_COVER_FEATURE_REPORT_USAGE)) {
|
|
||||||
hid_err(hdev, "couldn't find backlight field\n");
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
@@ -1909,13 +1975,24 @@ static int mt_suspend(struct hid_device *hdev, pm_message_t state)
|
|
||||||
|
|
||||||
static int mt_reset_resume(struct hid_device *hdev)
|
|
||||||
{
|
|
||||||
+ struct mt_device *td = hid_get_drvdata(hdev);
|
|
||||||
+
|
|
||||||
mt_release_contacts(hdev);
|
|
||||||
mt_set_modes(hdev, HID_LATENCY_NORMAL, true, true);
|
|
||||||
+
|
|
||||||
+ /* Request an update on the typecover folding state on resume
|
|
||||||
+ * after reset.
|
|
||||||
+ */
|
|
||||||
+ if (td->mtclass.quirks & MT_QUIRK_HAS_TYPE_COVER_TABLET_MODE_SWITCH)
|
|
||||||
+ request_type_cover_tablet_mode_switch(hdev);
|
|
||||||
+
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int mt_resume(struct hid_device *hdev)
|
|
||||||
{
|
|
||||||
+ struct mt_device *td = hid_get_drvdata(hdev);
|
|
||||||
+
|
|
||||||
/* Some Elan legacy devices require SET_IDLE to be set on resume.
|
|
||||||
* It should be safe to send it to other devices too.
|
|
||||||
* Tested on 3M, Stantum, Cypress, Zytronic, eGalax, and Elan panels. */
|
|
||||||
@@ -1924,6 +2001,10 @@ static int mt_resume(struct hid_device *hdev)
|
|
||||||
|
|
||||||
mt_set_modes(hdev, HID_LATENCY_NORMAL, true, true);
|
|
||||||
|
|
||||||
+ /* Request an update on the typecover folding state on resume. */
|
|
||||||
+ if (td->mtclass.quirks & MT_QUIRK_HAS_TYPE_COVER_TABLET_MODE_SWITCH)
|
|
||||||
+ request_type_cover_tablet_mode_switch(hdev);
|
|
||||||
+
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -1931,6 +2012,21 @@ static int mt_resume(struct hid_device *hdev)
|
|
||||||
static void mt_remove(struct hid_device *hdev)
|
|
||||||
{
|
|
||||||
struct mt_device *td = hid_get_drvdata(hdev);
|
|
||||||
+ struct hid_field *field;
|
|
||||||
+ struct input_dev *input;
|
|
||||||
+
|
|
||||||
+ /* Reset tablet mode switch on disconnect. */
|
|
||||||
+ if (td->mtclass.quirks & MT_QUIRK_HAS_TYPE_COVER_TABLET_MODE_SWITCH) {
|
|
||||||
+ if (get_type_cover_field(&hdev->report_enum[HID_INPUT_REPORT],
|
|
||||||
+ &field,
|
|
||||||
+ MS_TYPE_COVER_TABLET_MODE_SWITCH_USAGE)) {
|
|
||||||
+ input = field->hidinput->input;
|
|
||||||
+ input_report_switch(input, SW_TABLET_MODE, 0);
|
|
||||||
+ input_sync(input);
|
|
||||||
+ } else {
|
|
||||||
+ hid_err(hdev, "couldn't find tablet mode field\n");
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
|
|
||||||
unregister_pm_notifier(&td->pm_notifier);
|
|
||||||
del_timer_sync(&td->release_timer);
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
|
@ -1,97 +0,0 @@
|
||||||
From 80034575cfd264ae974ad8e3dd310e0d05740f1c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Date: Sun, 19 Feb 2023 22:12:24 +0100
|
|
||||||
Subject: [PATCH] PCI: Add quirk to prevent calling shutdown mehtod
|
|
||||||
|
|
||||||
Work around buggy EFI firmware: On some Microsoft Surface devices
|
|
||||||
(Surface Pro 9 and Surface Laptop 5) the EFI ResetSystem call with
|
|
||||||
EFI_RESET_SHUTDOWN doesn't function properly. Instead of shutting the
|
|
||||||
system down, it returns and the system stays on.
|
|
||||||
|
|
||||||
It turns out that this only happens after PCI shutdown callbacks ran for
|
|
||||||
specific devices. Excluding those devices from the shutdown process
|
|
||||||
makes the ResetSystem call work as expected.
|
|
||||||
|
|
||||||
TODO: Maybe we can find a better way or the root cause of this?
|
|
||||||
|
|
||||||
Not-Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Patchset: surface-shutdown
|
|
||||||
---
|
|
||||||
drivers/pci/pci-driver.c | 3 +++
|
|
||||||
drivers/pci/quirks.c | 36 ++++++++++++++++++++++++++++++++++++
|
|
||||||
include/linux/pci.h | 1 +
|
|
||||||
3 files changed, 40 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
|
|
||||||
index f47a3b10bf504..9ea4352aac56c 100644
|
|
||||||
--- a/drivers/pci/pci-driver.c
|
|
||||||
+++ b/drivers/pci/pci-driver.c
|
|
||||||
@@ -507,6 +507,9 @@ static void pci_device_shutdown(struct device *dev)
|
|
||||||
struct pci_dev *pci_dev = to_pci_dev(dev);
|
|
||||||
struct pci_driver *drv = pci_dev->driver;
|
|
||||||
|
|
||||||
+ if (pci_dev->no_shutdown)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
pm_runtime_resume(dev);
|
|
||||||
|
|
||||||
if (drv && drv->shutdown)
|
|
||||||
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
|
|
||||||
index c132839d99dc8..d6df592f4ae1b 100644
|
|
||||||
--- a/drivers/pci/quirks.c
|
|
||||||
+++ b/drivers/pci/quirks.c
|
|
||||||
@@ -6070,3 +6070,39 @@ static void pci_fixup_d3cold_delay_1sec(struct pci_dev *pdev)
|
|
||||||
pdev->d3cold_delay = 1000;
|
|
||||||
}
|
|
||||||
DECLARE_PCI_FIXUP_FINAL(0x5555, 0x0004, pci_fixup_d3cold_delay_1sec);
|
|
||||||
+
|
|
||||||
+static const struct dmi_system_id no_shutdown_dmi_table[] = {
|
|
||||||
+ /*
|
|
||||||
+ * Systems on which some devices should not be touched during shutdown.
|
|
||||||
+ */
|
|
||||||
+ {
|
|
||||||
+ .ident = "Microsoft Surface Pro 9",
|
|
||||||
+ .matches = {
|
|
||||||
+ DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
|
|
||||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "Surface Pro 9"),
|
|
||||||
+ },
|
|
||||||
+ },
|
|
||||||
+ {
|
|
||||||
+ .ident = "Microsoft Surface Laptop 5",
|
|
||||||
+ .matches = {
|
|
||||||
+ DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
|
|
||||||
+ DMI_MATCH(DMI_PRODUCT_NAME, "Surface Laptop 5"),
|
|
||||||
+ },
|
|
||||||
+ },
|
|
||||||
+ {}
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static void quirk_no_shutdown(struct pci_dev *dev)
|
|
||||||
+{
|
|
||||||
+ if (!dmi_check_system(no_shutdown_dmi_table))
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ dev->no_shutdown = 1;
|
|
||||||
+ pci_info(dev, "disabling shutdown ops for [%04x:%04x]\n",
|
|
||||||
+ dev->vendor, dev->device);
|
|
||||||
+}
|
|
||||||
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x461e, quirk_no_shutdown); // Thunderbolt 4 USB Controller
|
|
||||||
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x461f, quirk_no_shutdown); // Thunderbolt 4 PCI Express Root Port
|
|
||||||
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x462f, quirk_no_shutdown); // Thunderbolt 4 PCI Express Root Port
|
|
||||||
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x466d, quirk_no_shutdown); // Thunderbolt 4 NHI
|
|
||||||
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x46a8, quirk_no_shutdown); // GPU
|
|
||||||
diff --git a/include/linux/pci.h b/include/linux/pci.h
|
|
||||||
index eccaf1abea79d..f3684d9a388a3 100644
|
|
||||||
--- a/include/linux/pci.h
|
|
||||||
+++ b/include/linux/pci.h
|
|
||||||
@@ -463,6 +463,7 @@ struct pci_dev {
|
|
||||||
unsigned int no_vf_scan:1; /* Don't scan for VFs after IOV enablement */
|
|
||||||
unsigned int no_command_memory:1; /* No PCI_COMMAND_MEMORY */
|
|
||||||
unsigned int rom_bar_overlap:1; /* ROM BAR disable broken */
|
|
||||||
+ unsigned int no_shutdown:1; /* Do not touch device on shutdown */
|
|
||||||
pci_dev_flags_t dev_flags;
|
|
||||||
atomic_t enable_cnt; /* pci_enable_device has been called */
|
|
||||||
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
|
@ -1,51 +0,0 @@
|
||||||
From f59dad5ffce256df11c56f4f0a6129e68c070e73 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Date: Sun, 12 Mar 2023 01:41:57 +0100
|
|
||||||
Subject: [PATCH] platform/surface: gpe: Add support for Surface Pro 9
|
|
||||||
|
|
||||||
Add the lid GPE used by the Surface Pro 9.
|
|
||||||
|
|
||||||
Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Patchset: surface-gpe
|
|
||||||
---
|
|
||||||
drivers/platform/surface/surface_gpe.c | 17 +++++++++++++++++
|
|
||||||
1 file changed, 17 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/platform/surface/surface_gpe.c b/drivers/platform/surface/surface_gpe.c
|
|
||||||
index c219b840d491a..69c4352e8406b 100644
|
|
||||||
--- a/drivers/platform/surface/surface_gpe.c
|
|
||||||
+++ b/drivers/platform/surface/surface_gpe.c
|
|
||||||
@@ -41,6 +41,11 @@ static const struct property_entry lid_device_props_l4F[] = {
|
|
||||||
{},
|
|
||||||
};
|
|
||||||
|
|
||||||
+static const struct property_entry lid_device_props_l52[] = {
|
|
||||||
+ PROPERTY_ENTRY_U32("gpe", 0x52),
|
|
||||||
+ {},
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
static const struct property_entry lid_device_props_l57[] = {
|
|
||||||
PROPERTY_ENTRY_U32("gpe", 0x57),
|
|
||||||
{},
|
|
||||||
@@ -107,6 +112,18 @@ static const struct dmi_system_id dmi_lid_device_table[] = {
|
|
||||||
},
|
|
||||||
.driver_data = (void *)lid_device_props_l4B,
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ /*
|
|
||||||
+ * We match for SKU here due to product name clash with the ARM
|
|
||||||
+ * version.
|
|
||||||
+ */
|
|
||||||
+ .ident = "Surface Pro 9",
|
|
||||||
+ .matches = {
|
|
||||||
+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
|
|
||||||
+ DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "Surface_Pro_9_2038"),
|
|
||||||
+ },
|
|
||||||
+ .driver_data = (void *)lid_device_props_l52,
|
|
||||||
+ },
|
|
||||||
{
|
|
||||||
.ident = "Surface Book 1",
|
|
||||||
.matches = {
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
|
@ -1,977 +0,0 @@
|
||||||
From 7ecc92829a8ef7d72bcbdd98206ba28604ea8812 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
Date: Sun, 10 Oct 2021 20:56:57 +0200
|
|
||||||
Subject: [PATCH] ACPI: delay enumeration of devices with a _DEP pointing to an
|
|
||||||
INT3472 device
|
|
||||||
|
|
||||||
The clk and regulator frameworks expect clk/regulator consumer-devices
|
|
||||||
to have info about the consumed clks/regulators described in the device's
|
|
||||||
fw_node.
|
|
||||||
|
|
||||||
To work around cases where this info is not present in the firmware tables,
|
|
||||||
which is often the case on x86/ACPI devices, both frameworks allow the
|
|
||||||
provider-driver to attach info about consumers to the clks/regulators
|
|
||||||
when registering these.
|
|
||||||
|
|
||||||
This causes problems with the probe ordering wrt drivers for consumers
|
|
||||||
of these clks/regulators. Since the lookups are only registered when the
|
|
||||||
provider-driver binds, trying to get these clks/regulators before then
|
|
||||||
results in a -ENOENT error for clks and a dummy regulator for regulators.
|
|
||||||
|
|
||||||
One case where we hit this issue is camera sensors such as e.g. the OV8865
|
|
||||||
sensor found on the Microsoft Surface Go. The sensor uses clks, regulators
|
|
||||||
and GPIOs provided by a TPS68470 PMIC which is described in an INT3472
|
|
||||||
ACPI device. There is special platform code handling this and setting
|
|
||||||
platform_data with the necessary consumer info on the MFD cells
|
|
||||||
instantiated for the PMIC under: drivers/platform/x86/intel/int3472.
|
|
||||||
|
|
||||||
For this to work properly the ov8865 driver must not bind to the I2C-client
|
|
||||||
for the OV8865 sensor until after the TPS68470 PMIC gpio, regulator and
|
|
||||||
clk MFD cells have all been fully setup.
|
|
||||||
|
|
||||||
The OV8865 on the Microsoft Surface Go is just one example, all X86
|
|
||||||
devices using the Intel IPU3 camera block found on recent Intel SoCs
|
|
||||||
have similar issues where there is an INT3472 HID ACPI-device, which
|
|
||||||
describes the clks and regulators, and the driver for this INT3472 device
|
|
||||||
must be fully initialized before the sensor driver (any sensor driver)
|
|
||||||
binds for things to work properly.
|
|
||||||
|
|
||||||
On these devices the ACPI nodes describing the sensors all have a _DEP
|
|
||||||
dependency on the matching INT3472 ACPI device (there is one per sensor).
|
|
||||||
|
|
||||||
This allows solving the probe-ordering problem by delaying the enumeration
|
|
||||||
(instantiation of the I2C-client in the ov8865 example) of ACPI-devices
|
|
||||||
which have a _DEP dependency on an INT3472 device.
|
|
||||||
|
|
||||||
The new acpi_dev_ready_for_enumeration() helper used for this is also
|
|
||||||
exported because for devices, which have the enumeration_by_parent flag
|
|
||||||
set, the parent-driver will do its own scan of child ACPI devices and
|
|
||||||
it will try to enumerate those during its probe(). Code doing this such
|
|
||||||
as e.g. the i2c-core-acpi.c code must call this new helper to ensure
|
|
||||||
that it too delays the enumeration until all the _DEP dependencies are
|
|
||||||
met on devices which have the new honor_deps flag set.
|
|
||||||
|
|
||||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
|
||||||
Patchset: cameras
|
|
||||||
---
|
|
||||||
drivers/acpi/scan.c | 3 +++
|
|
||||||
1 file changed, 3 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
|
|
||||||
index 94154a849a3ea..f7e57d1a72a0b 100644
|
|
||||||
--- a/drivers/acpi/scan.c
|
|
||||||
+++ b/drivers/acpi/scan.c
|
|
||||||
@@ -2112,6 +2112,9 @@ static acpi_status acpi_bus_check_add_2(acpi_handle handle, u32 lvl_not_used,
|
|
||||||
|
|
||||||
static void acpi_default_enumeration(struct acpi_device *device)
|
|
||||||
{
|
|
||||||
+ if (!acpi_dev_ready_for_enumeration(device))
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* Do not enumerate devices with enumeration_by_parent flag set as
|
|
||||||
* they will be enumerated by their respective parents.
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
||||||
From fd84aad54e69b35cb8fd04b2c51ca5a74925d1fe Mon Sep 17 00:00:00 2001
|
|
||||||
From: zouxiaoh <xiaohong.zou@intel.com>
|
|
||||||
Date: Fri, 25 Jun 2021 08:52:59 +0800
|
|
||||||
Subject: [PATCH] iommu: intel-ipu: use IOMMU passthrough mode for Intel IPUs
|
|
||||||
|
|
||||||
Intel IPU(Image Processing Unit) has its own (IO)MMU hardware,
|
|
||||||
The IPU driver allocates its own page table that is not mapped
|
|
||||||
via the DMA, and thus the Intel IOMMU driver blocks access giving
|
|
||||||
this error: DMAR: DRHD: handling fault status reg 3 DMAR:
|
|
||||||
[DMA Read] Request device [00:05.0] PASID ffffffff
|
|
||||||
fault addr 76406000 [fault reason 06] PTE Read access is not set
|
|
||||||
As IPU is not an external facing device which is not risky, so use
|
|
||||||
IOMMU passthrough mode for Intel IPUs.
|
|
||||||
|
|
||||||
Change-Id: I6dcccdadac308cf42e20a18e1b593381391e3e6b
|
|
||||||
Depends-On: Iacd67578e8c6a9b9ac73285f52b4081b72fb68a6
|
|
||||||
Tracked-On: #JIITL8-411
|
|
||||||
Signed-off-by: Bingbu Cao <bingbu.cao@intel.com>
|
|
||||||
Signed-off-by: zouxiaoh <xiaohong.zou@intel.com>
|
|
||||||
Signed-off-by: Xu Chongyang <chongyang.xu@intel.com>
|
|
||||||
Patchset: cameras
|
|
||||||
---
|
|
||||||
drivers/iommu/intel/iommu.c | 30 ++++++++++++++++++++++++++++++
|
|
||||||
1 file changed, 30 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
|
|
||||||
index 694feb396f77c..9433f235558a6 100644
|
|
||||||
--- a/drivers/iommu/intel/iommu.c
|
|
||||||
+++ b/drivers/iommu/intel/iommu.c
|
|
||||||
@@ -37,6 +37,12 @@
|
|
||||||
#define IS_GFX_DEVICE(pdev) ((pdev->class >> 16) == PCI_BASE_CLASS_DISPLAY)
|
|
||||||
#define IS_USB_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_SERIAL_USB)
|
|
||||||
#define IS_ISA_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_BRIDGE_ISA)
|
|
||||||
+#define IS_INTEL_IPU(pdev) ((pdev)->vendor == PCI_VENDOR_ID_INTEL && \
|
|
||||||
+ ((pdev)->device == 0x9a19 || \
|
|
||||||
+ (pdev)->device == 0x9a39 || \
|
|
||||||
+ (pdev)->device == 0x4e19 || \
|
|
||||||
+ (pdev)->device == 0x465d || \
|
|
||||||
+ (pdev)->device == 0x1919))
|
|
||||||
#define IS_IPTS(pdev) ((pdev)->vendor == PCI_VENDOR_ID_INTEL && \
|
|
||||||
((pdev)->device == 0x9d3e))
|
|
||||||
#define IS_AZALIA(pdev) ((pdev)->vendor == 0x8086 && (pdev)->device == 0x3a3e)
|
|
||||||
@@ -289,12 +295,14 @@ EXPORT_SYMBOL_GPL(intel_iommu_enabled);
|
|
||||||
|
|
||||||
static int dmar_map_gfx = 1;
|
|
||||||
static int dmar_map_ipts = 1;
|
|
||||||
+static int dmar_map_ipu = 1;
|
|
||||||
static int intel_iommu_superpage = 1;
|
|
||||||
static int iommu_identity_mapping;
|
|
||||||
static int iommu_skip_te_disable;
|
|
||||||
|
|
||||||
#define IDENTMAP_GFX 2
|
|
||||||
#define IDENTMAP_AZALIA 4
|
|
||||||
+#define IDENTMAP_IPU 8
|
|
||||||
#define IDENTMAP_IPTS 16
|
|
||||||
|
|
||||||
const struct iommu_ops intel_iommu_ops;
|
|
||||||
@@ -2630,6 +2638,9 @@ static int device_def_domain_type(struct device *dev)
|
|
||||||
if ((iommu_identity_mapping & IDENTMAP_GFX) && IS_GFX_DEVICE(pdev))
|
|
||||||
return IOMMU_DOMAIN_IDENTITY;
|
|
||||||
|
|
||||||
+ if ((iommu_identity_mapping & IDENTMAP_IPU) && IS_INTEL_IPU(pdev))
|
|
||||||
+ return IOMMU_DOMAIN_IDENTITY;
|
|
||||||
+
|
|
||||||
if ((iommu_identity_mapping & IDENTMAP_IPTS) && IS_IPTS(pdev))
|
|
||||||
return IOMMU_DOMAIN_IDENTITY;
|
|
||||||
}
|
|
||||||
@@ -3021,6 +3032,9 @@ static int __init init_dmars(void)
|
|
||||||
if (!dmar_map_gfx)
|
|
||||||
iommu_identity_mapping |= IDENTMAP_GFX;
|
|
||||||
|
|
||||||
+ if (!dmar_map_ipu)
|
|
||||||
+ iommu_identity_mapping |= IDENTMAP_IPU;
|
|
||||||
+
|
|
||||||
if (!dmar_map_ipts)
|
|
||||||
iommu_identity_mapping |= IDENTMAP_IPTS;
|
|
||||||
|
|
||||||
@@ -4819,6 +4833,18 @@ static void quirk_iommu_igfx(struct pci_dev *dev)
|
|
||||||
dmar_map_gfx = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static void quirk_iommu_ipu(struct pci_dev *dev)
|
|
||||||
+{
|
|
||||||
+ if (!IS_INTEL_IPU(dev))
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ if (risky_device(dev))
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ pci_info(dev, "Passthrough IOMMU for integrated Intel IPU\n");
|
|
||||||
+ dmar_map_ipu = 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static void quirk_iommu_ipts(struct pci_dev *dev)
|
|
||||||
{
|
|
||||||
if (!IS_IPTS(dev))
|
|
||||||
@@ -4830,6 +4856,7 @@ static void quirk_iommu_ipts(struct pci_dev *dev)
|
|
||||||
pci_info(dev, "Passthrough IOMMU for IPTS\n");
|
|
||||||
dmar_map_ipts = 0;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
/* G4x/GM45 integrated gfx dmar support is totally busted. */
|
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_igfx);
|
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e00, quirk_iommu_igfx);
|
|
||||||
@@ -4865,6 +4892,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1632, quirk_iommu_igfx);
|
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163A, quirk_iommu_igfx);
|
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163D, quirk_iommu_igfx);
|
|
||||||
|
|
||||||
+/* disable IPU dmar support */
|
|
||||||
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, quirk_iommu_ipu);
|
|
||||||
+
|
|
||||||
/* disable IPTS dmar support */
|
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9D3E, quirk_iommu_ipts);
|
|
||||||
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
||||||
From cca4eb146265a784e63927905e26b1e5f331ca9e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daniel Scally <djrscally@gmail.com>
|
|
||||||
Date: Sun, 10 Oct 2021 20:57:02 +0200
|
|
||||||
Subject: [PATCH] platform/x86: int3472: Enable I2c daisy chain
|
|
||||||
|
|
||||||
The TPS68470 PMIC has an I2C passthrough mode through which I2C traffic
|
|
||||||
can be forwarded to a device connected to the PMIC as though it were
|
|
||||||
connected directly to the system bus. Enable this mode when the chip
|
|
||||||
is initialised.
|
|
||||||
|
|
||||||
Signed-off-by: Daniel Scally <djrscally@gmail.com>
|
|
||||||
Patchset: cameras
|
|
||||||
---
|
|
||||||
drivers/platform/x86/intel/int3472/tps68470.c | 7 +++++++
|
|
||||||
1 file changed, 7 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platform/x86/intel/int3472/tps68470.c
|
|
||||||
index 5b8d1a9620a5d..6a0ff035cf209 100644
|
|
||||||
--- a/drivers/platform/x86/intel/int3472/tps68470.c
|
|
||||||
+++ b/drivers/platform/x86/intel/int3472/tps68470.c
|
|
||||||
@@ -46,6 +46,13 @@ static int tps68470_chip_init(struct device *dev, struct regmap *regmap)
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /* Enable I2C daisy chain */
|
|
||||||
+ ret = regmap_write(regmap, TPS68470_REG_S_I2C_CTL, 0x03);
|
|
||||||
+ if (ret) {
|
|
||||||
+ dev_err(dev, "Failed to enable i2c daisy chain\n");
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
dev_info(dev, "TPS68470 REVID: 0x%02x\n", version);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
||||||
From 716a93d4a35978478ede30d2fe53edb617cccecd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daniel Scally <djrscally@gmail.com>
|
|
||||||
Date: Thu, 28 Oct 2021 21:55:16 +0100
|
|
||||||
Subject: [PATCH] media: i2c: Add driver for DW9719 VCM
|
|
||||||
|
|
||||||
Add a driver for the DW9719 VCM. The driver creates a v4l2 subdevice
|
|
||||||
and registers a control to set the desired focus.
|
|
||||||
|
|
||||||
Signed-off-by: Daniel Scally <djrscally@gmail.com>
|
|
||||||
Patchset: cameras
|
|
||||||
---
|
|
||||||
MAINTAINERS | 7 +
|
|
||||||
drivers/media/i2c/Kconfig | 11 +
|
|
||||||
drivers/media/i2c/Makefile | 1 +
|
|
||||||
drivers/media/i2c/dw9719.c | 425 +++++++++++++++++++++++++++++++++++++
|
|
||||||
4 files changed, 444 insertions(+)
|
|
||||||
create mode 100644 drivers/media/i2c/dw9719.c
|
|
||||||
|
|
||||||
diff --git a/MAINTAINERS b/MAINTAINERS
|
|
||||||
index 9f7702a82842d..abaf95390a51d 100644
|
|
||||||
--- a/MAINTAINERS
|
|
||||||
+++ b/MAINTAINERS
|
|
||||||
@@ -6286,6 +6286,13 @@ T: git git://linuxtv.org/media_tree.git
|
|
||||||
F: Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.yaml
|
|
||||||
F: drivers/media/i2c/dw9714.c
|
|
||||||
|
|
||||||
+DONGWOON DW9719 LENS VOICE COIL DRIVER
|
|
||||||
+M: Daniel Scally <djrscally@gmail.com>
|
|
||||||
+L: linux-media@vger.kernel.org
|
|
||||||
+S: Maintained
|
|
||||||
+T: git git://linuxtv.org/media_tree.git
|
|
||||||
+F: drivers/media/i2c/dw9719.c
|
|
||||||
+
|
|
||||||
DONGWOON DW9768 LENS VOICE COIL DRIVER
|
|
||||||
M: Dongchun Zhu <dongchun.zhu@mediatek.com>
|
|
||||||
L: linux-media@vger.kernel.org
|
|
||||||
diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig
|
|
||||||
index a34afb5217ebc..fbaa2ce7fa3e6 100644
|
|
||||||
--- a/drivers/media/i2c/Kconfig
|
|
||||||
+++ b/drivers/media/i2c/Kconfig
|
|
||||||
@@ -828,6 +828,17 @@ config VIDEO_DW9714
|
|
||||||
capability. This is designed for linear control of
|
|
||||||
voice coil motors, controlled via I2C serial interface.
|
|
||||||
|
|
||||||
+config VIDEO_DW9719
|
|
||||||
+ tristate "DW9719 lens voice coil support"
|
|
||||||
+ depends on I2C && VIDEO_V4L2
|
|
||||||
+ select MEDIA_CONTROLLER
|
|
||||||
+ select VIDEO_V4L2_SUBDEV_API
|
|
||||||
+ select V4L2_ASYNC
|
|
||||||
+ help
|
|
||||||
+ This is a driver for the DW9719 camera lens voice coil.
|
|
||||||
+ This is designed for linear control of voice coil motors,
|
|
||||||
+ controlled via I2C serial interface.
|
|
||||||
+
|
|
||||||
config VIDEO_DW9768
|
|
||||||
tristate "DW9768 lens voice coil support"
|
|
||||||
depends on I2C && VIDEO_DEV
|
|
||||||
diff --git a/drivers/media/i2c/Makefile b/drivers/media/i2c/Makefile
|
|
||||||
index 0a2933103dd92..b82a07c763880 100644
|
|
||||||
--- a/drivers/media/i2c/Makefile
|
|
||||||
+++ b/drivers/media/i2c/Makefile
|
|
||||||
@@ -30,6 +30,7 @@ obj-$(CONFIG_VIDEO_CS5345) += cs5345.o
|
|
||||||
obj-$(CONFIG_VIDEO_CS53L32A) += cs53l32a.o
|
|
||||||
obj-$(CONFIG_VIDEO_CX25840) += cx25840/
|
|
||||||
obj-$(CONFIG_VIDEO_DW9714) += dw9714.o
|
|
||||||
+obj-$(CONFIG_VIDEO_DW9719) += dw9719.o
|
|
||||||
obj-$(CONFIG_VIDEO_DW9768) += dw9768.o
|
|
||||||
obj-$(CONFIG_VIDEO_DW9807_VCM) += dw9807-vcm.o
|
|
||||||
obj-$(CONFIG_VIDEO_ET8EK8) += et8ek8/
|
|
||||||
diff --git a/drivers/media/i2c/dw9719.c b/drivers/media/i2c/dw9719.c
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000000..180b04d2a6b3a
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/drivers/media/i2c/dw9719.c
|
|
||||||
@@ -0,0 +1,425 @@
|
|
||||||
+// SPDX-License-Identifier: GPL-2.0
|
|
||||||
+// Copyright (c) 2012 Intel Corporation
|
|
||||||
+
|
|
||||||
+/*
|
|
||||||
+ * Based on linux/modules/camera/drivers/media/i2c/imx/dw9719.c in this repo:
|
|
||||||
+ * https://github.com/ZenfoneArea/android_kernel_asus_zenfone5
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include <asm/unaligned.h>
|
|
||||||
+
|
|
||||||
+#include <linux/delay.h>
|
|
||||||
+#include <linux/i2c.h>
|
|
||||||
+#include <linux/pm_runtime.h>
|
|
||||||
+#include <linux/regulator/consumer.h>
|
|
||||||
+#include <linux/types.h>
|
|
||||||
+
|
|
||||||
+#include <media/v4l2-common.h>
|
|
||||||
+#include <media/v4l2-ctrls.h>
|
|
||||||
+#include <media/v4l2-subdev.h>
|
|
||||||
+
|
|
||||||
+#define DW9719_MAX_FOCUS_POS 1023
|
|
||||||
+#define DW9719_CTRL_STEPS 16
|
|
||||||
+#define DW9719_CTRL_DELAY_US 1000
|
|
||||||
+#define DELAY_MAX_PER_STEP_NS (1000000 * 1023)
|
|
||||||
+
|
|
||||||
+#define DW9719_INFO 0
|
|
||||||
+#define DW9719_ID 0xF1
|
|
||||||
+#define DW9719_CONTROL 2
|
|
||||||
+#define DW9719_VCM_CURRENT 3
|
|
||||||
+
|
|
||||||
+#define DW9719_MODE 6
|
|
||||||
+#define DW9719_VCM_FREQ 7
|
|
||||||
+
|
|
||||||
+#define DW9719_MODE_SAC3 0x40
|
|
||||||
+#define DW9719_DEFAULT_VCM_FREQ 0x60
|
|
||||||
+#define DW9719_ENABLE_RINGING 0x02
|
|
||||||
+
|
|
||||||
+#define NUM_REGULATORS 2
|
|
||||||
+
|
|
||||||
+#define to_dw9719_device(x) container_of(x, struct dw9719_device, sd)
|
|
||||||
+
|
|
||||||
+struct dw9719_device {
|
|
||||||
+ struct device *dev;
|
|
||||||
+ struct i2c_client *client;
|
|
||||||
+ struct regulator_bulk_data regulators[NUM_REGULATORS];
|
|
||||||
+ struct v4l2_subdev sd;
|
|
||||||
+
|
|
||||||
+ struct dw9719_v4l2_ctrls {
|
|
||||||
+ struct v4l2_ctrl_handler handler;
|
|
||||||
+ struct v4l2_ctrl *focus;
|
|
||||||
+ } ctrls;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static int dw9719_i2c_rd8(struct i2c_client *client, u8 reg, u8 *val)
|
|
||||||
+{
|
|
||||||
+ struct i2c_msg msg[2];
|
|
||||||
+ u8 buf[2] = { reg };
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ msg[0].addr = client->addr;
|
|
||||||
+ msg[0].flags = 0;
|
|
||||||
+ msg[0].len = 1;
|
|
||||||
+ msg[0].buf = buf;
|
|
||||||
+
|
|
||||||
+ msg[1].addr = client->addr;
|
|
||||||
+ msg[1].flags = I2C_M_RD;
|
|
||||||
+ msg[1].len = 1;
|
|
||||||
+ msg[1].buf = &buf[1];
|
|
||||||
+ *val = 0;
|
|
||||||
+
|
|
||||||
+ ret = i2c_transfer(client->adapter, msg, 2);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ *val = buf[1];
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int dw9719_i2c_wr8(struct i2c_client *client, u8 reg, u8 val)
|
|
||||||
+{
|
|
||||||
+ struct i2c_msg msg;
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ u8 buf[2] = { reg, val };
|
|
||||||
+
|
|
||||||
+ msg.addr = client->addr;
|
|
||||||
+ msg.flags = 0;
|
|
||||||
+ msg.len = sizeof(buf);
|
|
||||||
+ msg.buf = buf;
|
|
||||||
+
|
|
||||||
+ ret = i2c_transfer(client->adapter, &msg, 1);
|
|
||||||
+
|
|
||||||
+ return ret < 0 ? ret : 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int dw9719_i2c_wr16(struct i2c_client *client, u8 reg, u16 val)
|
|
||||||
+{
|
|
||||||
+ struct i2c_msg msg;
|
|
||||||
+ u8 buf[3] = { reg };
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ put_unaligned_be16(val, buf + 1);
|
|
||||||
+
|
|
||||||
+ msg.addr = client->addr;
|
|
||||||
+ msg.flags = 0;
|
|
||||||
+ msg.len = sizeof(buf);
|
|
||||||
+ msg.buf = buf;
|
|
||||||
+
|
|
||||||
+ ret = i2c_transfer(client->adapter, &msg, 1);
|
|
||||||
+
|
|
||||||
+ return ret < 0 ? ret : 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int dw9719_detect(struct dw9719_device *dw9719)
|
|
||||||
+{
|
|
||||||
+ int ret;
|
|
||||||
+ u8 val;
|
|
||||||
+
|
|
||||||
+ ret = dw9719_i2c_rd8(dw9719->client, DW9719_INFO, &val);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ if (val != DW9719_ID) {
|
|
||||||
+ dev_err(dw9719->dev, "Failed to detect correct id\n");
|
|
||||||
+ ret = -ENXIO;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int dw9719_power_down(struct dw9719_device *dw9719)
|
|
||||||
+{
|
|
||||||
+ return regulator_bulk_disable(NUM_REGULATORS, dw9719->regulators);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int dw9719_power_up(struct dw9719_device *dw9719)
|
|
||||||
+{
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ ret = regulator_bulk_enable(NUM_REGULATORS, dw9719->regulators);
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ /* Jiggle SCL pin to wake up device */
|
|
||||||
+ ret = dw9719_i2c_wr8(dw9719->client, DW9719_CONTROL, 1);
|
|
||||||
+
|
|
||||||
+ /* Need 100us to transit from SHUTDOWN to STANDBY*/
|
|
||||||
+ usleep_range(100, 1000);
|
|
||||||
+
|
|
||||||
+ ret = dw9719_i2c_wr8(dw9719->client, DW9719_CONTROL,
|
|
||||||
+ DW9719_ENABLE_RINGING);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ goto fail_powerdown;
|
|
||||||
+
|
|
||||||
+ ret = dw9719_i2c_wr8(dw9719->client, DW9719_MODE, DW9719_MODE_SAC3);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ goto fail_powerdown;
|
|
||||||
+
|
|
||||||
+ ret = dw9719_i2c_wr8(dw9719->client, DW9719_VCM_FREQ,
|
|
||||||
+ DW9719_DEFAULT_VCM_FREQ);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ goto fail_powerdown;
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+fail_powerdown:
|
|
||||||
+ dw9719_power_down(dw9719);
|
|
||||||
+ return ret;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int dw9719_t_focus_abs(struct dw9719_device *dw9719, s32 value)
|
|
||||||
+{
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ value = clamp(value, 0, DW9719_MAX_FOCUS_POS);
|
|
||||||
+ ret = dw9719_i2c_wr16(dw9719->client, DW9719_VCM_CURRENT, value);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int dw9719_set_ctrl(struct v4l2_ctrl *ctrl)
|
|
||||||
+{
|
|
||||||
+ struct dw9719_device *dw9719 = container_of(ctrl->handler,
|
|
||||||
+ struct dw9719_device,
|
|
||||||
+ ctrls.handler);
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ /* Only apply changes to the controls if the device is powered up */
|
|
||||||
+ if (!pm_runtime_get_if_in_use(dw9719->dev))
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ switch (ctrl->id) {
|
|
||||||
+ case V4L2_CID_FOCUS_ABSOLUTE:
|
|
||||||
+ ret = dw9719_t_focus_abs(dw9719, ctrl->val);
|
|
||||||
+ break;
|
|
||||||
+ default:
|
|
||||||
+ ret = -EINVAL;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ pm_runtime_put(dw9719->dev);
|
|
||||||
+
|
|
||||||
+ return ret;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static const struct v4l2_ctrl_ops dw9719_ctrl_ops = {
|
|
||||||
+ .s_ctrl = dw9719_set_ctrl,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static int __maybe_unused dw9719_suspend(struct device *dev)
|
|
||||||
+{
|
|
||||||
+ struct v4l2_subdev *sd = dev_get_drvdata(dev);
|
|
||||||
+ struct dw9719_device *dw9719 = to_dw9719_device(sd);
|
|
||||||
+ int ret;
|
|
||||||
+ int val;
|
|
||||||
+
|
|
||||||
+ for (val = dw9719->ctrls.focus->val; val >= 0;
|
|
||||||
+ val -= DW9719_CTRL_STEPS) {
|
|
||||||
+ ret = dw9719_t_focus_abs(dw9719, val);
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ usleep_range(DW9719_CTRL_DELAY_US, DW9719_CTRL_DELAY_US + 10);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return dw9719_power_down(dw9719);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int __maybe_unused dw9719_resume(struct device *dev)
|
|
||||||
+{
|
|
||||||
+ struct v4l2_subdev *sd = dev_get_drvdata(dev);
|
|
||||||
+ struct dw9719_device *dw9719 = to_dw9719_device(sd);
|
|
||||||
+ int current_focus = dw9719->ctrls.focus->val;
|
|
||||||
+ int ret;
|
|
||||||
+ int val;
|
|
||||||
+
|
|
||||||
+ ret = dw9719_power_up(dw9719);
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ for (val = current_focus % DW9719_CTRL_STEPS; val < current_focus;
|
|
||||||
+ val += DW9719_CTRL_STEPS) {
|
|
||||||
+ ret = dw9719_t_focus_abs(dw9719, val);
|
|
||||||
+ if (ret)
|
|
||||||
+ goto err_power_down;
|
|
||||||
+
|
|
||||||
+ usleep_range(DW9719_CTRL_DELAY_US, DW9719_CTRL_DELAY_US + 10);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+err_power_down:
|
|
||||||
+ dw9719_power_down(dw9719);
|
|
||||||
+ return ret;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int dw9719_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
|
|
||||||
+{
|
|
||||||
+ return pm_runtime_resume_and_get(sd->dev);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int dw9719_close(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
|
|
||||||
+{
|
|
||||||
+ pm_runtime_put(sd->dev);
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static const struct v4l2_subdev_internal_ops dw9719_internal_ops = {
|
|
||||||
+ .open = dw9719_open,
|
|
||||||
+ .close = dw9719_close,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static int dw9719_init_controls(struct dw9719_device *dw9719)
|
|
||||||
+{
|
|
||||||
+ const struct v4l2_ctrl_ops *ops = &dw9719_ctrl_ops;
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ ret = v4l2_ctrl_handler_init(&dw9719->ctrls.handler, 1);
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ dw9719->ctrls.focus = v4l2_ctrl_new_std(&dw9719->ctrls.handler, ops,
|
|
||||||
+ V4L2_CID_FOCUS_ABSOLUTE, 0,
|
|
||||||
+ DW9719_MAX_FOCUS_POS, 1, 0);
|
|
||||||
+
|
|
||||||
+ if (dw9719->ctrls.handler.error) {
|
|
||||||
+ dev_err(dw9719->dev, "Error initialising v4l2 ctrls\n");
|
|
||||||
+ ret = dw9719->ctrls.handler.error;
|
|
||||||
+ goto err_free_handler;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ dw9719->sd.ctrl_handler = &dw9719->ctrls.handler;
|
|
||||||
+
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+err_free_handler:
|
|
||||||
+ v4l2_ctrl_handler_free(&dw9719->ctrls.handler);
|
|
||||||
+ return ret;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static const struct v4l2_subdev_ops dw9719_ops = { };
|
|
||||||
+
|
|
||||||
+static int dw9719_probe(struct i2c_client *client)
|
|
||||||
+{
|
|
||||||
+ struct dw9719_device *dw9719;
|
|
||||||
+ int ret;
|
|
||||||
+
|
|
||||||
+ dw9719 = devm_kzalloc(&client->dev, sizeof(*dw9719), GFP_KERNEL);
|
|
||||||
+ if (!dw9719)
|
|
||||||
+ return -ENOMEM;
|
|
||||||
+
|
|
||||||
+ dw9719->client = client;
|
|
||||||
+ dw9719->dev = &client->dev;
|
|
||||||
+
|
|
||||||
+ dw9719->regulators[0].supply = "vdd";
|
|
||||||
+ /*
|
|
||||||
+ * The DW9719 has only the 1 VDD voltage input, but some PMICs such as
|
|
||||||
+ * the TPS68470 PMIC have I2C passthrough capability, to disconnect the
|
|
||||||
+ * sensor's I2C pins from the I2C bus when the sensors VSIO (Sensor-IO)
|
|
||||||
+ * is off, because some sensors then short these pins to ground;
|
|
||||||
+ * and the DW9719 might sit behind this passthrough, this it needs to
|
|
||||||
+ * enable VSIO as that will also enable the I2C passthrough.
|
|
||||||
+ */
|
|
||||||
+ dw9719->regulators[1].supply = "vsio";
|
|
||||||
+
|
|
||||||
+ ret = devm_regulator_bulk_get(&client->dev, NUM_REGULATORS,
|
|
||||||
+ dw9719->regulators);
|
|
||||||
+ if (ret)
|
|
||||||
+ return dev_err_probe(&client->dev, ret, "getting regulators\n");
|
|
||||||
+
|
|
||||||
+ v4l2_i2c_subdev_init(&dw9719->sd, client, &dw9719_ops);
|
|
||||||
+ dw9719->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE;
|
|
||||||
+ dw9719->sd.internal_ops = &dw9719_internal_ops;
|
|
||||||
+
|
|
||||||
+ ret = dw9719_init_controls(dw9719);
|
|
||||||
+ if (ret)
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+ ret = media_entity_pads_init(&dw9719->sd.entity, 0, NULL);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ goto err_free_ctrl_handler;
|
|
||||||
+
|
|
||||||
+ dw9719->sd.entity.function = MEDIA_ENT_F_LENS;
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * We need the driver to work in the event that pm runtime is disable in
|
|
||||||
+ * the kernel, so power up and verify the chip now. In the event that
|
|
||||||
+ * runtime pm is disabled this will leave the chip on, so that the lens
|
|
||||||
+ * will work.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+ ret = dw9719_power_up(dw9719);
|
|
||||||
+ if (ret)
|
|
||||||
+ goto err_cleanup_media;
|
|
||||||
+
|
|
||||||
+ ret = dw9719_detect(dw9719);
|
|
||||||
+ if (ret)
|
|
||||||
+ goto err_powerdown;
|
|
||||||
+
|
|
||||||
+ pm_runtime_set_active(&client->dev);
|
|
||||||
+ pm_runtime_get_noresume(&client->dev);
|
|
||||||
+ pm_runtime_enable(&client->dev);
|
|
||||||
+
|
|
||||||
+ ret = v4l2_async_register_subdev(&dw9719->sd);
|
|
||||||
+ if (ret < 0)
|
|
||||||
+ goto err_pm_runtime;
|
|
||||||
+
|
|
||||||
+ pm_runtime_set_autosuspend_delay(&client->dev, 1000);
|
|
||||||
+ pm_runtime_use_autosuspend(&client->dev);
|
|
||||||
+ pm_runtime_put_autosuspend(&client->dev);
|
|
||||||
+
|
|
||||||
+ return ret;
|
|
||||||
+
|
|
||||||
+err_pm_runtime:
|
|
||||||
+ pm_runtime_disable(&client->dev);
|
|
||||||
+ pm_runtime_put_noidle(&client->dev);
|
|
||||||
+err_powerdown:
|
|
||||||
+ dw9719_power_down(dw9719);
|
|
||||||
+err_cleanup_media:
|
|
||||||
+ media_entity_cleanup(&dw9719->sd.entity);
|
|
||||||
+err_free_ctrl_handler:
|
|
||||||
+ v4l2_ctrl_handler_free(&dw9719->ctrls.handler);
|
|
||||||
+
|
|
||||||
+ return ret;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void dw9719_remove(struct i2c_client *client)
|
|
||||||
+{
|
|
||||||
+ struct v4l2_subdev *sd = i2c_get_clientdata(client);
|
|
||||||
+ struct dw9719_device *dw9719 = container_of(sd, struct dw9719_device,
|
|
||||||
+ sd);
|
|
||||||
+
|
|
||||||
+ pm_runtime_disable(&client->dev);
|
|
||||||
+ v4l2_async_unregister_subdev(sd);
|
|
||||||
+ v4l2_ctrl_handler_free(&dw9719->ctrls.handler);
|
|
||||||
+ media_entity_cleanup(&dw9719->sd.entity);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static const struct i2c_device_id dw9719_id_table[] = {
|
|
||||||
+ { "dw9719" },
|
|
||||||
+ { }
|
|
||||||
+};
|
|
||||||
+MODULE_DEVICE_TABLE(i2c, dw9719_id_table);
|
|
||||||
+
|
|
||||||
+static const struct dev_pm_ops dw9719_pm_ops = {
|
|
||||||
+ SET_RUNTIME_PM_OPS(dw9719_suspend, dw9719_resume, NULL)
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+static struct i2c_driver dw9719_i2c_driver = {
|
|
||||||
+ .driver = {
|
|
||||||
+ .name = "dw9719",
|
|
||||||
+ .pm = &dw9719_pm_ops,
|
|
||||||
+ },
|
|
||||||
+ .probe_new = dw9719_probe,
|
|
||||||
+ .remove = dw9719_remove,
|
|
||||||
+ .id_table = dw9719_id_table,
|
|
||||||
+};
|
|
||||||
+module_i2c_driver(dw9719_i2c_driver);
|
|
||||||
+
|
|
||||||
+MODULE_AUTHOR("Daniel Scally <djrscally@gmail.com>");
|
|
||||||
+MODULE_DESCRIPTION("DW9719 VCM Driver");
|
|
||||||
+MODULE_LICENSE("GPL");
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
||||||
From f9d1bedc67d54e559ca0fd669a1c2de935d25f4d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daniel Scally <djrscally@gmail.com>
|
|
||||||
Date: Wed, 4 May 2022 23:21:45 +0100
|
|
||||||
Subject: [PATCH] media: ipu3-cio2: Move functionality from .complete() to
|
|
||||||
.bound()
|
|
||||||
|
|
||||||
Creating links and registering subdev nodes during the .complete()
|
|
||||||
callback has the unfortunate effect of preventing all cameras that
|
|
||||||
connect to a notifier from working if any one of their drivers fails
|
|
||||||
to probe. Moving the functionality from .complete() to .bound() allows
|
|
||||||
those camera sensor drivers that did probe correctly to work regardless.
|
|
||||||
|
|
||||||
Signed-off-by: Daniel Scally <djrscally@gmail.com>
|
|
||||||
Patchset: cameras
|
|
||||||
---
|
|
||||||
drivers/media/pci/intel/ipu3/ipu3-cio2-main.c | 65 +++++++------------
|
|
||||||
1 file changed, 23 insertions(+), 42 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c b/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c
|
|
||||||
index 1bbe58b24d99d..159f0d6cab8fc 100644
|
|
||||||
--- a/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c
|
|
||||||
+++ b/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c
|
|
||||||
@@ -1383,7 +1383,10 @@ static int cio2_notifier_bound(struct v4l2_async_notifier *notifier,
|
|
||||||
{
|
|
||||||
struct cio2_device *cio2 = to_cio2_device(notifier);
|
|
||||||
struct sensor_async_subdev *s_asd = to_sensor_asd(asd);
|
|
||||||
+ struct device *dev = &cio2->pci_dev->dev;
|
|
||||||
struct cio2_queue *q;
|
|
||||||
+ unsigned int pad;
|
|
||||||
+ int ret;
|
|
||||||
|
|
||||||
if (cio2->queue[s_asd->csi2.port].sensor)
|
|
||||||
return -EBUSY;
|
|
||||||
@@ -1394,7 +1397,26 @@ static int cio2_notifier_bound(struct v4l2_async_notifier *notifier,
|
|
||||||
q->sensor = sd;
|
|
||||||
q->csi_rx_base = cio2->base + CIO2_REG_PIPE_BASE(q->csi2.port);
|
|
||||||
|
|
||||||
- return 0;
|
|
||||||
+ for (pad = 0; pad < q->sensor->entity.num_pads; pad++)
|
|
||||||
+ if (q->sensor->entity.pads[pad].flags &
|
|
||||||
+ MEDIA_PAD_FL_SOURCE)
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ if (pad == q->sensor->entity.num_pads) {
|
|
||||||
+ dev_err(dev, "failed to find src pad for %s\n",
|
|
||||||
+ q->sensor->name);
|
|
||||||
+ return -ENXIO;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ret = media_create_pad_link(&q->sensor->entity, pad, &q->subdev.entity,
|
|
||||||
+ CIO2_PAD_SINK, 0);
|
|
||||||
+ if (ret) {
|
|
||||||
+ dev_err(dev, "failed to create link for %s\n",
|
|
||||||
+ q->sensor->name);
|
|
||||||
+ return ret;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return v4l2_device_register_subdev_nodes(&cio2->v4l2_dev);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The .unbind callback */
|
|
||||||
@@ -1408,50 +1430,9 @@ static void cio2_notifier_unbind(struct v4l2_async_notifier *notifier,
|
|
||||||
cio2->queue[s_asd->csi2.port].sensor = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
-/* .complete() is called after all subdevices have been located */
|
|
||||||
-static int cio2_notifier_complete(struct v4l2_async_notifier *notifier)
|
|
||||||
-{
|
|
||||||
- struct cio2_device *cio2 = to_cio2_device(notifier);
|
|
||||||
- struct device *dev = &cio2->pci_dev->dev;
|
|
||||||
- struct sensor_async_subdev *s_asd;
|
|
||||||
- struct v4l2_async_subdev *asd;
|
|
||||||
- struct cio2_queue *q;
|
|
||||||
- unsigned int pad;
|
|
||||||
- int ret;
|
|
||||||
-
|
|
||||||
- list_for_each_entry(asd, &cio2->notifier.asd_list, asd_list) {
|
|
||||||
- s_asd = to_sensor_asd(asd);
|
|
||||||
- q = &cio2->queue[s_asd->csi2.port];
|
|
||||||
-
|
|
||||||
- for (pad = 0; pad < q->sensor->entity.num_pads; pad++)
|
|
||||||
- if (q->sensor->entity.pads[pad].flags &
|
|
||||||
- MEDIA_PAD_FL_SOURCE)
|
|
||||||
- break;
|
|
||||||
-
|
|
||||||
- if (pad == q->sensor->entity.num_pads) {
|
|
||||||
- dev_err(dev, "failed to find src pad for %s\n",
|
|
||||||
- q->sensor->name);
|
|
||||||
- return -ENXIO;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- ret = media_create_pad_link(
|
|
||||||
- &q->sensor->entity, pad,
|
|
||||||
- &q->subdev.entity, CIO2_PAD_SINK,
|
|
||||||
- 0);
|
|
||||||
- if (ret) {
|
|
||||||
- dev_err(dev, "failed to create link for %s\n",
|
|
||||||
- q->sensor->name);
|
|
||||||
- return ret;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- return v4l2_device_register_subdev_nodes(&cio2->v4l2_dev);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
static const struct v4l2_async_notifier_operations cio2_async_ops = {
|
|
||||||
.bound = cio2_notifier_bound,
|
|
||||||
.unbind = cio2_notifier_unbind,
|
|
||||||
- .complete = cio2_notifier_complete,
|
|
||||||
};
|
|
||||||
|
|
||||||
static int cio2_parse_firmware(struct cio2_device *cio2)
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
||||||
From 3f45027dbb29e48aeafa0a38bfaf0b91c4e8df37 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daniel Scally <djrscally@gmail.com>
|
|
||||||
Date: Thu, 2 Jun 2022 22:15:56 +0100
|
|
||||||
Subject: [PATCH] media: ipu3-cio2: Re-add .complete() to ipu3-cio2
|
|
||||||
|
|
||||||
Removing the .complete() callback had some unintended consequences.
|
|
||||||
Because the VCM driver is not directly linked to the ipu3-cio2
|
|
||||||
driver .bound() never gets called for it, which means its devnode
|
|
||||||
is never created if it probes late. Because .complete() waits for
|
|
||||||
any sub-notifiers to also be complete it is captured in that call.
|
|
||||||
|
|
||||||
Signed-off-by: Daniel Scally <djrscally@gmail.com>
|
|
||||||
Patchset: cameras
|
|
||||||
---
|
|
||||||
drivers/media/pci/intel/ipu3/ipu3-cio2-main.c | 9 +++++++++
|
|
||||||
1 file changed, 9 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c b/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c
|
|
||||||
index 159f0d6cab8fc..0b2abfa0c724a 100644
|
|
||||||
--- a/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c
|
|
||||||
+++ b/drivers/media/pci/intel/ipu3/ipu3-cio2-main.c
|
|
||||||
@@ -1430,9 +1430,18 @@ static void cio2_notifier_unbind(struct v4l2_async_notifier *notifier,
|
|
||||||
cio2->queue[s_asd->csi2.port].sensor = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
+/* .complete() is called after all subdevices have been located */
|
|
||||||
+static int cio2_notifier_complete(struct v4l2_async_notifier *notifier)
|
|
||||||
+{
|
|
||||||
+ struct cio2_device *cio2 = to_cio2_device(notifier);
|
|
||||||
+
|
|
||||||
+ return v4l2_device_register_subdev_nodes(&cio2->v4l2_dev);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static const struct v4l2_async_notifier_operations cio2_async_ops = {
|
|
||||||
.bound = cio2_notifier_bound,
|
|
||||||
.unbind = cio2_notifier_unbind,
|
|
||||||
+ .complete = cio2_notifier_complete,
|
|
||||||
};
|
|
||||||
|
|
||||||
static int cio2_parse_firmware(struct cio2_device *cio2)
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
||||||
From c723c6f4308f67bae95e6898fdaa894a4e2915f2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Date: Fri, 15 Jul 2022 23:48:00 +0200
|
|
||||||
Subject: [PATCH] drivers/media/i2c: Fix DW9719 dependencies
|
|
||||||
|
|
||||||
It should depend on VIDEO_DEV instead of VIDEO_V4L2.
|
|
||||||
|
|
||||||
Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Patchset: cameras
|
|
||||||
---
|
|
||||||
drivers/media/i2c/Kconfig | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/media/i2c/Kconfig b/drivers/media/i2c/Kconfig
|
|
||||||
index fbaa2ce7fa3e6..7a46ad85dbd4c 100644
|
|
||||||
--- a/drivers/media/i2c/Kconfig
|
|
||||||
+++ b/drivers/media/i2c/Kconfig
|
|
||||||
@@ -830,7 +830,7 @@ config VIDEO_DW9714
|
|
||||||
|
|
||||||
config VIDEO_DW9719
|
|
||||||
tristate "DW9719 lens voice coil support"
|
|
||||||
- depends on I2C && VIDEO_V4L2
|
|
||||||
+ depends on I2C && VIDEO_DEV
|
|
||||||
select MEDIA_CONTROLLER
|
|
||||||
select VIDEO_V4L2_SUBDEV_API
|
|
||||||
select V4L2_ASYNC
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
||||||
From b948cd12ca7eed99efdd9e9441934e4ac1dcf627 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Daniel Scally <dan.scally@ideasonboard.com>
|
|
||||||
Date: Thu, 2 Mar 2023 12:59:39 +0000
|
|
||||||
Subject: [PATCH] platform/x86: int3472: Remap reset GPIO for INT347E
|
|
||||||
|
|
||||||
ACPI _HID INT347E represents the OmniVision 7251 camera sensor. The
|
|
||||||
driver for this sensor expects a single pin named "enable", but on
|
|
||||||
some Microsoft Surface platforms the sensor is assigned a single
|
|
||||||
GPIO who's type flag is INT3472_GPIO_TYPE_RESET.
|
|
||||||
|
|
||||||
Remap the GPIO pin's function from "reset" to "enable". This is done
|
|
||||||
outside of the existing remap table since it is a more widespread
|
|
||||||
discrepancy than that method is designed for. Additionally swap the
|
|
||||||
polarity of the pin to match the driver's expectation.
|
|
||||||
|
|
||||||
Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
|
|
||||||
Patchset: cameras
|
|
||||||
---
|
|
||||||
drivers/platform/x86/intel/int3472/discrete.c | 14 ++++++++++++++
|
|
||||||
1 file changed, 14 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/drivers/platform/x86/intel/int3472/discrete.c b/drivers/platform/x86/intel/int3472/discrete.c
|
|
||||||
index c42c3faa2c32d..6f4b8e24eb56c 100644
|
|
||||||
--- a/drivers/platform/x86/intel/int3472/discrete.c
|
|
||||||
+++ b/drivers/platform/x86/intel/int3472/discrete.c
|
|
||||||
@@ -108,6 +108,9 @@ static int skl_int3472_map_gpio_to_sensor(struct int3472_discrete_device *int347
|
|
||||||
{
|
|
||||||
const struct int3472_sensor_config *sensor_config;
|
|
||||||
char *path = agpio->resource_source.string_ptr;
|
|
||||||
+ const struct acpi_device_id ov7251_ids[] = {
|
|
||||||
+ { "INT347E" },
|
|
||||||
+ };
|
|
||||||
struct gpiod_lookup *table_entry;
|
|
||||||
struct acpi_device *adev;
|
|
||||||
acpi_handle handle;
|
|
||||||
@@ -130,6 +133,17 @@ static int skl_int3472_map_gpio_to_sensor(struct int3472_discrete_device *int347
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /*
|
|
||||||
+ * In addition to the function remap table we need to bulk remap the
|
|
||||||
+ * "reset" GPIO for the OmniVision 7251 sensor, as the driver for that
|
|
||||||
+ * expects its only GPIO pin to be called "enable" (and to have the
|
|
||||||
+ * opposite polarity).
|
|
||||||
+ */
|
|
||||||
+ if (!strcmp(func, "reset") && !acpi_match_device_ids(int3472->sensor, ov7251_ids)) {
|
|
||||||
+ func = "enable";
|
|
||||||
+ polarity = GPIO_ACTIVE_HIGH;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* Functions mapped to NULL should not be mapped to the sensor */
|
|
||||||
if (!func)
|
|
||||||
return 0;
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
|
@ -1,109 +0,0 @@
|
||||||
From c472d235327810c3363bc225fb0c32a1895dc805 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sachi King <nakato@nakato.io>
|
|
||||||
Date: Sat, 29 May 2021 17:47:38 +1000
|
|
||||||
Subject: [PATCH] ACPI: Add quirk for Surface Laptop 4 AMD missing irq 7
|
|
||||||
override
|
|
||||||
|
|
||||||
This patch is the work of Thomas Gleixner <tglx@linutronix.de> and is
|
|
||||||
copied from:
|
|
||||||
https://lore.kernel.org/lkml/87lf8ddjqx.ffs@nanos.tec.linutronix.de/
|
|
||||||
|
|
||||||
This patch adds a quirk to the ACPI setup to patch in the the irq 7 pin
|
|
||||||
setup that is missing in the laptops ACPI table.
|
|
||||||
|
|
||||||
This patch was used for validation of the issue, and is not a proper
|
|
||||||
fix, but is probably a better temporary hack than continuing to probe
|
|
||||||
the Legacy PIC and run with the PIC in an unknown state.
|
|
||||||
|
|
||||||
Patchset: amd-gpio
|
|
||||||
---
|
|
||||||
arch/x86/kernel/acpi/boot.c | 17 +++++++++++++++++
|
|
||||||
1 file changed, 17 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
|
|
||||||
index 2252340b2133e..cc8115d7323dd 100644
|
|
||||||
--- a/arch/x86/kernel/acpi/boot.c
|
|
||||||
+++ b/arch/x86/kernel/acpi/boot.c
|
|
||||||
@@ -22,6 +22,7 @@
|
|
||||||
#include <linux/efi-bgrt.h>
|
|
||||||
#include <linux/serial_core.h>
|
|
||||||
#include <linux/pgtable.h>
|
|
||||||
+#include <linux/dmi.h>
|
|
||||||
|
|
||||||
#include <asm/e820/api.h>
|
|
||||||
#include <asm/irqdomain.h>
|
|
||||||
@@ -1255,6 +1256,17 @@ static void __init mp_config_acpi_legacy_irqs(void)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+static const struct dmi_system_id surface_quirk[] __initconst = {
|
|
||||||
+ {
|
|
||||||
+ .ident = "Microsoft Surface Laptop 4 (AMD)",
|
|
||||||
+ .matches = {
|
|
||||||
+ DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
|
|
||||||
+ DMI_MATCH(DMI_PRODUCT_SKU, "Surface_Laptop_4_1952:1953")
|
|
||||||
+ },
|
|
||||||
+ },
|
|
||||||
+ {}
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* Parse IOAPIC related entries in MADT
|
|
||||||
* returns 0 on success, < 0 on error
|
|
||||||
@@ -1310,6 +1322,11 @@ static int __init acpi_parse_madt_ioapic_entries(void)
|
|
||||||
acpi_sci_ioapic_setup(acpi_gbl_FADT.sci_interrupt, 0, 0,
|
|
||||||
acpi_gbl_FADT.sci_interrupt);
|
|
||||||
|
|
||||||
+ if (dmi_check_system(surface_quirk)) {
|
|
||||||
+ pr_warn("Surface hack: Override irq 7\n");
|
|
||||||
+ mp_override_legacy_irq(7, 3, 3, 7);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/* Fill in identity legacy mappings where no override */
|
|
||||||
mp_config_acpi_legacy_irqs();
|
|
||||||
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
||||||
From 7dd27681feebb27b8d48d2220e94acfe483ea8e8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
|
||||||
Date: Thu, 3 Jun 2021 14:04:26 +0200
|
|
||||||
Subject: [PATCH] ACPI: Add AMD 13" Surface Laptop 4 model to irq 7 override
|
|
||||||
quirk
|
|
||||||
|
|
||||||
The 13" version of the Surface Laptop 4 has the same problem as the 15"
|
|
||||||
version, but uses a different SKU. Add that SKU to the quirk as well.
|
|
||||||
|
|
||||||
Patchset: amd-gpio
|
|
||||||
---
|
|
||||||
arch/x86/kernel/acpi/boot.c | 9 ++++++++-
|
|
||||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
|
|
||||||
index cc8115d7323dd..f675eab6611be 100644
|
|
||||||
--- a/arch/x86/kernel/acpi/boot.c
|
|
||||||
+++ b/arch/x86/kernel/acpi/boot.c
|
|
||||||
@@ -1258,12 +1258,19 @@ static void __init mp_config_acpi_legacy_irqs(void)
|
|
||||||
|
|
||||||
static const struct dmi_system_id surface_quirk[] __initconst = {
|
|
||||||
{
|
|
||||||
- .ident = "Microsoft Surface Laptop 4 (AMD)",
|
|
||||||
+ .ident = "Microsoft Surface Laptop 4 (AMD 15\")",
|
|
||||||
.matches = {
|
|
||||||
DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
|
|
||||||
DMI_MATCH(DMI_PRODUCT_SKU, "Surface_Laptop_4_1952:1953")
|
|
||||||
},
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ .ident = "Microsoft Surface Laptop 4 (AMD 13\")",
|
|
||||||
+ .matches = {
|
|
||||||
+ DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"),
|
|
||||||
+ DMI_MATCH(DMI_PRODUCT_SKU, "Surface_Laptop_4_1958:1959")
|
|
||||||
+ },
|
|
||||||
+ },
|
|
||||||
{}
|
|
||||||
};
|
|
||||||
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
|
@ -1,109 +0,0 @@
|
||||||
From 0b1a6e7a0cec8231b36db943e7fc2a9e93d5906e Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Bart Groeneveld | GPX Solutions B.V" <bart@gpxbv.nl>
|
|
||||||
Date: Mon, 5 Dec 2022 16:08:46 +0100
|
|
||||||
Subject: [PATCH] acpi: allow usage of acpi_tad on HW-reduced platforms
|
|
||||||
|
|
||||||
The specification [1] allows so-called HW-reduced platforms,
|
|
||||||
which do not implement everything, especially the wakeup related stuff.
|
|
||||||
|
|
||||||
In that case, it is still usable as a RTC. This is helpful for [2]
|
|
||||||
and [3], which is about a device with no other working RTC,
|
|
||||||
but it does have an HW-reduced TAD, which can be used as a RTC instead.
|
|
||||||
|
|
||||||
[1]: https://uefi.org/specs/ACPI/6.5/09_ACPI_Defined_Devices_and_Device_Specific_Objects.html#time-and-alarm-device
|
|
||||||
[2]: https://bugzilla.kernel.org/show_bug.cgi?id=212313
|
|
||||||
[3]: https://github.com/linux-surface/linux-surface/issues/415
|
|
||||||
|
|
||||||
Signed-off-by: Bart Groeneveld | GPX Solutions B.V. <bart@gpxbv.nl>
|
|
||||||
Patchset: rtc
|
|
||||||
---
|
|
||||||
drivers/acpi/acpi_tad.c | 35 ++++++++++++++++++++++++-----------
|
|
||||||
1 file changed, 24 insertions(+), 11 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/acpi/acpi_tad.c b/drivers/acpi/acpi_tad.c
|
|
||||||
index e9b8e8305e23e..944276934e7ec 100644
|
|
||||||
--- a/drivers/acpi/acpi_tad.c
|
|
||||||
+++ b/drivers/acpi/acpi_tad.c
|
|
||||||
@@ -432,6 +432,14 @@ static ssize_t caps_show(struct device *dev, struct device_attribute *attr,
|
|
||||||
|
|
||||||
static DEVICE_ATTR_RO(caps);
|
|
||||||
|
|
||||||
+static struct attribute *acpi_tad_attrs[] = {
|
|
||||||
+ &dev_attr_caps.attr,
|
|
||||||
+ NULL,
|
|
||||||
+};
|
|
||||||
+static const struct attribute_group acpi_tad_attr_group = {
|
|
||||||
+ .attrs = acpi_tad_attrs,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
static ssize_t ac_alarm_store(struct device *dev, struct device_attribute *attr,
|
|
||||||
const char *buf, size_t count)
|
|
||||||
{
|
|
||||||
@@ -480,15 +488,14 @@ static ssize_t ac_status_show(struct device *dev, struct device_attribute *attr,
|
|
||||||
|
|
||||||
static DEVICE_ATTR_RW(ac_status);
|
|
||||||
|
|
||||||
-static struct attribute *acpi_tad_attrs[] = {
|
|
||||||
- &dev_attr_caps.attr,
|
|
||||||
+static struct attribute *acpi_tad_ac_attrs[] = {
|
|
||||||
&dev_attr_ac_alarm.attr,
|
|
||||||
&dev_attr_ac_policy.attr,
|
|
||||||
&dev_attr_ac_status.attr,
|
|
||||||
NULL,
|
|
||||||
};
|
|
||||||
-static const struct attribute_group acpi_tad_attr_group = {
|
|
||||||
- .attrs = acpi_tad_attrs,
|
|
||||||
+static const struct attribute_group acpi_tad_ac_attr_group = {
|
|
||||||
+ .attrs = acpi_tad_ac_attrs,
|
|
||||||
};
|
|
||||||
|
|
||||||
static ssize_t dc_alarm_store(struct device *dev, struct device_attribute *attr,
|
|
||||||
@@ -563,13 +570,18 @@ static int acpi_tad_remove(struct platform_device *pdev)
|
|
||||||
|
|
||||||
pm_runtime_get_sync(dev);
|
|
||||||
|
|
||||||
+ if (dd->capabilities & ACPI_TAD_AC_WAKE)
|
|
||||||
+ sysfs_remove_group(&dev->kobj, &acpi_tad_ac_attr_group);
|
|
||||||
+
|
|
||||||
if (dd->capabilities & ACPI_TAD_DC_WAKE)
|
|
||||||
sysfs_remove_group(&dev->kobj, &acpi_tad_dc_attr_group);
|
|
||||||
|
|
||||||
sysfs_remove_group(&dev->kobj, &acpi_tad_attr_group);
|
|
||||||
|
|
||||||
- acpi_tad_disable_timer(dev, ACPI_TAD_AC_TIMER);
|
|
||||||
- acpi_tad_clear_status(dev, ACPI_TAD_AC_TIMER);
|
|
||||||
+ if (dd->capabilities & ACPI_TAD_AC_WAKE) {
|
|
||||||
+ acpi_tad_disable_timer(dev, ACPI_TAD_AC_TIMER);
|
|
||||||
+ acpi_tad_clear_status(dev, ACPI_TAD_AC_TIMER);
|
|
||||||
+ }
|
|
||||||
if (dd->capabilities & ACPI_TAD_DC_WAKE) {
|
|
||||||
acpi_tad_disable_timer(dev, ACPI_TAD_DC_TIMER);
|
|
||||||
acpi_tad_clear_status(dev, ACPI_TAD_DC_TIMER);
|
|
||||||
@@ -604,11 +616,6 @@ static int acpi_tad_probe(struct platform_device *pdev)
|
|
||||||
return -ENODEV;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (!acpi_has_method(handle, "_PRW")) {
|
|
||||||
- dev_info(dev, "Missing _PRW\n");
|
|
||||||
- return -ENODEV;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
dd = devm_kzalloc(dev, sizeof(*dd), GFP_KERNEL);
|
|
||||||
if (!dd)
|
|
||||||
return -ENOMEM;
|
|
||||||
@@ -637,6 +644,12 @@ static int acpi_tad_probe(struct platform_device *pdev)
|
|
||||||
if (ret)
|
|
||||||
goto fail;
|
|
||||||
|
|
||||||
+ if (caps & ACPI_TAD_AC_WAKE) {
|
|
||||||
+ ret = sysfs_create_group(&dev->kobj, &acpi_tad_ac_attr_group);
|
|
||||||
+ if (ret)
|
|
||||||
+ goto fail;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (caps & ACPI_TAD_DC_WAKE) {
|
|
||||||
ret = sysfs_create_group(&dev->kobj, &acpi_tad_dc_attr_group);
|
|
||||||
if (ret)
|
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ Patchset: surface3-oemb
|
||||||
3 files changed, 24 insertions(+)
|
3 files changed, 24 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/platform/surface/surface3-wmi.c b/drivers/platform/surface/surface3-wmi.c
|
diff --git a/drivers/platform/surface/surface3-wmi.c b/drivers/platform/surface/surface3-wmi.c
|
||||||
index ca4602bcc7dea..490b9731068ae 100644
|
index ca4602bcc7de..490b9731068a 100644
|
||||||
--- a/drivers/platform/surface/surface3-wmi.c
|
--- a/drivers/platform/surface/surface3-wmi.c
|
||||||
+++ b/drivers/platform/surface/surface3-wmi.c
|
+++ b/drivers/platform/surface/surface3-wmi.c
|
||||||
@@ -37,6 +37,13 @@ static const struct dmi_system_id surface3_dmi_table[] = {
|
@@ -37,6 +37,13 @@ static const struct dmi_system_id surface3_dmi_table[] = {
|
||||||
|
@ -58,7 +58,7 @@ index ca4602bcc7dea..490b9731068ae 100644
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c
|
diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c
|
||||||
index 7938b52d741d8..2d5f83b0cdb0b 100644
|
index 7938b52d741d..2d5f83b0cdb0 100644
|
||||||
--- a/sound/soc/codecs/rt5645.c
|
--- a/sound/soc/codecs/rt5645.c
|
||||||
+++ b/sound/soc/codecs/rt5645.c
|
+++ b/sound/soc/codecs/rt5645.c
|
||||||
@@ -3746,6 +3746,15 @@ static const struct dmi_system_id dmi_platform_data[] = {
|
@@ -3746,6 +3746,15 @@ static const struct dmi_system_id dmi_platform_data[] = {
|
||||||
|
@ -78,7 +78,7 @@ index 7938b52d741d8..2d5f83b0cdb0b 100644
|
||||||
/*
|
/*
|
||||||
* Match for the GPDwin which unfortunately uses somewhat
|
* Match for the GPDwin which unfortunately uses somewhat
|
||||||
diff --git a/sound/soc/intel/common/soc-acpi-intel-cht-match.c b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
|
diff --git a/sound/soc/intel/common/soc-acpi-intel-cht-match.c b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
|
||||||
index 5e2ec60e2954b..207868c699f29 100644
|
index 5e2ec60e2954..207868c699f2 100644
|
||||||
--- a/sound/soc/intel/common/soc-acpi-intel-cht-match.c
|
--- a/sound/soc/intel/common/soc-acpi-intel-cht-match.c
|
||||||
+++ b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
|
+++ b/sound/soc/intel/common/soc-acpi-intel-cht-match.c
|
||||||
@@ -27,6 +27,14 @@ static const struct dmi_system_id cht_table[] = {
|
@@ -27,6 +27,14 @@ static const struct dmi_system_id cht_table[] = {
|
||||||
|
@ -97,5 +97,5 @@ index 5e2ec60e2954b..207868c699f29 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ Patchset: mwifiex
|
||||||
3 files changed, 31 insertions(+), 8 deletions(-)
|
3 files changed, 31 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
|
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
|
||||||
index 6697132ecc977..f06b4ebc5bd8e 100644
|
index 6697132ecc97..f06b4ebc5bd8 100644
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/pcie.c
|
--- a/drivers/net/wireless/marvell/mwifiex/pcie.c
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
|
+++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
|
||||||
@@ -1771,9 +1771,21 @@ mwifiex_pcie_send_boot_cmd(struct mwifiex_adapter *adapter, struct sk_buff *skb)
|
@@ -1771,9 +1771,21 @@ mwifiex_pcie_send_boot_cmd(struct mwifiex_adapter *adapter, struct sk_buff *skb)
|
||||||
|
@ -58,7 +58,7 @@ index 6697132ecc977..f06b4ebc5bd8e 100644
|
||||||
if (mwifiex_write_reg(adapter, reg->rx_rdptr, card->rxbd_rdptr |
|
if (mwifiex_write_reg(adapter, reg->rx_rdptr, card->rxbd_rdptr |
|
||||||
tx_wrap)) {
|
tx_wrap)) {
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
||||||
index dd6d21f1dbfd7..f46b06f8d6435 100644
|
index dd6d21f1dbfd..f46b06f8d643 100644
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
--- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
+++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
||||||
@@ -13,7 +13,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
@@ -13,7 +13,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
||||||
|
@ -151,7 +151,7 @@ index dd6d21f1dbfd7..f46b06f8d6435 100644
|
||||||
|
|
||||||
static void mwifiex_pcie_set_power_d3cold(struct pci_dev *pdev)
|
static void mwifiex_pcie_set_power_d3cold(struct pci_dev *pdev)
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
||||||
index d6ff964aec5bf..5d30ae39d65ec 100644
|
index d6ff964aec5b..5d30ae39d65e 100644
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
--- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
+++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
||||||
@@ -4,6 +4,7 @@
|
@@ -4,6 +4,7 @@
|
||||||
|
@ -163,7 +163,7 @@ index d6ff964aec5bf..5d30ae39d65ec 100644
|
||||||
void mwifiex_initialize_quirks(struct pcie_service_card *card);
|
void mwifiex_initialize_quirks(struct pcie_service_card *card);
|
||||||
int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
|
int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From d10371a089a968b913b9413e1f06bd3d9d154b21 Mon Sep 17 00:00:00 2001
|
From d10371a089a968b913b9413e1f06bd3d9d154b21 Mon Sep 17 00:00:00 2001
|
||||||
From: Tsuchiya Yuto <kitakar@gmail.com>
|
From: Tsuchiya Yuto <kitakar@gmail.com>
|
||||||
|
@ -187,7 +187,7 @@ Patchset: mwifiex
|
||||||
3 files changed, 27 insertions(+), 8 deletions(-)
|
3 files changed, 27 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
|
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie.c b/drivers/net/wireless/marvell/mwifiex/pcie.c
|
||||||
index f06b4ebc5bd8e..07f13b52ddb92 100644
|
index f06b4ebc5bd8..07f13b52ddb9 100644
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/pcie.c
|
--- a/drivers/net/wireless/marvell/mwifiex/pcie.c
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
|
+++ b/drivers/net/wireless/marvell/mwifiex/pcie.c
|
||||||
@@ -370,6 +370,7 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev,
|
@@ -370,6 +370,7 @@ static int mwifiex_pcie_probe(struct pci_dev *pdev,
|
||||||
|
@ -212,7 +212,7 @@ index f06b4ebc5bd8e..07f13b52ddb92 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
||||||
index f46b06f8d6435..99b024ecbadea 100644
|
index f46b06f8d643..99b024ecbade 100644
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
--- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
+++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.c
|
||||||
@@ -14,7 +14,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
@@ -14,7 +14,8 @@ static const struct dmi_system_id mwifiex_quirk_table[] = {
|
||||||
|
@ -306,7 +306,7 @@ index f46b06f8d6435..99b024ecbadea 100644
|
||||||
|
|
||||||
static void mwifiex_pcie_set_power_d3cold(struct pci_dev *pdev)
|
static void mwifiex_pcie_set_power_d3cold(struct pci_dev *pdev)
|
||||||
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
diff --git a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
||||||
index 5d30ae39d65ec..c14eb56eb9118 100644
|
index 5d30ae39d65e..c14eb56eb911 100644
|
||||||
--- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
--- a/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
||||||
+++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
+++ b/drivers/net/wireless/marvell/mwifiex/pcie_quirks.h
|
||||||
@@ -5,6 +5,7 @@
|
@@ -5,6 +5,7 @@
|
||||||
|
@ -318,7 +318,7 @@ index 5d30ae39d65ec..c14eb56eb9118 100644
|
||||||
void mwifiex_initialize_quirks(struct pcie_service_card *card);
|
void mwifiex_initialize_quirks(struct pcie_service_card *card);
|
||||||
int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
|
int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 59d4464c43b8c4090372cbf2632fc116a0ca8b2a Mon Sep 17 00:00:00 2001
|
From 59d4464c43b8c4090372cbf2632fc116a0ca8b2a Mon Sep 17 00:00:00 2001
|
||||||
From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
|
From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
|
||||||
|
@ -356,7 +356,7 @@ Patchset: mwifiex
|
||||||
1 file changed, 15 insertions(+)
|
1 file changed, 15 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
|
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
|
||||||
index 66080fae072f2..68e2f2976a519 100644
|
index 66080fae072f..68e2f2976a51 100644
|
||||||
--- a/drivers/bluetooth/btusb.c
|
--- a/drivers/bluetooth/btusb.c
|
||||||
+++ b/drivers/bluetooth/btusb.c
|
+++ b/drivers/bluetooth/btusb.c
|
||||||
@@ -65,6 +65,7 @@ static struct usb_driver btusb_driver;
|
@@ -65,6 +65,7 @@ static struct usb_driver btusb_driver;
|
||||||
|
@ -396,5 +396,5 @@ index 66080fae072f2..68e2f2976a519 100644
|
||||||
(id->driver_info & BTUSB_MEDIATEK)) {
|
(id->driver_info & BTUSB_MEDIATEK)) {
|
||||||
hdev->setup = btusb_mtk_setup;
|
hdev->setup = btusb_mtk_setup;
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ Patchset: ath10k
|
||||||
1 file changed, 58 insertions(+)
|
1 file changed, 58 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
|
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
|
||||||
index 6cdb225b7eacc..19c036751fb16 100644
|
index 6cdb225b7eac..19c036751fb1 100644
|
||||||
--- a/drivers/net/wireless/ath/ath10k/core.c
|
--- a/drivers/net/wireless/ath/ath10k/core.c
|
||||||
+++ b/drivers/net/wireless/ath/ath10k/core.c
|
+++ b/drivers/net/wireless/ath/ath10k/core.c
|
||||||
@@ -38,6 +38,9 @@ static bool fw_diag_log;
|
@@ -38,6 +38,9 @@ static bool fw_diag_log;
|
||||||
|
@ -117,5 +117,5 @@ index 6cdb225b7eacc..19c036751fb16 100644
|
||||||
ret = firmware_request_nowarn(&fw, filename, ar->dev);
|
ret = firmware_request_nowarn(&fw, filename, ar->dev);
|
||||||
ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot fw request '%s': %d\n",
|
ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot fw request '%s': %d\n",
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ Patchset: ipts
|
||||||
2 files changed, 2 insertions(+)
|
2 files changed, 2 insertions(+)
|
||||||
|
|
||||||
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 bdc65d50b945f..08723c01d7275 100644
|
index bdc65d50b945..08723c01d727 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
|
||||||
@@ -92,6 +92,7 @@
|
@@ -92,6 +92,7 @@
|
||||||
|
@ -22,7 +22,7 @@ index bdc65d50b945f..08723c01d7275 100644
|
||||||
|
|
||||||
#define MEI_DEV_ID_JSP_N 0x4DE0 /* Jasper Lake Point N */
|
#define MEI_DEV_ID_JSP_N 0x4DE0 /* Jasper Lake Point N */
|
||||||
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 676d566f38ddf..6b37dd1f8b2a3 100644
|
index 676d566f38dd..6b37dd1f8b2a 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
|
||||||
@@ -97,6 +97,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
|
@@ -97,6 +97,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
|
||||||
|
@ -34,7 +34,7 @@ index 676d566f38ddf..6b37dd1f8b2a3 100644
|
||||||
|
|
||||||
{MEI_PCI_DEVICE(MEI_DEV_ID_TGP_LP, MEI_ME_PCH15_CFG)},
|
{MEI_PCI_DEVICE(MEI_DEV_ID_TGP_LP, MEI_ME_PCH15_CFG)},
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From b81e81459d4077c94376c5680edd5b2fde70f297 Mon Sep 17 00:00:00 2001
|
From b81e81459d4077c94376c5680edd5b2fde70f297 Mon Sep 17 00:00:00 2001
|
||||||
From: Liban Hannan <liban.p@gmail.com>
|
From: Liban Hannan <liban.p@gmail.com>
|
||||||
|
@ -58,7 +58,7 @@ Patchset: ipts
|
||||||
1 file changed, 24 insertions(+)
|
1 file changed, 24 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
|
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
|
||||||
index 744e4e6b8d72d..0cbe3a5212548 100644
|
index 744e4e6b8d72..0cbe3a521254 100644
|
||||||
--- a/drivers/iommu/intel/iommu.c
|
--- a/drivers/iommu/intel/iommu.c
|
||||||
+++ b/drivers/iommu/intel/iommu.c
|
+++ b/drivers/iommu/intel/iommu.c
|
||||||
@@ -38,6 +38,8 @@
|
@@ -38,6 +38,8 @@
|
||||||
|
@ -134,7 +134,7 @@ index 744e4e6b8d72d..0cbe3a5212548 100644
|
||||||
{
|
{
|
||||||
if (risky_device(dev))
|
if (risky_device(dev))
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From a16d734a58c18ef07813a8abe94320e69e0d77a7 Mon Sep 17 00:00:00 2001
|
From a16d734a58c18ef07813a8abe94320e69e0d77a7 Mon Sep 17 00:00:00 2001
|
||||||
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
||||||
|
@ -203,7 +203,7 @@ Patchset: ipts
|
||||||
create mode 100644 drivers/hid/ipts/thread.h
|
create mode 100644 drivers/hid/ipts/thread.h
|
||||||
|
|
||||||
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
|
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
|
||||||
index 790aa908e2a78..0b9d245d10e54 100644
|
index 790aa908e2a7..0b9d245d10e5 100644
|
||||||
--- a/drivers/hid/Kconfig
|
--- a/drivers/hid/Kconfig
|
||||||
+++ b/drivers/hid/Kconfig
|
+++ b/drivers/hid/Kconfig
|
||||||
@@ -1345,4 +1345,6 @@ source "drivers/hid/amd-sfh-hid/Kconfig"
|
@@ -1345,4 +1345,6 @@ source "drivers/hid/amd-sfh-hid/Kconfig"
|
||||||
|
@ -214,7 +214,7 @@ index 790aa908e2a78..0b9d245d10e54 100644
|
||||||
+
|
+
|
||||||
endif # HID_SUPPORT
|
endif # HID_SUPPORT
|
||||||
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
|
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
|
||||||
index 8a06d0f840bcb..2ef21b257d0b5 100644
|
index 8a06d0f840bc..2ef21b257d0b 100644
|
||||||
--- a/drivers/hid/Makefile
|
--- a/drivers/hid/Makefile
|
||||||
+++ b/drivers/hid/Makefile
|
+++ b/drivers/hid/Makefile
|
||||||
@@ -169,3 +169,5 @@ obj-$(INTEL_ISH_FIRMWARE_DOWNLOADER) += intel-ish-hid/
|
@@ -169,3 +169,5 @@ obj-$(INTEL_ISH_FIRMWARE_DOWNLOADER) += intel-ish-hid/
|
||||||
|
@ -225,7 +225,7 @@ index 8a06d0f840bcb..2ef21b257d0b5 100644
|
||||||
+obj-$(CONFIG_HID_IPTS) += ipts/
|
+obj-$(CONFIG_HID_IPTS) += ipts/
|
||||||
diff --git a/drivers/hid/ipts/Kconfig b/drivers/hid/ipts/Kconfig
|
diff --git a/drivers/hid/ipts/Kconfig b/drivers/hid/ipts/Kconfig
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..297401bd388dd
|
index 000000000000..297401bd388d
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/Kconfig
|
+++ b/drivers/hid/ipts/Kconfig
|
||||||
@@ -0,0 +1,14 @@
|
@@ -0,0 +1,14 @@
|
||||||
|
@ -245,7 +245,7 @@ index 0000000000000..297401bd388dd
|
||||||
+ module will be called ipts.
|
+ module will be called ipts.
|
||||||
diff --git a/drivers/hid/ipts/Makefile b/drivers/hid/ipts/Makefile
|
diff --git a/drivers/hid/ipts/Makefile b/drivers/hid/ipts/Makefile
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..883896f68e6ad
|
index 000000000000..883896f68e6a
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/Makefile
|
+++ b/drivers/hid/ipts/Makefile
|
||||||
@@ -0,0 +1,16 @@
|
@@ -0,0 +1,16 @@
|
||||||
|
@ -267,7 +267,7 @@ index 0000000000000..883896f68e6ad
|
||||||
+ipts-objs += thread.o
|
+ipts-objs += thread.o
|
||||||
diff --git a/drivers/hid/ipts/cmd.c b/drivers/hid/ipts/cmd.c
|
diff --git a/drivers/hid/ipts/cmd.c b/drivers/hid/ipts/cmd.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..63a4934bbc5fa
|
index 000000000000..63a4934bbc5f
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/cmd.c
|
+++ b/drivers/hid/ipts/cmd.c
|
||||||
@@ -0,0 +1,61 @@
|
@@ -0,0 +1,61 @@
|
||||||
|
@ -334,7 +334,7 @@ index 0000000000000..63a4934bbc5fa
|
||||||
+}
|
+}
|
||||||
diff --git a/drivers/hid/ipts/cmd.h b/drivers/hid/ipts/cmd.h
|
diff --git a/drivers/hid/ipts/cmd.h b/drivers/hid/ipts/cmd.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..2b4079075b642
|
index 000000000000..2b4079075b64
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/cmd.h
|
+++ b/drivers/hid/ipts/cmd.h
|
||||||
@@ -0,0 +1,60 @@
|
@@ -0,0 +1,60 @@
|
||||||
|
@ -400,7 +400,7 @@ index 0000000000000..2b4079075b642
|
||||||
+#endif /* IPTS_CMD_H */
|
+#endif /* IPTS_CMD_H */
|
||||||
diff --git a/drivers/hid/ipts/context.h b/drivers/hid/ipts/context.h
|
diff --git a/drivers/hid/ipts/context.h b/drivers/hid/ipts/context.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..ba33259f1f7c5
|
index 000000000000..ba33259f1f7c
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/context.h
|
+++ b/drivers/hid/ipts/context.h
|
||||||
@@ -0,0 +1,52 @@
|
@@ -0,0 +1,52 @@
|
||||||
|
@ -458,7 +458,7 @@ index 0000000000000..ba33259f1f7c5
|
||||||
+#endif /* IPTS_CONTEXT_H */
|
+#endif /* IPTS_CONTEXT_H */
|
||||||
diff --git a/drivers/hid/ipts/control.c b/drivers/hid/ipts/control.c
|
diff --git a/drivers/hid/ipts/control.c b/drivers/hid/ipts/control.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..5360842d260ba
|
index 000000000000..5360842d260b
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/control.c
|
+++ b/drivers/hid/ipts/control.c
|
||||||
@@ -0,0 +1,486 @@
|
@@ -0,0 +1,486 @@
|
||||||
|
@ -950,7 +950,7 @@ index 0000000000000..5360842d260ba
|
||||||
+}
|
+}
|
||||||
diff --git a/drivers/hid/ipts/control.h b/drivers/hid/ipts/control.h
|
diff --git a/drivers/hid/ipts/control.h b/drivers/hid/ipts/control.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..26629c5144edb
|
index 000000000000..26629c5144ed
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/control.h
|
+++ b/drivers/hid/ipts/control.h
|
||||||
@@ -0,0 +1,126 @@
|
@@ -0,0 +1,126 @@
|
||||||
|
@ -1082,7 +1082,7 @@ index 0000000000000..26629c5144edb
|
||||||
+#endif /* IPTS_CONTROL_H */
|
+#endif /* IPTS_CONTROL_H */
|
||||||
diff --git a/drivers/hid/ipts/desc.h b/drivers/hid/ipts/desc.h
|
diff --git a/drivers/hid/ipts/desc.h b/drivers/hid/ipts/desc.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..307438c7c80cd
|
index 000000000000..307438c7c80c
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/desc.h
|
+++ b/drivers/hid/ipts/desc.h
|
||||||
@@ -0,0 +1,80 @@
|
@@ -0,0 +1,80 @@
|
||||||
|
@ -1168,7 +1168,7 @@ index 0000000000000..307438c7c80cd
|
||||||
+#endif /* IPTS_DESC_H */
|
+#endif /* IPTS_DESC_H */
|
||||||
diff --git a/drivers/hid/ipts/eds1.c b/drivers/hid/ipts/eds1.c
|
diff --git a/drivers/hid/ipts/eds1.c b/drivers/hid/ipts/eds1.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..ecbb3a8bdaf60
|
index 000000000000..ecbb3a8bdaf6
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/eds1.c
|
+++ b/drivers/hid/ipts/eds1.c
|
||||||
@@ -0,0 +1,103 @@
|
@@ -0,0 +1,103 @@
|
||||||
|
@ -1277,7 +1277,7 @@ index 0000000000000..ecbb3a8bdaf60
|
||||||
+}
|
+}
|
||||||
diff --git a/drivers/hid/ipts/eds1.h b/drivers/hid/ipts/eds1.h
|
diff --git a/drivers/hid/ipts/eds1.h b/drivers/hid/ipts/eds1.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..eeeb6575e3e89
|
index 000000000000..eeeb6575e3e8
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/eds1.h
|
+++ b/drivers/hid/ipts/eds1.h
|
||||||
@@ -0,0 +1,35 @@
|
@@ -0,0 +1,35 @@
|
||||||
|
@ -1318,7 +1318,7 @@ index 0000000000000..eeeb6575e3e89
|
||||||
+ enum hid_report_type report_type, enum hid_class_request request_type);
|
+ enum hid_report_type report_type, enum hid_class_request request_type);
|
||||||
diff --git a/drivers/hid/ipts/eds2.c b/drivers/hid/ipts/eds2.c
|
diff --git a/drivers/hid/ipts/eds2.c b/drivers/hid/ipts/eds2.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..198dc65d78876
|
index 000000000000..198dc65d7887
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/eds2.c
|
+++ b/drivers/hid/ipts/eds2.c
|
||||||
@@ -0,0 +1,144 @@
|
@@ -0,0 +1,144 @@
|
||||||
|
@ -1468,7 +1468,7 @@ index 0000000000000..198dc65d78876
|
||||||
+}
|
+}
|
||||||
diff --git a/drivers/hid/ipts/eds2.h b/drivers/hid/ipts/eds2.h
|
diff --git a/drivers/hid/ipts/eds2.h b/drivers/hid/ipts/eds2.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..064e3716907ab
|
index 000000000000..064e3716907a
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/eds2.h
|
+++ b/drivers/hid/ipts/eds2.h
|
||||||
@@ -0,0 +1,35 @@
|
@@ -0,0 +1,35 @@
|
||||||
|
@ -1509,7 +1509,7 @@ index 0000000000000..064e3716907ab
|
||||||
+ enum hid_report_type report_type, enum hid_class_request request_type);
|
+ enum hid_report_type report_type, enum hid_class_request request_type);
|
||||||
diff --git a/drivers/hid/ipts/hid.c b/drivers/hid/ipts/hid.c
|
diff --git a/drivers/hid/ipts/hid.c b/drivers/hid/ipts/hid.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..e34a1a4f9fa77
|
index 000000000000..e34a1a4f9fa7
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/hid.c
|
+++ b/drivers/hid/ipts/hid.c
|
||||||
@@ -0,0 +1,225 @@
|
@@ -0,0 +1,225 @@
|
||||||
|
@ -1740,7 +1740,7 @@ index 0000000000000..e34a1a4f9fa77
|
||||||
+}
|
+}
|
||||||
diff --git a/drivers/hid/ipts/hid.h b/drivers/hid/ipts/hid.h
|
diff --git a/drivers/hid/ipts/hid.h b/drivers/hid/ipts/hid.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..1ebe77447903a
|
index 000000000000..1ebe77447903
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/hid.h
|
+++ b/drivers/hid/ipts/hid.h
|
||||||
@@ -0,0 +1,24 @@
|
@@ -0,0 +1,24 @@
|
||||||
|
@ -1770,7 +1770,7 @@ index 0000000000000..1ebe77447903a
|
||||||
+#endif /* IPTS_HID_H */
|
+#endif /* IPTS_HID_H */
|
||||||
diff --git a/drivers/hid/ipts/main.c b/drivers/hid/ipts/main.c
|
diff --git a/drivers/hid/ipts/main.c b/drivers/hid/ipts/main.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..fb5b5c13ee3ea
|
index 000000000000..fb5b5c13ee3e
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/main.c
|
+++ b/drivers/hid/ipts/main.c
|
||||||
@@ -0,0 +1,126 @@
|
@@ -0,0 +1,126 @@
|
||||||
|
@ -1902,7 +1902,7 @@ index 0000000000000..fb5b5c13ee3ea
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
diff --git a/drivers/hid/ipts/mei.c b/drivers/hid/ipts/mei.c
|
diff --git a/drivers/hid/ipts/mei.c b/drivers/hid/ipts/mei.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..1e0395ceae4a4
|
index 000000000000..1e0395ceae4a
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/mei.c
|
+++ b/drivers/hid/ipts/mei.c
|
||||||
@@ -0,0 +1,188 @@
|
@@ -0,0 +1,188 @@
|
||||||
|
@ -2096,7 +2096,7 @@ index 0000000000000..1e0395ceae4a4
|
||||||
+}
|
+}
|
||||||
diff --git a/drivers/hid/ipts/mei.h b/drivers/hid/ipts/mei.h
|
diff --git a/drivers/hid/ipts/mei.h b/drivers/hid/ipts/mei.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..973bade6b0fdd
|
index 000000000000..973bade6b0fd
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/mei.h
|
+++ b/drivers/hid/ipts/mei.h
|
||||||
@@ -0,0 +1,66 @@
|
@@ -0,0 +1,66 @@
|
||||||
|
@ -2168,7 +2168,7 @@ index 0000000000000..973bade6b0fdd
|
||||||
+#endif /* IPTS_MEI_H */
|
+#endif /* IPTS_MEI_H */
|
||||||
diff --git a/drivers/hid/ipts/receiver.c b/drivers/hid/ipts/receiver.c
|
diff --git a/drivers/hid/ipts/receiver.c b/drivers/hid/ipts/receiver.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..ef66c3c9db807
|
index 000000000000..ef66c3c9db80
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/receiver.c
|
+++ b/drivers/hid/ipts/receiver.c
|
||||||
@@ -0,0 +1,250 @@
|
@@ -0,0 +1,250 @@
|
||||||
|
@ -2424,7 +2424,7 @@ index 0000000000000..ef66c3c9db807
|
||||||
+}
|
+}
|
||||||
diff --git a/drivers/hid/ipts/receiver.h b/drivers/hid/ipts/receiver.h
|
diff --git a/drivers/hid/ipts/receiver.h b/drivers/hid/ipts/receiver.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..3de7da62d40c1
|
index 000000000000..3de7da62d40c
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/receiver.h
|
+++ b/drivers/hid/ipts/receiver.h
|
||||||
@@ -0,0 +1,16 @@
|
@@ -0,0 +1,16 @@
|
||||||
|
@ -2446,7 +2446,7 @@ index 0000000000000..3de7da62d40c1
|
||||||
+#endif /* IPTS_RECEIVER_H */
|
+#endif /* IPTS_RECEIVER_H */
|
||||||
diff --git a/drivers/hid/ipts/resources.c b/drivers/hid/ipts/resources.c
|
diff --git a/drivers/hid/ipts/resources.c b/drivers/hid/ipts/resources.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..cc14653b2a9f5
|
index 000000000000..cc14653b2a9f
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/resources.c
|
+++ b/drivers/hid/ipts/resources.c
|
||||||
@@ -0,0 +1,131 @@
|
@@ -0,0 +1,131 @@
|
||||||
|
@ -2583,7 +2583,7 @@ index 0000000000000..cc14653b2a9f5
|
||||||
+}
|
+}
|
||||||
diff --git a/drivers/hid/ipts/resources.h b/drivers/hid/ipts/resources.h
|
diff --git a/drivers/hid/ipts/resources.h b/drivers/hid/ipts/resources.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..2068e13285f0e
|
index 000000000000..2068e13285f0
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/resources.h
|
+++ b/drivers/hid/ipts/resources.h
|
||||||
@@ -0,0 +1,41 @@
|
@@ -0,0 +1,41 @@
|
||||||
|
@ -2630,7 +2630,7 @@ index 0000000000000..2068e13285f0e
|
||||||
+#endif /* IPTS_RESOURCES_H */
|
+#endif /* IPTS_RESOURCES_H */
|
||||||
diff --git a/drivers/hid/ipts/spec-data.h b/drivers/hid/ipts/spec-data.h
|
diff --git a/drivers/hid/ipts/spec-data.h b/drivers/hid/ipts/spec-data.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..e8dd98895a7ee
|
index 000000000000..e8dd98895a7e
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/spec-data.h
|
+++ b/drivers/hid/ipts/spec-data.h
|
||||||
@@ -0,0 +1,100 @@
|
@@ -0,0 +1,100 @@
|
||||||
|
@ -2736,7 +2736,7 @@ index 0000000000000..e8dd98895a7ee
|
||||||
+#endif /* IPTS_SPEC_DATA_H */
|
+#endif /* IPTS_SPEC_DATA_H */
|
||||||
diff --git a/drivers/hid/ipts/spec-device.h b/drivers/hid/ipts/spec-device.h
|
diff --git a/drivers/hid/ipts/spec-device.h b/drivers/hid/ipts/spec-device.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..41845f9d90257
|
index 000000000000..41845f9d9025
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/spec-device.h
|
+++ b/drivers/hid/ipts/spec-device.h
|
||||||
@@ -0,0 +1,290 @@
|
@@ -0,0 +1,290 @@
|
||||||
|
@ -3032,7 +3032,7 @@ index 0000000000000..41845f9d90257
|
||||||
+#endif /* IPTS_SPEC_DEVICE_H */
|
+#endif /* IPTS_SPEC_DEVICE_H */
|
||||||
diff --git a/drivers/hid/ipts/spec-hid.h b/drivers/hid/ipts/spec-hid.h
|
diff --git a/drivers/hid/ipts/spec-hid.h b/drivers/hid/ipts/spec-hid.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..5a58d4a0a610f
|
index 000000000000..5a58d4a0a610
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/spec-hid.h
|
+++ b/drivers/hid/ipts/spec-hid.h
|
||||||
@@ -0,0 +1,34 @@
|
@@ -0,0 +1,34 @@
|
||||||
|
@ -3072,7 +3072,7 @@ index 0000000000000..5a58d4a0a610f
|
||||||
+#endif /* IPTS_SPEC_HID_H */
|
+#endif /* IPTS_SPEC_HID_H */
|
||||||
diff --git a/drivers/hid/ipts/thread.c b/drivers/hid/ipts/thread.c
|
diff --git a/drivers/hid/ipts/thread.c b/drivers/hid/ipts/thread.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..355e92bea26f8
|
index 000000000000..355e92bea26f
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/thread.c
|
+++ b/drivers/hid/ipts/thread.c
|
||||||
@@ -0,0 +1,84 @@
|
@@ -0,0 +1,84 @@
|
||||||
|
@ -3162,7 +3162,7 @@ index 0000000000000..355e92bea26f8
|
||||||
+}
|
+}
|
||||||
diff --git a/drivers/hid/ipts/thread.h b/drivers/hid/ipts/thread.h
|
diff --git a/drivers/hid/ipts/thread.h b/drivers/hid/ipts/thread.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..1f966b8b32c45
|
index 000000000000..1f966b8b32c4
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ipts/thread.h
|
+++ b/drivers/hid/ipts/thread.h
|
||||||
@@ -0,0 +1,59 @@
|
@@ -0,0 +1,59 @@
|
||||||
|
@ -3226,5 +3226,5 @@ index 0000000000000..1f966b8b32c45
|
||||||
+
|
+
|
||||||
+#endif /* IPTS_THREAD_H */
|
+#endif /* IPTS_THREAD_H */
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ Patchset: ithc
|
||||||
1 file changed, 16 insertions(+)
|
1 file changed, 16 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/iommu/intel/irq_remapping.c b/drivers/iommu/intel/irq_remapping.c
|
diff --git a/drivers/iommu/intel/irq_remapping.c b/drivers/iommu/intel/irq_remapping.c
|
||||||
index 29b9e55dcf26c..986e91c813ae1 100644
|
index 29b9e55dcf26..986e91c813ae 100644
|
||||||
--- a/drivers/iommu/intel/irq_remapping.c
|
--- a/drivers/iommu/intel/irq_remapping.c
|
||||||
+++ b/drivers/iommu/intel/irq_remapping.c
|
+++ b/drivers/iommu/intel/irq_remapping.c
|
||||||
@@ -386,6 +386,22 @@ static int set_msi_sid(struct irte *irte, struct pci_dev *dev)
|
@@ -386,6 +386,22 @@ static int set_msi_sid(struct irte *irte, struct pci_dev *dev)
|
||||||
|
@ -37,7 +37,7 @@ index 29b9e55dcf26c..986e91c813ae1 100644
|
||||||
* DMA alias provides us with a PCI device and alias. The only case
|
* DMA alias provides us with a PCI device and alias. The only case
|
||||||
* where the it will return an alias on a different bus than the
|
* where the it will return an alias on a different bus than the
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From f023c8e014f11338ea77f6473152d56b79092e01 Mon Sep 17 00:00:00 2001
|
From f023c8e014f11338ea77f6473152d56b79092e01 Mon Sep 17 00:00:00 2001
|
||||||
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
||||||
|
@ -72,7 +72,7 @@ Patchset: ithc
|
||||||
create mode 100644 drivers/hid/ithc/ithc.h
|
create mode 100644 drivers/hid/ithc/ithc.h
|
||||||
|
|
||||||
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
|
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
|
||||||
index 0b9d245d10e54..8ba1c309228be 100644
|
index 0b9d245d10e5..8ba1c309228b 100644
|
||||||
--- a/drivers/hid/Kconfig
|
--- a/drivers/hid/Kconfig
|
||||||
+++ b/drivers/hid/Kconfig
|
+++ b/drivers/hid/Kconfig
|
||||||
@@ -1347,4 +1347,6 @@ source "drivers/hid/surface-hid/Kconfig"
|
@@ -1347,4 +1347,6 @@ source "drivers/hid/surface-hid/Kconfig"
|
||||||
|
@ -83,7 +83,7 @@ index 0b9d245d10e54..8ba1c309228be 100644
|
||||||
+
|
+
|
||||||
endif # HID_SUPPORT
|
endif # HID_SUPPORT
|
||||||
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
|
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
|
||||||
index 2ef21b257d0b5..e94b79727b489 100644
|
index 2ef21b257d0b..e94b79727b48 100644
|
||||||
--- a/drivers/hid/Makefile
|
--- a/drivers/hid/Makefile
|
||||||
+++ b/drivers/hid/Makefile
|
+++ b/drivers/hid/Makefile
|
||||||
@@ -171,3 +171,4 @@ obj-$(CONFIG_AMD_SFH_HID) += amd-sfh-hid/
|
@@ -171,3 +171,4 @@ obj-$(CONFIG_AMD_SFH_HID) += amd-sfh-hid/
|
||||||
|
@ -93,7 +93,7 @@ index 2ef21b257d0b5..e94b79727b489 100644
|
||||||
+obj-$(CONFIG_HID_ITHC) += ithc/
|
+obj-$(CONFIG_HID_ITHC) += ithc/
|
||||||
diff --git a/drivers/hid/ithc/Kbuild b/drivers/hid/ithc/Kbuild
|
diff --git a/drivers/hid/ithc/Kbuild b/drivers/hid/ithc/Kbuild
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..aea83f2ac07b4
|
index 000000000000..aea83f2ac07b
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ithc/Kbuild
|
+++ b/drivers/hid/ithc/Kbuild
|
||||||
@@ -0,0 +1,6 @@
|
@@ -0,0 +1,6 @@
|
||||||
|
@ -105,7 +105,7 @@ index 0000000000000..aea83f2ac07b4
|
||||||
+
|
+
|
||||||
diff --git a/drivers/hid/ithc/Kconfig b/drivers/hid/ithc/Kconfig
|
diff --git a/drivers/hid/ithc/Kconfig b/drivers/hid/ithc/Kconfig
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..ede7130236096
|
index 000000000000..ede713023609
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ithc/Kconfig
|
+++ b/drivers/hid/ithc/Kconfig
|
||||||
@@ -0,0 +1,12 @@
|
@@ -0,0 +1,12 @@
|
||||||
|
@ -123,7 +123,7 @@ index 0000000000000..ede7130236096
|
||||||
+ module will be called ithc.
|
+ module will be called ithc.
|
||||||
diff --git a/drivers/hid/ithc/ithc-debug.c b/drivers/hid/ithc/ithc-debug.c
|
diff --git a/drivers/hid/ithc/ithc-debug.c b/drivers/hid/ithc/ithc-debug.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..57bf125c45bd5
|
index 000000000000..57bf125c45bd
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ithc/ithc-debug.c
|
+++ b/drivers/hid/ithc/ithc-debug.c
|
||||||
@@ -0,0 +1,96 @@
|
@@ -0,0 +1,96 @@
|
||||||
|
@ -225,7 +225,7 @@ index 0000000000000..57bf125c45bd5
|
||||||
+
|
+
|
||||||
diff --git a/drivers/hid/ithc/ithc-dma.c b/drivers/hid/ithc/ithc-dma.c
|
diff --git a/drivers/hid/ithc/ithc-dma.c b/drivers/hid/ithc/ithc-dma.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..7e89b3496918d
|
index 000000000000..7e89b3496918
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ithc/ithc-dma.c
|
+++ b/drivers/hid/ithc/ithc-dma.c
|
||||||
@@ -0,0 +1,258 @@
|
@@ -0,0 +1,258 @@
|
||||||
|
@ -489,7 +489,7 @@ index 0000000000000..7e89b3496918d
|
||||||
+
|
+
|
||||||
diff --git a/drivers/hid/ithc/ithc-dma.h b/drivers/hid/ithc/ithc-dma.h
|
diff --git a/drivers/hid/ithc/ithc-dma.h b/drivers/hid/ithc/ithc-dma.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..d9f2c19a13f3a
|
index 000000000000..d9f2c19a13f3
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ithc/ithc-dma.h
|
+++ b/drivers/hid/ithc/ithc-dma.h
|
||||||
@@ -0,0 +1,67 @@
|
@@ -0,0 +1,67 @@
|
||||||
|
@ -562,7 +562,7 @@ index 0000000000000..d9f2c19a13f3a
|
||||||
+
|
+
|
||||||
diff --git a/drivers/hid/ithc/ithc-main.c b/drivers/hid/ithc/ithc-main.c
|
diff --git a/drivers/hid/ithc/ithc-main.c b/drivers/hid/ithc/ithc-main.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..09512b9cb4d31
|
index 000000000000..09512b9cb4d3
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ithc/ithc-main.c
|
+++ b/drivers/hid/ithc/ithc-main.c
|
||||||
@@ -0,0 +1,534 @@
|
@@ -0,0 +1,534 @@
|
||||||
|
@ -1102,7 +1102,7 @@ index 0000000000000..09512b9cb4d31
|
||||||
+
|
+
|
||||||
diff --git a/drivers/hid/ithc/ithc-regs.c b/drivers/hid/ithc/ithc-regs.c
|
diff --git a/drivers/hid/ithc/ithc-regs.c b/drivers/hid/ithc/ithc-regs.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..85d567b05761f
|
index 000000000000..85d567b05761
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ithc/ithc-regs.c
|
+++ b/drivers/hid/ithc/ithc-regs.c
|
||||||
@@ -0,0 +1,64 @@
|
@@ -0,0 +1,64 @@
|
||||||
|
@ -1172,7 +1172,7 @@ index 0000000000000..85d567b05761f
|
||||||
+
|
+
|
||||||
diff --git a/drivers/hid/ithc/ithc-regs.h b/drivers/hid/ithc/ithc-regs.h
|
diff --git a/drivers/hid/ithc/ithc-regs.h b/drivers/hid/ithc/ithc-regs.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..1a96092ed7eed
|
index 000000000000..1a96092ed7ee
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ithc/ithc-regs.h
|
+++ b/drivers/hid/ithc/ithc-regs.h
|
||||||
@@ -0,0 +1,186 @@
|
@@ -0,0 +1,186 @@
|
||||||
|
@ -1364,7 +1364,7 @@ index 0000000000000..1a96092ed7eed
|
||||||
+
|
+
|
||||||
diff --git a/drivers/hid/ithc/ithc.h b/drivers/hid/ithc/ithc.h
|
diff --git a/drivers/hid/ithc/ithc.h b/drivers/hid/ithc/ithc.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..6a9b0d480bc15
|
index 000000000000..6a9b0d480bc1
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hid/ithc/ithc.h
|
+++ b/drivers/hid/ithc/ithc.h
|
||||||
@@ -0,0 +1,60 @@
|
@@ -0,0 +1,60 @@
|
||||||
|
@ -1429,7 +1429,7 @@ index 0000000000000..6a9b0d480bc15
|
||||||
+void ithc_log_regs(struct ithc *ithc);
|
+void ithc_log_regs(struct ithc *ithc);
|
||||||
+
|
+
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 37dc17be7687c220d8c84f3ed200fa4fedeafb04 Mon Sep 17 00:00:00 2001
|
From 37dc17be7687c220d8c84f3ed200fa4fedeafb04 Mon Sep 17 00:00:00 2001
|
||||||
From: quo <tuple@list.ru>
|
From: quo <tuple@list.ru>
|
||||||
|
@ -1456,7 +1456,7 @@ Patchset: ithc
|
||||||
7 files changed, 623 insertions(+), 236 deletions(-)
|
7 files changed, 623 insertions(+), 236 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/hid/ithc/ithc-debug.c b/drivers/hid/ithc/ithc-debug.c
|
diff --git a/drivers/hid/ithc/ithc-debug.c b/drivers/hid/ithc/ithc-debug.c
|
||||||
index 57bf125c45bd5..1f1f1e33f2e5a 100644
|
index 57bf125c45bd..1f1f1e33f2e5 100644
|
||||||
--- a/drivers/hid/ithc/ithc-debug.c
|
--- a/drivers/hid/ithc/ithc-debug.c
|
||||||
+++ b/drivers/hid/ithc/ithc-debug.c
|
+++ b/drivers/hid/ithc/ithc-debug.c
|
||||||
@@ -1,10 +1,14 @@
|
@@ -1,10 +1,14 @@
|
||||||
|
@ -1613,7 +1613,7 @@ index 57bf125c45bd5..1f1f1e33f2e5a 100644
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
diff --git a/drivers/hid/ithc/ithc-dma.c b/drivers/hid/ithc/ithc-dma.c
|
diff --git a/drivers/hid/ithc/ithc-dma.c b/drivers/hid/ithc/ithc-dma.c
|
||||||
index 7e89b3496918d..ffb8689b8a780 100644
|
index 7e89b3496918..ffb8689b8a78 100644
|
||||||
--- a/drivers/hid/ithc/ithc-dma.c
|
--- a/drivers/hid/ithc/ithc-dma.c
|
||||||
+++ b/drivers/hid/ithc/ithc-dma.c
|
+++ b/drivers/hid/ithc/ithc-dma.c
|
||||||
@@ -1,59 +1,91 @@
|
@@ -1,59 +1,91 @@
|
||||||
|
@ -2031,7 +2031,7 @@ index 7e89b3496918d..ffb8689b8a780 100644
|
||||||
int ret = ithc_dma_tx_unlocked(ithc, cmdcode, datasize, data);
|
int ret = ithc_dma_tx_unlocked(ithc, cmdcode, datasize, data);
|
||||||
mutex_unlock(&ithc->dma_tx.mutex);
|
mutex_unlock(&ithc->dma_tx.mutex);
|
||||||
diff --git a/drivers/hid/ithc/ithc-dma.h b/drivers/hid/ithc/ithc-dma.h
|
diff --git a/drivers/hid/ithc/ithc-dma.h b/drivers/hid/ithc/ithc-dma.h
|
||||||
index d9f2c19a13f3a..93652e4476bf8 100644
|
index d9f2c19a13f3..93652e4476bf 100644
|
||||||
--- a/drivers/hid/ithc/ithc-dma.h
|
--- a/drivers/hid/ithc/ithc-dma.h
|
||||||
+++ b/drivers/hid/ithc/ithc-dma.h
|
+++ b/drivers/hid/ithc/ithc-dma.h
|
||||||
@@ -1,3 +1,5 @@
|
@@ -1,3 +1,5 @@
|
||||||
|
@ -2050,7 +2050,7 @@ index d9f2c19a13f3a..93652e4476bf8 100644
|
||||||
int ithc_dma_tx_init(struct ithc *ithc);
|
int ithc_dma_tx_init(struct ithc *ithc);
|
||||||
int ithc_dma_rx(struct ithc *ithc, u8 channel);
|
int ithc_dma_rx(struct ithc *ithc, u8 channel);
|
||||||
diff --git a/drivers/hid/ithc/ithc-main.c b/drivers/hid/ithc/ithc-main.c
|
diff --git a/drivers/hid/ithc/ithc-main.c b/drivers/hid/ithc/ithc-main.c
|
||||||
index 09512b9cb4d31..87ed4aa70fda0 100644
|
index 09512b9cb4d3..87ed4aa70fda 100644
|
||||||
--- a/drivers/hid/ithc/ithc-main.c
|
--- a/drivers/hid/ithc/ithc-main.c
|
||||||
+++ b/drivers/hid/ithc/ithc-main.c
|
+++ b/drivers/hid/ithc/ithc-main.c
|
||||||
@@ -1,3 +1,5 @@
|
@@ -1,3 +1,5 @@
|
||||||
|
@ -2799,7 +2799,7 @@ index 09512b9cb4d31..87ed4aa70fda0 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/drivers/hid/ithc/ithc-regs.c b/drivers/hid/ithc/ithc-regs.c
|
diff --git a/drivers/hid/ithc/ithc-regs.c b/drivers/hid/ithc/ithc-regs.c
|
||||||
index 85d567b05761f..e058721886e37 100644
|
index 85d567b05761..e058721886e3 100644
|
||||||
--- a/drivers/hid/ithc/ithc-regs.c
|
--- a/drivers/hid/ithc/ithc-regs.c
|
||||||
+++ b/drivers/hid/ithc/ithc-regs.c
|
+++ b/drivers/hid/ithc/ithc-regs.c
|
||||||
@@ -1,63 +1,95 @@
|
@@ -1,63 +1,95 @@
|
||||||
|
@ -2917,7 +2917,7 @@ index 85d567b05761f..e058721886e37 100644
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
diff --git a/drivers/hid/ithc/ithc-regs.h b/drivers/hid/ithc/ithc-regs.h
|
diff --git a/drivers/hid/ithc/ithc-regs.h b/drivers/hid/ithc/ithc-regs.h
|
||||||
index 1a96092ed7eed..d4007d9e2bacc 100644
|
index 1a96092ed7ee..d4007d9e2bac 100644
|
||||||
--- a/drivers/hid/ithc/ithc-regs.h
|
--- a/drivers/hid/ithc/ithc-regs.h
|
||||||
+++ b/drivers/hid/ithc/ithc-regs.h
|
+++ b/drivers/hid/ithc/ithc-regs.h
|
||||||
@@ -1,3 +1,5 @@
|
@@ -1,3 +1,5 @@
|
||||||
|
@ -2977,7 +2977,7 @@ index 1a96092ed7eed..d4007d9e2bacc 100644
|
||||||
u32 _unknown_34; // 34 = 0x0404035e (u8,u8,u8,u8 = version?)
|
u32 _unknown_34; // 34 = 0x0404035e (u8,u8,u8,u8 = version?)
|
||||||
u32 _unknown_38; // 38 = 0x000001c0 (0x000001c1 after DMA_RX_CODE_RESET)
|
u32 _unknown_38; // 38 = 0x000001c0 (0x000001c1 after DMA_RX_CODE_RESET)
|
||||||
diff --git a/drivers/hid/ithc/ithc.h b/drivers/hid/ithc/ithc.h
|
diff --git a/drivers/hid/ithc/ithc.h b/drivers/hid/ithc/ithc.h
|
||||||
index 6a9b0d480bc15..028e55a4ec53e 100644
|
index 6a9b0d480bc1..028e55a4ec53 100644
|
||||||
--- a/drivers/hid/ithc/ithc.h
|
--- a/drivers/hid/ithc/ithc.h
|
||||||
+++ b/drivers/hid/ithc/ithc.h
|
+++ b/drivers/hid/ithc/ithc.h
|
||||||
@@ -1,3 +1,5 @@
|
@@ -1,3 +1,5 @@
|
||||||
|
@ -3020,5 +3020,5 @@ index 6a9b0d480bc15..028e55a4ec53e 100644
|
||||||
void ithc_log_regs(struct ithc *ithc);
|
void ithc_log_regs(struct ithc *ithc);
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ Patchset: surface-sam
|
||||||
1 file changed, 3 insertions(+)
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
|
diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
index 0fe5be5396525..0d8c8395c5886 100644
|
index 0fe5be539652..0d8c8395c588 100644
|
||||||
--- a/drivers/platform/surface/surface_aggregator_registry.c
|
--- a/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
+++ b/drivers/platform/surface/surface_aggregator_registry.c
|
+++ b/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
@@ -367,6 +367,9 @@ static const struct acpi_device_id ssam_platform_hub_match[] = {
|
@@ -367,6 +367,9 @@ static const struct acpi_device_id ssam_platform_hub_match[] = {
|
||||||
|
@ -29,7 +29,7 @@ index 0fe5be5396525..0d8c8395c5886 100644
|
||||||
{ "MSHW0123", (unsigned long)ssam_node_group_sls },
|
{ "MSHW0123", (unsigned long)ssam_node_group_sls },
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 04a113aa335b566860380818090ed0ce606377c0 Mon Sep 17 00:00:00 2001
|
From 04a113aa335b566860380818090ed0ce606377c0 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
|
@ -49,7 +49,7 @@ Patchset: surface-sam
|
||||||
1 file changed, 21 insertions(+), 4 deletions(-)
|
1 file changed, 21 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
|
diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
index 0d8c8395c5886..530db4db71aba 100644
|
index 0d8c8395c588..530db4db71ab 100644
|
||||||
--- a/drivers/platform/surface/surface_aggregator_registry.c
|
--- a/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
+++ b/drivers/platform/surface/surface_aggregator_registry.c
|
+++ b/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
@@ -247,8 +247,8 @@ static const struct software_node *ssam_node_group_sl5[] = {
|
@@ -247,8 +247,8 @@ static const struct software_node *ssam_node_group_sl5[] = {
|
||||||
|
@ -99,7 +99,7 @@ index 0d8c8395c5886..530db4db71aba 100644
|
||||||
{ },
|
{ },
|
||||||
};
|
};
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 31253c1714eef54d147ff70886be3e0b86301656 Mon Sep 17 00:00:00 2001
|
From 31253c1714eef54d147ff70886be3e0b86301656 Mon Sep 17 00:00:00 2001
|
||||||
From: Ivor Wanders <ivor@iwanders.net>
|
From: Ivor Wanders <ivor@iwanders.net>
|
||||||
|
@ -119,7 +119,7 @@ Patchset: surface-sam
|
||||||
1 file changed, 7 insertions(+)
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
|
diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
index 530db4db71aba..b0db25886c996 100644
|
index 530db4db71ab..b0db25886c99 100644
|
||||||
--- a/drivers/platform/surface/surface_aggregator_registry.c
|
--- a/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
+++ b/drivers/platform/surface/surface_aggregator_registry.c
|
+++ b/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
@@ -74,6 +74,12 @@ static const struct software_node ssam_node_tmp_pprof = {
|
@@ -74,6 +74,12 @@ static const struct software_node ssam_node_tmp_pprof = {
|
||||||
|
@ -144,7 +144,7 @@ index 530db4db71aba..b0db25886c996 100644
|
||||||
&ssam_node_hid_kip_keyboard,
|
&ssam_node_hid_kip_keyboard,
|
||||||
&ssam_node_hid_kip_penstash,
|
&ssam_node_hid_kip_penstash,
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From ba442037211d245c84dcd4cd1ec81a09468305e6 Mon Sep 17 00:00:00 2001
|
From ba442037211d245c84dcd4cd1ec81a09468305e6 Mon Sep 17 00:00:00 2001
|
||||||
From: Ivor Wanders <ivor@iwanders.net>
|
From: Ivor Wanders <ivor@iwanders.net>
|
||||||
|
@ -170,7 +170,7 @@ Patchset: surface-sam
|
||||||
create mode 100644 drivers/hwmon/surface_fan.c
|
create mode 100644 drivers/hwmon/surface_fan.c
|
||||||
|
|
||||||
diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst
|
diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst
|
||||||
index 88dadea85cfcd..266edff78972d 100644
|
index 88dadea85cfc..266edff78972 100644
|
||||||
--- a/Documentation/hwmon/index.rst
|
--- a/Documentation/hwmon/index.rst
|
||||||
+++ b/Documentation/hwmon/index.rst
|
+++ b/Documentation/hwmon/index.rst
|
||||||
@@ -202,6 +202,7 @@ Hardware Monitoring Kernel Drivers
|
@@ -202,6 +202,7 @@ Hardware Monitoring Kernel Drivers
|
||||||
|
@ -183,7 +183,7 @@ index 88dadea85cfcd..266edff78972d 100644
|
||||||
tc74
|
tc74
|
||||||
diff --git a/Documentation/hwmon/surface_fan.rst b/Documentation/hwmon/surface_fan.rst
|
diff --git a/Documentation/hwmon/surface_fan.rst b/Documentation/hwmon/surface_fan.rst
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..07942574c4f0c
|
index 000000000000..07942574c4f0
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/Documentation/hwmon/surface_fan.rst
|
+++ b/Documentation/hwmon/surface_fan.rst
|
||||||
@@ -0,0 +1,25 @@
|
@@ -0,0 +1,25 @@
|
||||||
|
@ -213,7 +213,7 @@ index 0000000000000..07942574c4f0c
|
||||||
+``fan1_input`` RO Current fan speed in RPM.
|
+``fan1_input`` RO Current fan speed in RPM.
|
||||||
+======================= ======= =========================================
|
+======================= ======= =========================================
|
||||||
diff --git a/MAINTAINERS b/MAINTAINERS
|
diff --git a/MAINTAINERS b/MAINTAINERS
|
||||||
index dd5de540ec0b5..63c3f93279277 100644
|
index dd5de540ec0b..63c3f9327927 100644
|
||||||
--- a/MAINTAINERS
|
--- a/MAINTAINERS
|
||||||
+++ b/MAINTAINERS
|
+++ b/MAINTAINERS
|
||||||
@@ -14203,6 +14203,14 @@ F: Documentation/driver-api/surface_aggregator/clients/dtx.rst
|
@@ -14203,6 +14203,14 @@ F: Documentation/driver-api/surface_aggregator/clients/dtx.rst
|
||||||
|
@ -232,7 +232,7 @@ index dd5de540ec0b5..63c3f93279277 100644
|
||||||
M: Maximilian Luz <luzmaximilian@gmail.com>
|
M: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
L: platform-driver-x86@vger.kernel.org
|
L: platform-driver-x86@vger.kernel.org
|
||||||
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
|
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
|
||||||
index ec38c88921589..b5267a2fbe5f3 100644
|
index ec38c8892158..b5267a2fbe5f 100644
|
||||||
--- a/drivers/hwmon/Kconfig
|
--- a/drivers/hwmon/Kconfig
|
||||||
+++ b/drivers/hwmon/Kconfig
|
+++ b/drivers/hwmon/Kconfig
|
||||||
@@ -1961,6 +1961,19 @@ config SENSORS_SFCTEMP
|
@@ -1961,6 +1961,19 @@ config SENSORS_SFCTEMP
|
||||||
|
@ -256,7 +256,7 @@ index ec38c88921589..b5267a2fbe5f3 100644
|
||||||
tristate "Texas Instruments ADC128D818"
|
tristate "Texas Instruments ADC128D818"
|
||||||
depends on I2C
|
depends on I2C
|
||||||
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
|
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
|
||||||
index 4ac9452b54304..208f7345f296e 100644
|
index 4ac9452b5430..208f7345f296 100644
|
||||||
--- a/drivers/hwmon/Makefile
|
--- a/drivers/hwmon/Makefile
|
||||||
+++ b/drivers/hwmon/Makefile
|
+++ b/drivers/hwmon/Makefile
|
||||||
@@ -198,6 +198,7 @@ obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47m1.o
|
@@ -198,6 +198,7 @@ obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47m1.o
|
||||||
|
@ -269,7 +269,7 @@ index 4ac9452b54304..208f7345f296e 100644
|
||||||
obj-$(CONFIG_SENSORS_TC74) += tc74.o
|
obj-$(CONFIG_SENSORS_TC74) += tc74.o
|
||||||
diff --git a/drivers/hwmon/surface_fan.c b/drivers/hwmon/surface_fan.c
|
diff --git a/drivers/hwmon/surface_fan.c b/drivers/hwmon/surface_fan.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..7c2e3ae3eb40e
|
index 000000000000..7c2e3ae3eb40
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hwmon/surface_fan.c
|
+++ b/drivers/hwmon/surface_fan.c
|
||||||
@@ -0,0 +1,93 @@
|
@@ -0,0 +1,93 @@
|
||||||
|
@ -367,7 +367,7 @@ index 0000000000000..7c2e3ae3eb40e
|
||||||
+MODULE_DESCRIPTION("Fan Driver for Surface System Aggregator Module");
|
+MODULE_DESCRIPTION("Fan Driver for Surface System Aggregator Module");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From e44dd763f976360449d9f15ed2bb756cc18d843b Mon Sep 17 00:00:00 2001
|
From e44dd763f976360449d9f15ed2bb756cc18d843b Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
|
@ -391,7 +391,7 @@ Patchset: surface-sam
|
||||||
create mode 100644 drivers/hwmon/surface_temp.c
|
create mode 100644 drivers/hwmon/surface_temp.c
|
||||||
|
|
||||||
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
|
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
|
||||||
index b5267a2fbe5f3..2eedbe85d18ab 100644
|
index b5267a2fbe5f..2eedbe85d18a 100644
|
||||||
--- a/drivers/hwmon/Kconfig
|
--- a/drivers/hwmon/Kconfig
|
||||||
+++ b/drivers/hwmon/Kconfig
|
+++ b/drivers/hwmon/Kconfig
|
||||||
@@ -1974,6 +1974,16 @@ config SENSORS_SURFACE_FAN
|
@@ -1974,6 +1974,16 @@ config SENSORS_SURFACE_FAN
|
||||||
|
@ -412,7 +412,7 @@ index b5267a2fbe5f3..2eedbe85d18ab 100644
|
||||||
tristate "Texas Instruments ADC128D818"
|
tristate "Texas Instruments ADC128D818"
|
||||||
depends on I2C
|
depends on I2C
|
||||||
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
|
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
|
||||||
index 208f7345f296e..310d7a2e0f069 100644
|
index 208f7345f296..310d7a2e0f06 100644
|
||||||
--- a/drivers/hwmon/Makefile
|
--- a/drivers/hwmon/Makefile
|
||||||
+++ b/drivers/hwmon/Makefile
|
+++ b/drivers/hwmon/Makefile
|
||||||
@@ -199,6 +199,7 @@ obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
|
@@ -199,6 +199,7 @@ obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
|
||||||
|
@ -425,7 +425,7 @@ index 208f7345f296e..310d7a2e0f069 100644
|
||||||
obj-$(CONFIG_SENSORS_TC74) += tc74.o
|
obj-$(CONFIG_SENSORS_TC74) += tc74.o
|
||||||
diff --git a/drivers/hwmon/surface_temp.c b/drivers/hwmon/surface_temp.c
|
diff --git a/drivers/hwmon/surface_temp.c b/drivers/hwmon/surface_temp.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..48c3e826713f6
|
index 000000000000..48c3e826713f
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/hwmon/surface_temp.c
|
+++ b/drivers/hwmon/surface_temp.c
|
||||||
@@ -0,0 +1,165 @@
|
@@ -0,0 +1,165 @@
|
||||||
|
@ -595,7 +595,7 @@ index 0000000000000..48c3e826713f6
|
||||||
+MODULE_DESCRIPTION("Thermal sensor subsystem driver for Surface System Aggregator Module");
|
+MODULE_DESCRIPTION("Thermal sensor subsystem driver for Surface System Aggregator Module");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 41399077b077cff19e9b9133955ed81b6d7aa527 Mon Sep 17 00:00:00 2001
|
From 41399077b077cff19e9b9133955ed81b6d7aa527 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
|
@ -615,7 +615,7 @@ Patchset: surface-sam
|
||||||
1 file changed, 96 insertions(+), 17 deletions(-)
|
1 file changed, 96 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/hwmon/surface_temp.c b/drivers/hwmon/surface_temp.c
|
diff --git a/drivers/hwmon/surface_temp.c b/drivers/hwmon/surface_temp.c
|
||||||
index 48c3e826713f6..4c08926139dbf 100644
|
index 48c3e826713f..4c08926139db 100644
|
||||||
--- a/drivers/hwmon/surface_temp.c
|
--- a/drivers/hwmon/surface_temp.c
|
||||||
+++ b/drivers/hwmon/surface_temp.c
|
+++ b/drivers/hwmon/surface_temp.c
|
||||||
@@ -17,6 +17,27 @@
|
@@ -17,6 +17,27 @@
|
||||||
|
@ -790,7 +790,7 @@ index 48c3e826713f6..4c08926139dbf 100644
|
||||||
"surface_thermal", ssam_temp, &ssam_temp_hwmon_chip_info,
|
"surface_thermal", ssam_temp, &ssam_temp_hwmon_chip_info,
|
||||||
NULL);
|
NULL);
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 37894568dd6a0bfb6422ce7c18df757fcb449512 Mon Sep 17 00:00:00 2001
|
From 37894568dd6a0bfb6422ce7c18df757fcb449512 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
|
@ -808,7 +808,7 @@ Patchset: surface-sam
|
||||||
1 file changed, 7 insertions(+)
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
|
diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
index b0db25886c996..797802d16f319 100644
|
index b0db25886c99..797802d16f31 100644
|
||||||
--- a/drivers/platform/surface/surface_aggregator_registry.c
|
--- a/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
+++ b/drivers/platform/surface/surface_aggregator_registry.c
|
+++ b/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
@@ -74,6 +74,12 @@ static const struct software_node ssam_node_tmp_pprof = {
|
@@ -74,6 +74,12 @@ static const struct software_node ssam_node_tmp_pprof = {
|
||||||
|
@ -833,5 +833,331 @@ index b0db25886c996..797802d16f319 100644
|
||||||
&ssam_node_pos_tablet_switch,
|
&ssam_node_pos_tablet_switch,
|
||||||
&ssam_node_hid_kip_keyboard,
|
&ssam_node_hid_kip_keyboard,
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
From b4fd0fc401f445f3946a53e94a94d8bc8386a91f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ivor Wanders <ivor@iwanders.net>
|
||||||
|
Date: Sat, 16 Dec 2023 15:56:39 -0500
|
||||||
|
Subject: [PATCH] platform/surface: platform_profile: add fan profile switching
|
||||||
|
|
||||||
|
Change naming from tmp to platform profile to clarify the module may
|
||||||
|
interact with both the TMP and FAN subystems. Add functionality that
|
||||||
|
switches the fan profile when the platform profile is changed.
|
||||||
|
|
||||||
|
Signed-off-by: Ivor Wanders <ivor@iwanders.net>
|
||||||
|
---
|
||||||
|
.../surface/surface_aggregator_registry.c | 38 +++++---
|
||||||
|
.../surface/surface_platform_profile.c | 86 ++++++++++++++++---
|
||||||
|
2 files changed, 100 insertions(+), 24 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
|
index 797802d16f31..7540d8736664 100644
|
||||||
|
--- a/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
|
+++ b/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
|
@@ -68,8 +68,8 @@ static const struct software_node ssam_node_bat_sb3base = {
|
||||||
|
.parent = &ssam_node_hub_base,
|
||||||
|
};
|
||||||
|
|
||||||
|
-/* Platform profile / performance-mode device. */
|
||||||
|
-static const struct software_node ssam_node_tmp_pprof = {
|
||||||
|
+/* Platform profile / performance-mode device without a fan. */
|
||||||
|
+static const struct software_node ssam_node_tmp_perf_profile = {
|
||||||
|
.name = "ssam:01:03:01:00:01",
|
||||||
|
.parent = &ssam_node_root,
|
||||||
|
};
|
||||||
|
@@ -86,6 +86,20 @@ static const struct software_node ssam_node_fan_speed = {
|
||||||
|
.parent = &ssam_node_root,
|
||||||
|
};
|
||||||
|
|
||||||
|
+/* Platform profile / performance-mode device with a fan, such that
|
||||||
|
+ * the fan controller profile can also be switched.
|
||||||
|
+ */
|
||||||
|
+static const struct property_entry ssam_node_tmp_perf_profile_has_fan[] = {
|
||||||
|
+ PROPERTY_ENTRY_BOOL("has_fan"),
|
||||||
|
+ { }
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static const struct software_node ssam_node_tmp_perf_profile_with_fan = {
|
||||||
|
+ .name = "ssam:01:03:01:00:01",
|
||||||
|
+ .parent = &ssam_node_root,
|
||||||
|
+ .properties = ssam_node_tmp_perf_profile_has_fan,
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
/* Tablet-mode switch via KIP subsystem. */
|
||||||
|
static const struct software_node ssam_node_kip_tablet_switch = {
|
||||||
|
.name = "ssam:01:0e:01:00:01",
|
||||||
|
@@ -214,7 +228,7 @@ static const struct software_node ssam_node_pos_tablet_switch = {
|
||||||
|
*/
|
||||||
|
static const struct software_node *ssam_node_group_gen5[] = {
|
||||||
|
&ssam_node_root,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
NULL,
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -225,7 +239,7 @@ static const struct software_node *ssam_node_group_sb3[] = {
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
&ssam_node_bat_sb3base,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
&ssam_node_bas_dtx,
|
||||||
|
&ssam_node_hid_base_keyboard,
|
||||||
|
&ssam_node_hid_base_touchpad,
|
||||||
|
@@ -239,7 +253,7 @@ static const struct software_node *ssam_node_group_sl3[] = {
|
||||||
|
&ssam_node_root,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
&ssam_node_hid_main_keyboard,
|
||||||
|
&ssam_node_hid_main_touchpad,
|
||||||
|
&ssam_node_hid_main_iid5,
|
||||||
|
@@ -251,7 +265,7 @@ static const struct software_node *ssam_node_group_sl5[] = {
|
||||||
|
&ssam_node_root,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
&ssam_node_hid_main_keyboard,
|
||||||
|
&ssam_node_hid_main_touchpad,
|
||||||
|
&ssam_node_hid_main_iid5,
|
||||||
|
@@ -264,7 +278,7 @@ static const struct software_node *ssam_node_group_sls1[] = {
|
||||||
|
&ssam_node_root,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
&ssam_node_pos_tablet_switch,
|
||||||
|
&ssam_node_hid_sam_keyboard,
|
||||||
|
&ssam_node_hid_sam_penstash,
|
||||||
|
@@ -280,7 +294,7 @@ static const struct software_node *ssam_node_group_sls2[] = {
|
||||||
|
&ssam_node_root,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
&ssam_node_pos_tablet_switch,
|
||||||
|
&ssam_node_hid_sam_keyboard,
|
||||||
|
&ssam_node_hid_sam_penstash,
|
||||||
|
@@ -294,7 +308,7 @@ static const struct software_node *ssam_node_group_slg1[] = {
|
||||||
|
&ssam_node_root,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
NULL,
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -303,7 +317,7 @@ static const struct software_node *ssam_node_group_sp7[] = {
|
||||||
|
&ssam_node_root,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
NULL,
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -313,7 +327,7 @@ static const struct software_node *ssam_node_group_sp8[] = {
|
||||||
|
&ssam_node_hub_kip,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
&ssam_node_kip_tablet_switch,
|
||||||
|
&ssam_node_hid_kip_keyboard,
|
||||||
|
&ssam_node_hid_kip_penstash,
|
||||||
|
@@ -330,7 +344,7 @@ static const struct software_node *ssam_node_group_sp9[] = {
|
||||||
|
&ssam_node_hub_kip,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile_with_fan,
|
||||||
|
&ssam_node_tmp_sensors,
|
||||||
|
&ssam_node_fan_speed,
|
||||||
|
&ssam_node_pos_tablet_switch,
|
||||||
|
diff --git a/drivers/platform/surface/surface_platform_profile.c b/drivers/platform/surface/surface_platform_profile.c
|
||||||
|
index a5a3941b3f43..e54d0a8f7daa 100644
|
||||||
|
--- a/drivers/platform/surface/surface_platform_profile.c
|
||||||
|
+++ b/drivers/platform/surface/surface_platform_profile.c
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Surface Platform Profile / Performance Mode driver for Surface System
|
||||||
|
- * Aggregator Module (thermal subsystem).
|
||||||
|
+ * Aggregator Module (thermal and fan subsystem).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2021-2022 Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
|
*/
|
||||||
|
@@ -14,6 +14,7 @@
|
||||||
|
|
||||||
|
#include <linux/surface_aggregator/device.h>
|
||||||
|
|
||||||
|
+// Enum for the platform performance profile sent to the TMP module.
|
||||||
|
enum ssam_tmp_profile {
|
||||||
|
SSAM_TMP_PROFILE_NORMAL = 1,
|
||||||
|
SSAM_TMP_PROFILE_BATTERY_SAVER = 2,
|
||||||
|
@@ -21,15 +22,26 @@ enum ssam_tmp_profile {
|
||||||
|
SSAM_TMP_PROFILE_BEST_PERFORMANCE = 4,
|
||||||
|
};
|
||||||
|
|
||||||
|
+// Enum for the fan profile sent to the FAN module. This fan profile is
|
||||||
|
+// only sent to the EC if the 'has_fan' property is set. The integers are
|
||||||
|
+// not a typo, they differ from the performance profile indices.
|
||||||
|
+enum ssam_fan_profile {
|
||||||
|
+ SSAM_FAN_PROFILE_NORMAL = 2,
|
||||||
|
+ SSAM_FAN_PROFILE_BATTERY_SAVER = 1,
|
||||||
|
+ SSAM_FAN_PROFILE_BETTER_PERFORMANCE = 3,
|
||||||
|
+ SSAM_FAN_PROFILE_BEST_PERFORMANCE = 4,
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
struct ssam_tmp_profile_info {
|
||||||
|
__le32 profile;
|
||||||
|
__le16 unknown1;
|
||||||
|
__le16 unknown2;
|
||||||
|
} __packed;
|
||||||
|
|
||||||
|
-struct ssam_tmp_profile_device {
|
||||||
|
+struct ssam_platform_profile_device {
|
||||||
|
struct ssam_device *sdev;
|
||||||
|
struct platform_profile_handler handler;
|
||||||
|
+ bool has_fan;
|
||||||
|
};
|
||||||
|
|
||||||
|
SSAM_DEFINE_SYNC_REQUEST_CL_R(__ssam_tmp_profile_get, struct ssam_tmp_profile_info, {
|
||||||
|
@@ -42,6 +54,13 @@ SSAM_DEFINE_SYNC_REQUEST_CL_W(__ssam_tmp_profile_set, __le32, {
|
||||||
|
.command_id = 0x03,
|
||||||
|
});
|
||||||
|
|
||||||
|
+SSAM_DEFINE_SYNC_REQUEST_W(__ssam_fan_profile_set, char, {
|
||||||
|
+ .target_category = SSAM_SSH_TC_FAN,
|
||||||
|
+ .target_id = SSAM_SSH_TID_SAM,
|
||||||
|
+ .command_id = 0x0e,
|
||||||
|
+ .instance_id = 0x01,
|
||||||
|
+});
|
||||||
|
+
|
||||||
|
static int ssam_tmp_profile_get(struct ssam_device *sdev, enum ssam_tmp_profile *p)
|
||||||
|
{
|
||||||
|
struct ssam_tmp_profile_info info;
|
||||||
|
@@ -62,7 +81,14 @@ static int ssam_tmp_profile_set(struct ssam_device *sdev, enum ssam_tmp_profile
|
||||||
|
return ssam_retry(__ssam_tmp_profile_set, sdev, &profile_le);
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int convert_ssam_to_profile(struct ssam_device *sdev, enum ssam_tmp_profile p)
|
||||||
|
+static int ssam_fan_profile_set(struct ssam_device *sdev, enum ssam_fan_profile p)
|
||||||
|
+{
|
||||||
|
+ char profile = p;
|
||||||
|
+
|
||||||
|
+ return ssam_retry(__ssam_fan_profile_set, sdev->ctrl, &profile);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int convert_ssam_tmp_to_profile(struct ssam_device *sdev, enum ssam_tmp_profile p)
|
||||||
|
{
|
||||||
|
switch (p) {
|
||||||
|
case SSAM_TMP_PROFILE_NORMAL:
|
||||||
|
@@ -83,7 +109,8 @@ static int convert_ssam_to_profile(struct ssam_device *sdev, enum ssam_tmp_profi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int convert_profile_to_ssam(struct ssam_device *sdev, enum platform_profile_option p)
|
||||||
|
+
|
||||||
|
+static int convert_profile_to_ssam_tmp(struct ssam_device *sdev, enum platform_profile_option p)
|
||||||
|
{
|
||||||
|
switch (p) {
|
||||||
|
case PLATFORM_PROFILE_LOW_POWER:
|
||||||
|
@@ -105,20 +132,42 @@ static int convert_profile_to_ssam(struct ssam_device *sdev, enum platform_profi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+static int convert_profile_to_ssam_fan(struct ssam_device *sdev, enum platform_profile_option p)
|
||||||
|
+{
|
||||||
|
+ switch (p) {
|
||||||
|
+ case PLATFORM_PROFILE_LOW_POWER:
|
||||||
|
+ return SSAM_FAN_PROFILE_BATTERY_SAVER;
|
||||||
|
+
|
||||||
|
+ case PLATFORM_PROFILE_BALANCED:
|
||||||
|
+ return SSAM_FAN_PROFILE_NORMAL;
|
||||||
|
+
|
||||||
|
+ case PLATFORM_PROFILE_BALANCED_PERFORMANCE:
|
||||||
|
+ return SSAM_FAN_PROFILE_BETTER_PERFORMANCE;
|
||||||
|
+
|
||||||
|
+ case PLATFORM_PROFILE_PERFORMANCE:
|
||||||
|
+ return SSAM_FAN_PROFILE_BEST_PERFORMANCE;
|
||||||
|
+
|
||||||
|
+ default:
|
||||||
|
+ /* This should have already been caught by platform_profile_store(). */
|
||||||
|
+ WARN(true, "unsupported platform profile");
|
||||||
|
+ return -EOPNOTSUPP;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static int ssam_platform_profile_get(struct platform_profile_handler *pprof,
|
||||||
|
enum platform_profile_option *profile)
|
||||||
|
{
|
||||||
|
- struct ssam_tmp_profile_device *tpd;
|
||||||
|
+ struct ssam_platform_profile_device *tpd;
|
||||||
|
enum ssam_tmp_profile tp;
|
||||||
|
int status;
|
||||||
|
|
||||||
|
- tpd = container_of(pprof, struct ssam_tmp_profile_device, handler);
|
||||||
|
+ tpd = container_of(pprof, struct ssam_platform_profile_device, handler);
|
||||||
|
|
||||||
|
status = ssam_tmp_profile_get(tpd->sdev, &tp);
|
||||||
|
if (status)
|
||||||
|
return status;
|
||||||
|
|
||||||
|
- status = convert_ssam_to_profile(tpd->sdev, tp);
|
||||||
|
+ status = convert_ssam_tmp_to_profile(tpd->sdev, tp);
|
||||||
|
if (status < 0)
|
||||||
|
return status;
|
||||||
|
|
||||||
|
@@ -129,21 +178,32 @@ static int ssam_platform_profile_get(struct platform_profile_handler *pprof,
|
||||||
|
static int ssam_platform_profile_set(struct platform_profile_handler *pprof,
|
||||||
|
enum platform_profile_option profile)
|
||||||
|
{
|
||||||
|
- struct ssam_tmp_profile_device *tpd;
|
||||||
|
+ struct ssam_platform_profile_device *tpd;
|
||||||
|
int tp;
|
||||||
|
|
||||||
|
- tpd = container_of(pprof, struct ssam_tmp_profile_device, handler);
|
||||||
|
+ tpd = container_of(pprof, struct ssam_platform_profile_device, handler);
|
||||||
|
+
|
||||||
|
+ tp = convert_profile_to_ssam_tmp(tpd->sdev, profile);
|
||||||
|
+ if (tp < 0)
|
||||||
|
+ return tp;
|
||||||
|
|
||||||
|
- tp = convert_profile_to_ssam(tpd->sdev, profile);
|
||||||
|
+ tp = ssam_tmp_profile_set(tpd->sdev, tp);
|
||||||
|
if (tp < 0)
|
||||||
|
return tp;
|
||||||
|
|
||||||
|
- return ssam_tmp_profile_set(tpd->sdev, tp);
|
||||||
|
+ if (tpd->has_fan) {
|
||||||
|
+ tp = convert_profile_to_ssam_fan(tpd->sdev, profile);
|
||||||
|
+ if (tp < 0)
|
||||||
|
+ return tp;
|
||||||
|
+ tp = ssam_fan_profile_set(tpd->sdev, tp);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return tp;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int surface_platform_profile_probe(struct ssam_device *sdev)
|
||||||
|
{
|
||||||
|
- struct ssam_tmp_profile_device *tpd;
|
||||||
|
+ struct ssam_platform_profile_device *tpd;
|
||||||
|
|
||||||
|
tpd = devm_kzalloc(&sdev->dev, sizeof(*tpd), GFP_KERNEL);
|
||||||
|
if (!tpd)
|
||||||
|
@@ -154,6 +214,8 @@ static int surface_platform_profile_probe(struct ssam_device *sdev)
|
||||||
|
tpd->handler.profile_get = ssam_platform_profile_get;
|
||||||
|
tpd->handler.profile_set = ssam_platform_profile_set;
|
||||||
|
|
||||||
|
+ tpd->has_fan = device_property_read_bool(&sdev->dev, "has_fan");
|
||||||
|
+
|
||||||
|
set_bit(PLATFORM_PROFILE_LOW_POWER, tpd->handler.choices);
|
||||||
|
set_bit(PLATFORM_PROFILE_BALANCED, tpd->handler.choices);
|
||||||
|
set_bit(PLATFORM_PROFILE_BALANCED_PERFORMANCE, tpd->handler.choices);
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ Patchset: surface-sam-over-hid
|
||||||
1 file changed, 35 insertions(+)
|
1 file changed, 35 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
|
diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
|
||||||
index d6037a3286690..a290ebc77aea2 100644
|
index d6037a328669..a290ebc77aea 100644
|
||||||
--- a/drivers/i2c/i2c-core-acpi.c
|
--- a/drivers/i2c/i2c-core-acpi.c
|
||||||
+++ b/drivers/i2c/i2c-core-acpi.c
|
+++ b/drivers/i2c/i2c-core-acpi.c
|
||||||
@@ -628,6 +628,28 @@ static int acpi_gsb_i2c_write_bytes(struct i2c_client *client,
|
@@ -628,6 +628,28 @@ static int acpi_gsb_i2c_write_bytes(struct i2c_client *client,
|
||||||
|
@ -108,7 +108,7 @@ index d6037a3286690..a290ebc77aea2 100644
|
||||||
dev_warn(&adapter->dev, "protocol 0x%02x not supported for client 0x%02x\n",
|
dev_warn(&adapter->dev, "protocol 0x%02x not supported for client 0x%02x\n",
|
||||||
accessor_type, client->addr);
|
accessor_type, client->addr);
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 09df61b1ed72eb879aeb7b8091606299bc61fdd6 Mon Sep 17 00:00:00 2001
|
From 09df61b1ed72eb879aeb7b8091606299bc61fdd6 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
|
@ -133,7 +133,7 @@ Patchset: surface-sam-over-hid
|
||||||
create mode 100644 drivers/platform/surface/surfacebook1_dgpu_switch.c
|
create mode 100644 drivers/platform/surface/surfacebook1_dgpu_switch.c
|
||||||
|
|
||||||
diff --git a/drivers/platform/surface/Kconfig b/drivers/platform/surface/Kconfig
|
diff --git a/drivers/platform/surface/Kconfig b/drivers/platform/surface/Kconfig
|
||||||
index b629e82af97c0..68656e8f309ed 100644
|
index b629e82af97c..68656e8f309e 100644
|
||||||
--- a/drivers/platform/surface/Kconfig
|
--- a/drivers/platform/surface/Kconfig
|
||||||
+++ b/drivers/platform/surface/Kconfig
|
+++ b/drivers/platform/surface/Kconfig
|
||||||
@@ -149,6 +149,13 @@ config SURFACE_AGGREGATOR_TABLET_SWITCH
|
@@ -149,6 +149,13 @@ config SURFACE_AGGREGATOR_TABLET_SWITCH
|
||||||
|
@ -151,7 +151,7 @@ index b629e82af97c0..68656e8f309ed 100644
|
||||||
tristate "Surface DTX (Detachment System) Driver"
|
tristate "Surface DTX (Detachment System) Driver"
|
||||||
depends on SURFACE_AGGREGATOR
|
depends on SURFACE_AGGREGATOR
|
||||||
diff --git a/drivers/platform/surface/Makefile b/drivers/platform/surface/Makefile
|
diff --git a/drivers/platform/surface/Makefile b/drivers/platform/surface/Makefile
|
||||||
index 53344330939bf..7efcd0cdb5329 100644
|
index 53344330939b..7efcd0cdb532 100644
|
||||||
--- a/drivers/platform/surface/Makefile
|
--- a/drivers/platform/surface/Makefile
|
||||||
+++ b/drivers/platform/surface/Makefile
|
+++ b/drivers/platform/surface/Makefile
|
||||||
@@ -12,6 +12,7 @@ obj-$(CONFIG_SURFACE_AGGREGATOR_CDEV) += surface_aggregator_cdev.o
|
@@ -12,6 +12,7 @@ obj-$(CONFIG_SURFACE_AGGREGATOR_CDEV) += surface_aggregator_cdev.o
|
||||||
|
@ -164,7 +164,7 @@ index 53344330939bf..7efcd0cdb5329 100644
|
||||||
obj-$(CONFIG_SURFACE_HOTPLUG) += surface_hotplug.o
|
obj-$(CONFIG_SURFACE_HOTPLUG) += surface_hotplug.o
|
||||||
diff --git a/drivers/platform/surface/surfacebook1_dgpu_switch.c b/drivers/platform/surface/surfacebook1_dgpu_switch.c
|
diff --git a/drivers/platform/surface/surfacebook1_dgpu_switch.c b/drivers/platform/surface/surfacebook1_dgpu_switch.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..8b816ed8f35c6
|
index 000000000000..8b816ed8f35c
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/platform/surface/surfacebook1_dgpu_switch.c
|
+++ b/drivers/platform/surface/surfacebook1_dgpu_switch.c
|
||||||
@@ -0,0 +1,162 @@
|
@@ -0,0 +1,162 @@
|
||||||
|
@ -331,5 +331,5 @@ index 0000000000000..8b816ed8f35c6
|
||||||
+MODULE_DESCRIPTION("Discrete GPU Power-Switch for Surface Book 1");
|
+MODULE_DESCRIPTION("Discrete GPU Power-Switch for Surface Book 1");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ Patchset: surface-button
|
||||||
1 file changed, 8 insertions(+), 25 deletions(-)
|
1 file changed, 8 insertions(+), 25 deletions(-)
|
||||||
|
|
||||||
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 9116f4248fd09..eba53cb0139e3 100644
|
index 9116f4248fd0..eba53cb0139e 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
|
||||||
@@ -542,8 +542,8 @@ static const struct soc_device_data soc_device_MSHW0028 = {
|
@@ -542,8 +542,8 @@ static const struct soc_device_data soc_device_MSHW0028 = {
|
||||||
|
@ -73,7 +73,7 @@ index 9116f4248fd09..eba53cb0139e3 100644
|
||||||
|
|
||||||
/*
|
/*
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 41a632737f84b0404c1faca01edb90aecc9378ee Mon Sep 17 00:00:00 2001
|
From 41a632737f84b0404c1faca01edb90aecc9378ee Mon Sep 17 00:00:00 2001
|
||||||
From: Sachi King <nakato@nakato.io>
|
From: Sachi King <nakato@nakato.io>
|
||||||
|
@ -96,7 +96,7 @@ Patchset: surface-button
|
||||||
1 file changed, 6 insertions(+), 24 deletions(-)
|
1 file changed, 6 insertions(+), 24 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/platform/surface/surfacepro3_button.c b/drivers/platform/surface/surfacepro3_button.c
|
diff --git a/drivers/platform/surface/surfacepro3_button.c b/drivers/platform/surface/surfacepro3_button.c
|
||||||
index 2755601f979cd..4240c98ca2265 100644
|
index 2755601f979c..4240c98ca226 100644
|
||||||
--- a/drivers/platform/surface/surfacepro3_button.c
|
--- a/drivers/platform/surface/surfacepro3_button.c
|
||||||
+++ b/drivers/platform/surface/surfacepro3_button.c
|
+++ b/drivers/platform/surface/surfacepro3_button.c
|
||||||
@@ -149,7 +149,8 @@ static int surface_button_resume(struct device *dev)
|
@@ -149,7 +149,8 @@ static int surface_button_resume(struct device *dev)
|
||||||
|
@ -145,5 +145,5 @@ index 2755601f979cd..4240c98ca2265 100644
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ Patchset: surface-typecover
|
||||||
1 file changed, 3 insertions(+)
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
|
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
|
||||||
index 15e9bd180a1d2..0d70461d01e16 100644
|
index 15e9bd180a1d..0d70461d01e1 100644
|
||||||
--- a/drivers/usb/core/quirks.c
|
--- a/drivers/usb/core/quirks.c
|
||||||
+++ b/drivers/usb/core/quirks.c
|
+++ b/drivers/usb/core/quirks.c
|
||||||
@@ -220,6 +220,9 @@ static const struct usb_device_id usb_quirk_list[] = {
|
@@ -220,6 +220,9 @@ static const struct usb_device_id usb_quirk_list[] = {
|
||||||
|
@ -37,7 +37,7 @@ index 15e9bd180a1d2..0d70461d01e16 100644
|
||||||
{ USB_DEVICE(0x046a, 0x0023), .driver_info = USB_QUIRK_RESET_RESUME },
|
{ USB_DEVICE(0x046a, 0x0023), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 350edff5f5c90d811ff0686f95dd7f5222ee3d8d Mon Sep 17 00:00:00 2001
|
From 350edff5f5c90d811ff0686f95dd7f5222ee3d8d Mon Sep 17 00:00:00 2001
|
||||||
From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
|
From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
|
||||||
|
@ -75,7 +75,7 @@ Patchset: surface-typecover
|
||||||
1 file changed, 98 insertions(+), 2 deletions(-)
|
1 file changed, 98 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
|
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
|
||||||
index 5ec1f174127a3..a7a12b56f79cb 100644
|
index 5ec1f174127a..a7a12b56f79c 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
|
||||||
@@ -34,7 +34,10 @@
|
@@ -34,7 +34,10 @@
|
||||||
|
@ -270,7 +270,7 @@ index 5ec1f174127a3..a7a12b56f79cb 100644
|
||||||
{ .driver_data = MT_CLS_GOOGLE,
|
{ .driver_data = MT_CLS_GOOGLE,
|
||||||
HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, USB_VENDOR_ID_GOOGLE,
|
HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, USB_VENDOR_ID_GOOGLE,
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 29e073fd0ed75ce3f28b49a4fd34358104a3fd13 Mon Sep 17 00:00:00 2001
|
From 29e073fd0ed75ce3f28b49a4fd34358104a3fd13 Mon Sep 17 00:00:00 2001
|
||||||
From: PJungkamp <p.jungkamp@gmail.com>
|
From: PJungkamp <p.jungkamp@gmail.com>
|
||||||
|
@ -301,7 +301,7 @@ Patchset: surface-typecover
|
||||||
1 file changed, 122 insertions(+), 26 deletions(-)
|
1 file changed, 122 insertions(+), 26 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
|
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
|
||||||
index a7a12b56f79cb..d4ac41f2f9a8a 100644
|
index a7a12b56f79c..d4ac41f2f9a8 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
|
||||||
@@ -77,6 +77,7 @@ MODULE_LICENSE("GPL");
|
@@ -77,6 +77,7 @@ MODULE_LICENSE("GPL");
|
||||||
|
@ -570,5 +570,5 @@ index a7a12b56f79cb..d4ac41f2f9a8a 100644
|
||||||
unregister_pm_notifier(&td->pm_notifier);
|
unregister_pm_notifier(&td->pm_notifier);
|
||||||
del_timer_sync(&td->release_timer);
|
del_timer_sync(&td->release_timer);
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ Patchset: surface-shutdown
|
||||||
3 files changed, 40 insertions(+)
|
3 files changed, 40 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
|
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
|
||||||
index 51ec9e7e784f0..40554890d7211 100644
|
index 51ec9e7e784f..40554890d721 100644
|
||||||
--- a/drivers/pci/pci-driver.c
|
--- a/drivers/pci/pci-driver.c
|
||||||
+++ b/drivers/pci/pci-driver.c
|
+++ b/drivers/pci/pci-driver.c
|
||||||
@@ -507,6 +507,9 @@ static void pci_device_shutdown(struct device *dev)
|
@@ -507,6 +507,9 @@ static void pci_device_shutdown(struct device *dev)
|
||||||
|
@ -37,7 +37,7 @@ index 51ec9e7e784f0..40554890d7211 100644
|
||||||
|
|
||||||
if (drv && drv->shutdown)
|
if (drv && drv->shutdown)
|
||||||
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 ae95d09507722..036af941b5e6b 100644
|
index ae95d0950772..036af941b5e6 100644
|
||||||
--- a/drivers/pci/quirks.c
|
--- a/drivers/pci/quirks.c
|
||||||
+++ b/drivers/pci/quirks.c
|
+++ b/drivers/pci/quirks.c
|
||||||
@@ -6223,3 +6223,39 @@ static void pci_fixup_d3cold_delay_1sec(struct pci_dev *pdev)
|
@@ -6223,3 +6223,39 @@ static void pci_fixup_d3cold_delay_1sec(struct pci_dev *pdev)
|
||||||
|
@ -81,7 +81,7 @@ index ae95d09507722..036af941b5e6b 100644
|
||||||
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x466d, quirk_no_shutdown); // Thunderbolt 4 NHI
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x466d, quirk_no_shutdown); // Thunderbolt 4 NHI
|
||||||
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x46a8, quirk_no_shutdown); // GPU
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x46a8, quirk_no_shutdown); // GPU
|
||||||
diff --git a/include/linux/pci.h b/include/linux/pci.h
|
diff --git a/include/linux/pci.h b/include/linux/pci.h
|
||||||
index 1596b1205b8d8..608ab04a0b6c9 100644
|
index 1596b1205b8d..608ab04a0b6c 100644
|
||||||
--- a/include/linux/pci.h
|
--- a/include/linux/pci.h
|
||||||
+++ b/include/linux/pci.h
|
+++ b/include/linux/pci.h
|
||||||
@@ -465,6 +465,7 @@ struct pci_dev {
|
@@ -465,6 +465,7 @@ struct pci_dev {
|
||||||
|
@ -93,5 +93,5 @@ index 1596b1205b8d8..608ab04a0b6c9 100644
|
||||||
atomic_t enable_cnt; /* pci_enable_device has been called */
|
atomic_t enable_cnt; /* pci_enable_device has been called */
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ Patchset: surface-gpe
|
||||||
1 file changed, 17 insertions(+)
|
1 file changed, 17 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/platform/surface/surface_gpe.c b/drivers/platform/surface/surface_gpe.c
|
diff --git a/drivers/platform/surface/surface_gpe.c b/drivers/platform/surface/surface_gpe.c
|
||||||
index c219b840d491a..69c4352e8406b 100644
|
index c219b840d491..69c4352e8406 100644
|
||||||
--- a/drivers/platform/surface/surface_gpe.c
|
--- a/drivers/platform/surface/surface_gpe.c
|
||||||
+++ b/drivers/platform/surface/surface_gpe.c
|
+++ b/drivers/platform/surface/surface_gpe.c
|
||||||
@@ -41,6 +41,11 @@ static const struct property_entry lid_device_props_l4F[] = {
|
@@ -41,6 +41,11 @@ static const struct property_entry lid_device_props_l4F[] = {
|
||||||
|
@ -47,5 +47,5 @@ index c219b840d491a..69c4352e8406b 100644
|
||||||
.ident = "Surface Book 1",
|
.ident = "Surface Book 1",
|
||||||
.matches = {
|
.matches = {
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,7 @@ Patchset: cameras
|
||||||
1 file changed, 3 insertions(+)
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
|
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
|
||||||
index 1d249d0f61ae4..558cf449a6e2c 100644
|
index 1d249d0f61ae..558cf449a6e2 100644
|
||||||
--- a/drivers/acpi/scan.c
|
--- a/drivers/acpi/scan.c
|
||||||
+++ b/drivers/acpi/scan.c
|
+++ b/drivers/acpi/scan.c
|
||||||
@@ -2113,6 +2113,9 @@ static acpi_status acpi_bus_check_add_2(acpi_handle handle, u32 lvl_not_used,
|
@@ -2113,6 +2113,9 @@ static acpi_status acpi_bus_check_add_2(acpi_handle handle, u32 lvl_not_used,
|
||||||
|
@ -72,7 +72,7 @@ index 1d249d0f61ae4..558cf449a6e2c 100644
|
||||||
* Do not enumerate devices with enumeration_by_parent flag set as
|
* Do not enumerate devices with enumeration_by_parent flag set as
|
||||||
* they will be enumerated by their respective parents.
|
* they will be enumerated by their respective parents.
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 992be6ed831018a7673a0424adad595c44475de7 Mon Sep 17 00:00:00 2001
|
From 992be6ed831018a7673a0424adad595c44475de7 Mon Sep 17 00:00:00 2001
|
||||||
From: zouxiaoh <xiaohong.zou@intel.com>
|
From: zouxiaoh <xiaohong.zou@intel.com>
|
||||||
|
@ -100,7 +100,7 @@ Patchset: cameras
|
||||||
1 file changed, 30 insertions(+)
|
1 file changed, 30 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
|
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
|
||||||
index 0cbe3a5212548..9f3df56628894 100644
|
index 0cbe3a521254..9f3df5662889 100644
|
||||||
--- a/drivers/iommu/intel/iommu.c
|
--- a/drivers/iommu/intel/iommu.c
|
||||||
+++ b/drivers/iommu/intel/iommu.c
|
+++ b/drivers/iommu/intel/iommu.c
|
||||||
@@ -38,6 +38,12 @@
|
@@ -38,6 +38,12 @@
|
||||||
|
@ -189,7 +189,7 @@ index 0cbe3a5212548..9f3df56628894 100644
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9D3E, quirk_iommu_ipts);
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9D3E, quirk_iommu_ipts);
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From a3e7ba42e2b2cce37b0d4987fde18c745139c19b Mon Sep 17 00:00:00 2001
|
From a3e7ba42e2b2cce37b0d4987fde18c745139c19b Mon Sep 17 00:00:00 2001
|
||||||
From: Daniel Scally <djrscally@gmail.com>
|
From: Daniel Scally <djrscally@gmail.com>
|
||||||
|
@ -208,7 +208,7 @@ Patchset: cameras
|
||||||
1 file changed, 7 insertions(+)
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platform/x86/intel/int3472/tps68470.c
|
diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platform/x86/intel/int3472/tps68470.c
|
||||||
index 1e107fd49f828..e3e1696e7f0ee 100644
|
index 1e107fd49f82..e3e1696e7f0e 100644
|
||||||
--- a/drivers/platform/x86/intel/int3472/tps68470.c
|
--- a/drivers/platform/x86/intel/int3472/tps68470.c
|
||||||
+++ b/drivers/platform/x86/intel/int3472/tps68470.c
|
+++ b/drivers/platform/x86/intel/int3472/tps68470.c
|
||||||
@@ -46,6 +46,13 @@ static int tps68470_chip_init(struct device *dev, struct regmap *regmap)
|
@@ -46,6 +46,13 @@ static int tps68470_chip_init(struct device *dev, struct regmap *regmap)
|
||||||
|
@ -226,7 +226,7 @@ index 1e107fd49f828..e3e1696e7f0ee 100644
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 9caa85a76f4310dd758c406b7754907ebdbb3931 Mon Sep 17 00:00:00 2001
|
From 9caa85a76f4310dd758c406b7754907ebdbb3931 Mon Sep 17 00:00:00 2001
|
||||||
From: Daniel Scally <dan.scally@ideasonboard.com>
|
From: Daniel Scally <dan.scally@ideasonboard.com>
|
||||||
|
@ -250,7 +250,7 @@ Patchset: cameras
|
||||||
1 file changed, 14 insertions(+)
|
1 file changed, 14 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/platform/x86/intel/int3472/discrete.c b/drivers/platform/x86/intel/int3472/discrete.c
|
diff --git a/drivers/platform/x86/intel/int3472/discrete.c b/drivers/platform/x86/intel/int3472/discrete.c
|
||||||
index e33c2d75975cf..c0c90ae66b705 100644
|
index e33c2d75975c..c0c90ae66b70 100644
|
||||||
--- a/drivers/platform/x86/intel/int3472/discrete.c
|
--- a/drivers/platform/x86/intel/int3472/discrete.c
|
||||||
+++ b/drivers/platform/x86/intel/int3472/discrete.c
|
+++ b/drivers/platform/x86/intel/int3472/discrete.c
|
||||||
@@ -57,6 +57,9 @@ static int skl_int3472_map_gpio_to_sensor(struct int3472_discrete_device *int347
|
@@ -57,6 +57,9 @@ static int skl_int3472_map_gpio_to_sensor(struct int3472_discrete_device *int347
|
||||||
|
@ -282,7 +282,7 @@ index e33c2d75975cf..c0c90ae66b705 100644
|
||||||
if (ACPI_FAILURE(status))
|
if (ACPI_FAILURE(status))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 3ede4c09a68bc8ee1820986f865133c3cd188f2e Mon Sep 17 00:00:00 2001
|
From 3ede4c09a68bc8ee1820986f865133c3cd188f2e Mon Sep 17 00:00:00 2001
|
||||||
From: Daniel Scally <dan.scally@ideasonboard.com>
|
From: Daniel Scally <dan.scally@ideasonboard.com>
|
||||||
|
@ -299,7 +299,7 @@ Patchset: cameras
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/media/i2c/ov7251.c b/drivers/media/i2c/ov7251.c
|
diff --git a/drivers/media/i2c/ov7251.c b/drivers/media/i2c/ov7251.c
|
||||||
index 675fb37a6feae..43b30db08c9e4 100644
|
index 675fb37a6fea..43b30db08c9e 100644
|
||||||
--- a/drivers/media/i2c/ov7251.c
|
--- a/drivers/media/i2c/ov7251.c
|
||||||
+++ b/drivers/media/i2c/ov7251.c
|
+++ b/drivers/media/i2c/ov7251.c
|
||||||
@@ -1051,7 +1051,7 @@ static int ov7251_s_ctrl(struct v4l2_ctrl *ctrl)
|
@@ -1051,7 +1051,7 @@ static int ov7251_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||||
|
@ -321,7 +321,7 @@ index 675fb37a6feae..43b30db08c9e4 100644
|
||||||
V4L2_CID_TEST_PATTERN,
|
V4L2_CID_TEST_PATTERN,
|
||||||
ARRAY_SIZE(ov7251_test_pattern_menu) - 1,
|
ARRAY_SIZE(ov7251_test_pattern_menu) - 1,
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 7161e88bfd849eb77ad8dcf5111ebc4a3f8c3fd4 Mon Sep 17 00:00:00 2001
|
From 7161e88bfd849eb77ad8dcf5111ebc4a3f8c3fd4 Mon Sep 17 00:00:00 2001
|
||||||
From: Daniel Scally <dan.scally@ideasonboard.com>
|
From: Daniel Scally <dan.scally@ideasonboard.com>
|
||||||
|
@ -342,7 +342,7 @@ Patchset: cameras
|
||||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c
|
diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c
|
||||||
index 091e8cf4114ba..cca10f5355844 100644
|
index 091e8cf4114b..cca10f535584 100644
|
||||||
--- a/drivers/media/v4l2-core/v4l2-async.c
|
--- a/drivers/media/v4l2-core/v4l2-async.c
|
||||||
+++ b/drivers/media/v4l2-core/v4l2-async.c
|
+++ b/drivers/media/v4l2-core/v4l2-async.c
|
||||||
@@ -796,6 +796,10 @@ int v4l2_async_register_subdev(struct v4l2_subdev *sd)
|
@@ -796,6 +796,10 @@ int v4l2_async_register_subdev(struct v4l2_subdev *sd)
|
||||||
|
@ -357,7 +357,7 @@ index 091e8cf4114ba..cca10f5355844 100644
|
||||||
* No reference taken. The reference is held by the device (struct
|
* No reference taken. The reference is held by the device (struct
|
||||||
* v4l2_subdev.dev), and async sub-device does not exist independently
|
* v4l2_subdev.dev), and async sub-device does not exist independently
|
||||||
diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
|
diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
|
||||||
index 7f181fbbb1407..1c0347de4e216 100644
|
index 7f181fbbb140..1c0347de4e21 100644
|
||||||
--- a/drivers/media/v4l2-core/v4l2-fwnode.c
|
--- a/drivers/media/v4l2-core/v4l2-fwnode.c
|
||||||
+++ b/drivers/media/v4l2-core/v4l2-fwnode.c
|
+++ b/drivers/media/v4l2-core/v4l2-fwnode.c
|
||||||
@@ -1217,10 +1217,6 @@ int v4l2_async_register_subdev_sensor(struct v4l2_subdev *sd)
|
@@ -1217,10 +1217,6 @@ int v4l2_async_register_subdev_sensor(struct v4l2_subdev *sd)
|
||||||
|
@ -372,7 +372,7 @@ index 7f181fbbb1407..1c0347de4e216 100644
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto out_cleanup;
|
goto out_cleanup;
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From aab439d9ca04f9e56b1573fb6fe666acd6ecc0fa Mon Sep 17 00:00:00 2001
|
From aab439d9ca04f9e56b1573fb6fe666acd6ecc0fa Mon Sep 17 00:00:00 2001
|
||||||
From: Kate Hsuan <hpa@redhat.com>
|
From: Kate Hsuan <hpa@redhat.com>
|
||||||
|
@ -390,7 +390,7 @@ Patchset: cameras
|
||||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platform/x86/intel/int3472/tps68470.c
|
diff --git a/drivers/platform/x86/intel/int3472/tps68470.c b/drivers/platform/x86/intel/int3472/tps68470.c
|
||||||
index e3e1696e7f0ee..423dc555093f7 100644
|
index e3e1696e7f0e..423dc555093f 100644
|
||||||
--- a/drivers/platform/x86/intel/int3472/tps68470.c
|
--- a/drivers/platform/x86/intel/int3472/tps68470.c
|
||||||
+++ b/drivers/platform/x86/intel/int3472/tps68470.c
|
+++ b/drivers/platform/x86/intel/int3472/tps68470.c
|
||||||
@@ -17,7 +17,7 @@
|
@@ -17,7 +17,7 @@
|
||||||
|
@ -413,7 +413,7 @@ index e3e1696e7f0ee..423dc555093f7 100644
|
||||||
for (i = 0; i < board_data->n_gpiod_lookups; i++)
|
for (i = 0; i < board_data->n_gpiod_lookups; i++)
|
||||||
gpiod_add_lookup_table(board_data->tps68470_gpio_lookup_tables[i]);
|
gpiod_add_lookup_table(board_data->tps68470_gpio_lookup_tables[i]);
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 110530f6b622a9f4ae2308d684d7624be69218f9 Mon Sep 17 00:00:00 2001
|
From 110530f6b622a9f4ae2308d684d7624be69218f9 Mon Sep 17 00:00:00 2001
|
||||||
From: Kate Hsuan <hpa@redhat.com>
|
From: Kate Hsuan <hpa@redhat.com>
|
||||||
|
@ -433,7 +433,7 @@ Patchset: cameras
|
||||||
1 file changed, 5 insertions(+)
|
1 file changed, 5 insertions(+)
|
||||||
|
|
||||||
diff --git a/include/linux/mfd/tps68470.h b/include/linux/mfd/tps68470.h
|
diff --git a/include/linux/mfd/tps68470.h b/include/linux/mfd/tps68470.h
|
||||||
index 7807fa329db00..2d2abb25b944f 100644
|
index 7807fa329db0..2d2abb25b944 100644
|
||||||
--- a/include/linux/mfd/tps68470.h
|
--- a/include/linux/mfd/tps68470.h
|
||||||
+++ b/include/linux/mfd/tps68470.h
|
+++ b/include/linux/mfd/tps68470.h
|
||||||
@@ -34,6 +34,7 @@
|
@@ -34,6 +34,7 @@
|
||||||
|
@ -454,7 +454,7 @@ index 7807fa329db00..2d2abb25b944f 100644
|
||||||
+
|
+
|
||||||
#endif /* __LINUX_MFD_TPS68470_H */
|
#endif /* __LINUX_MFD_TPS68470_H */
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 9353e9a63ccf0ffca8a097c4ebee7674f8a67d11 Mon Sep 17 00:00:00 2001
|
From 9353e9a63ccf0ffca8a097c4ebee7674f8a67d11 Mon Sep 17 00:00:00 2001
|
||||||
From: Kate Hsuan <hpa@redhat.com>
|
From: Kate Hsuan <hpa@redhat.com>
|
||||||
|
@ -479,7 +479,7 @@ Patchset: cameras
|
||||||
create mode 100644 drivers/leds/leds-tps68470.c
|
create mode 100644 drivers/leds/leds-tps68470.c
|
||||||
|
|
||||||
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
|
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
|
||||||
index b92208eccdea9..312c0c21cc5ef 100644
|
index b92208eccdea..312c0c21cc5e 100644
|
||||||
--- a/drivers/leds/Kconfig
|
--- a/drivers/leds/Kconfig
|
||||||
+++ b/drivers/leds/Kconfig
|
+++ b/drivers/leds/Kconfig
|
||||||
@@ -873,6 +873,18 @@ config LEDS_TPS6105X
|
@@ -873,6 +873,18 @@ config LEDS_TPS6105X
|
||||||
|
@ -502,7 +502,7 @@ index b92208eccdea9..312c0c21cc5ef 100644
|
||||||
tristate "LED support for SGI Octane machines"
|
tristate "LED support for SGI Octane machines"
|
||||||
depends on LEDS_CLASS
|
depends on LEDS_CLASS
|
||||||
diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
|
diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
|
||||||
index d7348e8bc019a..10caea4e7c614 100644
|
index d7348e8bc019..10caea4e7c61 100644
|
||||||
--- a/drivers/leds/Makefile
|
--- a/drivers/leds/Makefile
|
||||||
+++ b/drivers/leds/Makefile
|
+++ b/drivers/leds/Makefile
|
||||||
@@ -84,6 +84,7 @@ obj-$(CONFIG_LEDS_TCA6507) += leds-tca6507.o
|
@@ -84,6 +84,7 @@ obj-$(CONFIG_LEDS_TCA6507) += leds-tca6507.o
|
||||||
|
@ -515,7 +515,7 @@ index d7348e8bc019a..10caea4e7c614 100644
|
||||||
obj-$(CONFIG_LEDS_WM8350) += leds-wm8350.o
|
obj-$(CONFIG_LEDS_WM8350) += leds-wm8350.o
|
||||||
diff --git a/drivers/leds/leds-tps68470.c b/drivers/leds/leds-tps68470.c
|
diff --git a/drivers/leds/leds-tps68470.c b/drivers/leds/leds-tps68470.c
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000..35aeb5db89c8f
|
index 000000000000..35aeb5db89c8
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/drivers/leds/leds-tps68470.c
|
+++ b/drivers/leds/leds-tps68470.c
|
||||||
@@ -0,0 +1,185 @@
|
@@ -0,0 +1,185 @@
|
||||||
|
@ -705,5 +705,5 @@ index 0000000000000..35aeb5db89c8f
|
||||||
+MODULE_DESCRIPTION("LED driver for TPS68470 PMIC");
|
+MODULE_DESCRIPTION("LED driver for TPS68470 PMIC");
|
||||||
+MODULE_LICENSE("GPL v2");
|
+MODULE_LICENSE("GPL v2");
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ Patchset: amd-gpio
|
||||||
1 file changed, 17 insertions(+)
|
1 file changed, 17 insertions(+)
|
||||||
|
|
||||||
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
|
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
|
||||||
index c55c0ef47a187..f29740cf89ff6 100644
|
index c55c0ef47a18..f29740cf89ff 100644
|
||||||
--- a/arch/x86/kernel/acpi/boot.c
|
--- a/arch/x86/kernel/acpi/boot.c
|
||||||
+++ b/arch/x86/kernel/acpi/boot.c
|
+++ b/arch/x86/kernel/acpi/boot.c
|
||||||
@@ -22,6 +22,7 @@
|
@@ -22,6 +22,7 @@
|
||||||
|
@ -63,7 +63,7 @@ index c55c0ef47a187..f29740cf89ff6 100644
|
||||||
mp_config_acpi_legacy_irqs();
|
mp_config_acpi_legacy_irqs();
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 82d8be77dbf1f5df125c796b7fdc8c60f2139eb8 Mon Sep 17 00:00:00 2001
|
From 82d8be77dbf1f5df125c796b7fdc8c60f2139eb8 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
|
@ -80,7 +80,7 @@ Patchset: amd-gpio
|
||||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
|
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
|
||||||
index f29740cf89ff6..247d2a8bcdf4b 100644
|
index f29740cf89ff..247d2a8bcdf4 100644
|
||||||
--- a/arch/x86/kernel/acpi/boot.c
|
--- a/arch/x86/kernel/acpi/boot.c
|
||||||
+++ b/arch/x86/kernel/acpi/boot.c
|
+++ b/arch/x86/kernel/acpi/boot.c
|
||||||
@@ -1258,12 +1258,19 @@ static void __init mp_config_acpi_legacy_irqs(void)
|
@@ -1258,12 +1258,19 @@ static void __init mp_config_acpi_legacy_irqs(void)
|
||||||
|
@ -105,5 +105,5 @@ index f29740cf89ff6..247d2a8bcdf4b 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ Patchset: rtc
|
||||||
1 file changed, 24 insertions(+), 12 deletions(-)
|
1 file changed, 24 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/acpi/acpi_tad.c b/drivers/acpi/acpi_tad.c
|
diff --git a/drivers/acpi/acpi_tad.c b/drivers/acpi/acpi_tad.c
|
||||||
index 33c3b16af556b..900445d06623d 100644
|
index 33c3b16af556..900445d06623 100644
|
||||||
--- a/drivers/acpi/acpi_tad.c
|
--- a/drivers/acpi/acpi_tad.c
|
||||||
+++ b/drivers/acpi/acpi_tad.c
|
+++ b/drivers/acpi/acpi_tad.c
|
||||||
@@ -432,6 +432,14 @@ static ssize_t caps_show(struct device *dev, struct device_attribute *attr,
|
@@ -432,6 +432,14 @@ static ssize_t caps_show(struct device *dev, struct device_attribute *attr,
|
||||||
|
@ -106,5 +106,5 @@ index 33c3b16af556b..900445d06623d 100644
|
||||||
ret = sysfs_create_group(&dev->kobj, &acpi_tad_dc_attr_group);
|
ret = sysfs_create_group(&dev->kobj, &acpi_tad_dc_attr_group);
|
||||||
if (ret)
|
if (ret)
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From c9479d2ee549e4b5392c5f788d9905244404e207 Mon Sep 17 00:00:00 2001
|
From 45a9e7f97fc36942e3d70a78fe5313fa78733933 Mon Sep 17 00:00:00 2001
|
||||||
From: Tsuchiya Yuto <kitakar@gmail.com>
|
From: Tsuchiya Yuto <kitakar@gmail.com>
|
||||||
Date: Sun, 18 Oct 2020 16:42:44 +0900
|
Date: Sun, 18 Oct 2020 16:42:44 +0900
|
||||||
Subject: [PATCH] (surface3-oemb) add DMI matches for Surface 3 with broken DMI
|
Subject: [PATCH] (surface3-oemb) add DMI matches for Surface 3 with broken DMI
|
||||||
|
@ -58,10 +58,10 @@ index c15ed7a12784..1ec8edb5aafa 100644
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c
|
diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c
|
||||||
index edcb85bd8ea7..cea19fa3fa56 100644
|
index 20191a4473c2..5ba599b5aba6 100644
|
||||||
--- a/sound/soc/codecs/rt5645.c
|
--- a/sound/soc/codecs/rt5645.c
|
||||||
+++ b/sound/soc/codecs/rt5645.c
|
+++ b/sound/soc/codecs/rt5645.c
|
||||||
@@ -3753,6 +3753,15 @@ static const struct dmi_system_id dmi_platform_data[] = {
|
@@ -3768,6 +3768,15 @@ static const struct dmi_system_id dmi_platform_data[] = {
|
||||||
},
|
},
|
||||||
.driver_data = (void *)&intel_braswell_platform_data,
|
.driver_data = (void *)&intel_braswell_platform_data,
|
||||||
},
|
},
|
||||||
|
@ -97,5 +97,5 @@ index 5e2ec60e2954..207868c699f2 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 38181ea8d1f9130ce6d677d306f819d2fa3b5f57 Mon Sep 17 00:00:00 2001
|
From 2c7ff35a85341dcd8fa2ea575088881df9dea874 Mon Sep 17 00:00:00 2001
|
||||||
From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
|
From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
|
||||||
Date: Tue, 3 Nov 2020 13:28:04 +0100
|
Date: Tue, 3 Nov 2020 13:28:04 +0100
|
||||||
Subject: [PATCH] mwifiex: Add quirk resetting the PCI bridge on MS Surface
|
Subject: [PATCH] mwifiex: Add quirk resetting the PCI bridge on MS Surface
|
||||||
|
@ -163,9 +163,9 @@ index d6ff964aec5b..5d30ae39d65e 100644
|
||||||
void mwifiex_initialize_quirks(struct pcie_service_card *card);
|
void mwifiex_initialize_quirks(struct pcie_service_card *card);
|
||||||
int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
|
int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 86149f1c99b17f67d717419af83f3ec76315e35b Mon Sep 17 00:00:00 2001
|
From 4a326d9e87d1dc4945903560d3d22fbd69a8962c Mon Sep 17 00:00:00 2001
|
||||||
From: Tsuchiya Yuto <kitakar@gmail.com>
|
From: Tsuchiya Yuto <kitakar@gmail.com>
|
||||||
Date: Sun, 4 Oct 2020 00:11:49 +0900
|
Date: Sun, 4 Oct 2020 00:11:49 +0900
|
||||||
Subject: [PATCH] mwifiex: pcie: disable bridge_d3 for Surface gen4+
|
Subject: [PATCH] mwifiex: pcie: disable bridge_d3 for Surface gen4+
|
||||||
|
@ -318,9 +318,9 @@ index 5d30ae39d65e..c14eb56eb911 100644
|
||||||
void mwifiex_initialize_quirks(struct pcie_service_card *card);
|
void mwifiex_initialize_quirks(struct pcie_service_card *card);
|
||||||
int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
|
int mwifiex_pcie_reset_d3cold_quirk(struct pci_dev *pdev);
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 23775dc0be26e58d04574ab75768cedd8b0076f8 Mon Sep 17 00:00:00 2001
|
From dddda6f9c25716dea1265f71b8286936afa192b5 Mon Sep 17 00:00:00 2001
|
||||||
From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
|
From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
|
||||||
Date: Thu, 25 Mar 2021 11:33:02 +0100
|
Date: Thu, 25 Mar 2021 11:33:02 +0100
|
||||||
Subject: [PATCH] Bluetooth: btusb: Lower passive lescan interval on Marvell
|
Subject: [PATCH] Bluetooth: btusb: Lower passive lescan interval on Marvell
|
||||||
|
@ -356,7 +356,7 @@ Patchset: mwifiex
|
||||||
1 file changed, 15 insertions(+)
|
1 file changed, 15 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
|
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
|
||||||
index b8e9de887b5d..66a418ae9584 100644
|
index d31edad7a056..fc08e0c51c87 100644
|
||||||
--- a/drivers/bluetooth/btusb.c
|
--- a/drivers/bluetooth/btusb.c
|
||||||
+++ b/drivers/bluetooth/btusb.c
|
+++ b/drivers/bluetooth/btusb.c
|
||||||
@@ -65,6 +65,7 @@ static struct usb_driver btusb_driver;
|
@@ -65,6 +65,7 @@ static struct usb_driver btusb_driver;
|
||||||
|
@ -375,7 +375,7 @@ index b8e9de887b5d..66a418ae9584 100644
|
||||||
|
|
||||||
/* Intel Bluetooth devices */
|
/* Intel Bluetooth devices */
|
||||||
{ USB_DEVICE(0x8087, 0x0025), .driver_info = BTUSB_INTEL_COMBINED },
|
{ USB_DEVICE(0x8087, 0x0025), .driver_info = BTUSB_INTEL_COMBINED },
|
||||||
@@ -4399,6 +4401,19 @@ static int btusb_probe(struct usb_interface *intf,
|
@@ -4401,6 +4403,19 @@ static int btusb_probe(struct usb_interface *intf,
|
||||||
if (id->driver_info & BTUSB_MARVELL)
|
if (id->driver_info & BTUSB_MARVELL)
|
||||||
hdev->set_bdaddr = btusb_set_bdaddr_marvell;
|
hdev->set_bdaddr = btusb_set_bdaddr_marvell;
|
||||||
|
|
||||||
|
@ -396,5 +396,5 @@ index b8e9de887b5d..66a418ae9584 100644
|
||||||
(id->driver_info & BTUSB_MEDIATEK)) {
|
(id->driver_info & BTUSB_MEDIATEK)) {
|
||||||
hdev->setup = btusb_mtk_setup;
|
hdev->setup = btusb_mtk_setup;
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 825328cce718ba6de0fce529e8fd1f4cd6b94dde Mon Sep 17 00:00:00 2001
|
From 7b414f11dfa0be3204b0a43b82a75744f8218d57 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Sat, 27 Feb 2021 00:45:52 +0100
|
Date: Sat, 27 Feb 2021 00:45:52 +0100
|
||||||
Subject: [PATCH] ath10k: Add module parameters to override board files
|
Subject: [PATCH] ath10k: Add module parameters to override board files
|
||||||
|
@ -20,10 +20,10 @@ Patchset: ath10k
|
||||||
1 file changed, 58 insertions(+)
|
1 file changed, 58 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
|
diff --git a/drivers/net/wireless/ath/ath10k/core.c b/drivers/net/wireless/ath/ath10k/core.c
|
||||||
index 6cdb225b7eac..19c036751fb1 100644
|
index 0032f8aa892f..17717b53316b 100644
|
||||||
--- a/drivers/net/wireless/ath/ath10k/core.c
|
--- a/drivers/net/wireless/ath/ath10k/core.c
|
||||||
+++ b/drivers/net/wireless/ath/ath10k/core.c
|
+++ b/drivers/net/wireless/ath/ath10k/core.c
|
||||||
@@ -38,6 +38,9 @@ static bool fw_diag_log;
|
@@ -39,6 +39,9 @@ static bool fw_diag_log;
|
||||||
/* frame mode values are mapped as per enum ath10k_hw_txrx_mode */
|
/* frame mode values are mapped as per enum ath10k_hw_txrx_mode */
|
||||||
unsigned int ath10k_frame_mode = ATH10K_HW_TXRX_NATIVE_WIFI;
|
unsigned int ath10k_frame_mode = ATH10K_HW_TXRX_NATIVE_WIFI;
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ index 6cdb225b7eac..19c036751fb1 100644
|
||||||
unsigned long ath10k_coredump_mask = BIT(ATH10K_FW_CRASH_DUMP_REGISTERS) |
|
unsigned long ath10k_coredump_mask = BIT(ATH10K_FW_CRASH_DUMP_REGISTERS) |
|
||||||
BIT(ATH10K_FW_CRASH_DUMP_CE_DATA);
|
BIT(ATH10K_FW_CRASH_DUMP_CE_DATA);
|
||||||
|
|
||||||
@@ -50,6 +53,9 @@ module_param(fw_diag_log, bool, 0644);
|
@@ -51,6 +54,9 @@ module_param(fw_diag_log, bool, 0644);
|
||||||
module_param_named(frame_mode, ath10k_frame_mode, uint, 0644);
|
module_param_named(frame_mode, ath10k_frame_mode, uint, 0644);
|
||||||
module_param_named(coredump_mask, ath10k_coredump_mask, ulong, 0444);
|
module_param_named(coredump_mask, ath10k_coredump_mask, ulong, 0444);
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ index 6cdb225b7eac..19c036751fb1 100644
|
||||||
MODULE_PARM_DESC(debug_mask, "Debugging mask");
|
MODULE_PARM_DESC(debug_mask, "Debugging mask");
|
||||||
MODULE_PARM_DESC(uart_print, "Uart target debugging");
|
MODULE_PARM_DESC(uart_print, "Uart target debugging");
|
||||||
MODULE_PARM_DESC(skip_otp, "Skip otp failure for calibration in testmode");
|
MODULE_PARM_DESC(skip_otp, "Skip otp failure for calibration in testmode");
|
||||||
@@ -59,6 +65,9 @@ MODULE_PARM_DESC(frame_mode,
|
@@ -60,6 +66,9 @@ MODULE_PARM_DESC(frame_mode,
|
||||||
MODULE_PARM_DESC(coredump_mask, "Bitfield of what to include in firmware crash file");
|
MODULE_PARM_DESC(coredump_mask, "Bitfield of what to include in firmware crash file");
|
||||||
MODULE_PARM_DESC(fw_diag_log, "Diag based fw log debugging");
|
MODULE_PARM_DESC(fw_diag_log, "Diag based fw log debugging");
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ index 6cdb225b7eac..19c036751fb1 100644
|
||||||
static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
static const struct ath10k_hw_params ath10k_hw_params_list[] = {
|
||||||
{
|
{
|
||||||
.id = QCA988X_HW_2_0_VERSION,
|
.id = QCA988X_HW_2_0_VERSION,
|
||||||
@@ -911,6 +920,42 @@ static int ath10k_init_configure_target(struct ath10k *ar)
|
@@ -928,6 +937,42 @@ static int ath10k_init_configure_target(struct ath10k *ar)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ index 6cdb225b7eac..19c036751fb1 100644
|
||||||
static const struct firmware *ath10k_fetch_fw_file(struct ath10k *ar,
|
static const struct firmware *ath10k_fetch_fw_file(struct ath10k *ar,
|
||||||
const char *dir,
|
const char *dir,
|
||||||
const char *file)
|
const char *file)
|
||||||
@@ -925,6 +970,19 @@ static const struct firmware *ath10k_fetch_fw_file(struct ath10k *ar,
|
@@ -942,6 +987,19 @@ static const struct firmware *ath10k_fetch_fw_file(struct ath10k *ar,
|
||||||
if (dir == NULL)
|
if (dir == NULL)
|
||||||
dir = ".";
|
dir = ".";
|
||||||
|
|
||||||
|
@ -117,5 +117,5 @@ index 6cdb225b7eac..19c036751fb1 100644
|
||||||
ret = firmware_request_nowarn(&fw, filename, ar->dev);
|
ret = firmware_request_nowarn(&fw, filename, ar->dev);
|
||||||
ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot fw request '%s': %d\n",
|
ath10k_dbg(ar, ATH10K_DBG_BOOT, "boot fw request '%s': %d\n",
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
From f4e5ac291e877f3e7e5d888f4965310eb85379f5 Mon Sep 17 00:00:00 2001
|
From 4a1fdfebd3e84fe581b512f73bbc551ec9e2d0e8 Mon Sep 17 00:00:00 2001
|
||||||
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
||||||
Date: Thu, 30 Jul 2020 13:21:53 +0200
|
Date: Thu, 30 Jul 2020 13:21:53 +0200
|
||||||
Subject: [PATCH] misc: mei: Add missing IPTS device IDs
|
Subject: [PATCH] mei: me: Add Icelake device ID for iTouch
|
||||||
|
|
||||||
|
Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
|
||||||
Patchset: ipts
|
Patchset: ipts
|
||||||
---
|
---
|
||||||
drivers/misc/mei/hw-me-regs.h | 1 +
|
drivers/misc/mei/hw-me-regs.h | 1 +
|
||||||
|
@ -10,7 +11,7 @@ Patchset: ipts
|
||||||
2 files changed, 2 insertions(+)
|
2 files changed, 2 insertions(+)
|
||||||
|
|
||||||
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 961e5d53a27a..860f99b6ecd6 100644
|
index aac36750d2c5..2ba8db8a9583 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
|
||||||
@@ -92,6 +92,7 @@
|
@@ -92,6 +92,7 @@
|
||||||
|
@ -22,7 +23,7 @@ index 961e5d53a27a..860f99b6ecd6 100644
|
||||||
|
|
||||||
#define MEI_DEV_ID_JSP_N 0x4DE0 /* Jasper Lake Point N */
|
#define MEI_DEV_ID_JSP_N 0x4DE0 /* Jasper Lake Point N */
|
||||||
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 676d566f38dd..6b37dd1f8b2a 100644
|
index 8cf636c54032..078d3e773cda 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
|
||||||
@@ -97,6 +97,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
|
@@ -97,6 +97,7 @@ static const struct pci_device_id mei_me_pci_tbl[] = {
|
||||||
|
@ -34,12 +35,12 @@ index 676d566f38dd..6b37dd1f8b2a 100644
|
||||||
|
|
||||||
{MEI_PCI_DEVICE(MEI_DEV_ID_TGP_LP, MEI_ME_PCH15_CFG)},
|
{MEI_PCI_DEVICE(MEI_DEV_ID_TGP_LP, MEI_ME_PCH15_CFG)},
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 4c91dcde022856325e3babe1a1b9e01fcc21ab0f Mon Sep 17 00:00:00 2001
|
From b1e22125c8f241f49cc3a6b7eaa0b6430bb1f1ce Mon Sep 17 00:00:00 2001
|
||||||
From: Liban Hannan <liban.p@gmail.com>
|
From: Liban Hannan <liban.p@gmail.com>
|
||||||
Date: Tue, 12 Apr 2022 23:31:12 +0100
|
Date: Tue, 12 Apr 2022 23:31:12 +0100
|
||||||
Subject: [PATCH] iommu: ipts: use IOMMU passthrough mode for IPTS
|
Subject: [PATCH] iommu: Use IOMMU passthrough mode for IPTS
|
||||||
|
|
||||||
Adds a quirk so that IOMMU uses passthrough mode for the IPTS device.
|
Adds a quirk so that IOMMU uses passthrough mode for the IPTS device.
|
||||||
Otherwise, when IOMMU is enabled, IPTS produces DMAR errors like:
|
Otherwise, when IOMMU is enabled, IPTS produces DMAR errors like:
|
||||||
|
@ -52,25 +53,30 @@ https://bugs.launchpad.net/bugs/1958004
|
||||||
|
|
||||||
Fixed with the following patch which this patch basically copies:
|
Fixed with the following patch which this patch basically copies:
|
||||||
https://launchpadlibrarian.net/586396847/43255ca.diff
|
https://launchpadlibrarian.net/586396847/43255ca.diff
|
||||||
|
|
||||||
|
Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
|
||||||
Patchset: ipts
|
Patchset: ipts
|
||||||
---
|
---
|
||||||
drivers/iommu/intel/iommu.c | 24 ++++++++++++++++++++++++
|
drivers/iommu/intel/iommu.c | 29 +++++++++++++++++++++++++++++
|
||||||
1 file changed, 24 insertions(+)
|
1 file changed, 29 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
|
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
|
||||||
index 897159dba47d..cc6569613255 100644
|
index 11652e0bcab3..6c01b1aebf27 100644
|
||||||
--- a/drivers/iommu/intel/iommu.c
|
--- a/drivers/iommu/intel/iommu.c
|
||||||
+++ b/drivers/iommu/intel/iommu.c
|
+++ b/drivers/iommu/intel/iommu.c
|
||||||
@@ -38,6 +38,8 @@
|
@@ -40,6 +40,11 @@
|
||||||
#define IS_GFX_DEVICE(pdev) ((pdev->class >> 16) == PCI_BASE_CLASS_DISPLAY)
|
|
||||||
#define IS_USB_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_SERIAL_USB)
|
|
||||||
#define IS_ISA_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_BRIDGE_ISA)
|
#define IS_ISA_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_BRIDGE_ISA)
|
||||||
+#define IS_IPTS(pdev) ((pdev)->vendor == PCI_VENDOR_ID_INTEL && \
|
|
||||||
+ ((pdev)->device == 0x9d3e))
|
|
||||||
#define IS_AZALIA(pdev) ((pdev)->vendor == 0x8086 && (pdev)->device == 0x3a3e)
|
#define IS_AZALIA(pdev) ((pdev)->vendor == 0x8086 && (pdev)->device == 0x3a3e)
|
||||||
|
|
||||||
|
+#define IS_IPTS(pdev) ( \
|
||||||
|
+ ((pdev)->vendor == PCI_VENDOR_ID_INTEL && (pdev)->device == 0x9D3E) || \
|
||||||
|
+ ((pdev)->vendor == PCI_VENDOR_ID_INTEL && (pdev)->device == 0x34E4) \
|
||||||
|
+ )
|
||||||
|
+
|
||||||
#define IOAPIC_RANGE_START (0xfee00000)
|
#define IOAPIC_RANGE_START (0xfee00000)
|
||||||
@@ -291,12 +293,14 @@ int intel_iommu_enabled = 0;
|
#define IOAPIC_RANGE_END (0xfeefffff)
|
||||||
|
#define IOVA_START_ADDR (0x1000)
|
||||||
|
@@ -148,12 +153,14 @@ int intel_iommu_enabled = 0;
|
||||||
EXPORT_SYMBOL_GPL(intel_iommu_enabled);
|
EXPORT_SYMBOL_GPL(intel_iommu_enabled);
|
||||||
|
|
||||||
static int dmar_map_gfx = 1;
|
static int dmar_map_gfx = 1;
|
||||||
|
@ -85,7 +91,7 @@ index 897159dba47d..cc6569613255 100644
|
||||||
|
|
||||||
const struct iommu_ops intel_iommu_ops;
|
const struct iommu_ops intel_iommu_ops;
|
||||||
static const struct iommu_dirty_ops intel_dirty_ops;
|
static const struct iommu_dirty_ops intel_dirty_ops;
|
||||||
@@ -2548,6 +2552,9 @@ static int device_def_domain_type(struct device *dev)
|
@@ -2412,6 +2419,9 @@ static int device_def_domain_type(struct device *dev)
|
||||||
|
|
||||||
if ((iommu_identity_mapping & IDENTMAP_GFX) && IS_GFX_DEVICE(pdev))
|
if ((iommu_identity_mapping & IDENTMAP_GFX) && IS_GFX_DEVICE(pdev))
|
||||||
return IOMMU_DOMAIN_IDENTITY;
|
return IOMMU_DOMAIN_IDENTITY;
|
||||||
|
@ -95,7 +101,7 @@ index 897159dba47d..cc6569613255 100644
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -2855,6 +2862,9 @@ static int __init init_dmars(void)
|
@@ -2719,6 +2729,9 @@ static int __init init_dmars(void)
|
||||||
if (!dmar_map_gfx)
|
if (!dmar_map_gfx)
|
||||||
iommu_identity_mapping |= IDENTMAP_GFX;
|
iommu_identity_mapping |= IDENTMAP_GFX;
|
||||||
|
|
||||||
|
@ -105,7 +111,7 @@ index 897159dba47d..cc6569613255 100644
|
||||||
check_tylersburg_isoch();
|
check_tylersburg_isoch();
|
||||||
|
|
||||||
ret = si_domain_init(hw_pass_through);
|
ret = si_domain_init(hw_pass_through);
|
||||||
@@ -4977,6 +4987,17 @@ static void quirk_iommu_igfx(struct pci_dev *dev)
|
@@ -4896,6 +4909,18 @@ static void quirk_iommu_igfx(struct pci_dev *dev)
|
||||||
dmar_map_gfx = 0;
|
dmar_map_gfx = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,26 +123,28 @@ index 897159dba47d..cc6569613255 100644
|
||||||
+ if (risky_device(dev))
|
+ if (risky_device(dev))
|
||||||
+ return;
|
+ return;
|
||||||
+
|
+
|
||||||
+ pci_info(dev, "Passthrough IOMMU for IPTS\n");
|
+ pci_info(dev, "Disabling IOMMU for IPTS\n");
|
||||||
+ dmar_map_ipts = 0;
|
+ dmar_map_ipts = 0;
|
||||||
+}
|
+}
|
||||||
|
+
|
||||||
/* G4x/GM45 integrated gfx dmar support is totally busted. */
|
/* G4x/GM45 integrated gfx dmar support is totally busted. */
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_igfx);
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_igfx);
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e00, quirk_iommu_igfx);
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e00, quirk_iommu_igfx);
|
||||||
@@ -5012,6 +5033,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1632, quirk_iommu_igfx);
|
@@ -4931,6 +4956,10 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1632, quirk_iommu_igfx);
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163A, quirk_iommu_igfx);
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163A, quirk_iommu_igfx);
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163D, quirk_iommu_igfx);
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163D, quirk_iommu_igfx);
|
||||||
|
|
||||||
+/* disable IPTS dmar support */
|
+/* disable IPTS dmar support */
|
||||||
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9D3E, quirk_iommu_ipts);
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9D3E, quirk_iommu_ipts);
|
||||||
|
+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x34E4, quirk_iommu_ipts);
|
||||||
+
|
+
|
||||||
static void quirk_iommu_rwbf(struct pci_dev *dev)
|
static void quirk_iommu_rwbf(struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
if (risky_device(dev))
|
if (risky_device(dev))
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 7a9591af425eafbb76700f7ab1ab3ae0c3a08e4c Mon Sep 17 00:00:00 2001
|
From fa7796bc06659b87f47d8921d0441314612870b9 Mon Sep 17 00:00:00 2001
|
||||||
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
||||||
Date: Sun, 11 Dec 2022 12:00:59 +0100
|
Date: Sun, 11 Dec 2022 12:00:59 +0100
|
||||||
Subject: [PATCH] hid: Add support for Intel Precise Touch and Stylus
|
Subject: [PATCH] hid: Add support for Intel Precise Touch and Stylus
|
||||||
|
@ -203,10 +211,10 @@ Patchset: ipts
|
||||||
create mode 100644 drivers/hid/ipts/thread.h
|
create mode 100644 drivers/hid/ipts/thread.h
|
||||||
|
|
||||||
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
|
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
|
||||||
index 4ce74af79657..86c6c815bd5b 100644
|
index 4c682c650704..a263e49b2ae2 100644
|
||||||
--- a/drivers/hid/Kconfig
|
--- a/drivers/hid/Kconfig
|
||||||
+++ b/drivers/hid/Kconfig
|
+++ b/drivers/hid/Kconfig
|
||||||
@@ -1341,4 +1341,6 @@ source "drivers/hid/amd-sfh-hid/Kconfig"
|
@@ -1351,4 +1351,6 @@ source "drivers/hid/amd-sfh-hid/Kconfig"
|
||||||
|
|
||||||
source "drivers/hid/surface-hid/Kconfig"
|
source "drivers/hid/surface-hid/Kconfig"
|
||||||
|
|
||||||
|
@ -214,10 +222,10 @@ index 4ce74af79657..86c6c815bd5b 100644
|
||||||
+
|
+
|
||||||
endif # HID_SUPPORT
|
endif # HID_SUPPORT
|
||||||
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
|
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
|
||||||
index 8a06d0f840bc..2ef21b257d0b 100644
|
index 082a728eac60..f4bad1b8d813 100644
|
||||||
--- a/drivers/hid/Makefile
|
--- a/drivers/hid/Makefile
|
||||||
+++ b/drivers/hid/Makefile
|
+++ b/drivers/hid/Makefile
|
||||||
@@ -169,3 +169,5 @@ obj-$(INTEL_ISH_FIRMWARE_DOWNLOADER) += intel-ish-hid/
|
@@ -170,3 +170,5 @@ obj-$(INTEL_ISH_FIRMWARE_DOWNLOADER) += intel-ish-hid/
|
||||||
obj-$(CONFIG_AMD_SFH_HID) += amd-sfh-hid/
|
obj-$(CONFIG_AMD_SFH_HID) += amd-sfh-hid/
|
||||||
|
|
||||||
obj-$(CONFIG_SURFACE_HID_CORE) += surface-hid/
|
obj-$(CONFIG_SURFACE_HID_CORE) += surface-hid/
|
||||||
|
@ -3226,5 +3234,5 @@ index 000000000000..1f966b8b32c4
|
||||||
+
|
+
|
||||||
+#endif /* IPTS_THREAD_H */
|
+#endif /* IPTS_THREAD_H */
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 8aadfc38967cb2804446c8bdae851377651e6248 Mon Sep 17 00:00:00 2001
|
From 619b488e58367467f52d636b5182ff2134df68c0 Mon Sep 17 00:00:00 2001
|
||||||
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
||||||
Date: Sun, 11 Dec 2022 12:03:38 +0100
|
Date: Sun, 11 Dec 2022 12:03:38 +0100
|
||||||
Subject: [PATCH] iommu: intel: Disable source id verification for ITHC
|
Subject: [PATCH] iommu: intel: Disable source id verification for ITHC
|
||||||
|
@ -10,7 +10,7 @@ Patchset: ithc
|
||||||
1 file changed, 16 insertions(+)
|
1 file changed, 16 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/iommu/intel/irq_remapping.c b/drivers/iommu/intel/irq_remapping.c
|
diff --git a/drivers/iommu/intel/irq_remapping.c b/drivers/iommu/intel/irq_remapping.c
|
||||||
index 29b9e55dcf26..986e91c813ae 100644
|
index 566297bc87dd..a8cd8f12d593 100644
|
||||||
--- a/drivers/iommu/intel/irq_remapping.c
|
--- a/drivers/iommu/intel/irq_remapping.c
|
||||||
+++ b/drivers/iommu/intel/irq_remapping.c
|
+++ b/drivers/iommu/intel/irq_remapping.c
|
||||||
@@ -386,6 +386,22 @@ static int set_msi_sid(struct irte *irte, struct pci_dev *dev)
|
@@ -386,6 +386,22 @@ static int set_msi_sid(struct irte *irte, struct pci_dev *dev)
|
||||||
|
@ -37,9 +37,9 @@ index 29b9e55dcf26..986e91c813ae 100644
|
||||||
* DMA alias provides us with a PCI device and alias. The only case
|
* DMA alias provides us with a PCI device and alias. The only case
|
||||||
* where the it will return an alias on a different bus than the
|
* where the it will return an alias on a different bus than the
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From fe08b40d122fdb102c2cc4876d2d68ac19d74ae3 Mon Sep 17 00:00:00 2001
|
From ee5106b4069dd150a323dce8bce7879d2b27ed0b Mon Sep 17 00:00:00 2001
|
||||||
From: quo <tuple@list.ru>
|
From: quo <tuple@list.ru>
|
||||||
Date: Sun, 11 Dec 2022 12:10:54 +0100
|
Date: Sun, 11 Dec 2022 12:10:54 +0100
|
||||||
Subject: [PATCH] hid: Add support for Intel Touch Host Controller
|
Subject: [PATCH] hid: Add support for Intel Touch Host Controller
|
||||||
|
@ -72,10 +72,10 @@ Patchset: ithc
|
||||||
create mode 100644 drivers/hid/ithc/ithc.h
|
create mode 100644 drivers/hid/ithc/ithc.h
|
||||||
|
|
||||||
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
|
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
|
||||||
index 86c6c815bd5b..a87c3c6911fb 100644
|
index a263e49b2ae2..03f0f5af289a 100644
|
||||||
--- a/drivers/hid/Kconfig
|
--- a/drivers/hid/Kconfig
|
||||||
+++ b/drivers/hid/Kconfig
|
+++ b/drivers/hid/Kconfig
|
||||||
@@ -1343,4 +1343,6 @@ source "drivers/hid/surface-hid/Kconfig"
|
@@ -1353,4 +1353,6 @@ source "drivers/hid/surface-hid/Kconfig"
|
||||||
|
|
||||||
source "drivers/hid/ipts/Kconfig"
|
source "drivers/hid/ipts/Kconfig"
|
||||||
|
|
||||||
|
@ -83,10 +83,10 @@ index 86c6c815bd5b..a87c3c6911fb 100644
|
||||||
+
|
+
|
||||||
endif # HID_SUPPORT
|
endif # HID_SUPPORT
|
||||||
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
|
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
|
||||||
index 2ef21b257d0b..e94b79727b48 100644
|
index f4bad1b8d813..d32c194400ae 100644
|
||||||
--- a/drivers/hid/Makefile
|
--- a/drivers/hid/Makefile
|
||||||
+++ b/drivers/hid/Makefile
|
+++ b/drivers/hid/Makefile
|
||||||
@@ -171,3 +171,4 @@ obj-$(CONFIG_AMD_SFH_HID) += amd-sfh-hid/
|
@@ -172,3 +172,4 @@ obj-$(CONFIG_AMD_SFH_HID) += amd-sfh-hid/
|
||||||
obj-$(CONFIG_SURFACE_HID_CORE) += surface-hid/
|
obj-$(CONFIG_SURFACE_HID_CORE) += surface-hid/
|
||||||
|
|
||||||
obj-$(CONFIG_HID_IPTS) += ipts/
|
obj-$(CONFIG_HID_IPTS) += ipts/
|
||||||
|
@ -1816,5 +1816,5 @@ index 000000000000..028e55a4ec53
|
||||||
+void ithc_log_regs(struct ithc *ithc);
|
+void ithc_log_regs(struct ithc *ithc);
|
||||||
+
|
+
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From fb7e9294f3970a450b891c2cc7b2195861d454e3 Mon Sep 17 00:00:00 2001
|
From 973bf943acca4abdd932b5fdff032de0af07f96e Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Sun, 22 Oct 2023 14:57:11 +0200
|
Date: Sun, 22 Oct 2023 14:57:11 +0200
|
||||||
Subject: [PATCH] platform/surface: aggregator_registry: Add support for
|
Subject: [PATCH] platform/surface: aggregator_registry: Add support for
|
||||||
|
@ -29,9 +29,9 @@ index aeb3feae40ff..2bc4977037fc 100644
|
||||||
{ "MSHW0123", (unsigned long)ssam_node_group_sls },
|
{ "MSHW0123", (unsigned long)ssam_node_group_sls },
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 2de16abc5d0d2334e2935b1bdb3667a95d0009f2 Mon Sep 17 00:00:00 2001
|
From 7dedc84364f9c1fb73d271c859dce19b4a9644d6 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Mon, 20 Nov 2023 19:47:00 +0100
|
Date: Mon, 20 Nov 2023 19:47:00 +0100
|
||||||
Subject: [PATCH] platform/surface: aggregator_registry: Add support for
|
Subject: [PATCH] platform/surface: aggregator_registry: Add support for
|
||||||
|
@ -99,9 +99,9 @@ index 2bc4977037fc..26cb6229ad16 100644
|
||||||
{ },
|
{ },
|
||||||
};
|
};
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From c06e370b5ed873b603aa0dc2faafe24a9e63b3e8 Mon Sep 17 00:00:00 2001
|
From 96a7b3dd527f3e1b97e2d089a727c16cd5045aa5 Mon Sep 17 00:00:00 2001
|
||||||
From: Ivor Wanders <ivor@iwanders.net>
|
From: Ivor Wanders <ivor@iwanders.net>
|
||||||
Date: Mon, 18 Dec 2023 19:21:32 -0500
|
Date: Mon, 18 Dec 2023 19:21:32 -0500
|
||||||
Subject: [PATCH] platform/surface: aggregator_registry: add entry for fan
|
Subject: [PATCH] platform/surface: aggregator_registry: add entry for fan
|
||||||
|
@ -144,9 +144,9 @@ index 26cb6229ad16..f02a933160ff 100644
|
||||||
&ssam_node_hid_kip_keyboard,
|
&ssam_node_hid_kip_keyboard,
|
||||||
&ssam_node_hid_kip_penstash,
|
&ssam_node_hid_kip_penstash,
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 63dcbbcad69219e1487db46a5c26c1ebdd9ef6be Mon Sep 17 00:00:00 2001
|
From b4eb65349df9859f65aa9990c24c5036d35382da Mon Sep 17 00:00:00 2001
|
||||||
From: Ivor Wanders <ivor@iwanders.net>
|
From: Ivor Wanders <ivor@iwanders.net>
|
||||||
Date: Thu, 30 Nov 2023 20:20:24 -0500
|
Date: Thu, 30 Nov 2023 20:20:24 -0500
|
||||||
Subject: [PATCH] hwmon: add fan speed monitoring driver for Surface devices
|
Subject: [PATCH] hwmon: add fan speed monitoring driver for Surface devices
|
||||||
|
@ -170,10 +170,10 @@ Patchset: surface-sam
|
||||||
create mode 100644 drivers/hwmon/surface_fan.c
|
create mode 100644 drivers/hwmon/surface_fan.c
|
||||||
|
|
||||||
diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst
|
diff --git a/Documentation/hwmon/index.rst b/Documentation/hwmon/index.rst
|
||||||
index 72f4e6065bae..7c254562abd6 100644
|
index c7ed1f73ac06..58be92e94a8d 100644
|
||||||
--- a/Documentation/hwmon/index.rst
|
--- a/Documentation/hwmon/index.rst
|
||||||
+++ b/Documentation/hwmon/index.rst
|
+++ b/Documentation/hwmon/index.rst
|
||||||
@@ -204,6 +204,7 @@ Hardware Monitoring Kernel Drivers
|
@@ -208,6 +208,7 @@ Hardware Monitoring Kernel Drivers
|
||||||
smsc47m1
|
smsc47m1
|
||||||
sparx5-temp
|
sparx5-temp
|
||||||
stpddc60
|
stpddc60
|
||||||
|
@ -213,10 +213,10 @@ index 000000000000..07942574c4f0
|
||||||
+``fan1_input`` RO Current fan speed in RPM.
|
+``fan1_input`` RO Current fan speed in RPM.
|
||||||
+======================= ======= =========================================
|
+======================= ======= =========================================
|
||||||
diff --git a/MAINTAINERS b/MAINTAINERS
|
diff --git a/MAINTAINERS b/MAINTAINERS
|
||||||
index a7c4cf8201e0..77eb076e77da 100644
|
index 1aabf1c15bb3..b6416cf3f022 100644
|
||||||
--- a/MAINTAINERS
|
--- a/MAINTAINERS
|
||||||
+++ b/MAINTAINERS
|
+++ b/MAINTAINERS
|
||||||
@@ -14331,6 +14331,14 @@ F: Documentation/driver-api/surface_aggregator/clients/dtx.rst
|
@@ -14576,6 +14576,14 @@ F: Documentation/driver-api/surface_aggregator/clients/dtx.rst
|
||||||
F: drivers/platform/surface/surface_dtx.c
|
F: drivers/platform/surface/surface_dtx.c
|
||||||
F: include/uapi/linux/surface_aggregator/dtx.h
|
F: include/uapi/linux/surface_aggregator/dtx.h
|
||||||
|
|
||||||
|
@ -232,10 +232,10 @@ index a7c4cf8201e0..77eb076e77da 100644
|
||||||
M: Maximilian Luz <luzmaximilian@gmail.com>
|
M: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
L: platform-driver-x86@vger.kernel.org
|
L: platform-driver-x86@vger.kernel.org
|
||||||
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
|
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
|
||||||
index cf27523eed5a..1cef428c79ea 100644
|
index a608264da87d..e762f6138970 100644
|
||||||
--- a/drivers/hwmon/Kconfig
|
--- a/drivers/hwmon/Kconfig
|
||||||
+++ b/drivers/hwmon/Kconfig
|
+++ b/drivers/hwmon/Kconfig
|
||||||
@@ -1983,6 +1983,19 @@ config SENSORS_SFCTEMP
|
@@ -1994,6 +1994,19 @@ config SENSORS_SFCTEMP
|
||||||
This driver can also be built as a module. If so, the module
|
This driver can also be built as a module. If so, the module
|
||||||
will be called sfctemp.
|
will be called sfctemp.
|
||||||
|
|
||||||
|
@ -256,10 +256,10 @@ index cf27523eed5a..1cef428c79ea 100644
|
||||||
tristate "Texas Instruments ADC128D818"
|
tristate "Texas Instruments ADC128D818"
|
||||||
depends on I2C
|
depends on I2C
|
||||||
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
|
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
|
||||||
index e84bd9685b5c..30a284fc5ab6 100644
|
index 47be39af5c03..30cc90f40844 100644
|
||||||
--- a/drivers/hwmon/Makefile
|
--- a/drivers/hwmon/Makefile
|
||||||
+++ b/drivers/hwmon/Makefile
|
+++ b/drivers/hwmon/Makefile
|
||||||
@@ -200,6 +200,7 @@ obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47m1.o
|
@@ -201,6 +201,7 @@ obj-$(CONFIG_SENSORS_SMSC47M1) += smsc47m1.o
|
||||||
obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
|
obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
|
||||||
obj-$(CONFIG_SENSORS_SPARX5) += sparx5-temp.o
|
obj-$(CONFIG_SENSORS_SPARX5) += sparx5-temp.o
|
||||||
obj-$(CONFIG_SENSORS_STTS751) += stts751.o
|
obj-$(CONFIG_SENSORS_STTS751) += stts751.o
|
||||||
|
@ -367,9 +367,9 @@ index 000000000000..7c2e3ae3eb40
|
||||||
+MODULE_DESCRIPTION("Fan Driver for Surface System Aggregator Module");
|
+MODULE_DESCRIPTION("Fan Driver for Surface System Aggregator Module");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 5f549c253e4df330fa8f311fe151df80e199bec4 Mon Sep 17 00:00:00 2001
|
From 5c18bed9c7ad073b61e3c3686dc4bc1858f958dc Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Sat, 30 Dec 2023 18:07:54 +0100
|
Date: Sat, 30 Dec 2023 18:07:54 +0100
|
||||||
Subject: [PATCH] hwmon: Add thermal sensor driver for Surface Aggregator
|
Subject: [PATCH] hwmon: Add thermal sensor driver for Surface Aggregator
|
||||||
|
@ -391,10 +391,10 @@ Patchset: surface-sam
|
||||||
create mode 100644 drivers/hwmon/surface_temp.c
|
create mode 100644 drivers/hwmon/surface_temp.c
|
||||||
|
|
||||||
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
|
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
|
||||||
index 1cef428c79ea..ca20716911ad 100644
|
index e762f6138970..41261b49f8be 100644
|
||||||
--- a/drivers/hwmon/Kconfig
|
--- a/drivers/hwmon/Kconfig
|
||||||
+++ b/drivers/hwmon/Kconfig
|
+++ b/drivers/hwmon/Kconfig
|
||||||
@@ -1996,6 +1996,16 @@ config SENSORS_SURFACE_FAN
|
@@ -2007,6 +2007,16 @@ config SENSORS_SURFACE_FAN
|
||||||
|
|
||||||
Select M or Y here, if you want to be able to read the fan's speed.
|
Select M or Y here, if you want to be able to read the fan's speed.
|
||||||
|
|
||||||
|
@ -412,10 +412,10 @@ index 1cef428c79ea..ca20716911ad 100644
|
||||||
tristate "Texas Instruments ADC128D818"
|
tristate "Texas Instruments ADC128D818"
|
||||||
depends on I2C
|
depends on I2C
|
||||||
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
|
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
|
||||||
index 30a284fc5ab6..a6bcde6b4843 100644
|
index 30cc90f40844..6644fd4598a4 100644
|
||||||
--- a/drivers/hwmon/Makefile
|
--- a/drivers/hwmon/Makefile
|
||||||
+++ b/drivers/hwmon/Makefile
|
+++ b/drivers/hwmon/Makefile
|
||||||
@@ -201,6 +201,7 @@ obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
|
@@ -202,6 +202,7 @@ obj-$(CONFIG_SENSORS_SMSC47M192)+= smsc47m192.o
|
||||||
obj-$(CONFIG_SENSORS_SPARX5) += sparx5-temp.o
|
obj-$(CONFIG_SENSORS_SPARX5) += sparx5-temp.o
|
||||||
obj-$(CONFIG_SENSORS_STTS751) += stts751.o
|
obj-$(CONFIG_SENSORS_STTS751) += stts751.o
|
||||||
obj-$(CONFIG_SENSORS_SURFACE_FAN)+= surface_fan.o
|
obj-$(CONFIG_SENSORS_SURFACE_FAN)+= surface_fan.o
|
||||||
|
@ -595,9 +595,9 @@ index 000000000000..48c3e826713f
|
||||||
+MODULE_DESCRIPTION("Thermal sensor subsystem driver for Surface System Aggregator Module");
|
+MODULE_DESCRIPTION("Thermal sensor subsystem driver for Surface System Aggregator Module");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 3ccfa3b6be4794f247488f7e665ba91793ec09c7 Mon Sep 17 00:00:00 2001
|
From 8b1e37ad9423a6fdf8a8b3bfb1e15aadefe136de Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Sat, 30 Dec 2023 18:12:23 +0100
|
Date: Sat, 30 Dec 2023 18:12:23 +0100
|
||||||
Subject: [PATCH] hwmon: surface_temp: Add support for sensor names
|
Subject: [PATCH] hwmon: surface_temp: Add support for sensor names
|
||||||
|
@ -790,9 +790,9 @@ index 48c3e826713f..4c08926139db 100644
|
||||||
"surface_thermal", ssam_temp, &ssam_temp_hwmon_chip_info,
|
"surface_thermal", ssam_temp, &ssam_temp_hwmon_chip_info,
|
||||||
NULL);
|
NULL);
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 8ccf7b86ad270655bd1e8cd0ab8d2ff475ad0ea7 Mon Sep 17 00:00:00 2001
|
From 9b490a17f59518e59cf3c77c103bf5ddc52041a3 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Sat, 30 Dec 2023 18:21:12 +0100
|
Date: Sat, 30 Dec 2023 18:21:12 +0100
|
||||||
Subject: [PATCH] platform/surface: aggregator_registry: Add support for
|
Subject: [PATCH] platform/surface: aggregator_registry: Add support for
|
||||||
|
@ -833,5 +833,332 @@ index f02a933160ff..67686042e009 100644
|
||||||
&ssam_node_pos_tablet_switch,
|
&ssam_node_pos_tablet_switch,
|
||||||
&ssam_node_hid_kip_keyboard,
|
&ssam_node_hid_kip_keyboard,
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
From ec0b680c0ce36ef6bffd682e10589cf5d8d467ae Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ivor Wanders <ivor@iwanders.net>
|
||||||
|
Date: Sat, 16 Dec 2023 15:56:39 -0500
|
||||||
|
Subject: [PATCH] platform/surface: platform_profile: add fan profile switching
|
||||||
|
|
||||||
|
Change naming from tmp to platform profile to clarify the module may
|
||||||
|
interact with both the TMP and FAN subystems. Add functionality that
|
||||||
|
switches the fan profile when the platform profile is changed.
|
||||||
|
|
||||||
|
Signed-off-by: Ivor Wanders <ivor@iwanders.net>
|
||||||
|
Patchset: surface-sam
|
||||||
|
---
|
||||||
|
.../surface/surface_aggregator_registry.c | 38 +++++---
|
||||||
|
.../surface/surface_platform_profile.c | 86 ++++++++++++++++---
|
||||||
|
2 files changed, 100 insertions(+), 24 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/platform/surface/surface_aggregator_registry.c b/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
|
index 67686042e009..058b6654a91a 100644
|
||||||
|
--- a/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
|
+++ b/drivers/platform/surface/surface_aggregator_registry.c
|
||||||
|
@@ -68,8 +68,8 @@ static const struct software_node ssam_node_bat_sb3base = {
|
||||||
|
.parent = &ssam_node_hub_base,
|
||||||
|
};
|
||||||
|
|
||||||
|
-/* Platform profile / performance-mode device. */
|
||||||
|
-static const struct software_node ssam_node_tmp_pprof = {
|
||||||
|
+/* Platform profile / performance-mode device without a fan. */
|
||||||
|
+static const struct software_node ssam_node_tmp_perf_profile = {
|
||||||
|
.name = "ssam:01:03:01:00:01",
|
||||||
|
.parent = &ssam_node_root,
|
||||||
|
};
|
||||||
|
@@ -86,6 +86,20 @@ static const struct software_node ssam_node_fan_speed = {
|
||||||
|
.parent = &ssam_node_root,
|
||||||
|
};
|
||||||
|
|
||||||
|
+/* Platform profile / performance-mode device with a fan, such that
|
||||||
|
+ * the fan controller profile can also be switched.
|
||||||
|
+ */
|
||||||
|
+static const struct property_entry ssam_node_tmp_perf_profile_has_fan[] = {
|
||||||
|
+ PROPERTY_ENTRY_BOOL("has_fan"),
|
||||||
|
+ { }
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+static const struct software_node ssam_node_tmp_perf_profile_with_fan = {
|
||||||
|
+ .name = "ssam:01:03:01:00:01",
|
||||||
|
+ .parent = &ssam_node_root,
|
||||||
|
+ .properties = ssam_node_tmp_perf_profile_has_fan,
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
/* Tablet-mode switch via KIP subsystem. */
|
||||||
|
static const struct software_node ssam_node_kip_tablet_switch = {
|
||||||
|
.name = "ssam:01:0e:01:00:01",
|
||||||
|
@@ -214,7 +228,7 @@ static const struct software_node ssam_node_pos_tablet_switch = {
|
||||||
|
*/
|
||||||
|
static const struct software_node *ssam_node_group_gen5[] = {
|
||||||
|
&ssam_node_root,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
NULL,
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -225,7 +239,7 @@ static const struct software_node *ssam_node_group_sb3[] = {
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
&ssam_node_bat_sb3base,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
&ssam_node_bas_dtx,
|
||||||
|
&ssam_node_hid_base_keyboard,
|
||||||
|
&ssam_node_hid_base_touchpad,
|
||||||
|
@@ -239,7 +253,7 @@ static const struct software_node *ssam_node_group_sl3[] = {
|
||||||
|
&ssam_node_root,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
&ssam_node_hid_main_keyboard,
|
||||||
|
&ssam_node_hid_main_touchpad,
|
||||||
|
&ssam_node_hid_main_iid5,
|
||||||
|
@@ -251,7 +265,7 @@ static const struct software_node *ssam_node_group_sl5[] = {
|
||||||
|
&ssam_node_root,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
&ssam_node_hid_main_keyboard,
|
||||||
|
&ssam_node_hid_main_touchpad,
|
||||||
|
&ssam_node_hid_main_iid5,
|
||||||
|
@@ -264,7 +278,7 @@ static const struct software_node *ssam_node_group_sls1[] = {
|
||||||
|
&ssam_node_root,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
&ssam_node_pos_tablet_switch,
|
||||||
|
&ssam_node_hid_sam_keyboard,
|
||||||
|
&ssam_node_hid_sam_penstash,
|
||||||
|
@@ -280,7 +294,7 @@ static const struct software_node *ssam_node_group_sls2[] = {
|
||||||
|
&ssam_node_root,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
&ssam_node_pos_tablet_switch,
|
||||||
|
&ssam_node_hid_sam_keyboard,
|
||||||
|
&ssam_node_hid_sam_penstash,
|
||||||
|
@@ -294,7 +308,7 @@ static const struct software_node *ssam_node_group_slg1[] = {
|
||||||
|
&ssam_node_root,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
NULL,
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -303,7 +317,7 @@ static const struct software_node *ssam_node_group_sp7[] = {
|
||||||
|
&ssam_node_root,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
NULL,
|
||||||
|
};
|
||||||
|
|
||||||
|
@@ -313,7 +327,7 @@ static const struct software_node *ssam_node_group_sp8[] = {
|
||||||
|
&ssam_node_hub_kip,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile,
|
||||||
|
&ssam_node_kip_tablet_switch,
|
||||||
|
&ssam_node_hid_kip_keyboard,
|
||||||
|
&ssam_node_hid_kip_penstash,
|
||||||
|
@@ -330,7 +344,7 @@ static const struct software_node *ssam_node_group_sp9[] = {
|
||||||
|
&ssam_node_hub_kip,
|
||||||
|
&ssam_node_bat_ac,
|
||||||
|
&ssam_node_bat_main,
|
||||||
|
- &ssam_node_tmp_pprof,
|
||||||
|
+ &ssam_node_tmp_perf_profile_with_fan,
|
||||||
|
&ssam_node_tmp_sensors,
|
||||||
|
&ssam_node_fan_speed,
|
||||||
|
&ssam_node_pos_tablet_switch,
|
||||||
|
diff --git a/drivers/platform/surface/surface_platform_profile.c b/drivers/platform/surface/surface_platform_profile.c
|
||||||
|
index a5a3941b3f43..e54d0a8f7daa 100644
|
||||||
|
--- a/drivers/platform/surface/surface_platform_profile.c
|
||||||
|
+++ b/drivers/platform/surface/surface_platform_profile.c
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* Surface Platform Profile / Performance Mode driver for Surface System
|
||||||
|
- * Aggregator Module (thermal subsystem).
|
||||||
|
+ * Aggregator Module (thermal and fan subsystem).
|
||||||
|
*
|
||||||
|
* Copyright (C) 2021-2022 Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
|
*/
|
||||||
|
@@ -14,6 +14,7 @@
|
||||||
|
|
||||||
|
#include <linux/surface_aggregator/device.h>
|
||||||
|
|
||||||
|
+// Enum for the platform performance profile sent to the TMP module.
|
||||||
|
enum ssam_tmp_profile {
|
||||||
|
SSAM_TMP_PROFILE_NORMAL = 1,
|
||||||
|
SSAM_TMP_PROFILE_BATTERY_SAVER = 2,
|
||||||
|
@@ -21,15 +22,26 @@ enum ssam_tmp_profile {
|
||||||
|
SSAM_TMP_PROFILE_BEST_PERFORMANCE = 4,
|
||||||
|
};
|
||||||
|
|
||||||
|
+// Enum for the fan profile sent to the FAN module. This fan profile is
|
||||||
|
+// only sent to the EC if the 'has_fan' property is set. The integers are
|
||||||
|
+// not a typo, they differ from the performance profile indices.
|
||||||
|
+enum ssam_fan_profile {
|
||||||
|
+ SSAM_FAN_PROFILE_NORMAL = 2,
|
||||||
|
+ SSAM_FAN_PROFILE_BATTERY_SAVER = 1,
|
||||||
|
+ SSAM_FAN_PROFILE_BETTER_PERFORMANCE = 3,
|
||||||
|
+ SSAM_FAN_PROFILE_BEST_PERFORMANCE = 4,
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
struct ssam_tmp_profile_info {
|
||||||
|
__le32 profile;
|
||||||
|
__le16 unknown1;
|
||||||
|
__le16 unknown2;
|
||||||
|
} __packed;
|
||||||
|
|
||||||
|
-struct ssam_tmp_profile_device {
|
||||||
|
+struct ssam_platform_profile_device {
|
||||||
|
struct ssam_device *sdev;
|
||||||
|
struct platform_profile_handler handler;
|
||||||
|
+ bool has_fan;
|
||||||
|
};
|
||||||
|
|
||||||
|
SSAM_DEFINE_SYNC_REQUEST_CL_R(__ssam_tmp_profile_get, struct ssam_tmp_profile_info, {
|
||||||
|
@@ -42,6 +54,13 @@ SSAM_DEFINE_SYNC_REQUEST_CL_W(__ssam_tmp_profile_set, __le32, {
|
||||||
|
.command_id = 0x03,
|
||||||
|
});
|
||||||
|
|
||||||
|
+SSAM_DEFINE_SYNC_REQUEST_W(__ssam_fan_profile_set, char, {
|
||||||
|
+ .target_category = SSAM_SSH_TC_FAN,
|
||||||
|
+ .target_id = SSAM_SSH_TID_SAM,
|
||||||
|
+ .command_id = 0x0e,
|
||||||
|
+ .instance_id = 0x01,
|
||||||
|
+});
|
||||||
|
+
|
||||||
|
static int ssam_tmp_profile_get(struct ssam_device *sdev, enum ssam_tmp_profile *p)
|
||||||
|
{
|
||||||
|
struct ssam_tmp_profile_info info;
|
||||||
|
@@ -62,7 +81,14 @@ static int ssam_tmp_profile_set(struct ssam_device *sdev, enum ssam_tmp_profile
|
||||||
|
return ssam_retry(__ssam_tmp_profile_set, sdev, &profile_le);
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int convert_ssam_to_profile(struct ssam_device *sdev, enum ssam_tmp_profile p)
|
||||||
|
+static int ssam_fan_profile_set(struct ssam_device *sdev, enum ssam_fan_profile p)
|
||||||
|
+{
|
||||||
|
+ char profile = p;
|
||||||
|
+
|
||||||
|
+ return ssam_retry(__ssam_fan_profile_set, sdev->ctrl, &profile);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static int convert_ssam_tmp_to_profile(struct ssam_device *sdev, enum ssam_tmp_profile p)
|
||||||
|
{
|
||||||
|
switch (p) {
|
||||||
|
case SSAM_TMP_PROFILE_NORMAL:
|
||||||
|
@@ -83,7 +109,8 @@ static int convert_ssam_to_profile(struct ssam_device *sdev, enum ssam_tmp_profi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int convert_profile_to_ssam(struct ssam_device *sdev, enum platform_profile_option p)
|
||||||
|
+
|
||||||
|
+static int convert_profile_to_ssam_tmp(struct ssam_device *sdev, enum platform_profile_option p)
|
||||||
|
{
|
||||||
|
switch (p) {
|
||||||
|
case PLATFORM_PROFILE_LOW_POWER:
|
||||||
|
@@ -105,20 +132,42 @@ static int convert_profile_to_ssam(struct ssam_device *sdev, enum platform_profi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+static int convert_profile_to_ssam_fan(struct ssam_device *sdev, enum platform_profile_option p)
|
||||||
|
+{
|
||||||
|
+ switch (p) {
|
||||||
|
+ case PLATFORM_PROFILE_LOW_POWER:
|
||||||
|
+ return SSAM_FAN_PROFILE_BATTERY_SAVER;
|
||||||
|
+
|
||||||
|
+ case PLATFORM_PROFILE_BALANCED:
|
||||||
|
+ return SSAM_FAN_PROFILE_NORMAL;
|
||||||
|
+
|
||||||
|
+ case PLATFORM_PROFILE_BALANCED_PERFORMANCE:
|
||||||
|
+ return SSAM_FAN_PROFILE_BETTER_PERFORMANCE;
|
||||||
|
+
|
||||||
|
+ case PLATFORM_PROFILE_PERFORMANCE:
|
||||||
|
+ return SSAM_FAN_PROFILE_BEST_PERFORMANCE;
|
||||||
|
+
|
||||||
|
+ default:
|
||||||
|
+ /* This should have already been caught by platform_profile_store(). */
|
||||||
|
+ WARN(true, "unsupported platform profile");
|
||||||
|
+ return -EOPNOTSUPP;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static int ssam_platform_profile_get(struct platform_profile_handler *pprof,
|
||||||
|
enum platform_profile_option *profile)
|
||||||
|
{
|
||||||
|
- struct ssam_tmp_profile_device *tpd;
|
||||||
|
+ struct ssam_platform_profile_device *tpd;
|
||||||
|
enum ssam_tmp_profile tp;
|
||||||
|
int status;
|
||||||
|
|
||||||
|
- tpd = container_of(pprof, struct ssam_tmp_profile_device, handler);
|
||||||
|
+ tpd = container_of(pprof, struct ssam_platform_profile_device, handler);
|
||||||
|
|
||||||
|
status = ssam_tmp_profile_get(tpd->sdev, &tp);
|
||||||
|
if (status)
|
||||||
|
return status;
|
||||||
|
|
||||||
|
- status = convert_ssam_to_profile(tpd->sdev, tp);
|
||||||
|
+ status = convert_ssam_tmp_to_profile(tpd->sdev, tp);
|
||||||
|
if (status < 0)
|
||||||
|
return status;
|
||||||
|
|
||||||
|
@@ -129,21 +178,32 @@ static int ssam_platform_profile_get(struct platform_profile_handler *pprof,
|
||||||
|
static int ssam_platform_profile_set(struct platform_profile_handler *pprof,
|
||||||
|
enum platform_profile_option profile)
|
||||||
|
{
|
||||||
|
- struct ssam_tmp_profile_device *tpd;
|
||||||
|
+ struct ssam_platform_profile_device *tpd;
|
||||||
|
int tp;
|
||||||
|
|
||||||
|
- tpd = container_of(pprof, struct ssam_tmp_profile_device, handler);
|
||||||
|
+ tpd = container_of(pprof, struct ssam_platform_profile_device, handler);
|
||||||
|
+
|
||||||
|
+ tp = convert_profile_to_ssam_tmp(tpd->sdev, profile);
|
||||||
|
+ if (tp < 0)
|
||||||
|
+ return tp;
|
||||||
|
|
||||||
|
- tp = convert_profile_to_ssam(tpd->sdev, profile);
|
||||||
|
+ tp = ssam_tmp_profile_set(tpd->sdev, tp);
|
||||||
|
if (tp < 0)
|
||||||
|
return tp;
|
||||||
|
|
||||||
|
- return ssam_tmp_profile_set(tpd->sdev, tp);
|
||||||
|
+ if (tpd->has_fan) {
|
||||||
|
+ tp = convert_profile_to_ssam_fan(tpd->sdev, profile);
|
||||||
|
+ if (tp < 0)
|
||||||
|
+ return tp;
|
||||||
|
+ tp = ssam_fan_profile_set(tpd->sdev, tp);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return tp;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int surface_platform_profile_probe(struct ssam_device *sdev)
|
||||||
|
{
|
||||||
|
- struct ssam_tmp_profile_device *tpd;
|
||||||
|
+ struct ssam_platform_profile_device *tpd;
|
||||||
|
|
||||||
|
tpd = devm_kzalloc(&sdev->dev, sizeof(*tpd), GFP_KERNEL);
|
||||||
|
if (!tpd)
|
||||||
|
@@ -154,6 +214,8 @@ static int surface_platform_profile_probe(struct ssam_device *sdev)
|
||||||
|
tpd->handler.profile_get = ssam_platform_profile_get;
|
||||||
|
tpd->handler.profile_set = ssam_platform_profile_set;
|
||||||
|
|
||||||
|
+ tpd->has_fan = device_property_read_bool(&sdev->dev, "has_fan");
|
||||||
|
+
|
||||||
|
set_bit(PLATFORM_PROFILE_LOW_POWER, tpd->handler.choices);
|
||||||
|
set_bit(PLATFORM_PROFILE_BALANCED, tpd->handler.choices);
|
||||||
|
set_bit(PLATFORM_PROFILE_BALANCED_PERFORMANCE, tpd->handler.choices);
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 38a76c85dee37facde40f245d994c4209ccddd15 Mon Sep 17 00:00:00 2001
|
From 95b66fb97652988a7b4be5bb1deaa625e1bb3c3f Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Sat, 25 Jul 2020 17:19:53 +0200
|
Date: Sat, 25 Jul 2020 17:19:53 +0200
|
||||||
Subject: [PATCH] i2c: acpi: Implement RawBytes read access
|
Subject: [PATCH] i2c: acpi: Implement RawBytes read access
|
||||||
|
@ -108,9 +108,9 @@ index d6037a328669..a290ebc77aea 100644
|
||||||
dev_warn(&adapter->dev, "protocol 0x%02x not supported for client 0x%02x\n",
|
dev_warn(&adapter->dev, "protocol 0x%02x not supported for client 0x%02x\n",
|
||||||
accessor_type, client->addr);
|
accessor_type, client->addr);
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From f4ad3e5c368c11503d8b7af6a703f3972ebd5e98 Mon Sep 17 00:00:00 2001
|
From 2b86ac312b956799265cdd1411d305cd2dcaf6db Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Sat, 13 Feb 2021 16:41:18 +0100
|
Date: Sat, 13 Feb 2021 16:41:18 +0100
|
||||||
Subject: [PATCH] platform/surface: Add driver for Surface Book 1 dGPU switch
|
Subject: [PATCH] platform/surface: Add driver for Surface Book 1 dGPU switch
|
||||||
|
@ -331,5 +331,5 @@ index 000000000000..8b816ed8f35c
|
||||||
+MODULE_DESCRIPTION("Discrete GPU Power-Switch for Surface Book 1");
|
+MODULE_DESCRIPTION("Discrete GPU Power-Switch for Surface Book 1");
|
||||||
+MODULE_LICENSE("GPL");
|
+MODULE_LICENSE("GPL");
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 96cb53fd556f88f97d61b237c6015cec946865d5 Mon Sep 17 00:00:00 2001
|
From 3584a6c1791dc9c9b9c3ee846621571cbfabe37e Mon Sep 17 00:00:00 2001
|
||||||
From: Sachi King <nakato@nakato.io>
|
From: Sachi King <nakato@nakato.io>
|
||||||
Date: Tue, 5 Oct 2021 00:05:09 +1100
|
Date: Tue, 5 Oct 2021 00:05:09 +1100
|
||||||
Subject: [PATCH] Input: soc_button_array - support AMD variant Surface devices
|
Subject: [PATCH] Input: soc_button_array - support AMD variant Surface devices
|
||||||
|
@ -73,9 +73,9 @@ index f6d060377d18..b8603f74eb28 100644
|
||||||
|
|
||||||
/*
|
/*
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 7909f30b15796e8df43a6d4ea32cbbd40627c410 Mon Sep 17 00:00:00 2001
|
From c26bb1d0af0fe40be270d203d6aaeab28dd04a10 Mon Sep 17 00:00:00 2001
|
||||||
From: Sachi King <nakato@nakato.io>
|
From: Sachi King <nakato@nakato.io>
|
||||||
Date: Tue, 5 Oct 2021 00:22:57 +1100
|
Date: Tue, 5 Oct 2021 00:22:57 +1100
|
||||||
Subject: [PATCH] platform/surface: surfacepro3_button: don't load on amd
|
Subject: [PATCH] platform/surface: surfacepro3_button: don't load on amd
|
||||||
|
@ -145,5 +145,5 @@ index 2755601f979c..4240c98ca226 100644
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 28ea3660b6680bfd528ca05c543e69b8a2ad412c Mon Sep 17 00:00:00 2001
|
From b3fac417611f5bb4ae2a9bc9e828dacfe4418fbf Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Sat, 18 Feb 2023 01:02:49 +0100
|
Date: Sat, 18 Feb 2023 01:02:49 +0100
|
||||||
Subject: [PATCH] USB: quirks: Add USB_QUIRK_DELAY_INIT for Surface Go 3
|
Subject: [PATCH] USB: quirks: Add USB_QUIRK_DELAY_INIT for Surface Go 3
|
||||||
|
@ -23,10 +23,10 @@ Patchset: surface-typecover
|
||||||
1 file changed, 3 insertions(+)
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
|
diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
|
||||||
index 15e9bd180a1d..0d70461d01e1 100644
|
index b4783574b8e6..360970620589 100644
|
||||||
--- a/drivers/usb/core/quirks.c
|
--- a/drivers/usb/core/quirks.c
|
||||||
+++ b/drivers/usb/core/quirks.c
|
+++ b/drivers/usb/core/quirks.c
|
||||||
@@ -220,6 +220,9 @@ static const struct usb_device_id usb_quirk_list[] = {
|
@@ -223,6 +223,9 @@ static const struct usb_device_id usb_quirk_list[] = {
|
||||||
/* Microsoft Surface Dock Ethernet (RTL8153 GigE) */
|
/* Microsoft Surface Dock Ethernet (RTL8153 GigE) */
|
||||||
{ USB_DEVICE(0x045e, 0x07c6), .driver_info = USB_QUIRK_NO_LPM },
|
{ USB_DEVICE(0x045e, 0x07c6), .driver_info = USB_QUIRK_NO_LPM },
|
||||||
|
|
||||||
|
@ -37,9 +37,9 @@ index 15e9bd180a1d..0d70461d01e1 100644
|
||||||
{ USB_DEVICE(0x046a, 0x0023), .driver_info = USB_QUIRK_RESET_RESUME },
|
{ USB_DEVICE(0x046a, 0x0023), .driver_info = USB_QUIRK_RESET_RESUME },
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 039ed906cfe0578e78c40d786433e9b144c56785 Mon Sep 17 00:00:00 2001
|
From bf5167d418b660e321368222505a97d9f1ed68b4 Mon Sep 17 00:00:00 2001
|
||||||
From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
|
From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= <verdre@v0yd.nl>
|
||||||
Date: Thu, 5 Nov 2020 13:09:45 +0100
|
Date: Thu, 5 Nov 2020 13:09:45 +0100
|
||||||
Subject: [PATCH] hid/multitouch: Turn off Type Cover keyboard backlight when
|
Subject: [PATCH] hid/multitouch: Turn off Type Cover keyboard backlight when
|
||||||
|
@ -75,7 +75,7 @@ Patchset: surface-typecover
|
||||||
1 file changed, 98 insertions(+), 2 deletions(-)
|
1 file changed, 98 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
|
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
|
||||||
index fd5b0637dad6..0f49d8fa6333 100644
|
index 3e91e4d6ba6f..45b7884c97f0 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
|
||||||
@@ -34,7 +34,10 @@
|
@@ -34,7 +34,10 @@
|
||||||
|
@ -257,7 +257,7 @@ index fd5b0637dad6..0f49d8fa6333 100644
|
||||||
del_timer_sync(&td->release_timer);
|
del_timer_sync(&td->release_timer);
|
||||||
|
|
||||||
sysfs_remove_group(&hdev->dev.kobj, &mt_attribute_group);
|
sysfs_remove_group(&hdev->dev.kobj, &mt_attribute_group);
|
||||||
@@ -2226,6 +2317,11 @@ static const struct hid_device_id mt_devices[] = {
|
@@ -2230,6 +2321,11 @@ static const struct hid_device_id mt_devices[] = {
|
||||||
MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
|
MT_USB_DEVICE(USB_VENDOR_ID_XIROKU,
|
||||||
USB_DEVICE_ID_XIROKU_CSR2) },
|
USB_DEVICE_ID_XIROKU_CSR2) },
|
||||||
|
|
||||||
|
@ -270,9 +270,9 @@ index fd5b0637dad6..0f49d8fa6333 100644
|
||||||
{ .driver_data = MT_CLS_GOOGLE,
|
{ .driver_data = MT_CLS_GOOGLE,
|
||||||
HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, USB_VENDOR_ID_GOOGLE,
|
HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, USB_VENDOR_ID_GOOGLE,
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 97419c9be08b7b3e4311aa989fa8f91d0549a469 Mon Sep 17 00:00:00 2001
|
From dda4ca6e0248ae5acf3aaf78ee00e613f4e04bad Mon Sep 17 00:00:00 2001
|
||||||
From: PJungkamp <p.jungkamp@gmail.com>
|
From: PJungkamp <p.jungkamp@gmail.com>
|
||||||
Date: Fri, 25 Feb 2022 12:04:25 +0100
|
Date: Fri, 25 Feb 2022 12:04:25 +0100
|
||||||
Subject: [PATCH] hid/multitouch: Add support for surface pro type cover tablet
|
Subject: [PATCH] hid/multitouch: Add support for surface pro type cover tablet
|
||||||
|
@ -301,7 +301,7 @@ Patchset: surface-typecover
|
||||||
1 file changed, 122 insertions(+), 26 deletions(-)
|
1 file changed, 122 insertions(+), 26 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
|
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
|
||||||
index 0f49d8fa6333..1fad1199775b 100644
|
index 45b7884c97f0..f8978b405aca 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
|
||||||
@@ -77,6 +77,7 @@ MODULE_LICENSE("GPL");
|
@@ -77,6 +77,7 @@ MODULE_LICENSE("GPL");
|
||||||
|
@ -569,5 +569,5 @@ index 0f49d8fa6333..1fad1199775b 100644
|
||||||
unregister_pm_notifier(&td->pm_notifier);
|
unregister_pm_notifier(&td->pm_notifier);
|
||||||
del_timer_sync(&td->release_timer);
|
del_timer_sync(&td->release_timer);
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 3854d7e575b1091a994c58ef8ee2a89f4efced12 Mon Sep 17 00:00:00 2001
|
From aa49dc59b192cc038ca789ac70215d7492f043cb Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Sun, 19 Feb 2023 22:12:24 +0100
|
Date: Sun, 19 Feb 2023 22:12:24 +0100
|
||||||
Subject: [PATCH] PCI: Add quirk to prevent calling shutdown mehtod
|
Subject: [PATCH] PCI: Add quirk to prevent calling shutdown mehtod
|
||||||
|
@ -37,10 +37,10 @@ index 51ec9e7e784f..40554890d721 100644
|
||||||
|
|
||||||
if (drv && drv->shutdown)
|
if (drv && drv->shutdown)
|
||||||
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 d55a3ffae4b8..e8614d8476fe 100644
|
index d797df6e5f3e..c674ee496a0b 100644
|
||||||
--- a/drivers/pci/quirks.c
|
--- a/drivers/pci/quirks.c
|
||||||
+++ b/drivers/pci/quirks.c
|
+++ b/drivers/pci/quirks.c
|
||||||
@@ -6227,3 +6227,39 @@ static void pci_fixup_d3cold_delay_1sec(struct pci_dev *pdev)
|
@@ -6250,3 +6250,39 @@ static void pci_fixup_d3cold_delay_1sec(struct pci_dev *pdev)
|
||||||
pdev->d3cold_delay = 1000;
|
pdev->d3cold_delay = 1000;
|
||||||
}
|
}
|
||||||
DECLARE_PCI_FIXUP_FINAL(0x5555, 0x0004, pci_fixup_d3cold_delay_1sec);
|
DECLARE_PCI_FIXUP_FINAL(0x5555, 0x0004, pci_fixup_d3cold_delay_1sec);
|
||||||
|
@ -81,7 +81,7 @@ index d55a3ffae4b8..e8614d8476fe 100644
|
||||||
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x466d, quirk_no_shutdown); // Thunderbolt 4 NHI
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x466d, quirk_no_shutdown); // Thunderbolt 4 NHI
|
||||||
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x46a8, quirk_no_shutdown); // GPU
|
+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x46a8, quirk_no_shutdown); // GPU
|
||||||
diff --git a/include/linux/pci.h b/include/linux/pci.h
|
diff --git a/include/linux/pci.h b/include/linux/pci.h
|
||||||
index bc80960fad7c..eec5704d1000 100644
|
index 7ab0d13672da..8d8d9225e0db 100644
|
||||||
--- a/include/linux/pci.h
|
--- a/include/linux/pci.h
|
||||||
+++ b/include/linux/pci.h
|
+++ b/include/linux/pci.h
|
||||||
@@ -465,6 +465,7 @@ struct pci_dev {
|
@@ -465,6 +465,7 @@ struct pci_dev {
|
||||||
|
@ -93,5 +93,5 @@ index bc80960fad7c..eec5704d1000 100644
|
||||||
atomic_t enable_cnt; /* pci_enable_device has been called */
|
atomic_t enable_cnt; /* pci_enable_device has been called */
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From d9ddc9ae99c11ebc912a1a8dde46d783e873508b Mon Sep 17 00:00:00 2001
|
From 36cf5399fd0f16f10f97c21131d29ebda13607f5 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Sun, 12 Mar 2023 01:41:57 +0100
|
Date: Sun, 12 Mar 2023 01:41:57 +0100
|
||||||
Subject: [PATCH] platform/surface: gpe: Add support for Surface Pro 9
|
Subject: [PATCH] platform/surface: gpe: Add support for Surface Pro 9
|
||||||
|
@ -47,5 +47,5 @@ index 62fd4004db31..103fc4468262 100644
|
||||||
.ident = "Surface Book 1",
|
.ident = "Surface Book 1",
|
||||||
.matches = {
|
.matches = {
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 5fdcd780891777ef73585adf610593e6e097e6d6 Mon Sep 17 00:00:00 2001
|
From 526bea529e4befa282fcfd01bbadbed7325faf01 Mon Sep 17 00:00:00 2001
|
||||||
From: Hans de Goede <hdegoede@redhat.com>
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
Date: Sun, 10 Oct 2021 20:56:57 +0200
|
Date: Sun, 10 Oct 2021 20:56:57 +0200
|
||||||
Subject: [PATCH] ACPI: delay enumeration of devices with a _DEP pointing to an
|
Subject: [PATCH] ACPI: delay enumeration of devices with a _DEP pointing to an
|
||||||
|
@ -58,10 +58,10 @@ Patchset: cameras
|
||||||
1 file changed, 3 insertions(+)
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
|
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
|
||||||
index 02bb2cce423f..b123138d3dc0 100644
|
index e6ed1ba91e5c..b367890b7438 100644
|
||||||
--- a/drivers/acpi/scan.c
|
--- a/drivers/acpi/scan.c
|
||||||
+++ b/drivers/acpi/scan.c
|
+++ b/drivers/acpi/scan.c
|
||||||
@@ -2114,6 +2114,9 @@ static acpi_status acpi_bus_check_add_2(acpi_handle handle, u32 lvl_not_used,
|
@@ -2138,6 +2138,9 @@ static acpi_status acpi_bus_check_add_2(acpi_handle handle, u32 lvl_not_used,
|
||||||
|
|
||||||
static void acpi_default_enumeration(struct acpi_device *device)
|
static void acpi_default_enumeration(struct acpi_device *device)
|
||||||
{
|
{
|
||||||
|
@ -72,9 +72,9 @@ index 02bb2cce423f..b123138d3dc0 100644
|
||||||
* Do not enumerate devices with enumeration_by_parent flag set as
|
* Do not enumerate devices with enumeration_by_parent flag set as
|
||||||
* they will be enumerated by their respective parents.
|
* they will be enumerated by their respective parents.
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From eb19f5e13f14a8973920d406125f205945558fb9 Mon Sep 17 00:00:00 2001
|
From d41ef92974135b1c22c2f46cbaba926701e0d4af Mon Sep 17 00:00:00 2001
|
||||||
From: zouxiaoh <xiaohong.zou@intel.com>
|
From: zouxiaoh <xiaohong.zou@intel.com>
|
||||||
Date: Fri, 25 Jun 2021 08:52:59 +0800
|
Date: Fri, 25 Jun 2021 08:52:59 +0800
|
||||||
Subject: [PATCH] iommu: intel-ipu: use IOMMU passthrough mode for Intel IPUs
|
Subject: [PATCH] iommu: intel-ipu: use IOMMU passthrough mode for Intel IPUs
|
||||||
|
@ -100,23 +100,24 @@ Patchset: cameras
|
||||||
1 file changed, 30 insertions(+)
|
1 file changed, 30 insertions(+)
|
||||||
|
|
||||||
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
|
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
|
||||||
index cc6569613255..8a532d32efdd 100644
|
index 6c01b1aebf27..ceed043464b1 100644
|
||||||
--- a/drivers/iommu/intel/iommu.c
|
--- a/drivers/iommu/intel/iommu.c
|
||||||
+++ b/drivers/iommu/intel/iommu.c
|
+++ b/drivers/iommu/intel/iommu.c
|
||||||
@@ -38,6 +38,12 @@
|
@@ -45,6 +45,13 @@
|
||||||
#define IS_GFX_DEVICE(pdev) ((pdev->class >> 16) == PCI_BASE_CLASS_DISPLAY)
|
((pdev)->vendor == PCI_VENDOR_ID_INTEL && (pdev)->device == 0x34E4) \
|
||||||
#define IS_USB_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_SERIAL_USB)
|
)
|
||||||
#define IS_ISA_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_BRIDGE_ISA)
|
|
||||||
+#define IS_INTEL_IPU(pdev) ((pdev)->vendor == PCI_VENDOR_ID_INTEL && \
|
+#define IS_INTEL_IPU(pdev) ((pdev)->vendor == PCI_VENDOR_ID_INTEL && \
|
||||||
+ ((pdev)->device == 0x9a19 || \
|
+ ((pdev)->device == 0x9a19 || \
|
||||||
+ (pdev)->device == 0x9a39 || \
|
+ (pdev)->device == 0x9a39 || \
|
||||||
+ (pdev)->device == 0x4e19 || \
|
+ (pdev)->device == 0x4e19 || \
|
||||||
+ (pdev)->device == 0x465d || \
|
+ (pdev)->device == 0x465d || \
|
||||||
+ (pdev)->device == 0x1919))
|
+ (pdev)->device == 0x1919))
|
||||||
#define IS_IPTS(pdev) ((pdev)->vendor == PCI_VENDOR_ID_INTEL && \
|
+
|
||||||
((pdev)->device == 0x9d3e))
|
#define IOAPIC_RANGE_START (0xfee00000)
|
||||||
#define IS_AZALIA(pdev) ((pdev)->vendor == 0x8086 && (pdev)->device == 0x3a3e)
|
#define IOAPIC_RANGE_END (0xfeefffff)
|
||||||
@@ -294,12 +300,14 @@ EXPORT_SYMBOL_GPL(intel_iommu_enabled);
|
#define IOVA_START_ADDR (0x1000)
|
||||||
|
@@ -154,12 +161,14 @@ EXPORT_SYMBOL_GPL(intel_iommu_enabled);
|
||||||
|
|
||||||
static int dmar_map_gfx = 1;
|
static int dmar_map_gfx = 1;
|
||||||
static int dmar_map_ipts = 1;
|
static int dmar_map_ipts = 1;
|
||||||
|
@ -131,7 +132,7 @@ index cc6569613255..8a532d32efdd 100644
|
||||||
#define IDENTMAP_IPTS 16
|
#define IDENTMAP_IPTS 16
|
||||||
|
|
||||||
const struct iommu_ops intel_iommu_ops;
|
const struct iommu_ops intel_iommu_ops;
|
||||||
@@ -2553,6 +2561,9 @@ static int device_def_domain_type(struct device *dev)
|
@@ -2420,6 +2429,9 @@ static int device_def_domain_type(struct device *dev)
|
||||||
if ((iommu_identity_mapping & IDENTMAP_GFX) && IS_GFX_DEVICE(pdev))
|
if ((iommu_identity_mapping & IDENTMAP_GFX) && IS_GFX_DEVICE(pdev))
|
||||||
return IOMMU_DOMAIN_IDENTITY;
|
return IOMMU_DOMAIN_IDENTITY;
|
||||||
|
|
||||||
|
@ -141,7 +142,7 @@ index cc6569613255..8a532d32efdd 100644
|
||||||
if ((iommu_identity_mapping & IDENTMAP_IPTS) && IS_IPTS(pdev))
|
if ((iommu_identity_mapping & IDENTMAP_IPTS) && IS_IPTS(pdev))
|
||||||
return IOMMU_DOMAIN_IDENTITY;
|
return IOMMU_DOMAIN_IDENTITY;
|
||||||
}
|
}
|
||||||
@@ -2862,6 +2873,9 @@ static int __init init_dmars(void)
|
@@ -2729,6 +2741,9 @@ static int __init init_dmars(void)
|
||||||
if (!dmar_map_gfx)
|
if (!dmar_map_gfx)
|
||||||
iommu_identity_mapping |= IDENTMAP_GFX;
|
iommu_identity_mapping |= IDENTMAP_GFX;
|
||||||
|
|
||||||
|
@ -151,7 +152,7 @@ index cc6569613255..8a532d32efdd 100644
|
||||||
if (!dmar_map_ipts)
|
if (!dmar_map_ipts)
|
||||||
iommu_identity_mapping |= IDENTMAP_IPTS;
|
iommu_identity_mapping |= IDENTMAP_IPTS;
|
||||||
|
|
||||||
@@ -4987,6 +5001,18 @@ static void quirk_iommu_igfx(struct pci_dev *dev)
|
@@ -4909,6 +4924,18 @@ static void quirk_iommu_igfx(struct pci_dev *dev)
|
||||||
dmar_map_gfx = 0;
|
dmar_map_gfx = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,15 +171,7 @@ index cc6569613255..8a532d32efdd 100644
|
||||||
static void quirk_iommu_ipts(struct pci_dev *dev)
|
static void quirk_iommu_ipts(struct pci_dev *dev)
|
||||||
{
|
{
|
||||||
if (!IS_IPTS(dev))
|
if (!IS_IPTS(dev))
|
||||||
@@ -4998,6 +5024,7 @@ static void quirk_iommu_ipts(struct pci_dev *dev)
|
@@ -4956,6 +4983,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1632, quirk_iommu_igfx);
|
||||||
pci_info(dev, "Passthrough IOMMU for IPTS\n");
|
|
||||||
dmar_map_ipts = 0;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
/* G4x/GM45 integrated gfx dmar support is totally busted. */
|
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_igfx);
|
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e00, quirk_iommu_igfx);
|
|
||||||
@@ -5033,6 +5060,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x1632, quirk_iommu_igfx);
|
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163A, quirk_iommu_igfx);
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163A, quirk_iommu_igfx);
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163D, quirk_iommu_igfx);
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163D, quirk_iommu_igfx);
|
||||||
|
|
||||||
|
@ -187,11 +180,11 @@ index cc6569613255..8a532d32efdd 100644
|
||||||
+
|
+
|
||||||
/* disable IPTS dmar support */
|
/* disable IPTS dmar support */
|
||||||
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9D3E, quirk_iommu_ipts);
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x9D3E, quirk_iommu_ipts);
|
||||||
|
DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x34E4, quirk_iommu_ipts);
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 1b16e7cbcbf699e4d841424568e0de1cee048d93 Mon Sep 17 00:00:00 2001
|
From 214600c4c0c3039ba0d0a5e522a2eb162da3857b Mon Sep 17 00:00:00 2001
|
||||||
From: Daniel Scally <djrscally@gmail.com>
|
From: Daniel Scally <djrscally@gmail.com>
|
||||||
Date: Sun, 10 Oct 2021 20:57:02 +0200
|
Date: Sun, 10 Oct 2021 20:57:02 +0200
|
||||||
Subject: [PATCH] platform/x86: int3472: Enable I2c daisy chain
|
Subject: [PATCH] platform/x86: int3472: Enable I2c daisy chain
|
||||||
|
@ -226,9 +219,9 @@ index 1e107fd49f82..e3e1696e7f0e 100644
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From a856e6ec1aa1ce0e88abdd423a151f2bbddb8134 Mon Sep 17 00:00:00 2001
|
From f5c4f5e1de99e04416ddffca65246a7769a202e3 Mon Sep 17 00:00:00 2001
|
||||||
From: Daniel Scally <dan.scally@ideasonboard.com>
|
From: Daniel Scally <dan.scally@ideasonboard.com>
|
||||||
Date: Thu, 2 Mar 2023 12:59:39 +0000
|
Date: Thu, 2 Mar 2023 12:59:39 +0000
|
||||||
Subject: [PATCH] platform/x86: int3472: Remap reset GPIO for INT347E
|
Subject: [PATCH] platform/x86: int3472: Remap reset GPIO for INT347E
|
||||||
|
@ -281,9 +274,9 @@ index 07b302e09340..1d3097bc7e48 100644
|
||||||
agpio, func, polarity);
|
agpio, func, polarity);
|
||||||
if (ret)
|
if (ret)
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From a7a10c4493fe0a381f12fd6a20a024e7797bd37c Mon Sep 17 00:00:00 2001
|
From 216df183e0ad29051b42fcb856d0818a6094f16d Mon Sep 17 00:00:00 2001
|
||||||
From: Daniel Scally <dan.scally@ideasonboard.com>
|
From: Daniel Scally <dan.scally@ideasonboard.com>
|
||||||
Date: Tue, 21 Mar 2023 13:45:26 +0000
|
Date: Tue, 21 Mar 2023 13:45:26 +0000
|
||||||
Subject: [PATCH] media: i2c: Clarify that gain is Analogue gain in OV7251
|
Subject: [PATCH] media: i2c: Clarify that gain is Analogue gain in OV7251
|
||||||
|
@ -298,7 +291,7 @@ Patchset: cameras
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/media/i2c/ov7251.c b/drivers/media/i2c/ov7251.c
|
diff --git a/drivers/media/i2c/ov7251.c b/drivers/media/i2c/ov7251.c
|
||||||
index 6582cc0e2384..fd0796b6e07e 100644
|
index 30f61e04ecaf..9c1292ca8552 100644
|
||||||
--- a/drivers/media/i2c/ov7251.c
|
--- a/drivers/media/i2c/ov7251.c
|
||||||
+++ b/drivers/media/i2c/ov7251.c
|
+++ b/drivers/media/i2c/ov7251.c
|
||||||
@@ -1051,7 +1051,7 @@ static int ov7251_s_ctrl(struct v4l2_ctrl *ctrl)
|
@@ -1051,7 +1051,7 @@ static int ov7251_s_ctrl(struct v4l2_ctrl *ctrl)
|
||||||
|
@ -310,7 +303,7 @@ index 6582cc0e2384..fd0796b6e07e 100644
|
||||||
ret = ov7251_set_gain(ov7251, ctrl->val);
|
ret = ov7251_set_gain(ov7251, ctrl->val);
|
||||||
break;
|
break;
|
||||||
case V4L2_CID_TEST_PATTERN:
|
case V4L2_CID_TEST_PATTERN:
|
||||||
@@ -1553,7 +1553,7 @@ static int ov7251_init_ctrls(struct ov7251 *ov7251)
|
@@ -1572,7 +1572,7 @@ static int ov7251_init_ctrls(struct ov7251 *ov7251)
|
||||||
ov7251->exposure = v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
|
ov7251->exposure = v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
|
||||||
V4L2_CID_EXPOSURE, 1, 32, 1, 32);
|
V4L2_CID_EXPOSURE, 1, 32, 1, 32);
|
||||||
ov7251->gain = v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
|
ov7251->gain = v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
|
||||||
|
@ -320,9 +313,9 @@ index 6582cc0e2384..fd0796b6e07e 100644
|
||||||
V4L2_CID_TEST_PATTERN,
|
V4L2_CID_TEST_PATTERN,
|
||||||
ARRAY_SIZE(ov7251_test_pattern_menu) - 1,
|
ARRAY_SIZE(ov7251_test_pattern_menu) - 1,
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From e96fa67c9172fac9aa6e68199cf7e29d074c21e6 Mon Sep 17 00:00:00 2001
|
From 0573bb8c22ed0f0476a2ca6c5df2a7f09c6a1b66 Mon Sep 17 00:00:00 2001
|
||||||
From: Daniel Scally <dan.scally@ideasonboard.com>
|
From: Daniel Scally <dan.scally@ideasonboard.com>
|
||||||
Date: Wed, 22 Mar 2023 11:01:42 +0000
|
Date: Wed, 22 Mar 2023 11:01:42 +0000
|
||||||
Subject: [PATCH] media: v4l2-core: Acquire privacy led in
|
Subject: [PATCH] media: v4l2-core: Acquire privacy led in
|
||||||
|
@ -341,7 +334,7 @@ Patchset: cameras
|
||||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c
|
diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c
|
||||||
index 8cfd593d293d..c32f0d1b29d4 100644
|
index 3ec323bd528b..b55570a0142c 100644
|
||||||
--- a/drivers/media/v4l2-core/v4l2-async.c
|
--- a/drivers/media/v4l2-core/v4l2-async.c
|
||||||
+++ b/drivers/media/v4l2-core/v4l2-async.c
|
+++ b/drivers/media/v4l2-core/v4l2-async.c
|
||||||
@@ -796,6 +796,10 @@ int v4l2_async_register_subdev(struct v4l2_subdev *sd)
|
@@ -796,6 +796,10 @@ int v4l2_async_register_subdev(struct v4l2_subdev *sd)
|
||||||
|
@ -356,10 +349,10 @@ index 8cfd593d293d..c32f0d1b29d4 100644
|
||||||
* No reference taken. The reference is held by the device (struct
|
* No reference taken. The reference is held by the device (struct
|
||||||
* v4l2_subdev.dev), and async sub-device does not exist independently
|
* v4l2_subdev.dev), and async sub-device does not exist independently
|
||||||
diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
|
diff --git a/drivers/media/v4l2-core/v4l2-fwnode.c b/drivers/media/v4l2-core/v4l2-fwnode.c
|
||||||
index 7f181fbbb140..1c0347de4e21 100644
|
index 89c7192148df..44eca113e772 100644
|
||||||
--- a/drivers/media/v4l2-core/v4l2-fwnode.c
|
--- a/drivers/media/v4l2-core/v4l2-fwnode.c
|
||||||
+++ b/drivers/media/v4l2-core/v4l2-fwnode.c
|
+++ b/drivers/media/v4l2-core/v4l2-fwnode.c
|
||||||
@@ -1217,10 +1217,6 @@ int v4l2_async_register_subdev_sensor(struct v4l2_subdev *sd)
|
@@ -1219,10 +1219,6 @@ int v4l2_async_register_subdev_sensor(struct v4l2_subdev *sd)
|
||||||
|
|
||||||
v4l2_async_subdev_nf_init(notifier, sd);
|
v4l2_async_subdev_nf_init(notifier, sd);
|
||||||
|
|
||||||
|
@ -371,9 +364,9 @@ index 7f181fbbb140..1c0347de4e21 100644
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto out_cleanup;
|
goto out_cleanup;
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 68dac72bec1c99890d35d6bfd1b1f66e0cf8789c Mon Sep 17 00:00:00 2001
|
From 84d70102a7892f720a11a0b3d313f3932c859798 Mon Sep 17 00:00:00 2001
|
||||||
From: Kate Hsuan <hpa@redhat.com>
|
From: Kate Hsuan <hpa@redhat.com>
|
||||||
Date: Tue, 21 Mar 2023 23:37:16 +0800
|
Date: Tue, 21 Mar 2023 23:37:16 +0800
|
||||||
Subject: [PATCH] platform: x86: int3472: Add MFD cell for tps68470 LED
|
Subject: [PATCH] platform: x86: int3472: Add MFD cell for tps68470 LED
|
||||||
|
@ -412,9 +405,9 @@ index e3e1696e7f0e..423dc555093f 100644
|
||||||
for (i = 0; i < board_data->n_gpiod_lookups; i++)
|
for (i = 0; i < board_data->n_gpiod_lookups; i++)
|
||||||
gpiod_add_lookup_table(board_data->tps68470_gpio_lookup_tables[i]);
|
gpiod_add_lookup_table(board_data->tps68470_gpio_lookup_tables[i]);
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 3f446f24aecaba808693f0173e28972e651fa87d Mon Sep 17 00:00:00 2001
|
From 183f7e4da9cacc2a0f9cb3549adad9a3c95f1b94 Mon Sep 17 00:00:00 2001
|
||||||
From: Kate Hsuan <hpa@redhat.com>
|
From: Kate Hsuan <hpa@redhat.com>
|
||||||
Date: Tue, 21 Mar 2023 23:37:17 +0800
|
Date: Tue, 21 Mar 2023 23:37:17 +0800
|
||||||
Subject: [PATCH] include: mfd: tps68470: Add masks for LEDA and LEDB
|
Subject: [PATCH] include: mfd: tps68470: Add masks for LEDA and LEDB
|
||||||
|
@ -453,9 +446,9 @@ index 7807fa329db0..2d2abb25b944 100644
|
||||||
+
|
+
|
||||||
#endif /* __LINUX_MFD_TPS68470_H */
|
#endif /* __LINUX_MFD_TPS68470_H */
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From a0fe4ec438c5edb9f4360c8a2a5f5269d05c44ef Mon Sep 17 00:00:00 2001
|
From 0f3811853f436eed853d7d226eb811f65137d03a Mon Sep 17 00:00:00 2001
|
||||||
From: Kate Hsuan <hpa@redhat.com>
|
From: Kate Hsuan <hpa@redhat.com>
|
||||||
Date: Tue, 21 Mar 2023 23:37:18 +0800
|
Date: Tue, 21 Mar 2023 23:37:18 +0800
|
||||||
Subject: [PATCH] leds: tps68470: Add LED control for tps68470
|
Subject: [PATCH] leds: tps68470: Add LED control for tps68470
|
||||||
|
@ -478,10 +471,10 @@ Patchset: cameras
|
||||||
create mode 100644 drivers/leds/leds-tps68470.c
|
create mode 100644 drivers/leds/leds-tps68470.c
|
||||||
|
|
||||||
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
|
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
|
||||||
index a3a9ac5b5338..0bc6845b5d29 100644
|
index d721b254e1e4..1717f94d1491 100644
|
||||||
--- a/drivers/leds/Kconfig
|
--- a/drivers/leds/Kconfig
|
||||||
+++ b/drivers/leds/Kconfig
|
+++ b/drivers/leds/Kconfig
|
||||||
@@ -875,6 +875,18 @@ config LEDS_TPS6105X
|
@@ -899,6 +899,18 @@ config LEDS_TPS6105X
|
||||||
It is a single boost converter primarily for white LEDs and
|
It is a single boost converter primarily for white LEDs and
|
||||||
audio amplifiers.
|
audio amplifiers.
|
||||||
|
|
||||||
|
@ -501,10 +494,10 @@ index a3a9ac5b5338..0bc6845b5d29 100644
|
||||||
tristate "LED support for SGI Octane machines"
|
tristate "LED support for SGI Octane machines"
|
||||||
depends on LEDS_CLASS
|
depends on LEDS_CLASS
|
||||||
diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
|
diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
|
||||||
index d7348e8bc019..10caea4e7c61 100644
|
index ce07dc295ff0..0ebf6a9f9f7f 100644
|
||||||
--- a/drivers/leds/Makefile
|
--- a/drivers/leds/Makefile
|
||||||
+++ b/drivers/leds/Makefile
|
+++ b/drivers/leds/Makefile
|
||||||
@@ -84,6 +84,7 @@ obj-$(CONFIG_LEDS_TCA6507) += leds-tca6507.o
|
@@ -86,6 +86,7 @@ obj-$(CONFIG_LEDS_TCA6507) += leds-tca6507.o
|
||||||
obj-$(CONFIG_LEDS_TI_LMU_COMMON) += leds-ti-lmu-common.o
|
obj-$(CONFIG_LEDS_TI_LMU_COMMON) += leds-ti-lmu-common.o
|
||||||
obj-$(CONFIG_LEDS_TLC591XX) += leds-tlc591xx.o
|
obj-$(CONFIG_LEDS_TLC591XX) += leds-tlc591xx.o
|
||||||
obj-$(CONFIG_LEDS_TPS6105X) += leds-tps6105x.o
|
obj-$(CONFIG_LEDS_TPS6105X) += leds-tps6105x.o
|
||||||
|
@ -704,5 +697,156 @@ index 000000000000..35aeb5db89c8
|
||||||
+MODULE_DESCRIPTION("LED driver for TPS68470 PMIC");
|
+MODULE_DESCRIPTION("LED driver for TPS68470 PMIC");
|
||||||
+MODULE_LICENSE("GPL v2");
|
+MODULE_LICENSE("GPL v2");
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
|
From 87ebc160cb35a068acfaf59847c84656cb52b1b7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sakari Ailus <sakari.ailus@linux.intel.com>
|
||||||
|
Date: Thu, 25 May 2023 14:12:04 +0300
|
||||||
|
Subject: [PATCH] media: ipu3-cio2: Further clean up async subdev link creation
|
||||||
|
|
||||||
|
Use v4l2_create_fwnode_links_to_pad() to create links from async
|
||||||
|
sub-devices to the CSI-2 receiver subdevs.
|
||||||
|
|
||||||
|
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
|
||||||
|
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
|
||||||
|
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
|
||||||
|
Patchset: cameras
|
||||||
|
---
|
||||||
|
drivers/media/pci/intel/ipu3/ipu3-cio2.c | 22 +++++-----------------
|
||||||
|
1 file changed, 5 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/media/pci/intel/ipu3/ipu3-cio2.c b/drivers/media/pci/intel/ipu3/ipu3-cio2.c
|
||||||
|
index ed08bf4178f0..83e29c56fe33 100644
|
||||||
|
--- a/drivers/media/pci/intel/ipu3/ipu3-cio2.c
|
||||||
|
+++ b/drivers/media/pci/intel/ipu3/ipu3-cio2.c
|
||||||
|
@@ -28,6 +28,7 @@
|
||||||
|
#include <media/v4l2-device.h>
|
||||||
|
#include <media/v4l2-event.h>
|
||||||
|
#include <media/v4l2-fwnode.h>
|
||||||
|
+#include <media/v4l2-mc.h>
|
||||||
|
#include <media/v4l2-ioctl.h>
|
||||||
|
#include <media/videobuf2-dma-sg.h>
|
||||||
|
|
||||||
|
@@ -1407,7 +1408,6 @@ static void cio2_notifier_unbind(struct v4l2_async_notifier *notifier,
|
||||||
|
static int cio2_notifier_complete(struct v4l2_async_notifier *notifier)
|
||||||
|
{
|
||||||
|
struct cio2_device *cio2 = to_cio2_device(notifier);
|
||||||
|
- struct device *dev = &cio2->pci_dev->dev;
|
||||||
|
struct sensor_async_subdev *s_asd;
|
||||||
|
struct v4l2_async_connection *asd;
|
||||||
|
struct cio2_queue *q;
|
||||||
|
@@ -1417,23 +1417,10 @@ static int cio2_notifier_complete(struct v4l2_async_notifier *notifier)
|
||||||
|
s_asd = to_sensor_asd(asd);
|
||||||
|
q = &cio2->queue[s_asd->csi2.port];
|
||||||
|
|
||||||
|
- ret = media_entity_get_fwnode_pad(&q->sensor->entity,
|
||||||
|
- s_asd->asd.match.fwnode,
|
||||||
|
- MEDIA_PAD_FL_SOURCE);
|
||||||
|
- if (ret < 0) {
|
||||||
|
- dev_err(dev, "no pad for endpoint %pfw (%d)\n",
|
||||||
|
- s_asd->asd.match.fwnode, ret);
|
||||||
|
- return ret;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- ret = media_create_pad_link(&q->sensor->entity, ret,
|
||||||
|
- &q->subdev.entity, CIO2_PAD_SINK,
|
||||||
|
- 0);
|
||||||
|
- if (ret) {
|
||||||
|
- dev_err(dev, "failed to create link for %s (endpoint %pfw, error %d)\n",
|
||||||
|
- q->sensor->name, s_asd->asd.match.fwnode, ret);
|
||||||
|
+ ret = v4l2_create_fwnode_links_to_pad(asd->sd,
|
||||||
|
+ &q->subdev_pads[CIO2_PAD_SINK], 0);
|
||||||
|
+ if (ret)
|
||||||
|
return ret;
|
||||||
|
- }
|
||||||
|
}
|
||||||
|
|
||||||
|
return v4l2_device_register_subdev_nodes(&cio2->v4l2_dev);
|
||||||
|
@@ -1572,6 +1559,7 @@ static int cio2_queue_init(struct cio2_device *cio2, struct cio2_queue *q)
|
||||||
|
v4l2_subdev_init(subdev, &cio2_subdev_ops);
|
||||||
|
subdev->flags = V4L2_SUBDEV_FL_HAS_DEVNODE | V4L2_SUBDEV_FL_HAS_EVENTS;
|
||||||
|
subdev->owner = THIS_MODULE;
|
||||||
|
+ subdev->dev = dev;
|
||||||
|
snprintf(subdev->name, sizeof(subdev->name),
|
||||||
|
CIO2_ENTITY_NAME " %td", q - cio2->queue);
|
||||||
|
subdev->entity.function = MEDIA_ENT_F_VID_IF_BRIDGE;
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
||||||
|
From c5d6c95fd5cefbd4ba9779fc965bce0a36bdbe5e Mon Sep 17 00:00:00 2001
|
||||||
|
From: mojyack <mojyack@gmail.com>
|
||||||
|
Date: Sat, 3 Feb 2024 12:59:53 +0900
|
||||||
|
Subject: [PATCH] media: staging: ipu3-imgu: Fix multiple calls of s_stream on
|
||||||
|
stream stop
|
||||||
|
|
||||||
|
Adapt to 009905e "media: v4l2-subdev: Document and enforce .s_stream() requirements"
|
||||||
|
|
||||||
|
Patchset: cameras
|
||||||
|
---
|
||||||
|
drivers/staging/media/ipu3/ipu3-v4l2.c | 16 ++++++++--------
|
||||||
|
1 file changed, 8 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/staging/media/ipu3/ipu3-v4l2.c b/drivers/staging/media/ipu3/ipu3-v4l2.c
|
||||||
|
index 3df58eb3e882..81aff2d5d898 100644
|
||||||
|
--- a/drivers/staging/media/ipu3/ipu3-v4l2.c
|
||||||
|
+++ b/drivers/staging/media/ipu3/ipu3-v4l2.c
|
||||||
|
@@ -538,18 +538,18 @@ static void imgu_vb2_stop_streaming(struct vb2_queue *vq)
|
||||||
|
|
||||||
|
WARN_ON(!node->enabled);
|
||||||
|
|
||||||
|
- pipe = node->pipe;
|
||||||
|
- dev_dbg(dev, "Try to stream off node [%u][%u]", pipe, node->id);
|
||||||
|
- imgu_pipe = &imgu->imgu_pipe[pipe];
|
||||||
|
- r = v4l2_subdev_call(&imgu_pipe->imgu_sd.subdev, video, s_stream, 0);
|
||||||
|
- if (r)
|
||||||
|
- dev_err(&imgu->pci_dev->dev,
|
||||||
|
- "failed to stop subdev streaming\n");
|
||||||
|
-
|
||||||
|
mutex_lock(&imgu->streaming_lock);
|
||||||
|
/* Was this the first node with streaming disabled? */
|
||||||
|
if (imgu->streaming && imgu_all_nodes_streaming(imgu, node)) {
|
||||||
|
/* Yes, really stop streaming now */
|
||||||
|
+ pipe = node->pipe;
|
||||||
|
+ dev_dbg(dev, "Try to stream off node [%u][%u]", pipe, node->id);
|
||||||
|
+ imgu_pipe = &imgu->imgu_pipe[pipe];
|
||||||
|
+ r = v4l2_subdev_call(&imgu_pipe->imgu_sd.subdev, video, s_stream, 0);
|
||||||
|
+ if (r)
|
||||||
|
+ dev_err(&imgu->pci_dev->dev,
|
||||||
|
+ "failed to stop subdev streaming\n");
|
||||||
|
+
|
||||||
|
dev_dbg(dev, "IMGU streaming is ready to stop");
|
||||||
|
r = imgu_s_stream(imgu, false);
|
||||||
|
if (!r)
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
||||||
|
From 65421dfc17e3559d45345ea2aa48b44268653496 Mon Sep 17 00:00:00 2001
|
||||||
|
From: mojyack <mojyack@gmail.com>
|
||||||
|
Date: Tue, 26 Mar 2024 05:55:44 +0900
|
||||||
|
Subject: [PATCH] media: i2c: dw9719: fix probe error on surface go 2
|
||||||
|
|
||||||
|
On surface go 2, sometimes probing dw9719 fails with "dw9719: probe of i2c-INT347A:00-VCM failed with error -121".
|
||||||
|
The -121(-EREMOTEIO) is came from drivers/i2c/busses/i2c-designware-common.c:575, and indicates the initialize occurs too early.
|
||||||
|
So just add some delay.
|
||||||
|
There is no exact reason for this 10000us, but 100us failed.
|
||||||
|
---
|
||||||
|
drivers/media/i2c/dw9719.c | 3 +++
|
||||||
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/media/i2c/dw9719.c b/drivers/media/i2c/dw9719.c
|
||||||
|
index c626ed845928..0094cfda57ea 100644
|
||||||
|
--- a/drivers/media/i2c/dw9719.c
|
||||||
|
+++ b/drivers/media/i2c/dw9719.c
|
||||||
|
@@ -82,6 +82,9 @@ static int dw9719_power_up(struct dw9719_device *dw9719)
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
+ /* Wait for device to be acknowledged */
|
||||||
|
+ fsleep(10000);
|
||||||
|
+
|
||||||
|
/* Jiggle SCL pin to wake up device */
|
||||||
|
cci_write(dw9719->regmap, DW9719_CONTROL, 1, &ret);
|
||||||
|
|
||||||
|
--
|
||||||
|
2.44.0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 04069751b144350632ec45b5b25c2cc01d5f34ef Mon Sep 17 00:00:00 2001
|
From 302d8dc26283bc10ba22bc549c41292d00125e60 Mon Sep 17 00:00:00 2001
|
||||||
From: Sachi King <nakato@nakato.io>
|
From: Sachi King <nakato@nakato.io>
|
||||||
Date: Sat, 29 May 2021 17:47:38 +1000
|
Date: Sat, 29 May 2021 17:47:38 +1000
|
||||||
Subject: [PATCH] ACPI: Add quirk for Surface Laptop 4 AMD missing irq 7
|
Subject: [PATCH] ACPI: Add quirk for Surface Laptop 4 AMD missing irq 7
|
||||||
|
@ -63,9 +63,9 @@ index 85a3ce2a3666..2c0e04a3a697 100644
|
||||||
mp_config_acpi_legacy_irqs();
|
mp_config_acpi_legacy_irqs();
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
||||||
From 8e2f2b852776fca1dd0ab8728be2303051cb19e1 Mon Sep 17 00:00:00 2001
|
From d2a793e4fd47cd1cba2847915e7078671d9e9ea5 Mon Sep 17 00:00:00 2001
|
||||||
From: Maximilian Luz <luzmaximilian@gmail.com>
|
From: Maximilian Luz <luzmaximilian@gmail.com>
|
||||||
Date: Thu, 3 Jun 2021 14:04:26 +0200
|
Date: Thu, 3 Jun 2021 14:04:26 +0200
|
||||||
Subject: [PATCH] ACPI: Add AMD 13" Surface Laptop 4 model to irq 7 override
|
Subject: [PATCH] ACPI: Add AMD 13" Surface Laptop 4 model to irq 7 override
|
||||||
|
@ -105,5 +105,5 @@ index 2c0e04a3a697..b0e1dab3d2ec 100644
|
||||||
};
|
};
|
||||||
|
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 4e36132e272de3d84833b799be56c2b460db08b6 Mon Sep 17 00:00:00 2001
|
From 34ad5b493b00c944ed68d2436cad96785fe37a33 Mon Sep 17 00:00:00 2001
|
||||||
From: "Bart Groeneveld | GPX Solutions B.V" <bart@gpxbv.nl>
|
From: "Bart Groeneveld | GPX Solutions B.V" <bart@gpxbv.nl>
|
||||||
Date: Mon, 5 Dec 2022 16:08:46 +0100
|
Date: Mon, 5 Dec 2022 16:08:46 +0100
|
||||||
Subject: [PATCH] acpi: allow usage of acpi_tad on HW-reduced platforms
|
Subject: [PATCH] acpi: allow usage of acpi_tad on HW-reduced platforms
|
||||||
|
@ -106,5 +106,5 @@ index 33c3b16af556..900445d06623 100644
|
||||||
ret = sysfs_create_group(&dev->kobj, &acpi_tad_dc_attr_group);
|
ret = sysfs_create_group(&dev->kobj, &acpi_tad_dc_attr_group);
|
||||||
if (ret)
|
if (ret)
|
||||||
--
|
--
|
||||||
2.43.0
|
2.44.0
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
../../../patches/6.7/0001-surface3-oemb.patch
|
../../../patches/6.8/0001-surface3-oemb.patch
|
|
@ -1 +1 @@
|
||||||
../../../patches/6.7/0002-mwifiex.patch
|
../../../patches/6.8/0002-mwifiex.patch
|
|
@ -1 +1 @@
|
||||||
../../../patches/6.7/0003-ath10k.patch
|
../../../patches/6.8/0003-ath10k.patch
|
|
@ -1 +1 @@
|
||||||
../../../patches/6.7/0004-ipts.patch
|
../../../patches/6.8/0004-ipts.patch
|
|
@ -1 +1 @@
|
||||||
../../../patches/6.7/0005-ithc.patch
|
../../../patches/6.8/0005-ithc.patch
|
|
@ -1 +1 @@
|
||||||
../../../patches/6.7/0006-surface-sam.patch
|
../../../patches/6.8/0006-surface-sam.patch
|
|
@ -1 +1 @@
|
||||||
../../../patches/6.7/0007-surface-sam-over-hid.patch
|
../../../patches/6.8/0007-surface-sam-over-hid.patch
|
|
@ -1 +1 @@
|
||||||
../../../patches/6.7/0008-surface-button.patch
|
../../../patches/6.8/0008-surface-button.patch
|
|
@ -1 +1 @@
|
||||||
../../../patches/6.7/0009-surface-typecover.patch
|
../../../patches/6.8/0009-surface-typecover.patch
|
|
@ -1 +1 @@
|
||||||
../../../patches/6.7/0010-surface-shutdown.patch
|
../../../patches/6.8/0010-surface-shutdown.patch
|
|
@ -1 +1 @@
|
||||||
../../../patches/6.7/0011-surface-gpe.patch
|
../../../patches/6.8/0011-surface-gpe.patch
|
|
@ -1 +1 @@
|
||||||
../../../patches/6.7/0012-cameras.patch
|
../../../patches/6.8/0012-cameras.patch
|
|
@ -1 +1 @@
|
||||||
../../../patches/6.7/0013-amd-gpio.patch
|
../../../patches/6.8/0013-amd-gpio.patch
|
|
@ -1 +1 @@
|
||||||
../../../patches/6.7/0014-rtc.patch
|
../../../patches/6.8/0014-rtc.patch
|
|
@ -3,7 +3,7 @@
|
||||||
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
|
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
|
||||||
|
|
||||||
pkgbase=linux-surface
|
pkgbase=linux-surface
|
||||||
pkgver=6.7.2.arch1
|
pkgver=6.8.6.arch1
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc='Linux'
|
pkgdesc='Linux'
|
||||||
_shortver=${pkgver%.*}
|
_shortver=${pkgver%.*}
|
||||||
|
@ -56,24 +56,24 @@ validpgpkeys=(
|
||||||
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
|
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
|
||||||
'A2FF3A36AAA56654109064AB19802F8B0D70FC30' # Jan Alexander Steffens (heftig)
|
'A2FF3A36AAA56654109064AB19802F8B0D70FC30' # Jan Alexander Steffens (heftig)
|
||||||
)
|
)
|
||||||
sha256sums=('SKIP'
|
sha256sums=('2a56b8533af53cf5d3be8882a4a2da34a8d5a2d26569b098102aa072960c32e0'
|
||||||
'8f276a6245223b4bd7911a0a09e039d07ee91e6ee98f0ae83ebe19ac27e3a344'
|
'9a21f27cdfdb1d7b27af526b2c85632eca890e5264cd44dcb0882e9953794a2a'
|
||||||
'985cd5e0b11538f31887e451c398d226c06ca4b34c5466e93a21ebd65b7b3919'
|
'985cd5e0b11538f31887e451c398d226c06ca4b34c5466e93a21ebd65b7b3919'
|
||||||
'3cabe391cc39dbee88a79f76e9e7a68f7fbcd5518941aa2ab73a77692c87dead'
|
'3cabe391cc39dbee88a79f76e9e7a68f7fbcd5518941aa2ab73a77692c87dead'
|
||||||
'09e7dd78a0b0d6c45fb2fa1d512c5afd9586fc3064a72620d3d67d49d1468e7b'
|
'ee9857e96ee5d871aa557f6d6d142474c26187faa2c21b351bafde065b288fe0'
|
||||||
'ec41158ba5a50819c0b9ccc615f3fbd45b3ffbefee26ee5260367940824e9b8e'
|
'12f914866916181f232b4f159a270bce1fc8bd8e93c4f86ae7b18f8d6a777573'
|
||||||
'1b8bb2d6e1ec43192af243745d1a9769bf2378ebc8e0d312bfaf2981e12a7398'
|
'1984f355569702ff87cfab75682ceb89bfe40ad22c5c4dd8653abe623e000dfb'
|
||||||
'a40acb336c5715eda23a0238aa6713cb6a9216309da281ac1825d2626f0575ab'
|
'be01d5c3e851830be8ef55c794e8480e5cf19ff6b66266db32d352c2c60eebe4'
|
||||||
'cb29d5b013359c0adf7fc3b7ef8e3c7ed93a5afbfdb51153727ae7e96d03dc98'
|
'0b27a1ea32c6cdbb3ab89866724b0b193998d7ee0525d736242411c2ec3d4bd5'
|
||||||
'8a45795f4728ce07d87104358124ac2d76cf2371e7c8ee532d672e35bd6e48be'
|
'ca4c0bc2b26e3e07c29537cbecc8bade50212d5a0277ae1a834b7c33c36f7c8a'
|
||||||
'78f35b6db61895f7432c0228179c8cc76c8a5a0ad85d9c7b903e4998673f6977'
|
'9dd041d482eb7f0479487c5fe127f4fd6bec1209d9cd7d77a73f87b205035238'
|
||||||
'3d44c67ab5aa9e1c5c2d18b65857a264794dd07eaf5f97fc4931005c1990099d'
|
'bd32fc7cc18345f027a4fe2af2b249d27470f7b120b1e521dd26008cc34e1e8d'
|
||||||
'ce9f5fae9fd9911c81f6258f87bf56887573edbe60a07d14af917dda6aeb958f'
|
'02d720e3fffae018fc8719a98135e63c84e8b7f39769bcdee45ddf973a567732'
|
||||||
'8028abb98344b33d8cb976363c68a453a035feb128fec6306cb4e9346274c47a'
|
'6225348b31112a67f5e37a9075363b36c103ba6144083cf4e2d7d83edc77513c'
|
||||||
'baf365d6803fbfab31219fb06765d7d4c85c46d783ee21f1f04f3051cd686cdb'
|
'ea0016af33f682a0353738b00c39407b7e1a96a9ccfb04b3904b58143c1953ee'
|
||||||
'616583336b2d75af49efa96839427d7d67665633975f9872f715cae6772ae474'
|
'f59a6c1a59699664eeeb5243cb961845944cbc6d1c63353ad9d2ff7d8b593ec3'
|
||||||
'953872fa40313d7ac016ca607c9fcf31386437556c9d3c1aa9059b2a7439cdd8'
|
'1e620fa5bb90d7a8d4a57d0dc1552b096762a4da4cf1a5ce461d54c3c9b9885f'
|
||||||
'efe04c90a0e6d2380f03a02819d1332dee34eb541b1f4bebb59c2d2e98f9ed36')
|
'7693cf1df35a47ec8702543d9665f9010a5c7db18a39d9506649e892fd36954f')
|
||||||
|
|
||||||
|
|
||||||
export KBUILD_BUILD_HOST=archlinux
|
export KBUILD_BUILD_HOST=archlinux
|
||||||
|
|
|
@ -24,3 +24,20 @@ CONFIG_ANDROID=y
|
||||||
CONFIG_ANDROID_BINDER_IPC=y
|
CONFIG_ANDROID_BINDER_IPC=y
|
||||||
CONFIG_ANDROID_BINDERFS=y
|
CONFIG_ANDROID_BINDERFS=y
|
||||||
CONFIG_ANDROID_BINDER_DEVICES=""
|
CONFIG_ANDROID_BINDER_DEVICES=""
|
||||||
|
|
||||||
|
##
|
||||||
|
## Build-in basic pinctrl/serial modules to prevent race-conditions in drivers
|
||||||
|
## relying on them (like soc-button-array, SAM)
|
||||||
|
##
|
||||||
|
|
||||||
|
CONFIG_SERIAL_8250_DW=y
|
||||||
|
CONFIG_MFD_INTEL_LPSS=y
|
||||||
|
CONFIG_MFD_INTEL_LPSS_PCI=y
|
||||||
|
|
||||||
|
CONFIG_PINCTRL_INTEL=y
|
||||||
|
CONFIG_PINCTRL_ALDERLAKE=y
|
||||||
|
CONFIG_PINCTRL_CANNONLAKE=y
|
||||||
|
CONFIG_PINCTRL_ICELAKE=y
|
||||||
|
CONFIG_PINCTRL_METEORLAKE=y
|
||||||
|
CONFIG_PINCTRL_SUNRISEPOINT=y
|
||||||
|
CONFIG_PINCTRL_TIGERLAKE=y
|
||||||
|
|
|
@ -1,24 +1,25 @@
|
||||||
#
|
#
|
||||||
# Automatically generated file; DO NOT EDIT.
|
# Automatically generated file; DO NOT EDIT.
|
||||||
# Linux/x86 6.7.2-arch1 Kernel Configuration
|
# Linux/x86 6.8.6-arch1 Kernel Configuration
|
||||||
#
|
#
|
||||||
CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.2.1 20230801"
|
CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.2.1 20230801"
|
||||||
CONFIG_CC_IS_GCC=y
|
CONFIG_CC_IS_GCC=y
|
||||||
CONFIG_GCC_VERSION=130201
|
CONFIG_GCC_VERSION=130201
|
||||||
CONFIG_CLANG_VERSION=0
|
CONFIG_CLANG_VERSION=0
|
||||||
CONFIG_AS_IS_GNU=y
|
CONFIG_AS_IS_GNU=y
|
||||||
CONFIG_AS_VERSION=24100
|
CONFIG_AS_VERSION=24200
|
||||||
CONFIG_LD_IS_BFD=y
|
CONFIG_LD_IS_BFD=y
|
||||||
CONFIG_LD_VERSION=24100
|
CONFIG_LD_VERSION=24200
|
||||||
CONFIG_LLD_VERSION=0
|
CONFIG_LLD_VERSION=0
|
||||||
CONFIG_CC_CAN_LINK=y
|
CONFIG_CC_CAN_LINK=y
|
||||||
CONFIG_CC_CAN_LINK_STATIC=y
|
CONFIG_CC_CAN_LINK_STATIC=y
|
||||||
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
|
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
|
||||||
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
|
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
|
||||||
|
CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y
|
||||||
CONFIG_TOOLS_SUPPORT_RELR=y
|
CONFIG_TOOLS_SUPPORT_RELR=y
|
||||||
CONFIG_CC_HAS_ASM_INLINE=y
|
CONFIG_CC_HAS_ASM_INLINE=y
|
||||||
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
|
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
|
||||||
CONFIG_PAHOLE_VERSION=125
|
CONFIG_PAHOLE_VERSION=126
|
||||||
CONFIG_IRQ_WORK=y
|
CONFIG_IRQ_WORK=y
|
||||||
CONFIG_BUILDTIME_TABLE_SORT=y
|
CONFIG_BUILDTIME_TABLE_SORT=y
|
||||||
CONFIG_THREAD_INFO_IN_TASK=y
|
CONFIG_THREAD_INFO_IN_TASK=y
|
||||||
|
@ -203,8 +204,10 @@ CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
|
||||||
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
|
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
|
||||||
CONFIG_CC_HAS_INT128=y
|
CONFIG_CC_HAS_INT128=y
|
||||||
CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
|
CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5"
|
||||||
CONFIG_GCC11_NO_ARRAY_BOUNDS=y
|
CONFIG_GCC10_NO_ARRAY_BOUNDS=y
|
||||||
CONFIG_CC_NO_ARRAY_BOUNDS=y
|
CONFIG_CC_NO_ARRAY_BOUNDS=y
|
||||||
|
CONFIG_GCC_NO_STRINGOP_OVERFLOW=y
|
||||||
|
CONFIG_CC_NO_STRINGOP_OVERFLOW=y
|
||||||
CONFIG_ARCH_SUPPORTS_INT128=y
|
CONFIG_ARCH_SUPPORTS_INT128=y
|
||||||
CONFIG_NUMA_BALANCING=y
|
CONFIG_NUMA_BALANCING=y
|
||||||
CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
|
CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y
|
||||||
|
@ -289,15 +292,15 @@ CONFIG_AIO=y
|
||||||
CONFIG_IO_URING=y
|
CONFIG_IO_URING=y
|
||||||
CONFIG_ADVISE_SYSCALLS=y
|
CONFIG_ADVISE_SYSCALLS=y
|
||||||
CONFIG_MEMBARRIER=y
|
CONFIG_MEMBARRIER=y
|
||||||
|
CONFIG_KCMP=y
|
||||||
|
CONFIG_RSEQ=y
|
||||||
|
CONFIG_CACHESTAT_SYSCALL=y
|
||||||
CONFIG_KALLSYMS=y
|
CONFIG_KALLSYMS=y
|
||||||
# CONFIG_KALLSYMS_SELFTEST is not set
|
# CONFIG_KALLSYMS_SELFTEST is not set
|
||||||
CONFIG_KALLSYMS_ALL=y
|
CONFIG_KALLSYMS_ALL=y
|
||||||
CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
|
CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y
|
||||||
CONFIG_KALLSYMS_BASE_RELATIVE=y
|
CONFIG_KALLSYMS_BASE_RELATIVE=y
|
||||||
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
|
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
|
||||||
CONFIG_KCMP=y
|
|
||||||
CONFIG_RSEQ=y
|
|
||||||
CONFIG_CACHESTAT_SYSCALL=y
|
|
||||||
CONFIG_HAVE_PERF_EVENTS=y
|
CONFIG_HAVE_PERF_EVENTS=y
|
||||||
CONFIG_GUEST_PERF_EVENTS=y
|
CONFIG_GUEST_PERF_EVENTS=y
|
||||||
|
|
||||||
|
@ -408,6 +411,7 @@ CONFIG_GENERIC_CPU=y
|
||||||
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
|
CONFIG_X86_INTERNODE_CACHE_SHIFT=6
|
||||||
CONFIG_X86_L1_CACHE_SHIFT=6
|
CONFIG_X86_L1_CACHE_SHIFT=6
|
||||||
CONFIG_X86_TSC=y
|
CONFIG_X86_TSC=y
|
||||||
|
CONFIG_X86_HAVE_PAE=y
|
||||||
CONFIG_X86_CMPXCHG64=y
|
CONFIG_X86_CMPXCHG64=y
|
||||||
CONFIG_X86_CMOV=y
|
CONFIG_X86_CMOV=y
|
||||||
CONFIG_X86_MINIMUM_CPU_FAMILY=64
|
CONFIG_X86_MINIMUM_CPU_FAMILY=64
|
||||||
|
@ -467,7 +471,6 @@ CONFIG_X86_DIRECT_GBPAGES=y
|
||||||
CONFIG_X86_CPA_STATISTICS=y
|
CONFIG_X86_CPA_STATISTICS=y
|
||||||
CONFIG_X86_MEM_ENCRYPT=y
|
CONFIG_X86_MEM_ENCRYPT=y
|
||||||
CONFIG_AMD_MEM_ENCRYPT=y
|
CONFIG_AMD_MEM_ENCRYPT=y
|
||||||
# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set
|
|
||||||
CONFIG_NUMA=y
|
CONFIG_NUMA=y
|
||||||
CONFIG_AMD_NUMA=y
|
CONFIG_AMD_NUMA=y
|
||||||
CONFIG_X86_64_ACPI_NUMA=y
|
CONFIG_X86_64_ACPI_NUMA=y
|
||||||
|
@ -498,7 +501,6 @@ CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y
|
||||||
CONFIG_X86_INTEL_TSX_MODE_AUTO=y
|
CONFIG_X86_INTEL_TSX_MODE_AUTO=y
|
||||||
CONFIG_X86_SGX=y
|
CONFIG_X86_SGX=y
|
||||||
CONFIG_X86_USER_SHADOW_STACK=y
|
CONFIG_X86_USER_SHADOW_STACK=y
|
||||||
CONFIG_INTEL_TDX_HOST=y
|
|
||||||
CONFIG_EFI=y
|
CONFIG_EFI=y
|
||||||
CONFIG_EFI_STUB=y
|
CONFIG_EFI_STUB=y
|
||||||
CONFIG_EFI_HANDOVER_PROTOCOL=y
|
CONFIG_EFI_HANDOVER_PROTOCOL=y
|
||||||
|
@ -563,6 +565,10 @@ CONFIG_CPU_IBRS_ENTRY=y
|
||||||
CONFIG_CPU_SRSO=y
|
CONFIG_CPU_SRSO=y
|
||||||
CONFIG_SLS=y
|
CONFIG_SLS=y
|
||||||
# CONFIG_GDS_FORCE_MITIGATION is not set
|
# CONFIG_GDS_FORCE_MITIGATION is not set
|
||||||
|
CONFIG_MITIGATION_RFDS=y
|
||||||
|
CONFIG_SPECTRE_BHI_ON=y
|
||||||
|
# CONFIG_SPECTRE_BHI_OFF is not set
|
||||||
|
# CONFIG_SPECTRE_BHI_AUTO is not set
|
||||||
CONFIG_ARCH_HAS_ADD_PAGES=y
|
CONFIG_ARCH_HAS_ADD_PAGES=y
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -598,6 +604,7 @@ CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y
|
||||||
CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
|
CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y
|
||||||
CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
|
CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y
|
||||||
CONFIG_ACPI_TABLE_LIB=y
|
CONFIG_ACPI_TABLE_LIB=y
|
||||||
|
CONFIG_ACPI_THERMAL_LIB=y
|
||||||
# CONFIG_ACPI_DEBUGGER is not set
|
# CONFIG_ACPI_DEBUGGER is not set
|
||||||
CONFIG_ACPI_SPCR_TABLE=y
|
CONFIG_ACPI_SPCR_TABLE=y
|
||||||
CONFIG_ACPI_FPDT=y
|
CONFIG_ACPI_FPDT=y
|
||||||
|
@ -743,14 +750,13 @@ CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
|
||||||
# end of Binary Emulations
|
# end of Binary Emulations
|
||||||
|
|
||||||
CONFIG_HAVE_KVM=y
|
CONFIG_HAVE_KVM=y
|
||||||
|
CONFIG_KVM_COMMON=y
|
||||||
CONFIG_HAVE_KVM_PFNCACHE=y
|
CONFIG_HAVE_KVM_PFNCACHE=y
|
||||||
CONFIG_HAVE_KVM_IRQCHIP=y
|
CONFIG_HAVE_KVM_IRQCHIP=y
|
||||||
CONFIG_HAVE_KVM_IRQFD=y
|
|
||||||
CONFIG_HAVE_KVM_IRQ_ROUTING=y
|
CONFIG_HAVE_KVM_IRQ_ROUTING=y
|
||||||
CONFIG_HAVE_KVM_DIRTY_RING=y
|
CONFIG_HAVE_KVM_DIRTY_RING=y
|
||||||
CONFIG_HAVE_KVM_DIRTY_RING_TSO=y
|
CONFIG_HAVE_KVM_DIRTY_RING_TSO=y
|
||||||
CONFIG_HAVE_KVM_DIRTY_RING_ACQ_REL=y
|
CONFIG_HAVE_KVM_DIRTY_RING_ACQ_REL=y
|
||||||
CONFIG_HAVE_KVM_EVENTFD=y
|
|
||||||
CONFIG_KVM_MMIO=y
|
CONFIG_KVM_MMIO=y
|
||||||
CONFIG_KVM_ASYNC_PF=y
|
CONFIG_KVM_ASYNC_PF=y
|
||||||
CONFIG_HAVE_KVM_MSI=y
|
CONFIG_HAVE_KVM_MSI=y
|
||||||
|
@ -763,6 +769,7 @@ CONFIG_HAVE_KVM_NO_POLL=y
|
||||||
CONFIG_KVM_XFER_TO_GUEST_WORK=y
|
CONFIG_KVM_XFER_TO_GUEST_WORK=y
|
||||||
CONFIG_HAVE_KVM_PM_NOTIFIER=y
|
CONFIG_HAVE_KVM_PM_NOTIFIER=y
|
||||||
CONFIG_KVM_GENERIC_HARDWARE_ENABLING=y
|
CONFIG_KVM_GENERIC_HARDWARE_ENABLING=y
|
||||||
|
CONFIG_KVM_GENERIC_MMU_NOTIFIER=y
|
||||||
CONFIG_VIRTUALIZATION=y
|
CONFIG_VIRTUALIZATION=y
|
||||||
CONFIG_KVM=m
|
CONFIG_KVM=m
|
||||||
CONFIG_KVM_INTEL=m
|
CONFIG_KVM_INTEL=m
|
||||||
|
@ -770,6 +777,7 @@ CONFIG_X86_SGX_KVM=y
|
||||||
CONFIG_KVM_AMD=m
|
CONFIG_KVM_AMD=m
|
||||||
CONFIG_KVM_AMD_SEV=y
|
CONFIG_KVM_AMD_SEV=y
|
||||||
CONFIG_KVM_SMM=y
|
CONFIG_KVM_SMM=y
|
||||||
|
CONFIG_KVM_HYPERV=y
|
||||||
CONFIG_KVM_XEN=y
|
CONFIG_KVM_XEN=y
|
||||||
CONFIG_KVM_EXTERNAL_WRITE_TRACKING=y
|
CONFIG_KVM_EXTERNAL_WRITE_TRACKING=y
|
||||||
CONFIG_KVM_MAX_NR_VCPUS=1024
|
CONFIG_KVM_MAX_NR_VCPUS=1024
|
||||||
|
@ -819,6 +827,7 @@ CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
|
||||||
CONFIG_ARCH_HAS_SET_MEMORY=y
|
CONFIG_ARCH_HAS_SET_MEMORY=y
|
||||||
CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
|
CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
|
||||||
CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y
|
CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y
|
||||||
|
CONFIG_ARCH_HAS_CPU_PASID=y
|
||||||
CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
|
CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
|
||||||
CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
|
CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y
|
||||||
CONFIG_ARCH_WANTS_NO_INSTR=y
|
CONFIG_ARCH_WANTS_NO_INSTR=y
|
||||||
|
@ -924,6 +933,7 @@ CONFIG_ARCH_HAS_ELFCORE_COMPAT=y
|
||||||
CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y
|
CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y
|
||||||
CONFIG_DYNAMIC_SIGFRAME=y
|
CONFIG_DYNAMIC_SIGFRAME=y
|
||||||
CONFIG_HAVE_ARCH_NODE_DEV_GROUP=y
|
CONFIG_HAVE_ARCH_NODE_DEV_GROUP=y
|
||||||
|
CONFIG_ARCH_HAS_HW_PTE_YOUNG=y
|
||||||
CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y
|
CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -956,6 +966,7 @@ CONFIG_MODULE_SRCVERSION_ALL=y
|
||||||
CONFIG_MODULE_SIG=y
|
CONFIG_MODULE_SIG=y
|
||||||
# CONFIG_MODULE_SIG_FORCE is not set
|
# CONFIG_MODULE_SIG_FORCE is not set
|
||||||
CONFIG_MODULE_SIG_ALL=y
|
CONFIG_MODULE_SIG_ALL=y
|
||||||
|
# CONFIG_MODULE_SIG_SHA1 is not set
|
||||||
# CONFIG_MODULE_SIG_SHA256 is not set
|
# CONFIG_MODULE_SIG_SHA256 is not set
|
||||||
# CONFIG_MODULE_SIG_SHA384 is not set
|
# CONFIG_MODULE_SIG_SHA384 is not set
|
||||||
CONFIG_MODULE_SIG_SHA512=y
|
CONFIG_MODULE_SIG_SHA512=y
|
||||||
|
@ -981,6 +992,7 @@ CONFIG_BLK_ICQ=y
|
||||||
CONFIG_BLK_DEV_BSGLIB=y
|
CONFIG_BLK_DEV_BSGLIB=y
|
||||||
CONFIG_BLK_DEV_INTEGRITY=y
|
CONFIG_BLK_DEV_INTEGRITY=y
|
||||||
CONFIG_BLK_DEV_INTEGRITY_T10=y
|
CONFIG_BLK_DEV_INTEGRITY_T10=y
|
||||||
|
CONFIG_BLK_DEV_WRITE_MOUNTED=y
|
||||||
CONFIG_BLK_DEV_ZONED=y
|
CONFIG_BLK_DEV_ZONED=y
|
||||||
CONFIG_BLK_DEV_THROTTLING=y
|
CONFIG_BLK_DEV_THROTTLING=y
|
||||||
CONFIG_BLK_DEV_THROTTLING_LOW=y
|
CONFIG_BLK_DEV_THROTTLING_LOW=y
|
||||||
|
@ -1075,6 +1087,7 @@ CONFIG_SWAP=y
|
||||||
CONFIG_ZSWAP=y
|
CONFIG_ZSWAP=y
|
||||||
CONFIG_ZSWAP_DEFAULT_ON=y
|
CONFIG_ZSWAP_DEFAULT_ON=y
|
||||||
# CONFIG_ZSWAP_EXCLUSIVE_LOADS_DEFAULT_ON is not set
|
# CONFIG_ZSWAP_EXCLUSIVE_LOADS_DEFAULT_ON is not set
|
||||||
|
CONFIG_ZSWAP_SHRINKER_DEFAULT_ON=y
|
||||||
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
|
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set
|
||||||
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO is not set
|
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO is not set
|
||||||
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
|
# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set
|
||||||
|
@ -1093,9 +1106,8 @@ CONFIG_ZSMALLOC_STAT=y
|
||||||
CONFIG_ZSMALLOC_CHAIN_SIZE=8
|
CONFIG_ZSMALLOC_CHAIN_SIZE=8
|
||||||
|
|
||||||
#
|
#
|
||||||
# SLAB allocator options
|
# Slab allocator options
|
||||||
#
|
#
|
||||||
# CONFIG_SLAB_DEPRECATED is not set
|
|
||||||
CONFIG_SLUB=y
|
CONFIG_SLUB=y
|
||||||
CONFIG_SLAB_MERGE_DEFAULT=y
|
CONFIG_SLAB_MERGE_DEFAULT=y
|
||||||
CONFIG_SLAB_FREELIST_RANDOM=y
|
CONFIG_SLAB_FREELIST_RANDOM=y
|
||||||
|
@ -1103,7 +1115,7 @@ CONFIG_SLAB_FREELIST_HARDENED=y
|
||||||
# CONFIG_SLUB_STATS is not set
|
# CONFIG_SLUB_STATS is not set
|
||||||
CONFIG_SLUB_CPU_PARTIAL=y
|
CONFIG_SLUB_CPU_PARTIAL=y
|
||||||
# CONFIG_RANDOM_KMALLOC_CACHES is not set
|
# CONFIG_RANDOM_KMALLOC_CACHES is not set
|
||||||
# end of SLAB allocator options
|
# end of Slab allocator options
|
||||||
|
|
||||||
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
|
CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
|
||||||
# CONFIG_COMPAT_BRK is not set
|
# CONFIG_COMPAT_BRK is not set
|
||||||
|
@ -1150,6 +1162,7 @@ CONFIG_ARCH_WANTS_THP_SWAP=y
|
||||||
CONFIG_TRANSPARENT_HUGEPAGE=y
|
CONFIG_TRANSPARENT_HUGEPAGE=y
|
||||||
CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
|
CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
|
||||||
# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
|
# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
|
||||||
|
# CONFIG_TRANSPARENT_HUGEPAGE_NEVER is not set
|
||||||
CONFIG_THP_SWAP=y
|
CONFIG_THP_SWAP=y
|
||||||
CONFIG_READ_ONLY_THP_FOR_FS=y
|
CONFIG_READ_ONLY_THP_FOR_FS=y
|
||||||
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
|
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
|
||||||
|
@ -1194,9 +1207,11 @@ CONFIG_PTE_MARKER_UFFD_WP=y
|
||||||
CONFIG_LRU_GEN=y
|
CONFIG_LRU_GEN=y
|
||||||
CONFIG_LRU_GEN_ENABLED=y
|
CONFIG_LRU_GEN_ENABLED=y
|
||||||
# CONFIG_LRU_GEN_STATS is not set
|
# CONFIG_LRU_GEN_STATS is not set
|
||||||
|
CONFIG_LRU_GEN_WALKS_MMU=y
|
||||||
CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
|
CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
|
||||||
CONFIG_PER_VMA_LOCK=y
|
CONFIG_PER_VMA_LOCK=y
|
||||||
CONFIG_LOCK_MM_AND_FIND_VMA=y
|
CONFIG_LOCK_MM_AND_FIND_VMA=y
|
||||||
|
CONFIG_IOMMU_MM_DATA=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Data Access Monitoring
|
# Data Access Monitoring
|
||||||
|
@ -1233,8 +1248,8 @@ CONFIG_TLS_DEVICE=y
|
||||||
# CONFIG_TLS_TOE is not set
|
# CONFIG_TLS_TOE is not set
|
||||||
CONFIG_XFRM=y
|
CONFIG_XFRM=y
|
||||||
CONFIG_XFRM_OFFLOAD=y
|
CONFIG_XFRM_OFFLOAD=y
|
||||||
CONFIG_XFRM_ALGO=y
|
CONFIG_XFRM_ALGO=m
|
||||||
CONFIG_XFRM_USER=y
|
CONFIG_XFRM_USER=m
|
||||||
# CONFIG_XFRM_USER_COMPAT is not set
|
# CONFIG_XFRM_USER_COMPAT is not set
|
||||||
CONFIG_XFRM_INTERFACE=m
|
CONFIG_XFRM_INTERFACE=m
|
||||||
CONFIG_XFRM_SUB_POLICY=y
|
CONFIG_XFRM_SUB_POLICY=y
|
||||||
|
@ -1704,7 +1719,6 @@ CONFIG_BRIDGE_EBT_REDIRECT=m
|
||||||
CONFIG_BRIDGE_EBT_SNAT=m
|
CONFIG_BRIDGE_EBT_SNAT=m
|
||||||
CONFIG_BRIDGE_EBT_LOG=m
|
CONFIG_BRIDGE_EBT_LOG=m
|
||||||
CONFIG_BRIDGE_EBT_NFLOG=m
|
CONFIG_BRIDGE_EBT_NFLOG=m
|
||||||
# CONFIG_BPFILTER is not set
|
|
||||||
# CONFIG_IP_DCCP is not set
|
# CONFIG_IP_DCCP is not set
|
||||||
CONFIG_IP_SCTP=m
|
CONFIG_IP_SCTP=m
|
||||||
# CONFIG_SCTP_DBG_OBJCNT is not set
|
# CONFIG_SCTP_DBG_OBJCNT is not set
|
||||||
|
@ -1988,7 +2002,6 @@ CONFIG_BT_BNEP_MC_FILTER=y
|
||||||
CONFIG_BT_BNEP_PROTO_FILTER=y
|
CONFIG_BT_BNEP_PROTO_FILTER=y
|
||||||
CONFIG_BT_CMTP=m
|
CONFIG_BT_CMTP=m
|
||||||
CONFIG_BT_HIDP=m
|
CONFIG_BT_HIDP=m
|
||||||
# CONFIG_BT_HS is not set
|
|
||||||
CONFIG_BT_LE=y
|
CONFIG_BT_LE=y
|
||||||
CONFIG_BT_LE_L2CAP_ECRED=y
|
CONFIG_BT_LE_L2CAP_ECRED=y
|
||||||
CONFIG_BT_6LOWPAN=m
|
CONFIG_BT_6LOWPAN=m
|
||||||
|
@ -2229,7 +2242,7 @@ CONFIG_PCI_HYPERV_INTERFACE=m
|
||||||
#
|
#
|
||||||
CONFIG_PCIE_DW=y
|
CONFIG_PCIE_DW=y
|
||||||
CONFIG_PCIE_DW_HOST=y
|
CONFIG_PCIE_DW_HOST=y
|
||||||
CONFIG_PCI_MESON=y
|
CONFIG_PCI_MESON=m
|
||||||
CONFIG_PCIE_DW_PLAT=y
|
CONFIG_PCIE_DW_PLAT=y
|
||||||
CONFIG_PCIE_DW_PLAT_HOST=y
|
CONFIG_PCIE_DW_PLAT_HOST=y
|
||||||
# end of DesignWare-based PCIe controllers
|
# end of DesignWare-based PCIe controllers
|
||||||
|
@ -2318,6 +2331,7 @@ CONFIG_DEV_COREDUMP=y
|
||||||
CONFIG_HMEM_REPORTING=y
|
CONFIG_HMEM_REPORTING=y
|
||||||
# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
|
# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
|
||||||
CONFIG_SYS_HYPERVISOR=y
|
CONFIG_SYS_HYPERVISOR=y
|
||||||
|
CONFIG_GENERIC_CPU_DEVICES=y
|
||||||
CONFIG_GENERIC_CPU_AUTOPROBE=y
|
CONFIG_GENERIC_CPU_AUTOPROBE=y
|
||||||
CONFIG_GENERIC_CPU_VULNERABILITIES=y
|
CONFIG_GENERIC_CPU_VULNERABILITIES=y
|
||||||
CONFIG_SOC_BUS=y
|
CONFIG_SOC_BUS=y
|
||||||
|
@ -2593,6 +2607,7 @@ CONFIG_ZRAM_DEF_COMP_ZSTD=y
|
||||||
# CONFIG_ZRAM_DEF_COMP_842 is not set
|
# CONFIG_ZRAM_DEF_COMP_842 is not set
|
||||||
CONFIG_ZRAM_DEF_COMP="zstd"
|
CONFIG_ZRAM_DEF_COMP="zstd"
|
||||||
CONFIG_ZRAM_WRITEBACK=y
|
CONFIG_ZRAM_WRITEBACK=y
|
||||||
|
CONFIG_ZRAM_TRACK_ENTRY_ACTIME=y
|
||||||
CONFIG_ZRAM_MEMORY_TRACKING=y
|
CONFIG_ZRAM_MEMORY_TRACKING=y
|
||||||
CONFIG_ZRAM_MULTI_COMP=y
|
CONFIG_ZRAM_MULTI_COMP=y
|
||||||
CONFIG_BLK_DEV_LOOP=m
|
CONFIG_BLK_DEV_LOOP=m
|
||||||
|
@ -2678,6 +2693,7 @@ CONFIG_XILINX_SDFEC=m
|
||||||
CONFIG_MISC_RTSX=m
|
CONFIG_MISC_RTSX=m
|
||||||
CONFIG_TPS6594_ESM=m
|
CONFIG_TPS6594_ESM=m
|
||||||
CONFIG_TPS6594_PFSM=m
|
CONFIG_TPS6594_PFSM=m
|
||||||
|
CONFIG_NSM=m
|
||||||
CONFIG_C2PORT=m
|
CONFIG_C2PORT=m
|
||||||
CONFIG_C2PORT_DURAMAR_2150=m
|
CONFIG_C2PORT_DURAMAR_2150=m
|
||||||
|
|
||||||
|
@ -2709,6 +2725,8 @@ CONFIG_INTEL_MEI=m
|
||||||
CONFIG_INTEL_MEI_ME=m
|
CONFIG_INTEL_MEI_ME=m
|
||||||
CONFIG_INTEL_MEI_TXE=m
|
CONFIG_INTEL_MEI_TXE=m
|
||||||
CONFIG_INTEL_MEI_GSC=m
|
CONFIG_INTEL_MEI_GSC=m
|
||||||
|
CONFIG_INTEL_MEI_VSC_HW=m
|
||||||
|
CONFIG_INTEL_MEI_VSC=m
|
||||||
CONFIG_INTEL_MEI_HDCP=m
|
CONFIG_INTEL_MEI_HDCP=m
|
||||||
CONFIG_INTEL_MEI_PXP=m
|
CONFIG_INTEL_MEI_PXP=m
|
||||||
CONFIG_INTEL_MEI_GSC_PROXY=m
|
CONFIG_INTEL_MEI_GSC_PROXY=m
|
||||||
|
@ -2999,13 +3017,10 @@ CONFIG_PATA_LEGACY=m
|
||||||
CONFIG_MD=y
|
CONFIG_MD=y
|
||||||
CONFIG_BLK_DEV_MD=m
|
CONFIG_BLK_DEV_MD=m
|
||||||
CONFIG_MD_BITMAP_FILE=y
|
CONFIG_MD_BITMAP_FILE=y
|
||||||
CONFIG_MD_LINEAR=m
|
|
||||||
CONFIG_MD_RAID0=m
|
CONFIG_MD_RAID0=m
|
||||||
CONFIG_MD_RAID1=m
|
CONFIG_MD_RAID1=m
|
||||||
CONFIG_MD_RAID10=m
|
CONFIG_MD_RAID10=m
|
||||||
CONFIG_MD_RAID456=m
|
CONFIG_MD_RAID456=m
|
||||||
CONFIG_MD_MULTIPATH=m
|
|
||||||
CONFIG_MD_FAULTY=m
|
|
||||||
CONFIG_MD_CLUSTER=m
|
CONFIG_MD_CLUSTER=m
|
||||||
CONFIG_BCACHE=m
|
CONFIG_BCACHE=m
|
||||||
# CONFIG_BCACHE_DEBUG is not set
|
# CONFIG_BCACHE_DEBUG is not set
|
||||||
|
@ -3349,6 +3364,7 @@ CONFIG_I40E_DCB=y
|
||||||
CONFIG_IAVF=m
|
CONFIG_IAVF=m
|
||||||
CONFIG_I40EVF=m
|
CONFIG_I40EVF=m
|
||||||
CONFIG_ICE=m
|
CONFIG_ICE=m
|
||||||
|
CONFIG_ICE_HWMON=y
|
||||||
CONFIG_ICE_SWITCHDEV=y
|
CONFIG_ICE_SWITCHDEV=y
|
||||||
CONFIG_ICE_HWTS=y
|
CONFIG_ICE_HWTS=y
|
||||||
CONFIG_FM10K=m
|
CONFIG_FM10K=m
|
||||||
|
@ -3479,6 +3495,7 @@ CONFIG_8139TOO_TUNE_TWISTER=y
|
||||||
CONFIG_8139TOO_8129=y
|
CONFIG_8139TOO_8129=y
|
||||||
# CONFIG_8139_OLD_RX_RESET is not set
|
# CONFIG_8139_OLD_RX_RESET is not set
|
||||||
CONFIG_R8169=m
|
CONFIG_R8169=m
|
||||||
|
CONFIG_R8169_LEDS=y
|
||||||
CONFIG_NET_VENDOR_RENESAS=y
|
CONFIG_NET_VENDOR_RENESAS=y
|
||||||
CONFIG_NET_VENDOR_ROCKER=y
|
CONFIG_NET_VENDOR_ROCKER=y
|
||||||
CONFIG_ROCKER=m
|
CONFIG_ROCKER=m
|
||||||
|
@ -3618,6 +3635,7 @@ CONFIG_DP83848_PHY=m
|
||||||
CONFIG_DP83867_PHY=m
|
CONFIG_DP83867_PHY=m
|
||||||
CONFIG_DP83869_PHY=m
|
CONFIG_DP83869_PHY=m
|
||||||
CONFIG_DP83TD510_PHY=m
|
CONFIG_DP83TD510_PHY=m
|
||||||
|
CONFIG_DP83TG720_PHY=m
|
||||||
CONFIG_VITESSE_PHY=m
|
CONFIG_VITESSE_PHY=m
|
||||||
CONFIG_XILINX_GMII2RGMII=m
|
CONFIG_XILINX_GMII2RGMII=m
|
||||||
CONFIG_MICREL_KS8995MA=m
|
CONFIG_MICREL_KS8995MA=m
|
||||||
|
@ -3856,9 +3874,6 @@ CONFIG_ATH12K=m
|
||||||
CONFIG_ATH12K_DEBUG=y
|
CONFIG_ATH12K_DEBUG=y
|
||||||
CONFIG_ATH12K_TRACING=y
|
CONFIG_ATH12K_TRACING=y
|
||||||
CONFIG_WLAN_VENDOR_ATMEL=y
|
CONFIG_WLAN_VENDOR_ATMEL=y
|
||||||
CONFIG_ATMEL=m
|
|
||||||
CONFIG_PCI_ATMEL=m
|
|
||||||
CONFIG_PCMCIA_ATMEL=m
|
|
||||||
CONFIG_AT76C50X_USB=m
|
CONFIG_AT76C50X_USB=m
|
||||||
CONFIG_WLAN_VENDOR_BROADCOM=y
|
CONFIG_WLAN_VENDOR_BROADCOM=y
|
||||||
CONFIG_B43=m
|
CONFIG_B43=m
|
||||||
|
@ -3901,9 +3916,6 @@ CONFIG_BRCMFMAC_USB=y
|
||||||
CONFIG_BRCMFMAC_PCIE=y
|
CONFIG_BRCMFMAC_PCIE=y
|
||||||
CONFIG_BRCM_TRACING=y
|
CONFIG_BRCM_TRACING=y
|
||||||
CONFIG_BRCMDBG=y
|
CONFIG_BRCMDBG=y
|
||||||
CONFIG_WLAN_VENDOR_CISCO=y
|
|
||||||
CONFIG_AIRO=m
|
|
||||||
CONFIG_AIRO_CS=m
|
|
||||||
CONFIG_WLAN_VENDOR_INTEL=y
|
CONFIG_WLAN_VENDOR_INTEL=y
|
||||||
CONFIG_IPW2100=m
|
CONFIG_IPW2100=m
|
||||||
CONFIG_IPW2100_MONITOR=y
|
CONFIG_IPW2100_MONITOR=y
|
||||||
|
@ -3942,22 +3954,6 @@ CONFIG_IWLWIFI_DEVICE_TRACING=y
|
||||||
# end of Debugging Options
|
# end of Debugging Options
|
||||||
|
|
||||||
CONFIG_WLAN_VENDOR_INTERSIL=y
|
CONFIG_WLAN_VENDOR_INTERSIL=y
|
||||||
CONFIG_HOSTAP=m
|
|
||||||
CONFIG_HOSTAP_FIRMWARE=y
|
|
||||||
CONFIG_HOSTAP_FIRMWARE_NVRAM=y
|
|
||||||
CONFIG_HOSTAP_PLX=m
|
|
||||||
CONFIG_HOSTAP_PCI=m
|
|
||||||
CONFIG_HOSTAP_CS=m
|
|
||||||
CONFIG_HERMES=m
|
|
||||||
CONFIG_HERMES_PRISM=y
|
|
||||||
CONFIG_HERMES_CACHE_FW_ON_INIT=y
|
|
||||||
CONFIG_PLX_HERMES=m
|
|
||||||
CONFIG_TMD_HERMES=m
|
|
||||||
CONFIG_NORTEL_HERMES=m
|
|
||||||
CONFIG_PCI_HERMES=m
|
|
||||||
CONFIG_PCMCIA_HERMES=m
|
|
||||||
CONFIG_PCMCIA_SPECTRUM=m
|
|
||||||
CONFIG_ORINOCO_USB=m
|
|
||||||
CONFIG_P54_COMMON=m
|
CONFIG_P54_COMMON=m
|
||||||
CONFIG_P54_USB=m
|
CONFIG_P54_USB=m
|
||||||
CONFIG_P54_PCI=m
|
CONFIG_P54_PCI=m
|
||||||
|
@ -3967,7 +3963,6 @@ CONFIG_P54_LEDS=y
|
||||||
CONFIG_WLAN_VENDOR_MARVELL=y
|
CONFIG_WLAN_VENDOR_MARVELL=y
|
||||||
CONFIG_LIBERTAS=m
|
CONFIG_LIBERTAS=m
|
||||||
CONFIG_LIBERTAS_USB=m
|
CONFIG_LIBERTAS_USB=m
|
||||||
CONFIG_LIBERTAS_CS=m
|
|
||||||
CONFIG_LIBERTAS_SDIO=m
|
CONFIG_LIBERTAS_SDIO=m
|
||||||
CONFIG_LIBERTAS_SPI=m
|
CONFIG_LIBERTAS_SPI=m
|
||||||
# CONFIG_LIBERTAS_DEBUG is not set
|
# CONFIG_LIBERTAS_DEBUG is not set
|
||||||
|
@ -4130,15 +4125,11 @@ CONFIG_WL18XX=m
|
||||||
CONFIG_WLCORE=m
|
CONFIG_WLCORE=m
|
||||||
CONFIG_WLCORE_SDIO=m
|
CONFIG_WLCORE_SDIO=m
|
||||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||||
CONFIG_USB_ZD1201=m
|
|
||||||
CONFIG_ZD1211RW=m
|
CONFIG_ZD1211RW=m
|
||||||
# CONFIG_ZD1211RW_DEBUG is not set
|
# CONFIG_ZD1211RW_DEBUG is not set
|
||||||
CONFIG_WLAN_VENDOR_QUANTENNA=y
|
CONFIG_WLAN_VENDOR_QUANTENNA=y
|
||||||
CONFIG_QTNFMAC=m
|
CONFIG_QTNFMAC=m
|
||||||
CONFIG_QTNFMAC_PCIE=m
|
CONFIG_QTNFMAC_PCIE=m
|
||||||
CONFIG_PCMCIA_RAYCS=m
|
|
||||||
CONFIG_PCMCIA_WL3501=m
|
|
||||||
CONFIG_USB_NET_RNDIS_WLAN=m
|
|
||||||
CONFIG_MAC80211_HWSIM=m
|
CONFIG_MAC80211_HWSIM=m
|
||||||
CONFIG_VIRT_WIFI=m
|
CONFIG_VIRT_WIFI=m
|
||||||
# CONFIG_WAN is not set
|
# CONFIG_WAN is not set
|
||||||
|
@ -4157,7 +4148,7 @@ CONFIG_IEEE802154_HWSIM=m
|
||||||
#
|
#
|
||||||
# Wireless WAN
|
# Wireless WAN
|
||||||
#
|
#
|
||||||
CONFIG_WWAN=y
|
CONFIG_WWAN=m
|
||||||
CONFIG_WWAN_DEBUGFS=y
|
CONFIG_WWAN_DEBUGFS=y
|
||||||
CONFIG_WWAN_HWSIM=m
|
CONFIG_WWAN_HWSIM=m
|
||||||
CONFIG_MHI_WWAN_CTRL=m
|
CONFIG_MHI_WWAN_CTRL=m
|
||||||
|
@ -4323,6 +4314,7 @@ CONFIG_JOYSTICK_PXRC=m
|
||||||
CONFIG_JOYSTICK_QWIIC=m
|
CONFIG_JOYSTICK_QWIIC=m
|
||||||
CONFIG_JOYSTICK_FSIA6B=m
|
CONFIG_JOYSTICK_FSIA6B=m
|
||||||
CONFIG_JOYSTICK_SENSEHAT=m
|
CONFIG_JOYSTICK_SENSEHAT=m
|
||||||
|
CONFIG_JOYSTICK_SEESAW=m
|
||||||
CONFIG_INPUT_TABLET=y
|
CONFIG_INPUT_TABLET=y
|
||||||
CONFIG_TABLET_USB_ACECAD=m
|
CONFIG_TABLET_USB_ACECAD=m
|
||||||
CONFIG_TABLET_USB_AIPTEK=m
|
CONFIG_TABLET_USB_AIPTEK=m
|
||||||
|
@ -4387,7 +4379,6 @@ CONFIG_TOUCHSCREEN_PENMOUNT=m
|
||||||
CONFIG_TOUCHSCREEN_EDT_FT5X06=m
|
CONFIG_TOUCHSCREEN_EDT_FT5X06=m
|
||||||
CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
|
CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
|
||||||
CONFIG_TOUCHSCREEN_TOUCHWIN=m
|
CONFIG_TOUCHSCREEN_TOUCHWIN=m
|
||||||
CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
|
|
||||||
CONFIG_TOUCHSCREEN_PIXCIR=m
|
CONFIG_TOUCHSCREEN_PIXCIR=m
|
||||||
CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
|
CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
|
||||||
CONFIG_TOUCHSCREEN_WM831X=m
|
CONFIG_TOUCHSCREEN_WM831X=m
|
||||||
|
@ -4586,9 +4577,9 @@ CONFIG_SERIAL_8250_DWLIB=y
|
||||||
CONFIG_SERIAL_8250_DFL=m
|
CONFIG_SERIAL_8250_DFL=m
|
||||||
CONFIG_SERIAL_8250_DW=m
|
CONFIG_SERIAL_8250_DW=m
|
||||||
CONFIG_SERIAL_8250_RT288X=y
|
CONFIG_SERIAL_8250_RT288X=y
|
||||||
CONFIG_SERIAL_8250_LPSS=y
|
CONFIG_SERIAL_8250_LPSS=m
|
||||||
CONFIG_SERIAL_8250_MID=y
|
CONFIG_SERIAL_8250_MID=m
|
||||||
CONFIG_SERIAL_8250_PERICOM=y
|
CONFIG_SERIAL_8250_PERICOM=m
|
||||||
|
|
||||||
#
|
#
|
||||||
# Non-8250 serial port support
|
# Non-8250 serial port support
|
||||||
|
@ -4864,7 +4855,7 @@ CONFIG_SPI_SLAVE_SYSTEM_CONTROL=m
|
||||||
CONFIG_SPI_DYNAMIC=y
|
CONFIG_SPI_DYNAMIC=y
|
||||||
# CONFIG_SPMI is not set
|
# CONFIG_SPMI is not set
|
||||||
# CONFIG_HSI is not set
|
# CONFIG_HSI is not set
|
||||||
CONFIG_PPS=y
|
CONFIG_PPS=m
|
||||||
# CONFIG_PPS_DEBUG is not set
|
# CONFIG_PPS_DEBUG is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -4882,8 +4873,8 @@ CONFIG_PPS_CLIENT_GPIO=m
|
||||||
#
|
#
|
||||||
# PTP clock support
|
# PTP clock support
|
||||||
#
|
#
|
||||||
CONFIG_PTP_1588_CLOCK=y
|
CONFIG_PTP_1588_CLOCK=m
|
||||||
CONFIG_PTP_1588_CLOCK_OPTIONAL=y
|
CONFIG_PTP_1588_CLOCK_OPTIONAL=m
|
||||||
CONFIG_DP83640_PHY=m
|
CONFIG_DP83640_PHY=m
|
||||||
CONFIG_PTP_1588_CLOCK_INES=m
|
CONFIG_PTP_1588_CLOCK_INES=m
|
||||||
CONFIG_PTP_1588_CLOCK_KVM=m
|
CONFIG_PTP_1588_CLOCK_KVM=m
|
||||||
|
@ -4920,23 +4911,25 @@ CONFIG_PINCTRL_CS47L92=y
|
||||||
#
|
#
|
||||||
CONFIG_PINCTRL_BAYTRAIL=y
|
CONFIG_PINCTRL_BAYTRAIL=y
|
||||||
CONFIG_PINCTRL_CHERRYVIEW=y
|
CONFIG_PINCTRL_CHERRYVIEW=y
|
||||||
CONFIG_PINCTRL_LYNXPOINT=y
|
CONFIG_PINCTRL_LYNXPOINT=m
|
||||||
CONFIG_PINCTRL_INTEL=y
|
CONFIG_PINCTRL_INTEL=y
|
||||||
CONFIG_PINCTRL_ALDERLAKE=y
|
CONFIG_PINCTRL_INTEL_PLATFORM=m
|
||||||
CONFIG_PINCTRL_BROXTON=y
|
CONFIG_PINCTRL_ALDERLAKE=m
|
||||||
CONFIG_PINCTRL_CANNONLAKE=y
|
CONFIG_PINCTRL_BROXTON=m
|
||||||
CONFIG_PINCTRL_CEDARFORK=y
|
CONFIG_PINCTRL_CANNONLAKE=m
|
||||||
CONFIG_PINCTRL_DENVERTON=y
|
CONFIG_PINCTRL_CEDARFORK=m
|
||||||
CONFIG_PINCTRL_ELKHARTLAKE=y
|
CONFIG_PINCTRL_DENVERTON=m
|
||||||
CONFIG_PINCTRL_EMMITSBURG=y
|
CONFIG_PINCTRL_ELKHARTLAKE=m
|
||||||
CONFIG_PINCTRL_GEMINILAKE=y
|
CONFIG_PINCTRL_EMMITSBURG=m
|
||||||
CONFIG_PINCTRL_ICELAKE=y
|
CONFIG_PINCTRL_GEMINILAKE=m
|
||||||
CONFIG_PINCTRL_JASPERLAKE=y
|
CONFIG_PINCTRL_ICELAKE=m
|
||||||
CONFIG_PINCTRL_LAKEFIELD=y
|
CONFIG_PINCTRL_JASPERLAKE=m
|
||||||
CONFIG_PINCTRL_LEWISBURG=y
|
CONFIG_PINCTRL_LAKEFIELD=m
|
||||||
CONFIG_PINCTRL_METEORLAKE=y
|
CONFIG_PINCTRL_LEWISBURG=m
|
||||||
CONFIG_PINCTRL_SUNRISEPOINT=y
|
CONFIG_PINCTRL_METEORLAKE=m
|
||||||
CONFIG_PINCTRL_TIGERLAKE=y
|
CONFIG_PINCTRL_METEORPOINT=m
|
||||||
|
CONFIG_PINCTRL_SUNRISEPOINT=m
|
||||||
|
CONFIG_PINCTRL_TIGERLAKE=m
|
||||||
# end of Intel pinctrl drivers
|
# end of Intel pinctrl drivers
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -5072,6 +5065,7 @@ CONFIG_W1_CON=y
|
||||||
#
|
#
|
||||||
# 1-wire Bus Masters
|
# 1-wire Bus Masters
|
||||||
#
|
#
|
||||||
|
CONFIG_W1_MASTER_AMD_AXI=m
|
||||||
CONFIG_W1_MASTER_MATROX=m
|
CONFIG_W1_MASTER_MATROX=m
|
||||||
CONFIG_W1_MASTER_DS2490=m
|
CONFIG_W1_MASTER_DS2490=m
|
||||||
CONFIG_W1_MASTER_DS2482=m
|
CONFIG_W1_MASTER_DS2482=m
|
||||||
|
@ -5155,7 +5149,7 @@ CONFIG_CHARGER_TWL4030=m
|
||||||
CONFIG_CHARGER_LP8727=m
|
CONFIG_CHARGER_LP8727=m
|
||||||
CONFIG_CHARGER_LP8788=m
|
CONFIG_CHARGER_LP8788=m
|
||||||
CONFIG_CHARGER_GPIO=m
|
CONFIG_CHARGER_GPIO=m
|
||||||
CONFIG_CHARGER_MANAGER=y
|
CONFIG_CHARGER_MANAGER=m
|
||||||
CONFIG_CHARGER_LT3651=m
|
CONFIG_CHARGER_LT3651=m
|
||||||
CONFIG_CHARGER_LTC4162L=m
|
CONFIG_CHARGER_LTC4162L=m
|
||||||
CONFIG_CHARGER_MAX14577=m
|
CONFIG_CHARGER_MAX14577=m
|
||||||
|
@ -5244,6 +5238,7 @@ CONFIG_SENSORS_F75375S=m
|
||||||
CONFIG_SENSORS_MC13783_ADC=m
|
CONFIG_SENSORS_MC13783_ADC=m
|
||||||
CONFIG_SENSORS_FSCHMD=m
|
CONFIG_SENSORS_FSCHMD=m
|
||||||
CONFIG_SENSORS_FTSTEUTATES=m
|
CONFIG_SENSORS_FTSTEUTATES=m
|
||||||
|
CONFIG_SENSORS_GIGABYTE_WATERFORCE=m
|
||||||
CONFIG_SENSORS_GL518SM=m
|
CONFIG_SENSORS_GL518SM=m
|
||||||
CONFIG_SENSORS_GL520SM=m
|
CONFIG_SENSORS_GL520SM=m
|
||||||
CONFIG_SENSORS_G760A=m
|
CONFIG_SENSORS_G760A=m
|
||||||
|
@ -5353,6 +5348,7 @@ CONFIG_SENSORS_LT7182S=m
|
||||||
CONFIG_SENSORS_LTC2978=m
|
CONFIG_SENSORS_LTC2978=m
|
||||||
# CONFIG_SENSORS_LTC2978_REGULATOR is not set
|
# CONFIG_SENSORS_LTC2978_REGULATOR is not set
|
||||||
CONFIG_SENSORS_LTC3815=m
|
CONFIG_SENSORS_LTC3815=m
|
||||||
|
CONFIG_SENSORS_LTC4286=y
|
||||||
CONFIG_SENSORS_MAX15301=m
|
CONFIG_SENSORS_MAX15301=m
|
||||||
CONFIG_SENSORS_MAX16064=m
|
CONFIG_SENSORS_MAX16064=m
|
||||||
CONFIG_SENSORS_MAX16601=m
|
CONFIG_SENSORS_MAX16601=m
|
||||||
|
@ -5361,10 +5357,12 @@ CONFIG_SENSORS_MAX20751=m
|
||||||
CONFIG_SENSORS_MAX31785=m
|
CONFIG_SENSORS_MAX31785=m
|
||||||
CONFIG_SENSORS_MAX34440=m
|
CONFIG_SENSORS_MAX34440=m
|
||||||
CONFIG_SENSORS_MAX8688=m
|
CONFIG_SENSORS_MAX8688=m
|
||||||
|
CONFIG_SENSORS_MP2856=m
|
||||||
CONFIG_SENSORS_MP2888=m
|
CONFIG_SENSORS_MP2888=m
|
||||||
CONFIG_SENSORS_MP2975=m
|
CONFIG_SENSORS_MP2975=m
|
||||||
CONFIG_SENSORS_MP2975_REGULATOR=y
|
CONFIG_SENSORS_MP2975_REGULATOR=y
|
||||||
CONFIG_SENSORS_MP5023=m
|
CONFIG_SENSORS_MP5023=m
|
||||||
|
CONFIG_SENSORS_MP5990=m
|
||||||
CONFIG_SENSORS_MPQ7932_REGULATOR=y
|
CONFIG_SENSORS_MPQ7932_REGULATOR=y
|
||||||
CONFIG_SENSORS_MPQ7932=m
|
CONFIG_SENSORS_MPQ7932=m
|
||||||
CONFIG_SENSORS_PIM4328=m
|
CONFIG_SENSORS_PIM4328=m
|
||||||
|
@ -5454,9 +5452,9 @@ CONFIG_SENSORS_HP_WMI=m
|
||||||
CONFIG_THERMAL=y
|
CONFIG_THERMAL=y
|
||||||
CONFIG_THERMAL_NETLINK=y
|
CONFIG_THERMAL_NETLINK=y
|
||||||
# CONFIG_THERMAL_STATISTICS is not set
|
# CONFIG_THERMAL_STATISTICS is not set
|
||||||
|
# CONFIG_THERMAL_DEBUGFS is not set
|
||||||
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=100
|
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=100
|
||||||
CONFIG_THERMAL_HWMON=y
|
CONFIG_THERMAL_HWMON=y
|
||||||
CONFIG_THERMAL_ACPI=y
|
|
||||||
CONFIG_THERMAL_WRITABLE_TRIPS=y
|
CONFIG_THERMAL_WRITABLE_TRIPS=y
|
||||||
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
|
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
|
||||||
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
|
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
|
||||||
|
@ -5703,11 +5701,10 @@ CONFIG_MFD_SM501=m
|
||||||
CONFIG_MFD_SM501_GPIO=y
|
CONFIG_MFD_SM501_GPIO=y
|
||||||
CONFIG_MFD_SKY81452=m
|
CONFIG_MFD_SKY81452=m
|
||||||
CONFIG_MFD_SYSCON=y
|
CONFIG_MFD_SYSCON=y
|
||||||
CONFIG_MFD_TI_AM335X_TSCADC=m
|
|
||||||
CONFIG_MFD_LP3943=m
|
CONFIG_MFD_LP3943=m
|
||||||
CONFIG_MFD_LP8788=y
|
CONFIG_MFD_LP8788=y
|
||||||
CONFIG_MFD_TI_LMU=m
|
CONFIG_MFD_TI_LMU=m
|
||||||
CONFIG_MFD_PALMAS=y
|
CONFIG_MFD_PALMAS=m
|
||||||
CONFIG_TPS6105X=m
|
CONFIG_TPS6105X=m
|
||||||
CONFIG_TPS65010=m
|
CONFIG_TPS65010=m
|
||||||
CONFIG_TPS6507X=m
|
CONFIG_TPS6507X=m
|
||||||
|
@ -5758,6 +5755,7 @@ CONFIG_REGULATOR=y
|
||||||
CONFIG_REGULATOR_FIXED_VOLTAGE=m
|
CONFIG_REGULATOR_FIXED_VOLTAGE=m
|
||||||
CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
|
CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
|
||||||
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
|
CONFIG_REGULATOR_USERSPACE_CONSUMER=m
|
||||||
|
CONFIG_REGULATOR_NETLINK_EVENTS=y
|
||||||
CONFIG_REGULATOR_88PG86X=m
|
CONFIG_REGULATOR_88PG86X=m
|
||||||
CONFIG_REGULATOR_88PM800=m
|
CONFIG_REGULATOR_88PM800=m
|
||||||
CONFIG_REGULATOR_88PM8607=m
|
CONFIG_REGULATOR_88PM8607=m
|
||||||
|
@ -5962,7 +5960,6 @@ CONFIG_V4L2_CCI_I2C=m
|
||||||
# Media controller options
|
# Media controller options
|
||||||
#
|
#
|
||||||
CONFIG_MEDIA_CONTROLLER_DVB=y
|
CONFIG_MEDIA_CONTROLLER_DVB=y
|
||||||
CONFIG_MEDIA_CONTROLLER_REQUEST_API=y
|
|
||||||
# end of Media controller options
|
# end of Media controller options
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -6396,7 +6393,10 @@ CONFIG_VIDEO_IR_I2C=m
|
||||||
CONFIG_VIDEO_CAMERA_SENSOR=y
|
CONFIG_VIDEO_CAMERA_SENSOR=y
|
||||||
CONFIG_VIDEO_APTINA_PLL=m
|
CONFIG_VIDEO_APTINA_PLL=m
|
||||||
CONFIG_VIDEO_CCS_PLL=m
|
CONFIG_VIDEO_CCS_PLL=m
|
||||||
|
CONFIG_VIDEO_ALVIUM_CSI2=m
|
||||||
CONFIG_VIDEO_AR0521=m
|
CONFIG_VIDEO_AR0521=m
|
||||||
|
CONFIG_VIDEO_GC0308=m
|
||||||
|
CONFIG_VIDEO_GC2145=m
|
||||||
CONFIG_VIDEO_HI556=m
|
CONFIG_VIDEO_HI556=m
|
||||||
CONFIG_VIDEO_HI846=m
|
CONFIG_VIDEO_HI846=m
|
||||||
CONFIG_VIDEO_HI847=m
|
CONFIG_VIDEO_HI847=m
|
||||||
|
@ -6437,6 +6437,7 @@ CONFIG_VIDEO_OV5670=m
|
||||||
CONFIG_VIDEO_OV5675=m
|
CONFIG_VIDEO_OV5675=m
|
||||||
CONFIG_VIDEO_OV5693=m
|
CONFIG_VIDEO_OV5693=m
|
||||||
CONFIG_VIDEO_OV5695=m
|
CONFIG_VIDEO_OV5695=m
|
||||||
|
CONFIG_VIDEO_OV64A40=m
|
||||||
CONFIG_VIDEO_OV6650=m
|
CONFIG_VIDEO_OV6650=m
|
||||||
CONFIG_VIDEO_OV7251=m
|
CONFIG_VIDEO_OV7251=m
|
||||||
CONFIG_VIDEO_OV7640=m
|
CONFIG_VIDEO_OV7640=m
|
||||||
|
@ -6458,6 +6459,12 @@ CONFIG_VIDEO_S5K6A3=m
|
||||||
CONFIG_VIDEO_CCS=m
|
CONFIG_VIDEO_CCS=m
|
||||||
CONFIG_VIDEO_ET8EK8=m
|
CONFIG_VIDEO_ET8EK8=m
|
||||||
|
|
||||||
|
#
|
||||||
|
# Camera ISPs
|
||||||
|
#
|
||||||
|
CONFIG_VIDEO_THP7312=m
|
||||||
|
# end of Camera ISPs
|
||||||
|
|
||||||
#
|
#
|
||||||
# Lens drivers
|
# Lens drivers
|
||||||
#
|
#
|
||||||
|
@ -6818,6 +6825,7 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
|
||||||
# CONFIG_NOUVEAU_DEBUG_PUSH is not set
|
# CONFIG_NOUVEAU_DEBUG_PUSH is not set
|
||||||
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
|
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
|
||||||
CONFIG_DRM_NOUVEAU_SVM=y
|
CONFIG_DRM_NOUVEAU_SVM=y
|
||||||
|
CONFIG_DRM_NOUVEAU_GSP_DEFAULT=y
|
||||||
CONFIG_DRM_I915=m
|
CONFIG_DRM_I915=m
|
||||||
CONFIG_DRM_I915_FORCE_PROBE="*"
|
CONFIG_DRM_I915_FORCE_PROBE="*"
|
||||||
CONFIG_DRM_I915_CAPTURE_ERROR=y
|
CONFIG_DRM_I915_CAPTURE_ERROR=y
|
||||||
|
@ -6835,6 +6843,17 @@ CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
|
||||||
CONFIG_DRM_I915_STOP_TIMEOUT=100
|
CONFIG_DRM_I915_STOP_TIMEOUT=100
|
||||||
CONFIG_DRM_I915_TIMESLICE_DURATION=1
|
CONFIG_DRM_I915_TIMESLICE_DURATION=1
|
||||||
CONFIG_DRM_I915_GVT=y
|
CONFIG_DRM_I915_GVT=y
|
||||||
|
CONFIG_DRM_XE=m
|
||||||
|
CONFIG_DRM_XE_DISPLAY=y
|
||||||
|
CONFIG_DRM_XE_FORCE_PROBE=""
|
||||||
|
CONFIG_DRM_XE_JOB_TIMEOUT_MAX=10000
|
||||||
|
CONFIG_DRM_XE_JOB_TIMEOUT_MIN=1
|
||||||
|
CONFIG_DRM_XE_TIMESLICE_MAX=10000000
|
||||||
|
CONFIG_DRM_XE_TIMESLICE_MIN=1
|
||||||
|
CONFIG_DRM_XE_PREEMPT_TIMEOUT=640000
|
||||||
|
CONFIG_DRM_XE_PREEMPT_TIMEOUT_MAX=10000000
|
||||||
|
CONFIG_DRM_XE_PREEMPT_TIMEOUT_MIN=1
|
||||||
|
CONFIG_DRM_XE_ENABLE_SCHEDTIMEOUT_LIMIT=y
|
||||||
CONFIG_DRM_VGEM=m
|
CONFIG_DRM_VGEM=m
|
||||||
CONFIG_DRM_VKMS=m
|
CONFIG_DRM_VKMS=m
|
||||||
CONFIG_DRM_VMWGFX=m
|
CONFIG_DRM_VMWGFX=m
|
||||||
|
@ -6867,7 +6886,6 @@ CONFIG_DRM_ANALOGIX_ANX78XX=m
|
||||||
CONFIG_DRM_ANALOGIX_DP=m
|
CONFIG_DRM_ANALOGIX_DP=m
|
||||||
# end of Display Interface Bridges
|
# end of Display Interface Bridges
|
||||||
|
|
||||||
CONFIG_DRM_LOONGSON=m
|
|
||||||
# CONFIG_DRM_ETNAVIV is not set
|
# CONFIG_DRM_ETNAVIV is not set
|
||||||
CONFIG_DRM_BOCHS=m
|
CONFIG_DRM_BOCHS=m
|
||||||
CONFIG_DRM_CIRRUS_QEMU=m
|
CONFIG_DRM_CIRRUS_QEMU=m
|
||||||
|
@ -6891,7 +6909,6 @@ CONFIG_DRM_SSD130X=m
|
||||||
CONFIG_DRM_SSD130X_I2C=m
|
CONFIG_DRM_SSD130X_I2C=m
|
||||||
CONFIG_DRM_SSD130X_SPI=m
|
CONFIG_DRM_SSD130X_SPI=m
|
||||||
CONFIG_DRM_HYPERV=m
|
CONFIG_DRM_HYPERV=m
|
||||||
# CONFIG_DRM_LEGACY is not set
|
|
||||||
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
|
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
|
||||||
CONFIG_DRM_PRIVACY_SCREEN=y
|
CONFIG_DRM_PRIVACY_SCREEN=y
|
||||||
|
|
||||||
|
@ -6916,7 +6933,6 @@ CONFIG_FB_EFI=y
|
||||||
# CONFIG_FB_NVIDIA is not set
|
# CONFIG_FB_NVIDIA is not set
|
||||||
# CONFIG_FB_RIVA is not set
|
# CONFIG_FB_RIVA is not set
|
||||||
# CONFIG_FB_I740 is not set
|
# CONFIG_FB_I740 is not set
|
||||||
# CONFIG_FB_LE80578 is not set
|
|
||||||
# CONFIG_FB_MATROX is not set
|
# CONFIG_FB_MATROX is not set
|
||||||
# CONFIG_FB_RADEON is not set
|
# CONFIG_FB_RADEON is not set
|
||||||
# CONFIG_FB_ATY128 is not set
|
# CONFIG_FB_ATY128 is not set
|
||||||
|
@ -6956,7 +6972,7 @@ CONFIG_FB_SYS_FILLRECT=y
|
||||||
CONFIG_FB_SYS_COPYAREA=y
|
CONFIG_FB_SYS_COPYAREA=y
|
||||||
CONFIG_FB_SYS_IMAGEBLIT=y
|
CONFIG_FB_SYS_IMAGEBLIT=y
|
||||||
# CONFIG_FB_FOREIGN_ENDIAN is not set
|
# CONFIG_FB_FOREIGN_ENDIAN is not set
|
||||||
CONFIG_FB_SYS_FOPS=y
|
CONFIG_FB_SYSMEM_FOPS=y
|
||||||
CONFIG_FB_DEFERRED_IO=y
|
CONFIG_FB_DEFERRED_IO=y
|
||||||
CONFIG_FB_DMAMEM_HELPERS=y
|
CONFIG_FB_DMAMEM_HELPERS=y
|
||||||
CONFIG_FB_IOMEM_FOPS=y
|
CONFIG_FB_IOMEM_FOPS=y
|
||||||
|
@ -7007,6 +7023,7 @@ CONFIG_BACKLIGHT_LM3630A=m
|
||||||
CONFIG_BACKLIGHT_LM3639=m
|
CONFIG_BACKLIGHT_LM3639=m
|
||||||
CONFIG_BACKLIGHT_LP855X=m
|
CONFIG_BACKLIGHT_LP855X=m
|
||||||
CONFIG_BACKLIGHT_LP8788=m
|
CONFIG_BACKLIGHT_LP8788=m
|
||||||
|
CONFIG_BACKLIGHT_MP3309C=m
|
||||||
CONFIG_BACKLIGHT_PANDORA=m
|
CONFIG_BACKLIGHT_PANDORA=m
|
||||||
CONFIG_BACKLIGHT_SKY81452=m
|
CONFIG_BACKLIGHT_SKY81452=m
|
||||||
CONFIG_BACKLIGHT_AS3711=m
|
CONFIG_BACKLIGHT_AS3711=m
|
||||||
|
@ -7295,6 +7312,7 @@ CONFIG_SND_SOC_AMD_ACP_PCI=m
|
||||||
CONFIG_SND_AMD_ASOC_RENOIR=m
|
CONFIG_SND_AMD_ASOC_RENOIR=m
|
||||||
CONFIG_SND_AMD_ASOC_REMBRANDT=m
|
CONFIG_SND_AMD_ASOC_REMBRANDT=m
|
||||||
CONFIG_SND_AMD_ASOC_ACP63=m
|
CONFIG_SND_AMD_ASOC_ACP63=m
|
||||||
|
CONFIG_SND_AMD_ASOC_ACP70=m
|
||||||
CONFIG_SND_SOC_AMD_MACH_COMMON=m
|
CONFIG_SND_SOC_AMD_MACH_COMMON=m
|
||||||
CONFIG_SND_SOC_AMD_LEGACY_MACH=m
|
CONFIG_SND_SOC_AMD_LEGACY_MACH=m
|
||||||
CONFIG_SND_SOC_AMD_SOF_MACH=m
|
CONFIG_SND_SOC_AMD_SOF_MACH=m
|
||||||
|
@ -7587,6 +7605,7 @@ CONFIG_SND_SOC_DMIC=m
|
||||||
CONFIG_SND_SOC_HDMI_CODEC=m
|
CONFIG_SND_SOC_HDMI_CODEC=m
|
||||||
CONFIG_SND_SOC_ES7134=m
|
CONFIG_SND_SOC_ES7134=m
|
||||||
CONFIG_SND_SOC_ES7241=m
|
CONFIG_SND_SOC_ES7241=m
|
||||||
|
CONFIG_SND_SOC_ES83XX_DSM_COMMON=m
|
||||||
CONFIG_SND_SOC_ES8316=m
|
CONFIG_SND_SOC_ES8316=m
|
||||||
CONFIG_SND_SOC_ES8326=m
|
CONFIG_SND_SOC_ES8326=m
|
||||||
CONFIG_SND_SOC_ES8328=m
|
CONFIG_SND_SOC_ES8328=m
|
||||||
|
@ -7804,7 +7823,7 @@ CONFIG_HID=y
|
||||||
CONFIG_HID_BATTERY_STRENGTH=y
|
CONFIG_HID_BATTERY_STRENGTH=y
|
||||||
CONFIG_HIDRAW=y
|
CONFIG_HIDRAW=y
|
||||||
CONFIG_UHID=m
|
CONFIG_UHID=m
|
||||||
CONFIG_HID_GENERIC=y
|
CONFIG_HID_GENERIC=m
|
||||||
|
|
||||||
#
|
#
|
||||||
# Special HID drivers
|
# Special HID drivers
|
||||||
|
@ -7940,6 +7959,7 @@ CONFIG_HID_ZYDACRON=m
|
||||||
CONFIG_HID_SENSOR_HUB=m
|
CONFIG_HID_SENSOR_HUB=m
|
||||||
CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
|
CONFIG_HID_SENSOR_CUSTOM_SENSOR=m
|
||||||
CONFIG_HID_ALPS=m
|
CONFIG_HID_ALPS=m
|
||||||
|
CONFIG_HID_MCP2200=m
|
||||||
CONFIG_HID_MCP2221=m
|
CONFIG_HID_MCP2221=m
|
||||||
# end of Special HID drivers
|
# end of Special HID drivers
|
||||||
|
|
||||||
|
@ -8394,6 +8414,7 @@ CONFIG_TYPEC_MUX_PI3USB30532=m
|
||||||
CONFIG_TYPEC_MUX_INTEL_PMC=m
|
CONFIG_TYPEC_MUX_INTEL_PMC=m
|
||||||
CONFIG_TYPEC_MUX_NB7VPQ904M=m
|
CONFIG_TYPEC_MUX_NB7VPQ904M=m
|
||||||
CONFIG_TYPEC_MUX_PTN36502=m
|
CONFIG_TYPEC_MUX_PTN36502=m
|
||||||
|
CONFIG_TYPEC_MUX_WCD939X_USBSS=m
|
||||||
# end of USB Type-C Multiplexer/DeMultiplexer Switch support
|
# end of USB Type-C Multiplexer/DeMultiplexer Switch support
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -8642,7 +8663,7 @@ CONFIG_EDAC_SUPPORT=y
|
||||||
CONFIG_EDAC=y
|
CONFIG_EDAC=y
|
||||||
CONFIG_EDAC_LEGACY_SYSFS=y
|
CONFIG_EDAC_LEGACY_SYSFS=y
|
||||||
# CONFIG_EDAC_DEBUG is not set
|
# CONFIG_EDAC_DEBUG is not set
|
||||||
CONFIG_EDAC_DECODE_MCE=m
|
CONFIG_EDAC_DECODE_MCE=y
|
||||||
CONFIG_EDAC_GHES=y
|
CONFIG_EDAC_GHES=y
|
||||||
CONFIG_EDAC_AMD64=m
|
CONFIG_EDAC_AMD64=m
|
||||||
CONFIG_EDAC_E752X=m
|
CONFIG_EDAC_E752X=m
|
||||||
|
@ -8698,6 +8719,7 @@ CONFIG_RTC_DRV_MAX8907=m
|
||||||
CONFIG_RTC_DRV_MAX8925=m
|
CONFIG_RTC_DRV_MAX8925=m
|
||||||
CONFIG_RTC_DRV_MAX8998=m
|
CONFIG_RTC_DRV_MAX8998=m
|
||||||
CONFIG_RTC_DRV_MAX8997=m
|
CONFIG_RTC_DRV_MAX8997=m
|
||||||
|
CONFIG_RTC_DRV_MAX31335=m
|
||||||
CONFIG_RTC_DRV_RS5C372=m
|
CONFIG_RTC_DRV_RS5C372=m
|
||||||
CONFIG_RTC_DRV_ISL1208=m
|
CONFIG_RTC_DRV_ISL1208=m
|
||||||
CONFIG_RTC_DRV_ISL12022=m
|
CONFIG_RTC_DRV_ISL12022=m
|
||||||
|
@ -8712,6 +8734,7 @@ CONFIG_RTC_DRV_M41T80_WDT=y
|
||||||
CONFIG_RTC_DRV_BQ32K=m
|
CONFIG_RTC_DRV_BQ32K=m
|
||||||
CONFIG_RTC_DRV_PALMAS=m
|
CONFIG_RTC_DRV_PALMAS=m
|
||||||
CONFIG_RTC_DRV_TPS6586X=m
|
CONFIG_RTC_DRV_TPS6586X=m
|
||||||
|
CONFIG_RTC_DRV_TPS6594=m
|
||||||
CONFIG_RTC_DRV_TPS65910=m
|
CONFIG_RTC_DRV_TPS65910=m
|
||||||
CONFIG_RTC_DRV_RC5T583=m
|
CONFIG_RTC_DRV_RC5T583=m
|
||||||
CONFIG_RTC_DRV_S35390A=m
|
CONFIG_RTC_DRV_S35390A=m
|
||||||
|
@ -8825,7 +8848,7 @@ CONFIG_DW_DMAC=m
|
||||||
CONFIG_DW_DMAC_PCI=y
|
CONFIG_DW_DMAC_PCI=y
|
||||||
CONFIG_DW_EDMA=m
|
CONFIG_DW_EDMA=m
|
||||||
CONFIG_DW_EDMA_PCIE=m
|
CONFIG_DW_EDMA_PCIE=m
|
||||||
CONFIG_HSU_DMA=y
|
CONFIG_HSU_DMA=m
|
||||||
CONFIG_SF_PDMA=m
|
CONFIG_SF_PDMA=m
|
||||||
CONFIG_INTEL_LDMA=y
|
CONFIG_INTEL_LDMA=y
|
||||||
|
|
||||||
|
@ -8871,6 +8894,7 @@ CONFIG_VFIO_CONTAINER=y
|
||||||
CONFIG_VFIO_IOMMU_TYPE1=m
|
CONFIG_VFIO_IOMMU_TYPE1=m
|
||||||
# CONFIG_VFIO_NOIOMMU is not set
|
# CONFIG_VFIO_NOIOMMU is not set
|
||||||
CONFIG_VFIO_VIRQFD=y
|
CONFIG_VFIO_VIRQFD=y
|
||||||
|
CONFIG_VFIO_DEBUGFS=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# VFIO support for PCI devices
|
# VFIO support for PCI devices
|
||||||
|
@ -8883,6 +8907,7 @@ CONFIG_VFIO_PCI_VGA=y
|
||||||
CONFIG_VFIO_PCI_IGD=y
|
CONFIG_VFIO_PCI_IGD=y
|
||||||
CONFIG_MLX5_VFIO_PCI=m
|
CONFIG_MLX5_VFIO_PCI=m
|
||||||
CONFIG_PDS_VFIO_PCI=m
|
CONFIG_PDS_VFIO_PCI=m
|
||||||
|
CONFIG_VIRTIO_VFIO_PCI=m
|
||||||
# end of VFIO support for PCI devices
|
# end of VFIO support for PCI devices
|
||||||
|
|
||||||
CONFIG_VFIO_MDEV=m
|
CONFIG_VFIO_MDEV=m
|
||||||
|
@ -8902,6 +8927,7 @@ CONFIG_VIRTIO_PCI_LIB=m
|
||||||
CONFIG_VIRTIO_PCI_LIB_LEGACY=m
|
CONFIG_VIRTIO_PCI_LIB_LEGACY=m
|
||||||
CONFIG_VIRTIO_MENU=y
|
CONFIG_VIRTIO_MENU=y
|
||||||
CONFIG_VIRTIO_PCI=m
|
CONFIG_VIRTIO_PCI=m
|
||||||
|
CONFIG_VIRTIO_PCI_ADMIN_LEGACY=y
|
||||||
CONFIG_VIRTIO_PCI_LEGACY=y
|
CONFIG_VIRTIO_PCI_LEGACY=y
|
||||||
CONFIG_VIRTIO_VDPA=m
|
CONFIG_VIRTIO_VDPA=m
|
||||||
CONFIG_VIRTIO_PMEM=m
|
CONFIG_VIRTIO_PMEM=m
|
||||||
|
@ -8966,7 +8992,7 @@ CONFIG_SWIOTLB_XEN=y
|
||||||
CONFIG_XEN_PCI_STUB=y
|
CONFIG_XEN_PCI_STUB=y
|
||||||
CONFIG_XEN_PCIDEV_BACKEND=m
|
CONFIG_XEN_PCIDEV_BACKEND=m
|
||||||
CONFIG_XEN_PVCALLS_FRONTEND=m
|
CONFIG_XEN_PVCALLS_FRONTEND=m
|
||||||
CONFIG_XEN_PVCALLS_BACKEND=y
|
CONFIG_XEN_PVCALLS_BACKEND=m
|
||||||
CONFIG_XEN_SCSI_BACKEND=m
|
CONFIG_XEN_SCSI_BACKEND=m
|
||||||
CONFIG_XEN_PRIVCMD=m
|
CONFIG_XEN_PRIVCMD=m
|
||||||
CONFIG_XEN_PRIVCMD_EVENTFD=y
|
CONFIG_XEN_PRIVCMD_EVENTFD=y
|
||||||
|
@ -9048,6 +9074,10 @@ CONFIG_DVB_AV7110_OSD=y
|
||||||
CONFIG_DVB_BUDGET_PATCH=m
|
CONFIG_DVB_BUDGET_PATCH=m
|
||||||
CONFIG_DVB_SP8870=m
|
CONFIG_DVB_SP8870=m
|
||||||
CONFIG_VIDEO_IPU3_IMGU=m
|
CONFIG_VIDEO_IPU3_IMGU=m
|
||||||
|
|
||||||
|
#
|
||||||
|
# StarFive media platform drivers
|
||||||
|
#
|
||||||
# CONFIG_STAGING_MEDIA_DEPRECATED is not set
|
# CONFIG_STAGING_MEDIA_DEPRECATED is not set
|
||||||
CONFIG_LTE_GDM724X=m
|
CONFIG_LTE_GDM724X=m
|
||||||
# CONFIG_FB_TFT is not set
|
# CONFIG_FB_TFT is not set
|
||||||
|
@ -9124,6 +9154,7 @@ CONFIG_AMD_PMF=m
|
||||||
# CONFIG_AMD_PMF_DEBUG is not set
|
# CONFIG_AMD_PMF_DEBUG is not set
|
||||||
CONFIG_AMD_PMC=m
|
CONFIG_AMD_PMC=m
|
||||||
CONFIG_AMD_HSMP=m
|
CONFIG_AMD_HSMP=m
|
||||||
|
CONFIG_AMD_WBRF=y
|
||||||
CONFIG_ADV_SWBUTTON=m
|
CONFIG_ADV_SWBUTTON=m
|
||||||
CONFIG_APPLE_GMUX=m
|
CONFIG_APPLE_GMUX=m
|
||||||
CONFIG_ASUS_LAPTOP=m
|
CONFIG_ASUS_LAPTOP=m
|
||||||
|
@ -9178,7 +9209,7 @@ CONFIG_INTEL_ATOMISP2_PM=m
|
||||||
CONFIG_INTEL_IFS=m
|
CONFIG_INTEL_IFS=m
|
||||||
CONFIG_INTEL_SAR_INT1092=m
|
CONFIG_INTEL_SAR_INT1092=m
|
||||||
CONFIG_INTEL_SKL_INT3472=m
|
CONFIG_INTEL_SKL_INT3472=m
|
||||||
CONFIG_INTEL_PMC_CORE=y
|
CONFIG_INTEL_PMC_CORE=m
|
||||||
CONFIG_INTEL_PMT_CLASS=m
|
CONFIG_INTEL_PMT_CLASS=m
|
||||||
CONFIG_INTEL_PMT_TELEMETRY=m
|
CONFIG_INTEL_PMT_TELEMETRY=m
|
||||||
CONFIG_INTEL_PMT_CRASHLOG=m
|
CONFIG_INTEL_PMT_CRASHLOG=m
|
||||||
|
@ -9255,6 +9286,7 @@ CONFIG_SIEMENS_SIMATIC_IPC_BATT=m
|
||||||
CONFIG_SIEMENS_SIMATIC_IPC_BATT_APOLLOLAKE=m
|
CONFIG_SIEMENS_SIMATIC_IPC_BATT_APOLLOLAKE=m
|
||||||
CONFIG_SIEMENS_SIMATIC_IPC_BATT_ELKHARTLAKE=m
|
CONFIG_SIEMENS_SIMATIC_IPC_BATT_ELKHARTLAKE=m
|
||||||
CONFIG_SIEMENS_SIMATIC_IPC_BATT_F7188X=m
|
CONFIG_SIEMENS_SIMATIC_IPC_BATT_F7188X=m
|
||||||
|
CONFIG_SILICOM_PLATFORM=m
|
||||||
CONFIG_WINMATE_FM07_KEYS=m
|
CONFIG_WINMATE_FM07_KEYS=m
|
||||||
CONFIG_SEL3350_PLATFORM=m
|
CONFIG_SEL3350_PLATFORM=m
|
||||||
CONFIG_P2SB=y
|
CONFIG_P2SB=y
|
||||||
|
@ -9387,6 +9419,7 @@ CONFIG_WPCM450_SOC=m
|
||||||
#
|
#
|
||||||
# Qualcomm SoC drivers
|
# Qualcomm SoC drivers
|
||||||
#
|
#
|
||||||
|
CONFIG_QCOM_PMIC_PDCHARGER_ULOG=m
|
||||||
CONFIG_QCOM_QMI_HELPERS=m
|
CONFIG_QCOM_QMI_HELPERS=m
|
||||||
# end of Qualcomm SoC drivers
|
# end of Qualcomm SoC drivers
|
||||||
|
|
||||||
|
@ -9549,7 +9582,9 @@ CONFIG_STK8BA50=m
|
||||||
#
|
#
|
||||||
CONFIG_AD_SIGMA_DELTA=m
|
CONFIG_AD_SIGMA_DELTA=m
|
||||||
CONFIG_AD4130=m
|
CONFIG_AD4130=m
|
||||||
|
CONFIG_AD7091R=m
|
||||||
CONFIG_AD7091R5=m
|
CONFIG_AD7091R5=m
|
||||||
|
CONFIG_AD7091R8=m
|
||||||
CONFIG_AD7124=m
|
CONFIG_AD7124=m
|
||||||
CONFIG_AD7192=m
|
CONFIG_AD7192=m
|
||||||
CONFIG_AD7266=m
|
CONFIG_AD7266=m
|
||||||
|
@ -9593,6 +9628,7 @@ CONFIG_MAX11205=m
|
||||||
CONFIG_MAX11410=m
|
CONFIG_MAX11410=m
|
||||||
CONFIG_MAX1241=m
|
CONFIG_MAX1241=m
|
||||||
CONFIG_MAX1363=m
|
CONFIG_MAX1363=m
|
||||||
|
CONFIG_MAX34408=m
|
||||||
CONFIG_MAX77541_ADC=m
|
CONFIG_MAX77541_ADC=m
|
||||||
CONFIG_MAX9611=m
|
CONFIG_MAX9611=m
|
||||||
CONFIG_MCP320X=m
|
CONFIG_MCP320X=m
|
||||||
|
@ -9622,7 +9658,6 @@ CONFIG_TI_ADS8344=m
|
||||||
CONFIG_TI_ADS8688=m
|
CONFIG_TI_ADS8688=m
|
||||||
CONFIG_TI_ADS124S08=m
|
CONFIG_TI_ADS124S08=m
|
||||||
CONFIG_TI_ADS131E08=m
|
CONFIG_TI_ADS131E08=m
|
||||||
CONFIG_TI_AM335X_ADC=m
|
|
||||||
CONFIG_TI_LMP92064=m
|
CONFIG_TI_LMP92064=m
|
||||||
CONFIG_TI_TLC4541=m
|
CONFIG_TI_TLC4541=m
|
||||||
CONFIG_TI_TSC2046=m
|
CONFIG_TI_TSC2046=m
|
||||||
|
@ -9664,6 +9699,7 @@ CONFIG_AD7746=m
|
||||||
#
|
#
|
||||||
# Chemical Sensors
|
# Chemical Sensors
|
||||||
#
|
#
|
||||||
|
CONFIG_AOSONG_AGS02MA=m
|
||||||
CONFIG_ATLAS_PH_SENSOR=m
|
CONFIG_ATLAS_PH_SENSOR=m
|
||||||
CONFIG_ATLAS_EZO_SENSOR=m
|
CONFIG_ATLAS_EZO_SENSOR=m
|
||||||
CONFIG_BME680=m
|
CONFIG_BME680=m
|
||||||
|
@ -9754,6 +9790,7 @@ CONFIG_MAX5522=m
|
||||||
CONFIG_MAX5821=m
|
CONFIG_MAX5821=m
|
||||||
CONFIG_MCP4725=m
|
CONFIG_MCP4725=m
|
||||||
CONFIG_MCP4728=m
|
CONFIG_MCP4728=m
|
||||||
|
CONFIG_MCP4821=m
|
||||||
CONFIG_MCP4922=m
|
CONFIG_MCP4922=m
|
||||||
CONFIG_TI_DAC082S085=m
|
CONFIG_TI_DAC082S085=m
|
||||||
CONFIG_TI_DAC5571=m
|
CONFIG_TI_DAC5571=m
|
||||||
|
@ -9842,6 +9879,7 @@ CONFIG_AM2315=m
|
||||||
CONFIG_DHT11=m
|
CONFIG_DHT11=m
|
||||||
CONFIG_HDC100X=m
|
CONFIG_HDC100X=m
|
||||||
CONFIG_HDC2010=m
|
CONFIG_HDC2010=m
|
||||||
|
CONFIG_HDC3020=m
|
||||||
CONFIG_HID_SENSOR_HUMIDITY=m
|
CONFIG_HID_SENSOR_HUMIDITY=m
|
||||||
CONFIG_HTS221=m
|
CONFIG_HTS221=m
|
||||||
CONFIG_HTS221_I2C=m
|
CONFIG_HTS221_I2C=m
|
||||||
|
@ -9861,6 +9899,9 @@ CONFIG_ADIS16480=m
|
||||||
CONFIG_BMI160=m
|
CONFIG_BMI160=m
|
||||||
CONFIG_BMI160_I2C=m
|
CONFIG_BMI160_I2C=m
|
||||||
CONFIG_BMI160_SPI=m
|
CONFIG_BMI160_SPI=m
|
||||||
|
CONFIG_BMI323=m
|
||||||
|
CONFIG_BMI323_I2C=m
|
||||||
|
CONFIG_BMI323_SPI=m
|
||||||
CONFIG_BOSCH_BNO055=m
|
CONFIG_BOSCH_BNO055=m
|
||||||
CONFIG_BOSCH_BNO055_SERIAL=m
|
CONFIG_BOSCH_BNO055_SERIAL=m
|
||||||
CONFIG_BOSCH_BNO055_I2C=m
|
CONFIG_BOSCH_BNO055_I2C=m
|
||||||
|
@ -9910,6 +9951,7 @@ CONFIG_IQS621_ALS=m
|
||||||
CONFIG_SENSORS_ISL29018=m
|
CONFIG_SENSORS_ISL29018=m
|
||||||
CONFIG_SENSORS_ISL29028=m
|
CONFIG_SENSORS_ISL29028=m
|
||||||
CONFIG_ISL29125=m
|
CONFIG_ISL29125=m
|
||||||
|
CONFIG_ISL76682=m
|
||||||
CONFIG_HID_SENSOR_ALS=m
|
CONFIG_HID_SENSOR_ALS=m
|
||||||
CONFIG_HID_SENSOR_PROX=m
|
CONFIG_HID_SENSOR_PROX=m
|
||||||
CONFIG_JSA1212=m
|
CONFIG_JSA1212=m
|
||||||
|
@ -9917,6 +9959,7 @@ CONFIG_ROHM_BU27008=m
|
||||||
CONFIG_ROHM_BU27034=m
|
CONFIG_ROHM_BU27034=m
|
||||||
CONFIG_RPR0521=m
|
CONFIG_RPR0521=m
|
||||||
CONFIG_SENSORS_LM3533=m
|
CONFIG_SENSORS_LM3533=m
|
||||||
|
CONFIG_LTR390=m
|
||||||
CONFIG_LTR501=m
|
CONFIG_LTR501=m
|
||||||
CONFIG_LTRF216A=m
|
CONFIG_LTRF216A=m
|
||||||
CONFIG_LV0104CS=m
|
CONFIG_LV0104CS=m
|
||||||
|
@ -9944,6 +9987,7 @@ CONFIG_VCNL4000=m
|
||||||
CONFIG_VCNL4035=m
|
CONFIG_VCNL4035=m
|
||||||
CONFIG_VEML6030=m
|
CONFIG_VEML6030=m
|
||||||
CONFIG_VEML6070=m
|
CONFIG_VEML6070=m
|
||||||
|
CONFIG_VEML6075=m
|
||||||
CONFIG_VL6180=m
|
CONFIG_VL6180=m
|
||||||
CONFIG_ZOPT2201=m
|
CONFIG_ZOPT2201=m
|
||||||
# end of Light sensors
|
# end of Light sensors
|
||||||
|
@ -10038,6 +10082,9 @@ CONFIG_DLHL60D=m
|
||||||
CONFIG_DPS310=m
|
CONFIG_DPS310=m
|
||||||
CONFIG_HID_SENSOR_PRESS=m
|
CONFIG_HID_SENSOR_PRESS=m
|
||||||
CONFIG_HP03=m
|
CONFIG_HP03=m
|
||||||
|
CONFIG_HSC030PA=m
|
||||||
|
CONFIG_HSC030PA_I2C=m
|
||||||
|
CONFIG_HSC030PA_SPI=m
|
||||||
CONFIG_ICP10100=m
|
CONFIG_ICP10100=m
|
||||||
CONFIG_MPL115=m
|
CONFIG_MPL115=m
|
||||||
CONFIG_MPL115_I2C=m
|
CONFIG_MPL115_I2C=m
|
||||||
|
@ -10102,6 +10149,7 @@ CONFIG_MAXIM_THERMOCOUPLE=m
|
||||||
CONFIG_HID_SENSOR_TEMP=m
|
CONFIG_HID_SENSOR_TEMP=m
|
||||||
CONFIG_MLX90614=m
|
CONFIG_MLX90614=m
|
||||||
CONFIG_MLX90632=m
|
CONFIG_MLX90632=m
|
||||||
|
CONFIG_MLX90635=m
|
||||||
CONFIG_TMP006=m
|
CONFIG_TMP006=m
|
||||||
CONFIG_TMP007=m
|
CONFIG_TMP007=m
|
||||||
CONFIG_TMP117=m
|
CONFIG_TMP117=m
|
||||||
|
@ -10110,6 +10158,7 @@ CONFIG_TSYS02D=m
|
||||||
CONFIG_MAX30208=m
|
CONFIG_MAX30208=m
|
||||||
CONFIG_MAX31856=m
|
CONFIG_MAX31856=m
|
||||||
CONFIG_MAX31865=m
|
CONFIG_MAX31865=m
|
||||||
|
CONFIG_MCP9600=m
|
||||||
# end of Temperature sensors
|
# end of Temperature sensors
|
||||||
|
|
||||||
CONFIG_NTB=m
|
CONFIG_NTB=m
|
||||||
|
@ -10128,7 +10177,7 @@ CONFIG_PWM=y
|
||||||
CONFIG_PWM_SYSFS=y
|
CONFIG_PWM_SYSFS=y
|
||||||
# CONFIG_PWM_DEBUG is not set
|
# CONFIG_PWM_DEBUG is not set
|
||||||
CONFIG_PWM_CLK=m
|
CONFIG_PWM_CLK=m
|
||||||
CONFIG_PWM_CRC=y
|
CONFIG_PWM_CRC=m
|
||||||
CONFIG_PWM_CROS_EC=m
|
CONFIG_PWM_CROS_EC=m
|
||||||
CONFIG_PWM_DWC_CORE=m
|
CONFIG_PWM_DWC_CORE=m
|
||||||
CONFIG_PWM_DWC=m
|
CONFIG_PWM_DWC=m
|
||||||
|
@ -10190,6 +10239,7 @@ CONFIG_MCB_LPC=m
|
||||||
#
|
#
|
||||||
# Performance monitor support
|
# Performance monitor support
|
||||||
#
|
#
|
||||||
|
CONFIG_DWC_PCIE_PMU=m
|
||||||
# end of Performance monitor support
|
# end of Performance monitor support
|
||||||
|
|
||||||
CONFIG_RAS=y
|
CONFIG_RAS=y
|
||||||
|
@ -10205,7 +10255,7 @@ CONFIG_USB4=m
|
||||||
# CONFIG_ANDROID_BINDER_IPC is not set
|
# CONFIG_ANDROID_BINDER_IPC is not set
|
||||||
# end of Android
|
# end of Android
|
||||||
|
|
||||||
CONFIG_LIBNVDIMM=y
|
CONFIG_LIBNVDIMM=m
|
||||||
CONFIG_BLK_DEV_PMEM=m
|
CONFIG_BLK_DEV_PMEM=m
|
||||||
CONFIG_ND_CLAIM=y
|
CONFIG_ND_CLAIM=y
|
||||||
CONFIG_ND_BTT=m
|
CONFIG_ND_BTT=m
|
||||||
|
@ -10213,6 +10263,8 @@ CONFIG_BTT=y
|
||||||
CONFIG_ND_PFN=m
|
CONFIG_ND_PFN=m
|
||||||
CONFIG_NVDIMM_PFN=y
|
CONFIG_NVDIMM_PFN=y
|
||||||
CONFIG_NVDIMM_DAX=y
|
CONFIG_NVDIMM_DAX=y
|
||||||
|
CONFIG_NVDIMM_KEYS=y
|
||||||
|
# CONFIG_NVDIMM_SECURITY_TEST is not set
|
||||||
CONFIG_DAX=y
|
CONFIG_DAX=y
|
||||||
CONFIG_DEV_DAX=m
|
CONFIG_DEV_DAX=m
|
||||||
CONFIG_DEV_DAX_PMEM=m
|
CONFIG_DEV_DAX_PMEM=m
|
||||||
|
@ -10222,14 +10274,7 @@ CONFIG_DEV_DAX_HMEM_DEVICES=y
|
||||||
CONFIG_DEV_DAX_KMEM=m
|
CONFIG_DEV_DAX_KMEM=m
|
||||||
CONFIG_NVMEM=y
|
CONFIG_NVMEM=y
|
||||||
CONFIG_NVMEM_SYSFS=y
|
CONFIG_NVMEM_SYSFS=y
|
||||||
|
# CONFIG_NVMEM_LAYOUTS is not set
|
||||||
#
|
|
||||||
# Layout Types
|
|
||||||
#
|
|
||||||
CONFIG_NVMEM_LAYOUT_SL28_VPD=m
|
|
||||||
CONFIG_NVMEM_LAYOUT_ONIE_TLV=m
|
|
||||||
# end of Layout Types
|
|
||||||
|
|
||||||
CONFIG_NVMEM_RAVE_SP_EEPROM=m
|
CONFIG_NVMEM_RAVE_SP_EEPROM=m
|
||||||
CONFIG_NVMEM_RMEM=m
|
CONFIG_NVMEM_RMEM=m
|
||||||
|
|
||||||
|
@ -10311,6 +10356,7 @@ CONFIG_DPLL=y
|
||||||
CONFIG_DCACHE_WORD_ACCESS=y
|
CONFIG_DCACHE_WORD_ACCESS=y
|
||||||
CONFIG_VALIDATE_FS_PARSER=y
|
CONFIG_VALIDATE_FS_PARSER=y
|
||||||
CONFIG_FS_IOMAP=y
|
CONFIG_FS_IOMAP=y
|
||||||
|
CONFIG_FS_STACK=y
|
||||||
CONFIG_BUFFER_HEAD=y
|
CONFIG_BUFFER_HEAD=y
|
||||||
CONFIG_LEGACY_DIRECT_IO=y
|
CONFIG_LEGACY_DIRECT_IO=y
|
||||||
# CONFIG_EXT2_FS is not set
|
# CONFIG_EXT2_FS is not set
|
||||||
|
@ -10380,11 +10426,11 @@ CONFIG_BCACHEFS_FS=m
|
||||||
CONFIG_BCACHEFS_QUOTA=y
|
CONFIG_BCACHEFS_QUOTA=y
|
||||||
# CONFIG_BCACHEFS_ERASURE_CODING is not set
|
# CONFIG_BCACHEFS_ERASURE_CODING is not set
|
||||||
CONFIG_BCACHEFS_POSIX_ACL=y
|
CONFIG_BCACHEFS_POSIX_ACL=y
|
||||||
# CONFIG_BCACHEFS_DEBUG_TRANSACTIONS is not set
|
|
||||||
# CONFIG_BCACHEFS_DEBUG is not set
|
# CONFIG_BCACHEFS_DEBUG is not set
|
||||||
# CONFIG_BCACHEFS_TESTS is not set
|
# CONFIG_BCACHEFS_TESTS is not set
|
||||||
CONFIG_BCACHEFS_LOCK_TIME_STATS=y
|
CONFIG_BCACHEFS_LOCK_TIME_STATS=y
|
||||||
# CONFIG_BCACHEFS_NO_LATENCY_ACCT is not set
|
# CONFIG_BCACHEFS_NO_LATENCY_ACCT is not set
|
||||||
|
CONFIG_BCACHEFS_SIX_OPTIMISTIC_SPIN=y
|
||||||
CONFIG_ZONEFS_FS=m
|
CONFIG_ZONEFS_FS=m
|
||||||
CONFIG_FS_DAX=y
|
CONFIG_FS_DAX=y
|
||||||
CONFIG_FS_DAX_PMD=y
|
CONFIG_FS_DAX_PMD=y
|
||||||
|
@ -10427,7 +10473,7 @@ CONFIG_OVERLAY_FS_METACOPY=y
|
||||||
#
|
#
|
||||||
CONFIG_NETFS_SUPPORT=m
|
CONFIG_NETFS_SUPPORT=m
|
||||||
CONFIG_NETFS_STATS=y
|
CONFIG_NETFS_STATS=y
|
||||||
CONFIG_FSCACHE=m
|
CONFIG_FSCACHE=y
|
||||||
CONFIG_FSCACHE_STATS=y
|
CONFIG_FSCACHE_STATS=y
|
||||||
# CONFIG_FSCACHE_DEBUG is not set
|
# CONFIG_FSCACHE_DEBUG is not set
|
||||||
CONFIG_CACHEFILES=m
|
CONFIG_CACHEFILES=m
|
||||||
|
@ -10483,9 +10529,9 @@ CONFIG_TMPFS_XATTR=y
|
||||||
CONFIG_TMPFS_INODE64=y
|
CONFIG_TMPFS_INODE64=y
|
||||||
CONFIG_TMPFS_QUOTA=y
|
CONFIG_TMPFS_QUOTA=y
|
||||||
CONFIG_HUGETLBFS=y
|
CONFIG_HUGETLBFS=y
|
||||||
|
# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set
|
||||||
CONFIG_HUGETLB_PAGE=y
|
CONFIG_HUGETLB_PAGE=y
|
||||||
CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y
|
CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y
|
||||||
# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set
|
|
||||||
CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
|
CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
|
||||||
CONFIG_CONFIGFS_FS=y
|
CONFIG_CONFIGFS_FS=y
|
||||||
CONFIG_EFIVAR_FS=y
|
CONFIG_EFIVAR_FS=y
|
||||||
|
@ -10613,6 +10659,7 @@ CONFIG_NFSD_SCSILAYOUT=y
|
||||||
# CONFIG_NFSD_FLEXFILELAYOUT is not set
|
# CONFIG_NFSD_FLEXFILELAYOUT is not set
|
||||||
CONFIG_NFSD_V4_2_INTER_SSC=y
|
CONFIG_NFSD_V4_2_INTER_SSC=y
|
||||||
CONFIG_NFSD_V4_SECURITY_LABEL=y
|
CONFIG_NFSD_V4_SECURITY_LABEL=y
|
||||||
|
# CONFIG_NFSD_LEGACY_CLIENT_TRACKING is not set
|
||||||
CONFIG_GRACE_PERIOD=m
|
CONFIG_GRACE_PERIOD=m
|
||||||
CONFIG_LOCKD=m
|
CONFIG_LOCKD=m
|
||||||
CONFIG_LOCKD_V4=y
|
CONFIG_LOCKD_V4=y
|
||||||
|
@ -10844,7 +10891,7 @@ CONFIG_CRYPTO=y
|
||||||
#
|
#
|
||||||
CONFIG_CRYPTO_ALGAPI=y
|
CONFIG_CRYPTO_ALGAPI=y
|
||||||
CONFIG_CRYPTO_ALGAPI2=y
|
CONFIG_CRYPTO_ALGAPI2=y
|
||||||
CONFIG_CRYPTO_AEAD=y
|
CONFIG_CRYPTO_AEAD=m
|
||||||
CONFIG_CRYPTO_AEAD2=y
|
CONFIG_CRYPTO_AEAD2=y
|
||||||
CONFIG_CRYPTO_SIG2=y
|
CONFIG_CRYPTO_SIG2=y
|
||||||
CONFIG_CRYPTO_SKCIPHER=y
|
CONFIG_CRYPTO_SKCIPHER=y
|
||||||
|
@ -10914,14 +10961,12 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
|
||||||
CONFIG_CRYPTO_ADIANTUM=m
|
CONFIG_CRYPTO_ADIANTUM=m
|
||||||
CONFIG_CRYPTO_CHACHA20=m
|
CONFIG_CRYPTO_CHACHA20=m
|
||||||
CONFIG_CRYPTO_CBC=m
|
CONFIG_CRYPTO_CBC=m
|
||||||
CONFIG_CRYPTO_CFB=m
|
|
||||||
CONFIG_CRYPTO_CTR=y
|
CONFIG_CRYPTO_CTR=y
|
||||||
CONFIG_CRYPTO_CTS=m
|
CONFIG_CRYPTO_CTS=m
|
||||||
CONFIG_CRYPTO_ECB=y
|
CONFIG_CRYPTO_ECB=y
|
||||||
CONFIG_CRYPTO_HCTR2=m
|
CONFIG_CRYPTO_HCTR2=m
|
||||||
CONFIG_CRYPTO_KEYWRAP=m
|
CONFIG_CRYPTO_KEYWRAP=m
|
||||||
CONFIG_CRYPTO_LRW=m
|
CONFIG_CRYPTO_LRW=m
|
||||||
CONFIG_CRYPTO_OFB=m
|
|
||||||
CONFIG_CRYPTO_PCBC=m
|
CONFIG_CRYPTO_PCBC=m
|
||||||
CONFIG_CRYPTO_XCTR=m
|
CONFIG_CRYPTO_XCTR=m
|
||||||
CONFIG_CRYPTO_XTS=m
|
CONFIG_CRYPTO_XTS=m
|
||||||
|
@ -11078,9 +11123,12 @@ CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
|
||||||
CONFIG_CRYPTO_DEV_QAT_C3XXX=m
|
CONFIG_CRYPTO_DEV_QAT_C3XXX=m
|
||||||
CONFIG_CRYPTO_DEV_QAT_C62X=m
|
CONFIG_CRYPTO_DEV_QAT_C62X=m
|
||||||
CONFIG_CRYPTO_DEV_QAT_4XXX=m
|
CONFIG_CRYPTO_DEV_QAT_4XXX=m
|
||||||
|
CONFIG_CRYPTO_DEV_QAT_420XX=m
|
||||||
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
|
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
|
||||||
CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
|
CONFIG_CRYPTO_DEV_QAT_C3XXXVF=m
|
||||||
CONFIG_CRYPTO_DEV_QAT_C62XVF=m
|
CONFIG_CRYPTO_DEV_QAT_C62XVF=m
|
||||||
|
CONFIG_CRYPTO_DEV_IAA_CRYPTO=m
|
||||||
|
# CONFIG_CRYPTO_DEV_IAA_CRYPTO_STATS is not set
|
||||||
CONFIG_CRYPTO_DEV_CHELSIO=m
|
CONFIG_CRYPTO_DEV_CHELSIO=m
|
||||||
CONFIG_CRYPTO_DEV_VIRTIO=m
|
CONFIG_CRYPTO_DEV_VIRTIO=m
|
||||||
CONFIG_CRYPTO_DEV_SAFEXCEL=m
|
CONFIG_CRYPTO_DEV_SAFEXCEL=m
|
||||||
|
@ -11289,6 +11337,7 @@ CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
|
||||||
CONFIG_ARCH_HAS_COPY_MC=y
|
CONFIG_ARCH_HAS_COPY_MC=y
|
||||||
CONFIG_ARCH_STACKWALK=y
|
CONFIG_ARCH_STACKWALK=y
|
||||||
CONFIG_STACKDEPOT=y
|
CONFIG_STACKDEPOT=y
|
||||||
|
CONFIG_STACKDEPOT_MAX_FRAMES=64
|
||||||
CONFIG_SBITMAP=y
|
CONFIG_SBITMAP=y
|
||||||
CONFIG_PARMAN=m
|
CONFIG_PARMAN=m
|
||||||
CONFIG_OBJAGG=m
|
CONFIG_OBJAGG=m
|
||||||
|
@ -11327,7 +11376,7 @@ CONFIG_DEBUG_KERNEL=y
|
||||||
# Compile-time checks and compiler options
|
# Compile-time checks and compiler options
|
||||||
#
|
#
|
||||||
CONFIG_DEBUG_INFO=y
|
CONFIG_DEBUG_INFO=y
|
||||||
CONFIG_AS_HAS_NON_CONST_LEB128=y
|
CONFIG_AS_HAS_NON_CONST_ULEB128=y
|
||||||
# CONFIG_DEBUG_INFO_NONE is not set
|
# CONFIG_DEBUG_INFO_NONE is not set
|
||||||
# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set
|
# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set
|
||||||
# CONFIG_DEBUG_INFO_DWARF4 is not set
|
# CONFIG_DEBUG_INFO_DWARF4 is not set
|
||||||
|
@ -11496,7 +11545,7 @@ CONFIG_STACKTRACE=y
|
||||||
#
|
#
|
||||||
# Debug kernel data structures
|
# Debug kernel data structures
|
||||||
#
|
#
|
||||||
CONFIG_DEBUG_LIST=y
|
# CONFIG_DEBUG_LIST is not set
|
||||||
# CONFIG_DEBUG_PLIST is not set
|
# CONFIG_DEBUG_PLIST is not set
|
||||||
# CONFIG_DEBUG_SG is not set
|
# CONFIG_DEBUG_SG is not set
|
||||||
# CONFIG_DEBUG_NOTIFIERS is not set
|
# CONFIG_DEBUG_NOTIFIERS is not set
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
../../../configs/surface-6.7.config
|
../../../configs/surface-6.8.config
|
|
@ -1,132 +0,0 @@
|
||||||
From 408551029a78a655c5fea864b45a8e370d7d9e8c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ben Hutchings <ben@decadent.org.uk>
|
|
||||||
Date: Mon, 7 Sep 2020 02:51:53 +0100
|
|
||||||
Subject: [PATCH 1/2] Export symbols needed by Android drivers
|
|
||||||
|
|
||||||
We want to enable use of the Android ashmem and binder drivers to
|
|
||||||
support Anbox, but they should not be built-in as that would waste
|
|
||||||
resources and increase security attack surface on systems that don't
|
|
||||||
need them.
|
|
||||||
|
|
||||||
Export the currently un-exported symbols they depend on.
|
|
||||||
---
|
|
||||||
fs/file.c | 1 +
|
|
||||||
kernel/sched/core.c | 1 +
|
|
||||||
kernel/sched/wait.c | 1 +
|
|
||||||
kernel/task_work.c | 1 +
|
|
||||||
mm/memory.c | 1 +
|
|
||||||
mm/shmem.c | 1 +
|
|
||||||
security/security.c | 4 ++++
|
|
||||||
7 files changed, 10 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/fs/file.c b/fs/file.c
|
|
||||||
index 3e4a4dfa38fca..bdded3fcdbd87 100644
|
|
||||||
--- a/fs/file.c
|
|
||||||
+++ b/fs/file.c
|
|
||||||
@@ -816,6 +816,7 @@ struct file *close_fd_get_file(unsigned int fd)
|
|
||||||
|
|
||||||
return file;
|
|
||||||
}
|
|
||||||
+EXPORT_SYMBOL_GPL(close_fd_get_file);
|
|
||||||
|
|
||||||
void do_close_on_exec(struct files_struct *files)
|
|
||||||
{
|
|
||||||
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
|
|
||||||
index 802551e0009bf..2698c78062b2f 100644
|
|
||||||
--- a/kernel/sched/core.c
|
|
||||||
+++ b/kernel/sched/core.c
|
|
||||||
@@ -7253,6 +7253,7 @@ static bool is_nice_reduction(const struct task_struct *p, const int nice)
|
|
||||||
|
|
||||||
return (nice_rlim <= task_rlimit(p, RLIMIT_NICE));
|
|
||||||
}
|
|
||||||
+EXPORT_SYMBOL_GPL(can_nice);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* can_nice - check if a task can reduce its nice value
|
|
||||||
diff --git a/kernel/sched/wait.c b/kernel/sched/wait.c
|
|
||||||
index 802d98cf2de31..8eec46f066d86 100644
|
|
||||||
--- a/kernel/sched/wait.c
|
|
||||||
+++ b/kernel/sched/wait.c
|
|
||||||
@@ -252,6 +252,7 @@ void __wake_up_pollfree(struct wait_queue_head *wq_head)
|
|
||||||
/* POLLFREE must have cleared the queue. */
|
|
||||||
WARN_ON_ONCE(waitqueue_active(wq_head));
|
|
||||||
}
|
|
||||||
+EXPORT_SYMBOL_GPL(__wake_up_pollfree);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Note: we use "set_current_state()" _after_ the wait-queue add,
|
|
||||||
diff --git a/kernel/task_work.c b/kernel/task_work.c
|
|
||||||
index 95a7e1b7f1dab..972c3280337e8 100644
|
|
||||||
--- a/kernel/task_work.c
|
|
||||||
+++ b/kernel/task_work.c
|
|
||||||
@@ -73,6 +73,7 @@ int task_work_add(struct task_struct *task, struct callback_head *work,
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
+EXPORT_SYMBOL_GPL(task_work_add);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* task_work_cancel_match - cancel a pending work added by task_work_add()
|
|
||||||
diff --git a/mm/memory.c b/mm/memory.c
|
|
||||||
index 517221f013035..b747095cfea68 100644
|
|
||||||
--- a/mm/memory.c
|
|
||||||
+++ b/mm/memory.c
|
|
||||||
@@ -1770,6 +1770,7 @@ void zap_page_range_single(struct vm_area_struct *vma, unsigned long address,
|
|
||||||
tlb_finish_mmu(&tlb);
|
|
||||||
hugetlb_zap_end(vma, details);
|
|
||||||
}
|
|
||||||
+EXPORT_SYMBOL_GPL(zap_page_range_single);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* zap_vma_ptes - remove ptes mapping the vma
|
|
||||||
diff --git a/mm/shmem.c b/mm/shmem.c
|
|
||||||
index 69595d3418829..e155894de651c 100644
|
|
||||||
--- a/mm/shmem.c
|
|
||||||
+++ b/mm/shmem.c
|
|
||||||
@@ -4871,6 +4871,7 @@ int shmem_zero_setup(struct vm_area_struct *vma)
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
+EXPORT_SYMBOL_GPL(shmem_zero_setup);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* shmem_read_folio_gfp - read into page cache, using specified page allocation flags.
|
|
||||||
diff --git a/security/security.c b/security/security.c
|
|
||||||
index 23b129d482a7c..eeb7162a02674 100644
|
|
||||||
--- a/security/security.c
|
|
||||||
+++ b/security/security.c
|
|
||||||
@@ -799,6 +799,7 @@ int security_binder_set_context_mgr(const struct cred *mgr)
|
|
||||||
{
|
|
||||||
return call_int_hook(binder_set_context_mgr, 0, mgr);
|
|
||||||
}
|
|
||||||
+EXPORT_SYMBOL_GPL(security_binder_set_context_mgr);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* security_binder_transaction() - Check if a binder transaction is allowed
|
|
||||||
@@ -814,6 +815,7 @@ int security_binder_transaction(const struct cred *from,
|
|
||||||
{
|
|
||||||
return call_int_hook(binder_transaction, 0, from, to);
|
|
||||||
}
|
|
||||||
+EXPORT_SYMBOL_GPL(security_binder_transaction);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* security_binder_transfer_binder() - Check if a binder transfer is allowed
|
|
||||||
@@ -829,6 +831,7 @@ int security_binder_transfer_binder(const struct cred *from,
|
|
||||||
{
|
|
||||||
return call_int_hook(binder_transfer_binder, 0, from, to);
|
|
||||||
}
|
|
||||||
+EXPORT_SYMBOL_GPL(security_binder_transfer_binder);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* security_binder_transfer_file() - Check if a binder file xfer is allowed
|
|
||||||
@@ -845,6 +848,7 @@ int security_binder_transfer_file(const struct cred *from,
|
|
||||||
{
|
|
||||||
return call_int_hook(binder_transfer_file, 0, from, to, file);
|
|
||||||
}
|
|
||||||
+EXPORT_SYMBOL_GPL(security_binder_transfer_file);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* security_ptrace_access_check() - Check if tracing is allowed
|
|
||||||
--
|
|
||||||
2.42.1
|
|
||||||
|
|
|
@ -1,71 +0,0 @@
|
||||||
From 2802d75f2b216a35c6a976c0064fcc0e20d82e4b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ben Hutchings <ben@decadent.org.uk>
|
|
||||||
Date: Fri, 22 Jun 2018 17:27:00 +0100
|
|
||||||
Subject: [PATCH 2/2] android: Enable building ashmem and binder as modules
|
|
||||||
|
|
||||||
We want to enable use of the Android ashmem and binder drivers to
|
|
||||||
support Anbox, but they should not be built-in as that would waste
|
|
||||||
resources and increase security attack surface on systems that don't
|
|
||||||
need them.
|
|
||||||
|
|
||||||
- Add a MODULE_LICENSE declaration to ashmem
|
|
||||||
- Change the Makefiles to build each driver as an object with the
|
|
||||||
"_linux" suffix (which is what Anbox expects)
|
|
||||||
- Change config symbol types to tristate
|
|
||||||
|
|
||||||
Update:
|
|
||||||
In upstream commit 721412ed3d titled "staging: remove ashmem" the ashmem
|
|
||||||
driver was removed entirely. Secondary commit message:
|
|
||||||
"The mainline replacement for ashmem is memfd, so remove the legacy
|
|
||||||
code from drivers/staging/"
|
|
||||||
Consequently, the ashmem part of this patch has been removed.
|
|
||||||
---
|
|
||||||
drivers/android/Kconfig | 2 +-
|
|
||||||
drivers/android/Makefile | 7 ++++---
|
|
||||||
drivers/android/binder_alloc.c | 2 +-
|
|
||||||
3 files changed, 6 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/drivers/android/Kconfig b/drivers/android/Kconfig
|
|
||||||
index 07aa8ae0a058c..94a3a86f9bd4f 100644
|
|
||||||
--- a/drivers/android/Kconfig
|
|
||||||
+++ b/drivers/android/Kconfig
|
|
||||||
@@ -2,7 +2,7 @@
|
|
||||||
menu "Android"
|
|
||||||
|
|
||||||
config ANDROID_BINDER_IPC
|
|
||||||
- bool "Android Binder IPC Driver"
|
|
||||||
+ tristate "Android Binder IPC Driver"
|
|
||||||
depends on MMU
|
|
||||||
default n
|
|
||||||
help
|
|
||||||
diff --git a/drivers/android/Makefile b/drivers/android/Makefile
|
|
||||||
index c9d3d0c99c257..55411d9a9c2a1 100644
|
|
||||||
--- a/drivers/android/Makefile
|
|
||||||
+++ b/drivers/android/Makefile
|
|
||||||
@@ -1,6 +1,7 @@
|
|
||||||
# SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
ccflags-y += -I$(src) # needed for trace events
|
|
||||||
|
|
||||||
-obj-$(CONFIG_ANDROID_BINDERFS) += binderfs.o
|
|
||||||
-obj-$(CONFIG_ANDROID_BINDER_IPC) += binder.o binder_alloc.o
|
|
||||||
-obj-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o
|
|
||||||
+obj-$(CONFIG_ANDROID_BINDER_IPC) += binder_linux.o
|
|
||||||
+binder_linux-y := binder.o binder_alloc.o
|
|
||||||
+binder_linux-$(CONFIG_ANDROID_BINDERFS) += binderfs.o
|
|
||||||
+binder_linux-$(CONFIG_ANDROID_BINDER_IPC_SELFTEST) += binder_alloc_selftest.o
|
|
||||||
diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c
|
|
||||||
index e3db8297095a2..eef695eff0025 100644
|
|
||||||
--- a/drivers/android/binder_alloc.c
|
|
||||||
+++ b/drivers/android/binder_alloc.c
|
|
||||||
@@ -38,7 +38,7 @@ enum {
|
|
||||||
};
|
|
||||||
static uint32_t binder_alloc_debug_mask = BINDER_DEBUG_USER_ERROR;
|
|
||||||
|
|
||||||
-module_param_named(debug_mask, binder_alloc_debug_mask,
|
|
||||||
+module_param_named(alloc_debug_mask, binder_alloc_debug_mask,
|
|
||||||
uint, 0644);
|
|
||||||
|
|
||||||
#define binder_alloc_debug(mask, x...) \
|
|
||||||
--
|
|
||||||
2.42.1
|
|
||||||
|
|
|
@ -40,14 +40,15 @@ CONFIG_SYSTEM_TRUSTED_KEYS=""
|
||||||
CONFIG_SYSTEM_REVOCATION_KEYS=""
|
CONFIG_SYSTEM_REVOCATION_KEYS=""
|
||||||
|
|
||||||
##
|
##
|
||||||
## Additional options from upstream (not in PPA)
|
## Modules required for running Android apps
|
||||||
|
##
|
||||||
|
## Ubuntu builds binder as a module by patching the Makefile. To keep it
|
||||||
|
## simple, we just put it into vmlinux. One patch less to keep track of.
|
||||||
##
|
##
|
||||||
|
|
||||||
CONFIG_ASHMEM=m
|
CONFIG_ANDROID_BINDER_IPC=y
|
||||||
CONFIG_ANDROID=y
|
CONFIG_ANDROID_BINDERFS=y
|
||||||
CONFIG_ANDROID_BINDER_IPC=m
|
CONFIG_ANDROID_BINDER_DEVICES=""
|
||||||
# CONFIG_ANDROID_BINDERFS is not set
|
|
||||||
CONFIG_ANDROID_BINDER_DEVICES="binder"
|
|
||||||
# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set
|
# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
KERNEL_VERSION="6.7.2"
|
KERNEL_VERSION="6.8.6"
|
||||||
KERNEL_REVISION="1"
|
KERNEL_REVISION="1"
|
||||||
KERNEL_LOCALVERSION="-surface"
|
KERNEL_LOCALVERSION="-surface"
|
||||||
|
|
|
@ -18,7 +18,7 @@ PACKAGE_NAME = "surface"
|
||||||
## Fedora tags: kernel-X.Y.Z
|
## Fedora tags: kernel-X.Y.Z
|
||||||
## Upstream tags: vX.Y.Z
|
## Upstream tags: vX.Y.Z
|
||||||
##
|
##
|
||||||
PACKAGE_TAG = "kernel-6.7.2-0"
|
PACKAGE_TAG = "kernel-6.8.6-0"
|
||||||
|
|
||||||
##
|
##
|
||||||
## The release number of the modified kernel package.
|
## The release number of the modified kernel package.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
From 71133b4337411ddd550d5e5ef68a12c510740b2c Mon Sep 17 00:00:00 2001
|
From d4bbfbfee98f8b117885cf88a48f686ac889d73e Mon Sep 17 00:00:00 2001
|
||||||
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
From: Dorian Stoll <dorian.stoll@tmsp.io>
|
||||||
Date: Sat, 22 Jul 2023 10:45:33 +0200
|
Date: Sat, 22 Jul 2023 10:45:33 +0200
|
||||||
Subject: [PATCH] Use a custom key and certificate for Secure Boot signing
|
Subject: [PATCH] Use a custom key and certificate for Secure Boot signing
|
||||||
|
@ -9,10 +9,10 @@ Signed-off-by: Dorian Stoll <dorian.stoll@tmsp.io>
|
||||||
1 file changed, 9 insertions(+), 6 deletions(-)
|
1 file changed, 9 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
|
diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
|
||||||
index 28df94e561d4..fd44abc4118a 100644
|
index 0fb19cc23041..d7bd6013423c 100644
|
||||||
--- a/redhat/kernel.spec.template
|
--- a/redhat/kernel.spec.template
|
||||||
+++ b/redhat/kernel.spec.template
|
+++ b/redhat/kernel.spec.template
|
||||||
@@ -805,6 +805,7 @@ BuildRequires: system-sb-certs
|
@@ -762,6 +762,7 @@ BuildRequires: system-sb-certs
|
||||||
%ifarch x86_64 aarch64
|
%ifarch x86_64 aarch64
|
||||||
BuildRequires: nss-tools
|
BuildRequires: nss-tools
|
||||||
BuildRequires: pesign >= 0.10-4
|
BuildRequires: pesign >= 0.10-4
|
||||||
|
@ -20,7 +20,7 @@ index 28df94e561d4..fd44abc4118a 100644
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
@@ -864,6 +865,13 @@ Source1: Makefile.rhelver
|
@@ -821,6 +822,13 @@ Source2: kernel.changelog
|
||||||
%define signing_key_filename kernel-signing-s390.cer
|
%define signing_key_filename kernel-signing-s390.cer
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
@ -34,10 +34,10 @@ index 28df94e561d4..fd44abc4118a 100644
|
||||||
%if %{?released_kernel}
|
%if %{?released_kernel}
|
||||||
|
|
||||||
Source10: redhatsecurebootca5.cer
|
Source10: redhatsecurebootca5.cer
|
||||||
@@ -2096,9 +2104,7 @@ BuildKernel() {
|
@@ -2201,9 +2209,7 @@ BuildKernel() {
|
||||||
SignImage=$KernelImage
|
|
||||||
|
|
||||||
%ifarch x86_64 aarch64
|
%ifarch x86_64 aarch64
|
||||||
|
%{log_msg "Sign kernel image"}
|
||||||
- %pesign -s -i $SignImage -o vmlinuz.tmp -a %{secureboot_ca_0} -c %{secureboot_key_0} -n %{pesign_name_0}
|
- %pesign -s -i $SignImage -o vmlinuz.tmp -a %{secureboot_ca_0} -c %{secureboot_key_0} -n %{pesign_name_0}
|
||||||
- %pesign -s -i vmlinuz.tmp -o vmlinuz.signed -a %{secureboot_ca_1} -c %{secureboot_key_1} -n %{pesign_name_1}
|
- %pesign -s -i vmlinuz.tmp -o vmlinuz.signed -a %{secureboot_ca_1} -c %{secureboot_key_1} -n %{pesign_name_1}
|
||||||
- rm vmlinuz.tmp
|
- rm vmlinuz.tmp
|
||||||
|
@ -45,8 +45,8 @@ index 28df94e561d4..fd44abc4118a 100644
|
||||||
%endif
|
%endif
|
||||||
%ifarch s390x ppc64le
|
%ifarch s390x ppc64le
|
||||||
if [ -x /usr/bin/rpm-sign ]; then
|
if [ -x /usr/bin/rpm-sign ]; then
|
||||||
@@ -2650,9 +2656,6 @@ BuildKernel() {
|
@@ -2783,9 +2789,6 @@ BuildKernel() {
|
||||||
# Red Hat UEFI Secure Boot CA cert, which can be used to authenticate the kernel
|
%{log_msg "Install certs"}
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer
|
mkdir -p $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer
|
||||||
%ifarch x86_64 aarch64
|
%ifarch x86_64 aarch64
|
||||||
- install -m 0644 %{secureboot_ca_0} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca-20200609.cer
|
- install -m 0644 %{secureboot_ca_0} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca-20200609.cer
|
||||||
|
@ -56,5 +56,5 @@ index 28df94e561d4..fd44abc4118a 100644
|
||||||
install -m 0644 %{secureboot_ca_0} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer
|
install -m 0644 %{secureboot_ca_0} $RPM_BUILD_ROOT%{_datadir}/doc/kernel-keys/$KernelVer/kernel-signing-ca.cer
|
||||||
%endif
|
%endif
|
||||||
--
|
--
|
||||||
2.41.0
|
2.44.0
|
||||||
|
|
||||||
|
|
|
@ -90,3 +90,4 @@ tag 'arch' "$(getarch)"
|
||||||
tag 'debian' "$(getdebian)"
|
tag 'debian' "$(getdebian)"
|
||||||
tag 'fedora-38' "$(getfedora)"
|
tag 'fedora-38' "$(getfedora)"
|
||||||
tag 'fedora-39' "$(getfedora)"
|
tag 'fedora-39' "$(getfedora)"
|
||||||
|
tag 'fedora-40' "$(getfedora)"
|
||||||
|
|
Loading…
Reference in a new issue