Commit graph

1090871 commits

Author SHA1 Message Date
Jami Kettunen
79cdaeec85 [SUBMITME] arm64: dts: qcom: msm8998-oneplus-common: Add fuel gauge
The OnePlus 5/5T feature a BQ27411 fuel gauge for reading the battery
stats.
2022-06-05 20:06:44 +03:00
Jami Kettunen
ad19565871 [TEMP] oneplus5: disable all speaker amp stuff
We don't want to blow this up while messing around with audio stuff
early on...
2022-06-05 20:06:44 +03:00
Jami Kettunen
57138d33c6 arm64: dts: msm8998-oneplus-common: Add TFA9890 speaker amp bindings 2022-06-05 20:06:44 +03:00
Jami Kettunen
3cb4d243a9 [SUBMITME?] msm8998-oneplus-common: Configure Adreno 540 GPU 2022-06-05 20:06:44 +03:00
Jami Kettunen
18ffadb11d arm64: dts: qcom: msm8998-oneplus-common: Add ctl-no-start-read-quirk 2022-06-05 20:06:44 +03:00
Jami Kettunen
f41a398851 [SUBMITME?] arm64: dts: msm8998-oneplus-*: Configure S6E3FA5 & S6E3FC1 panels
These Samsung DSI panels are used on the OnePlus 5/5T respectively.
Additionally disable simplefb until a proper handoff solution can be
found to avoid conflicts between it and the MSM DRM driver.
2022-06-05 20:06:44 +03:00
Jami Kettunen
66b7f663b9 msm8998-oneplus-common: Configure IPA for cellular data 2022-06-05 20:06:44 +03:00
Jami Kettunen
768863d390 msm8998-oneplus-common: Configure CPUfreq scaling hardware 2022-06-05 20:06:44 +03:00
Jami Kettunen
4115eb289f arm64: dts: msm8998-oneplus-cheeseburger: Configure RMI4 F1A buttons
This allows the capacitive buttons below the touchscreen to be used on
e.g. Android normally :)
2022-06-05 20:06:44 +03:00
Jami Kettunen
48583bd772 [SUBMITME?] msm8998-oneplus-common: Add remoteproc configuration & enable WLAN 2022-06-05 20:06:43 +03:00
Jami Kettunen
6ca315eeb2 [DROPME?] msm8998-oneplus-common: Configure blsp1_i2c5_sleep (TS) as no-pull 2022-06-05 20:06:43 +03:00
Jami Kettunen
32c9efff0c [SUBMITME?] dt-bindings: display: panel: Document Samsung S6E3FC1 display panel 2022-06-05 20:06:43 +03:00
Jami Kettunen
f841fd5fca [SUBMITME?] drm/panel: Add panel driver for Samsung S6E3FC1
The S6E3FC1 is 6" 1080x2160 MIPI DSI command mode AMOLED LCD display
found on OnePlus 5T (2017) smartphones.

The panel needs to be enabled from a device tree using the
"samsung,s6e3fc1" compatible.

This driver was generated using the following & includes some minor
cleanup (such as s/to_s6e3fc1/to_s6e3fc1_panel/g):
$ python3 lmdpdg.py dumpling.dtb -r vddio
2022-06-05 20:06:43 +03:00
Jami Kettunen
6349f882a9 [SQUASHME?] drm/panel: s6e3fa5: Read panel orientation
The panel is mounted upside down on the OnePlus 5, so we need to handle
this in the driver.
2022-06-05 20:06:43 +03:00
Jami Kettunen
74f295b703 [SUBMITME?] arm64: dts: msm8998-oneplus-common: Drop unused regulators
Also comment the used ones.
2022-06-05 20:06:43 +03:00
Jami Kettunen
7bb9ae5690 [SUBMITME?] dt-bindings: display: panel: Document Samsung S6E3FA5 display panel 2022-06-05 20:06:43 +03:00
Jami Kettunen
227809af23 arm64: qcom: msm8998-oneplus-common: Enable NFC 2022-06-05 20:06:43 +03:00
Jami Kettunen
d2bc8eead8 [SUBMITME?] drm/panel: Add panel driver for Samsung S6E3FA5
The S6E3FA5 is 5.5" 1080x1920 MIPI DSI command mode AMOLED LCD display
found on OnePlus 5 (2017) smartphones.

The panel needs to be enabled from a device tree using the
"samsung,s6e3fa5" compatible.

This driver was generated using the following & includes some minor
cleanup (such as s/to_s6e3fa5/to_s6e3fa5_panel/g):
$ python3 lmdpdg.py cheeseburger.dtb -r vddio

Signed-off-by: Jami Kettunen <jami.kettunen@protonmail.com>
2022-06-05 20:06:43 +03:00
Jami Kettunen
772df79320 arm64: dts: qcom: msm8998-oneplus-common: Enable PMI8998 LPG leds
Now the RGB notification LEDs can each be controlled individually :)
2022-06-05 20:06:43 +03:00
Jami Kettunen
08f49b4e01 [ANNOTATION] Apply some F(x)tec Pro1 patches 2022-06-05 20:06:43 +03:00
Danct12
5acf9144e4 arm64: dts: msm8998-fxtec-pro1: Add remoteproc configuration 2022-06-05 20:06:43 +03:00
Danct12
fe4f19206b arm64: dts: msm8998-fxtec-pro1: Enable PMI8998 haptics 2022-06-05 20:06:43 +03:00
Danct12
d9bd889d00 arm64: dts: msm8998-fxtec-pro1: Configure PMI8998 fuel gauge
This will account for battery statistics reporting on the Fxtec Pro1 (QX1000)
2022-06-05 20:06:43 +03:00
Jami Kettunen
24c173eb1a pinctrl: Fix compilation of Awinic AW9523/B I2C GPIO Expander
Fixes the following link-time error:

    LD      .tmp_vmlinux.kallsyms1
  aarch64-linux-gnu-ld: Unexpected GOT/PLT entries detected!
  aarch64-linux-gnu-ld: Unexpected run-time procedure linkages detected!
  aarch64-linux-gnu-ld: drivers/pinctrl/pinctrl-aw9523.o: in function `aw9523_probe':
  .../drivers/pinctrl/pinctrl-aw9523.c:1004: undefined reference to `__devm_regmap_init_i2c'
  make[1]: *** [.../Makefile:1155: vmlinux] Error 1

Fixes: 96e86abbb4 ("pinctrl: Add driver for Awinic AW9523/B I2C GPIO Expander")
2022-06-05 20:06:43 +03:00
Jami Kettunen
6c078183c7 [HACK] pinctrl: aw9523: Add workaround for F(x)tec Pro1 keyboard
This is a hack because the correct interrupt type(s) should should be
defined in msm8998-fxtec-pro1.dts instead of the driver.

(originally from Danct12)

This is a workaround for keyboard not working on Fxtec Pro1.

  genirq: Setting trigger mode 12 for irq 123 failed (aw9523_gpio_irq_type+0x0/0x20)
  gpio-fastmatrix-keyboard gpio-keyboard: Cannot get IRQ for gpio302
2022-06-05 20:06:43 +03:00
Jami Kettunen
5f8c475110 [ANNOTATION] Apply miscellaneous hacks and patches 2022-06-05 20:06:43 +03:00
Jami Kettunen
2e983e626a [SUBMITME?] drm/msm: Add ctl_no_start_read_quirk for MSM8998 2022-06-05 20:06:43 +03:00
Jami Kettunen
4574a11b86 module: demote invalid ELF header magic error message to pr_debug
This happens anytime busybox modprobe loads a compressed module and
looks especially ugly on postmarketOS for example (or basically any
initramfs); this error is rather pointless since the module is loaded
anyway afterwards.

Upstream (busybox) has no plans to do anything about this error getting
spammed:
https://www.mail-archive.com/busybox@busybox.net/msg27078.html
2022-06-05 20:06:43 +03:00
Jami Kettunen
bd990ac32a ASoC: codecs: tfa989x: Add support for tfa9890
This speaker amp model appears to be rather popular on phones and is
used for example by the OnePlus 5/5T.
2022-06-05 20:06:42 +03:00
Jami Kettunen
cf3f0de277 [SUBMITME?] Input: synaptics-rmi4 - add support for F1A
RMI4 F1A supports the simple capacitive buttons function, it's used for
example on embedded devices such as smartphones for capacitive Android
back and recents buttons.
2022-06-05 20:06:42 +03:00
Jami Kettunen
cc0b5035c1 [SUBMITME] drm/msm: add missing a540 MODULE_FIRMWARE declarations 2022-06-05 20:06:42 +03:00
Bjorn Andersson
2f5081d23c arm64: dts: qcom: Add LPG to pmi8998
Add PWM/LPG nodes to the PMICs currently supported by the binding.

Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
(JAMI: fixed up for v5.16-rc1, dropped pm*8994 & pm8916)
2022-06-05 20:06:42 +03:00
Jami Kettunen
adc007cc00 arm64: dts: qcom: msm8998: add IPA information
Add support for the MSM8998 SoC, which includes IPA version 3.1.
2022-06-05 20:06:42 +03:00
Jami Kettunen
b04964f4c1 [SUBMITME?] drm/msm: Mention DSI 10nm PHY support for MSM8998 2022-06-05 20:06:42 +03:00
Jami Kettunen
85d4bbdf85 [SUBMITME] dt-bindings: Document bindings for all MSM8998 devices 2022-06-05 20:06:42 +03:00
Jami Kettunen
a96260e915 [HACK] net: ipa: Disable automatic suspend
1aac309d32 ("net: ipa: use autosuspend") currently causes my device to
enter 900E crashdump mode as soon as IPA is probed :/

With this we at least can run ModemManager once again...
2022-06-05 20:06:42 +03:00
Jami Kettunen
df055f7b7f [HACK] [SUBMITME?] ath10k: Fake MSA ready event after event server arrival
This finally allowed me to get past the 2 ath10k_info()'s in qmi.c!

However, this doesn't fix everything; it seems you *have* to run
diag-router from https://github.com/andersson/diag to calm the firmware
down and stop constantly crashing; need to look into a way to get Wi-Fi
working later without needing this debug crap to be running.

This should possible be submitted as a quirk to the ath10k driver as
modem on mainline 8998 should be running now as well...
2022-06-05 20:06:42 +03:00
Jami Kettunen
d954b16251 [HACK] drm: Don't WARN_ON() drm_connector_set_panel_orientation() call
This method is used by OnePlus 5 (cheeseburger) during
s6e3fa5_get_modes() and calling it here (which is what all other panel
drivers seem to do as well) causes a massively long 140-line stacktrace
for the 2 hit WARN_ON()s:

  ------------[ cut here ]------------
  WARNING: CPU: 5 PID: 103 at drivers/gpu/drm/drm_mode_object.c:45 drm_mode_object_add+0x80/0x90
  Modules linked in: hci_uart apr fastrpc msm pdr_interface qrtr_smd btqca bluetooth gpu_sched nxp_nci_i2c nxp_nci nci drm_kms_helper nfc rmi_i2c rmi_core ecdh_generic ecc libaes ath10k_snoc ath10k_core cfbfillrect syscopyarea cfbimgblt sysfillrect sysimgblt fb_sys_fops cfbcopyarea ath i2c_qup msm_serial serial_core mac80211 libarc4 sha256_generic libsha256 leds_qcom_lpg cfg80211 led_class_multicolor qcom_fg rtc_pm8xxx ipa qrtr qcom_q6v5_mss qcom_q6v5_pas qcom_stats qcom_pil_info qcom_q6v5 qcom_sysmon qcom_common qcom_smd mdt_loader qmi_helpers smp2p rpmsg_char leds_gpio evdev led_class rmtfs_mem qcom_hwspinlock rfkill dm_mod uinput loop
  CPU: 5 PID: 103 Comm: kworker/u16:5 Tainted: G        W         5.17.0-rc5-msm8998 #7
  Hardware name: OnePlus 5 (DT)
  Workqueue: events_unbound deferred_probe_work_func
  pstate: 40000005 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
  pc : drm_mode_object_add+0x80/0x90
  lr : drm_property_create+0xd4/0x190
  sp : ffffff808193b210
  x29: ffffff808193b210 x28: 0000000000000020 x27: 0000000000001000
  x26: 0000000000001000 x25: 0000000000000001 x24: ffffffc0087f1f78
  x23: ffffffc008833928 x22: 0000000000000004 x21: 00000000b0b0b0b0
  x20: ffffff8088570b90 x19: ffffff8084b26000 x18: 00000000fffffffb
  x17: 0000007a00440000 x16: 0000000000000000 x15: 0000000000000020
  x14: ffffffffffffffff x13: ffffff8088570b70 x12: ffffff8088570b55
  x11: 0000000000000000 x10: 0000000000000078 x9 : 0000000000000000
  x8 : ffffff8088570c80 x7 : 0000000000000000 x6 : 000000000000003f
  x5 : 0000000000000040 x4 : 0000000000000000 x3 : 0000000000000004
  x2 : 00000000b0b0b0b0 x1 : ffffff8088570b90 x0 : 0000000000000001
  Call trace:
   drm_mode_object_add+0x80/0x90
   drm_property_create+0xd4/0x190
   drm_property_create_enum+0x28/0x90
   drm_connector_set_panel_orientation+0x8c/0xb0
   s6e3fa5_get_modes+0x64/0x80
   drm_panel_get_modes+0x20/0x40
   dsi_mgr_connector_get_modes+0x28/0x40 [msm]
   drm_helper_probe_single_connector_modes+0x19c/0x770 [drm_kms_helper]
   drm_client_modeset_probe+0x1a4/0x1144
   __drm_fb_helper_initial_config_and_unlock+0x30/0x500 [drm_kms_helper]
   drm_fb_helper_initial_config+0x44/0x50 [drm_kms_helper]
   msm_fbdev_init+0x84/0xec [msm]
   msm_drm_bind+0x51c/0x5e0 [msm]
   try_to_bring_up_master+0x218/0x300
   __component_add+0x9c/0x180
   component_add+0x10/0x1c
   dsi_dev_attach+0x1c/0x24 [msm]
   dsi_host_attach+0x90/0x140 [msm]
   mipi_dsi_attach+0x24/0x34
   s6e3fa5_probe+0x10c/0x1cc
   mipi_dsi_drv_probe+0x1c/0x24
   really_probe+0x1b0/0x430
   __driver_probe_device+0x10c/0x180
   driver_probe_device+0x3c/0xf0
   __device_attach_driver+0x94/0x120
   bus_for_each_drv+0x64/0xa0
   __device_attach+0xa8/0x19c
   device_initial_probe+0x10/0x20
   bus_probe_device+0x90/0xa0
   device_add+0x364/0x83c
   mipi_dsi_device_register_full+0xc4/0x150
   mipi_dsi_host_register+0xb8/0x14c
   msm_dsi_host_register+0x3c/0x54 [msm]
   msm_dsi_manager_register+0x144/0x260 [msm]
   dsi_dev_probe+0x124/0x1a4 [msm]
   platform_probe+0x64/0xcc
   really_probe+0x1b0/0x430
   __driver_probe_device+0x10c/0x180
   driver_probe_device+0x3c/0xf0
   __device_attach_driver+0x94/0x120
   bus_for_each_drv+0x64/0xa0
   __device_attach+0xa8/0x19c
   device_initial_probe+0x10/0x20
   bus_probe_device+0x90/0xa0
   deferred_probe_work_func+0x9c/0xf0
   process_one_work+0x1d0/0x350
   worker_thread+0x134/0x450
   kthread+0x104/0x10c
   ret_from_fork+0x10/0x20
  ---[ end trace 0000000000000000 ]---
  ------------[ cut here ]------------
  WARNING: CPU: 5 PID: 103 at drivers/gpu/drm/drm_mode_object.c:242 drm_object_attach_property+0x6c/0xb0
  Modules linked in: hci_uart apr fastrpc msm pdr_interface qrtr_smd btqca bluetooth gpu_sched nxp_nci_i2c nxp_nci nci drm_kms_helper nfc rmi_i2c rmi_core ecdh_generic ecc libaes ath10k_snoc ath10k_core cfbfillrect syscopyarea cfbimgblt sysfillrect sysimgblt fb_sys_fops cfbcopyarea ath i2c_qup msm_serial serial_core mac80211 libarc4 sha256_generic libsha256 leds_qcom_lpg cfg80211 led_class_multicolor qcom_fg rtc_pm8xxx ipa qrtr qcom_q6v5_mss qcom_q6v5_pas qcom_stats qcom_pil_info qcom_q6v5 qcom_sysmon qcom_common qcom_smd mdt_loader qmi_helpers smp2p rpmsg_char leds_gpio evdev led_class rmtfs_mem qcom_hwspinlock rfkill dm_mod uinput loop
  CPU: 5 PID: 103 Comm: kworker/u16:5 Tainted: G        W         5.17.0-rc5-msm8998 #7
  Hardware name: OnePlus 5 (DT)
  Workqueue: events_unbound deferred_probe_work_func
  pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
  pc : drm_object_attach_property+0x6c/0xb0
  lr : drm_connector_set_panel_orientation+0x54/0xb0
  sp : ffffff808193b2b0
  x29: ffffff808193b2b0 x28: 0000000000000020 x27: 0000000000001000
  x26: 0000000000001000 x25: 0000000000000001 x24: ffffffc0087f1f78
  x23: 0000000000000000 x22: 0000000000000000 x21: ffffff8084b26000
  x20: ffffff8088570b00 x19: ffffff8084b90800 x18: 00000000fffffffb
  x17: 0000007a00440000 x16: 0000000000000000 x15: 0000000000000020
  x14: ffffffffffffffff x13: ffffff8088570b70 x12: ffffff8088570b55
  x11: 0000000000000000 x10: 0000000000000078 x9 : ffffff8088570e20
  x8 : ffffff8088570e38 x7 : 00000000c0c0c0c0 x6 : 00000000c0c0c0c0
  x5 : 0000000000000000 x4 : 0000000000000001 x3 : 0000000000000006
  x2 : 0000000000000001 x1 : ffffff8088570b80 x0 : ffffff8084b90840
  Call trace:
   drm_object_attach_property+0x6c/0xb0
   s6e3fa5_get_modes+0x64/0x80
   drm_panel_get_modes+0x20/0x40
   dsi_mgr_connector_get_modes+0x28/0x40 [msm]
   drm_helper_probe_single_connector_modes+0x19c/0x770 [drm_kms_helper]
   drm_client_modeset_probe+0x1a4/0x1144
   __drm_fb_helper_initial_config_and_unlock+0x30/0x500 [drm_kms_helper]
   drm_fb_helper_initial_config+0x44/0x50 [drm_kms_helper]
   msm_fbdev_init+0x84/0xec [msm]
   msm_drm_bind+0x51c/0x5e0 [msm]
   try_to_bring_up_master+0x218/0x300
   __component_add+0x9c/0x180
   component_add+0x10/0x1c
   dsi_dev_attach+0x1c/0x24 [msm]
   dsi_host_attach+0x90/0x140 [msm]
   mipi_dsi_attach+0x24/0x34
   s6e3fa5_probe+0x10c/0x1cc
   mipi_dsi_drv_probe+0x1c/0x24
   really_probe+0x1b0/0x430
   __driver_probe_device+0x10c/0x180
   driver_probe_device+0x3c/0xf0
   __device_attach_driver+0x94/0x120
   bus_for_each_drv+0x64/0xa0
   __device_attach+0xa8/0x19c
   device_initial_probe+0x10/0x20
   bus_probe_device+0x90/0xa0
   device_add+0x364/0x83c
   mipi_dsi_device_register_full+0xc4/0x150
   mipi_dsi_host_register+0xb8/0x14c
   msm_dsi_host_register+0x3c/0x54 [msm]
   msm_dsi_manager_register+0x144/0x260 [msm]
   dsi_dev_probe+0x124/0x1a4 [msm]
   platform_probe+0x64/0xcc
   really_probe+0x1b0/0x430
   __driver_probe_device+0x10c/0x180
   driver_probe_device+0x3c/0xf0
   __device_attach_driver+0x94/0x120
   bus_for_each_drv+0x64/0xa0
   __device_attach+0xa8/0x19c
   device_initial_probe+0x10/0x20
   bus_probe_device+0x90/0xa0
   deferred_probe_work_func+0x9c/0xf0
   process_one_work+0x1d0/0x350
   worker_thread+0x134/0x450
   kthread+0x104/0x10c
   ret_from_fork+0x10/0x20
  ---[ end trace 0000000000000000 ]---
2022-06-05 20:06:42 +03:00
Jami Kettunen
48f050eb4d [HACK] scripts: Stop appending "+" to localversion
This always gets added and doesn't look nice in the version string, so
it's purely for aesthetic reasons :p
2022-06-05 20:06:42 +03:00
Jami Kettunen
eb0411a669 [ANNOTATION] [DROPME?] Import WIP "Qualcomm SPMI Fuel Gauge" driver
Drop pmi8994 DTS changes though.

https://gitlab.com/sdm845-mainline/linux/-/commits/driver/pmi8998_fg/
2022-06-05 20:06:42 +03:00
Jami Kettunen
86dea5456c power: supply: qcom_fg: Report online property 2022-06-05 20:06:42 +03:00
Yassine Oudjana
1b758aceea power: pmi8998_fg: Rename to qcom_fg and add support for PMI8994/6
This adds support for accessing SRAM. That includes requesting and releasing
access to SRAM by setting some registers and handling the mem-avail IRQ,
configuring access, and reading from/writing to it.

Pre-gen3 fuel gauges require reading from SRAM to get voltage, current
and temperature data. Getting capacity is identical to gen3.

Tested on Xiaomi Mi Note 2 with PMI8996.
2022-06-05 20:06:42 +03:00
Yassine Oudjana
fde6bbe1ee power: pmi8998_fg: Remove some trailing spaces and tabs
This should be squashed.
2022-06-05 20:06:42 +03:00
Joel Selvaraj
9083a32532 fg: clean and read charge full and max voltage from dts 2022-06-05 20:06:42 +03:00
Joel Selvaraj
a18a9850aa power: supply: add battery charging status feature 2022-06-05 20:06:42 +03:00
Joel Selvaraj
a1e7e1e597 arm64: dts: qcom: pmi8998: Add nodes for pmi8998 fuel guage 2022-06-05 20:06:42 +03:00
Joel Selvaraj
8e7ca27eb9 power: supply: introduce pmi8998 fuel guage driver 2022-06-05 20:06:42 +03:00
Jami Kettunen
924d6db5ae [ANNOTATION] Import SPMI haptics driver v4 (2022-04-03)
Drop SDM845 DTS changes though and s/qcom,pmi8998-haptics/qcom,spmi-haptics/
in pmi8998.dtsi to fix probe of the driver.

Link: https://patchwork.kernel.org/project/linux-arm-msm/cover/20211210022639.2779173-1-caleb@connolly.tech/
2022-06-05 20:06:41 +03:00
Jami Kettunen
148c6bb847 arm64: dts: qcom: msm8998-oneplus-common: Enable PMI8998 haptics
The OnePlus 5 and 5T both have a haptics engine connected to PMI8998.

Signed-off-by: Jami Kettunen <jami.kettunen@somainline.org>
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
2022-06-05 20:06:41 +03:00
Caleb Connolly
2c34128296 arm64: dts: qcom: pmi8998: introduce spmi haptics
Add bindings for Qualcomm SPMI haptics on platforms using pmi8998.

Signed-off-by: Caleb Connolly <caleb@connolly.tech>
2022-06-05 20:06:41 +03:00