mirror_ubuntu-kernels/drivers/platform/x86
Orlando Chamberlain 0c18184de9 platform/x86: apple-gmux: support MMIO gmux on T2 Macs
In some newer dual gpu MacBooks, the T2 Coprocessor functions as the
gmux, and the Intel side can interract with this new gmux type through
MMIO. Add support for these gmux controllers to the apple-gmux driver.

We start using the GMSP(0) acpi method on these gmux's when clearing
interrupts, as this prevents a flood of status=0 interrupts that can't
be cleared. It's unknown if this helps or hinders older gmux types, so
it isn't enabled for those.

Interestingly, the ACPI table only allocates 8 bytes for GMUX, but we
actually need 16, and as such we request 16 with request_mem_region.

Reading and writing from ports:
    16 bytes from 0xfe0b0200 are used. 0x0 to 0x4 are where data
    to read appears, and where data to write goes. Writing to 0xe
    sets the gmux port being accessed, and writing to 0xf sends commands.

    These commands are 0x40 & data_length for write, and data_length for
    read, where data_length is 1, 2 or 4. Once byte base+0xf is 0, the
    command is done.

Issues:
    As with other retina models, we can't switch DDC lines so
    switching at runtime doesn't work if the inactive gpu driver
    already disabled eDP due to it not being connected when that
    driver loaded.

    Additionally, turning on the dgpu back on on the MacBookPro16,1 does
    not work.

Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Orlando Chamberlain <orlandoch.dev@gmail.com>
Link: https://lore.kernel.org/r/20230303112842.3094-4-orlandoch.dev@gmail.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2023-03-16 11:02:00 +01:00
..
amd platform/x86/amd/pmf: Add depends on CONFIG_POWER_SUPPLY 2023-02-13 14:54:20 +01:00
dell platform/x86: dell-ddv: Prefer asynchronous probing 2023-02-13 12:07:50 +01:00
hp platform/x86: hp-wmi: Ignore Win-Lock key events 2023-02-02 22:48:21 +01:00
intel platform-drivers-x86 for v6.3-1 2023-02-21 17:32:50 -08:00
acer-wireless.c
acer-wmi.c platform/x86: acer-wmi: Enable SW_TABLET_MODE on Switch V 10 (SW5-017) 2022-11-15 17:16:40 +01:00
acerhdf.c platform-drivers-x86 for v6.3-1 2023-02-21 17:32:50 -08:00
adv_swbutton.c platform/x86: add support for Advantech software defined button 2021-04-07 19:46:56 +02:00
amilo-rfkill.c platform/x86: use PLATFORM_DEVID_NONE instead of -1 2022-10-03 09:40:04 +02:00
apple-gmux.c platform/x86: apple-gmux: support MMIO gmux on T2 Macs 2023-03-16 11:02:00 +01:00
asus-laptop.c ACPI: make remove callback of ACPI driver void 2022-11-23 19:11:22 +01:00
asus-nb-wmi.c platform/x86: asus-wmi: Ignore fan on E410MA 2023-01-12 19:36:03 +01:00
asus-tf103c-dock.c platform/x86: asus-tf103c-dock: Constify toprow keymap 2023-02-06 15:08:45 +01:00
asus-wireless.c ACPI: make remove callback of ACPI driver void 2022-11-23 19:11:22 +01:00
asus-wmi.c platform/x86: asus-wmi: Fix kbd_dock_devid tablet-switch reporting 2023-01-24 13:41:13 +01:00
asus-wmi.h platform/x86: asus-wmi: Add quirk wmi_ignore_fan 2023-01-12 19:35:51 +01:00
barco-p50-gpio.c platform/x86: barco-p50-gpio: Add check for platform_driver_register 2022-06-10 21:59:08 +02:00
classmate-laptop.c ACPI: make remove callback of ACPI driver void 2022-11-23 19:11:22 +01:00
compal-laptop.c platform/x86: use PLATFORM_DEVID_NONE instead of -1 2022-10-03 09:40:04 +02:00
dual_accel_detect.h platform/x86: dual_accel_detect: Use the new i2c_acpi_client_count() helper 2021-08-12 17:26:36 +02:00
eeepc-laptop.c ACPI: make remove callback of ACPI driver void 2022-11-23 19:11:22 +01:00
eeepc-wmi.c platform/x86: asus-wmi: Move acpi_backlight=vendor quirks to ACPI video_detect.c 2022-09-03 12:17:27 +02:00
firmware_attributes_class.c platform/x86: dell-wmi-sysman: fw_attr_inuse can be static 2021-06-16 17:47:52 +02:00
firmware_attributes_class.h platform/x86: firmware_attributes_class: Create helper file for handling firmware-attributes class registration events 2021-06-16 17:47:51 +02:00
fujitsu-laptop.c ACPI: make remove callback of ACPI driver void 2022-11-23 19:11:22 +01:00
fujitsu-tablet.c ACPI: make remove callback of ACPI driver void 2022-11-23 19:11:22 +01:00
gigabyte-wmi.c platform/x86: gigabyte-wmi: add support for B450M DS3H WIFI-CF 2023-01-24 13:41:13 +01:00
gpd-pocket-fan.c platform/x86: gpd pocket fan: Clean-up by using managed work init 2021-03-23 15:22:40 +01:00
hdaps.c platform/x86: use PLATFORM_DEVID_NONE instead of -1 2022-10-03 09:40:04 +02:00
huawei-wmi.c platform/x86: huawei-wmi: remove unnecessary member 2022-11-16 08:48:19 +01:00
ibm_rtl.c
ideapad-laptop.c platform/x86: ideapad-laptop: Add Legion 5 15ARH05 DMI id to set_fn_lock_led_list[] 2022-12-27 12:24:48 +01:00
intel_ips.c platform/x86: intel_ips: fix set but unused warning in read_mgtv 2021-06-16 17:47:55 +02:00
intel_ips.h
intel_scu_ipc.c platform/x86: intel_scu_ipc: fix possible name leak in __intel_scu_ipc_register() 2022-12-08 17:35:49 +01:00
intel_scu_ipcutil.c
intel_scu_pcidrv.c
intel_scu_pltdrv.c
intel_scu_wdt.c
Kconfig platform/x86: apple_gmux: Drop no longer used ACPI_VIDEO Kconfig dependency 2023-02-02 22:48:20 +01:00
lenovo-yogabook-wmi.c platform/x86: lenovo-yogabook-wmi: Add support for hall sensor on the back 2021-12-07 12:21:01 +01:00
lg-laptop.c ACPI updates for 6.2-rc1 2022-12-12 13:38:17 -08:00
Makefile platform/x86: Move existing HP drivers to a new hp subdir 2022-11-16 08:48:19 +01:00
meraki-mx100.c platform/x86: add meraki-mx100 platform driver 2021-08-12 09:26:28 +02:00
mlx-platform.c platform: mellanox: mlx-platform: Move bus shift assignment out of the loop 2023-02-13 12:07:50 +01:00
msi-laptop.c platform/x86: use PLATFORM_DEVID_NONE instead of -1 2022-10-03 09:40:04 +02:00
msi-wmi.c
mxm-wmi.c platform/x86: mxm-wmi: fix memleak in mxm_wmi_call_mx[ds|mx]() 2022-12-08 16:32:12 +01:00
nvidia-wmi-ec-backlight.c platform/x86: nvidia-wmi-ec-backlight: Add force module parameter 2023-02-18 11:45:52 +01:00
p2sb.c platform/x86: p2sb: Don't fail if unknown CPU is found 2022-11-07 12:33:49 +01:00
panasonic-laptop.c ACPI: make remove callback of ACPI driver void 2022-11-23 19:11:22 +01:00
pcengines-apuv2.c platform/x86: pcengines-apuv2: Add missing terminating entries to gpio-lookup tables 2021-08-06 14:04:43 +02:00
peaq-wmi.c
pmc_atom.c platform/x86: pmc_atom: Amend comment style and grammar 2022-08-25 16:23:52 +02:00
samsung-laptop.c platform/x86: use PLATFORM_DEVID_NONE instead of -1 2022-10-03 09:40:04 +02:00
samsung-q10.c
serial-multi-instantiate.c sound fixes for 6.0-rc2 2022-08-19 09:46:11 -07:00
simatic-ipc.c platform/x86: simatic-ipc: add another model 2023-01-12 19:42:53 +01:00
sony-laptop.c platform/x86: sony-laptop: Don't turn off 0x153 keyboard backlight during probe 2022-12-27 12:23:11 +01:00
system76_acpi.c ACPI updates for 6.2-rc1 2022-12-12 13:38:17 -08:00
think-lmi.c platform/x86: think-lmi: Make kobj_type structure constant 2023-02-10 17:24:20 +01:00
think-lmi.h platform/x86: think-lmi: certificate support clean ups 2022-04-04 15:20:53 +02:00
thinkpad_acpi.c platform/x86: thinkpad_acpi: Fix thinklight LED brightness returning 255 2023-01-30 14:37:22 +01:00
topstar-laptop.c ACPI: make remove callback of ACPI driver void 2022-11-23 19:11:22 +01:00
toshiba_acpi.c ACPI updates for 6.2-rc1 2022-12-12 13:38:17 -08:00
toshiba_bluetooth.c ACPI: make remove callback of ACPI driver void 2022-11-23 19:11:22 +01:00
toshiba_haps.c ACPI: make remove callback of ACPI driver void 2022-11-23 19:11:22 +01:00
toshiba-wmi.c
touchscreen_dmi.c platform/x86: touchscreen_dmi: Add Chuwi Vi8 (CWI501) DMI match 2023-02-02 11:34:38 +01:00
uv_sysfs.c x86/platform/uv: Make kobj_type structure constant 2023-02-10 17:24:37 +01:00
winmate-fm07-keys.c platform/x86: use PLATFORM_DEVID_NONE instead of -1 2022-10-03 09:40:04 +02:00
wireless-hotkey.c ACPI updates for 6.2-rc1 2022-12-12 13:38:17 -08:00
wmi-bmof.c platform/x86: wmi: Make remove callback return void 2021-03-08 11:33:39 +01:00
wmi.c driver core: make struct bus_type.uevent() take a const * 2023-01-27 13:45:52 +01:00
x86-android-tablets.c power: supply: bq25890: Support boards with more then one charger IC 2023-01-03 00:04:26 +01:00
xiaomi-wmi.c
xo1-rfkill.c
xo15-ebook.c ACPI: make remove callback of ACPI driver void 2022-11-23 19:11:22 +01:00