Tags give the ability to mark specific points in history as being important
-
sched-core-2024-03-11
54de4427 · ·Scheduler changes for v6.9: - Fix inconsistency in misfit task load-balancing - Fix CPU isolation bugs in the task-wakeup logic - Rework & unify the sched_use_asym_prio() and sched_asym_prefer() logic - Clean up & simplify ->avg_* accesses - Misc cleanups & fixes Signed-off-by: Ingo Molnar <mingo@kernel.org>
-
locking-core-2024-03-11
ce3576eb · ·Locking changes for v6.9: - Micro-optimize local_xchg() and the rtmutex code on x86 - Fix percpu-rwsem contention tracepoints - Simplify debugging Kconfig dependencies - Update/clarify the documentation of atomic primitives - Misc cleanups Signed-off-by: Ingo Molnar <mingo@kernel.org>
-
x86_mtrr_for_v6.9_rc1
ffc92cf3 · ·- Relax the PAT MSR programming which was unnecessarily using the MTRR programming protocol of disabling the cache around the changes. The reason behind this is the current algorithm triggering a #VE exception for TDX guests and unnecessarily complicating things
-
x86_cpu_for_v6.9_rc1
03ceaf67 · ·- Have AMD Zen common init code run on all families from Zen1 onwards in order to save some future enablement effort
-
ras_core_for_v6.9_rc1
a6a78916 · ·- Constify yet another static struct bus_type instance now that the driver core can handle that
-
orange-pi-6.8-20240311-0106
807955c4 · ·Release: orange-pi-6.8-20240311-0106 NEWS ==== See also: - https://xnux.eu/log/ - https://xnux.eu/devices/pine64-pinephone.html - https://xff.cz/kernels/ KNOWN ISSUES: - Pinephone Pro: - imx258 capture doesn't work after suspend/resume cycle (test) - Pinephone: - You may experience p-boot display pipeline handover failures with the new HDMI HPD fix since (2021-10-26) if you have drivers compiled in such a way that parts of the sunxi DRM stack have to re-probe on boot. One way to workaround this is to compile everything needed for anx7688 and display pipeline as built-in drivers. - Bluetooth is never powered off. Only way to power it off is to unload the bluetooth driver module. (rfkill or bluetoothctl power off do not work) 2024-03-10: - rebased on v6.8 - Replace Icenowy Pinephone DRM patches with the patch from Frank Oltmanns https://lore.kernel.org/lkml/20240310-tcon_keep_stable_rate-v1-1-0296b0a85c02@oltmanns.dev/ 2024-03-02: - properly support orientation detection on QuartzPro64/Orange Pi 5 Plus 2024-02-28: - add AP6275P WiFi support for QuartzPro64 (based on patched upstream driver) 2024-02-27: - add lima error recovery patches from Erico Nunes - https://patchwork.freedesktop.org/series/128856/#rev2 2024-02-18: - remove default USB_QUIRK_RESET patch for Quectel modem (fixes branch) - add some Pinetab patches (accelerometer, bluetooth, soundcard rename) - add reset resume patch for quectel serial (fixes branch) 2024-02-18: - reworked branch organization to be more logical - cleaned up jack detection for sun8i-codec - cleaned up whitespace in anx7688 driver - a few patches got updated/rewritten in a more modern way 2024-02-11: - fix upstream bug introduced in v6.7.4 that broke probe of ISP devices on Pinephone Pro (all camera use broken by that) - cleanup af8133j driver and DT in preparation for upstreaming - fix occasional VCM probe time errors (dw9714) on Pinephone Pro 2024-02-10: - rebased on 6.8-rc3 - fixed issue with source power mode of Pinephone Pro Type-C port (no devices that needed to be powered from the phone worked) 2024-01-12: - rebased on 6.8-rc1 2024-01-08: - rebased on 6.7 final 2023-12-03: - rebased on 6.7-rc4 2023-11-18: - rebased on 6.7-rc3 - ported various drivers and patches to Linux 6.7 2023-11-03: - rebased on top of Linux v6.6 - fixed power off button behavior on PineTab2 - cleaned up support for USB 3.0 for OrangePi 5 Plus and QuartzPro64 in preparation for upstreaming (partial Type-C support included - orientation multiplexing of USB 3.0 SS signals not working correctly) - Improvements to PineTab2 USB port/charging support 2023-10-14: - pulled in 6.6-rc5+ - upstreamed orange pi 5 plus and pine64 quartzpro64 RK3588 boards - various small fixes for Pinephone (OG and Pro) to fix compatibility with Linux 6.6 - power down I2C regulator for anx7688 during sleep, to allow powerdown of touchscreen controller (also supplied from it), and to fix anx7688 probe - add regulator support to the audio codec (to fix probe errors, due to codec probing before regulators it depends on are enabled) 2023-09-14: - pulled in 6.5.3 2023-09-07: - pulled in 6.5.2 - fix USB peripheral mode with networking on Pinephone Pro (and other dual role devices using DWC3) - add support for Quartz Pro 64 2023-07-31: - pulled in 6.4.7 - re-enable pcie on Pinebook Pro 2023-07-19: - pulled in 6.4.4 - added Pinetab 2 DT 2023-07-01: - rebased on v6.4 - pulled in 6.4.1 2023-06-14: - rebased on v6.4-rc6 - workaround poweroff ITS timeouts on Orange Pi 5 Plus - enable card detection on SD card slot of Orange Pi 5 Plus 2023-06-11: - rebased on v6.4-rc5 - added support for RK3588 / Orange Pi 5 Plus (almost complete, only USB 3.0 ports don't work) - fixed regression in Pinephone power consumption during sleep (touchscreen was not disabled properly, consuming a lot of power) - added DRAM reclocking support to Pinephone Pro (needs Rockchip TPL/TF-A) 2023-04-30: - rebased on v6.4-rc1 - resovled conflicts 2023-04-26: - rebased on v6.3 2023-03-30: - pinephone pro: fix display backlight PWM frequency from 1 to 20kHz - pinephone: add support for RSSI monitoring API expected by upstream WPA supplicant (should help with automatic roaming when the signal is low - see bgscan wpa_supplicant config option) 2023-03-13: - pinephone pro: fix camera and magnetometer rotations 2023-03-13: - rebased on v6.3-rc2 - Fix H3/A83T thermal zones - Fix axp20x-battery driver to not return EINVAL when no battery info is present in DT (this otherwise breaks uevent support) 2023-03-06: - rebased on v6.3-rc1 2023-02-20: - rebased on v6.2 - add several fixes for USB-PD and Alt-DP on Pinephone Pro. If you have had trouble with Alt-DP or USB3 in the past when using a type-c dock or similar device, try writing 1 to /sys/module/typec_extcon/parameterss/reset_on_mux and re-plug the device and report back to x@xnux.eu if it helped 2023-02-16: - rebased on v6.2-rc8+ - reverted f2fs to Linux 6.1 version - see: https://lore.kernel.org/linux-f2fs-devel/20230214225704.pqqisa62pfzj6wz2@core/T/#t (f2fs is completely broken on 32bit systems in v6.2) 2023-02-03: - rebased on v6.2-rc6+ 2023-01-22: - reworked multi-camera support for Pinephone on top of upstream changes (media device graph changed quite a bit upstream, you may need to update the userspace camera apps for them to continue working) - fixed Alt-DP mode on Pinebook Pro - rebased on v6.2-rc5+ 2022-12-30: - rebased on v6.1 - pulled in v6.1.1 2022-12-11: - ppp: don't reset 'display state of charge' (dsoc) to 0 on vbat low interrupt 2022-12-10: - rebased on v6.1-rc7+ - don't enable ppkb-manager by default, to enable it manually use: echo echo 0 > /sys/devices/platform/keyboard-power/disabled - ppp: make stk3311 gpio input if bootloader does leave it as output (fixes probe issues on phones with broken bootloaders) 2022-12-04: - rebased on v6.1-rc7+ - don't reinitialize bluetooth on Pinephone during resume 2022-11-28: - rebased on v6.1-rc7 - pinephone: fix power key behavior during suspend (avoid stuck key during resume) - pinephone pro: finished fix for LCD to make it refresh at precisely 60 Hz - pinephone keyboard: wait for 100ms after enabling power supply and before probing 2022-11-01: - rebased on v6.1-rc3 - add pinephone keyboard power manager driver - this driver manages charging cycle of both batteries and provides LED triggers, uevents and combined state in debugfs/kbpwr/state usable for summary capacity/discharge rate reporting - the driver optimizes for the highest power efficiency (power is used more directly without needless recharging of phone's battery from the keyboard battery) - the driver also performs calibration of kb battery internal resistance to improve reliability of capacity reporting of keyboard battery - the driver optionally provides emergency shutdown when both batteries are almost discharged - make various PMIC drivers report battery capacity in uWh to userspace to make calculations for total capacity of multi-battery setup with different sized batteries more meaningful - move to mainlined pinephone-keyboard driver - ported sun6i-csi patches over to the 6.1 (base driver was changed quite a lot in rc2, so multicamera support needed to be rewritten from scratch) - fixed pinephone keyboard current reporting (with large currents, the keyboard would sometimes report incorrect negative values due to integer overflow) - renamed ppp selfie camera sensor subdevice name to be mainline compatible - ppkb: allowed to disable special handling of FN layer via module parameter (to make it possible to use Fn key as another modifier key in xkb) - hopefully final fix for quartz64-a pcie register/address ranges map - added buffer support for af8133j magnetometer driver - removed useless error messages - sun4i-drm (pinephone) DRM driver fixes - rewritten patches that fix layer positioning and fixed additional bugs in the driver (reconfiguring planes while crtc was turned off led to corruption/stale framebuffer being scanned to the display) - pinephone: fix power key getting stuck after resume, when pressed and released quickly enough (reported by Aren) 2022-10-17: - rebased on v6.1-rc1 - drivers ported to 6.1 2022-10-03: - rebased on v6.0 - updated rtw88/89 patches from wireless-next - fixed quartz64-a pcie register/address ranges map - mainline is broken with rtw88 wifi cards when used in parallel with nvme storage device 2022-09-15: - rebased on v6.0-rc5+ 2022-09-09: - rebased on v6.0-rc4+ - rebased on mainlined DT for PPP, re-shuffled patches 2022-08-29: - fix the same audio issue on Pinebook Pro, too 2022-08-25: - fix longstanding issue with 44.1kHz sample rate playback not working correctly after playing 48kHz audio on RK3399 (Pinephone Pro) 2022-08-24: - rebased on v6.0-rc2 2022-08-18: - rebased on v6.0-rc1+ 2022-08-01: - rebased on v5.19 final - fix Pinebook Pro audio codec output soft ramp control - only update input current limit during boot, after USB power supply detection finishes (ignore 0A current_max USB power supply change notifications) - this is part of a fix for "bootloop on low battery" (other part is https://xff.cz/git/levinboot/commit/?id=d7c80398211d18a29e44a3c7b95b0a5edcb5733c) 2022-07-29: - rebased on 5.19-rc8+ 2022-07-22: - rebased on 5.19-rc7+ 2022-07-19: - rebased on 5.19-rc7+ 2022-07-16: - rebased on 5.19-rc6+ - tested on all boards 2022-07-07: - rebased on 5.19-rc5+ 2022-06-27: - Add support for applying Type-C plug orientation correctly to Rockchip Type-C PHY from the DWC3 USB driver. This completes the Type-C port support for Pinephone Pro. - Enable processing the highest resolution of the IMX258 sensor via RKISP10. - rebase on v5.19-rc4 2022-05-26: - fix smaller sized IMX258 output formats and PLL/MIPI settings 2022-05-25: - fix kconfig and build issue for Pinephone user facing camera - update defconfigs for all devices - improve imx258 camera support: - hook up flash and focus lens support - add mode that maxes out what isp1 supports - improve image quality using register values suggested by Sony - cleanup the driver and add support for 24MHz clock - don't flip the image 2022-05-22: - rebase on v5.18 - added support for front and back camera for Pinephone Pro - resolved clock frequency incompatibility between the sensor drivers 2022-05-21: - rebase on v5.18-rc8 - stupid ass schematic for pinephone pro is completely confusing, which is one reason why world facing camera didn't work up to now. See for yourself: This https://megous.com/dl/tmp/39cbd011289c6818.png apparently means that IMX258 is connected to MIPI1_TX1/RX1 lol https://megous.com/dl/tmp/5f25b00ef0166252.png MIPI_RX0 is isp0 MIPI1_RX1 is isp1. Just by reading the camera sheet in the schematic, I happily assumed that naming signals MIPI_RX0, they actually really are MIPI_RX0, but alas. Anyway, I moved IMX258 sensor node in device tree to isp1, so that increases chances that users who have working connection to the sensor over I2C will have a working camera now. :) Please test and report back. - some cleanup and patch re-ordering in ppp branches - drop A64 idle states from DT (these should be auto-added by TF-A when supported; you need to build TF-A properly, though! check p-boot/fw for example) - intergate latest patches from wireless-next for rtw88/89 2022-05-10: - rebase on v5.18-rc6 - fix musb suspend issues: https://gitlab.com/postmarketOS/pmaports/-/issues/1478 - fix null pointer dereference in TCPM debug code 2022-04-10: - rebase on v5.18-rc2 2022-04-09: - rebase on linus/master - replaced pinephone keyboard/charger drivers with their latest versions - unified rk818-charger/battery power supplies into one - small changes in preparation for pinephone keyboard power manager - added many rtw88/89 changes from wireless-next 2022-03-23: - Really fix Pinephone Pro support for docks with Alt-DP :) - Enable some more debugging output 2022-03-22: - Fix Pinephone Pro support for docks with Alt-DP on Type-C receptacles (as opposed to captive cables) See: https://xnux.eu/log/#063 2022-03-20: - rebase on 5.17 2022-03-16: - rebase on 5.17-rc8+ 2022-03-11: - make touchscreen work again on pocketbook touch lux - rebase on 5.17-rc7+ 2022-03-07: - rebase on 5.17-rc7 2022-02-22: - add missing keyboard capacity reporting commits 2022-02-17: - fix flash led support on PPP, enable the driver in defconfig 2022-02-16: - add support for capacity reporting of pinephone keyboard battery - integrate some patches from Mobian (Pinephone Pro): - sound card improvements (rename, HP plugin detection) - Flash LED support - Add patches from Martijn Braam, that add support for SPI NOR flash, and forward port them to 5.17 - Integrated multi-consumer patches for Type-C mux/switch (v2) - rebase on 5.17-rc4+ 2022-02-10: - implemented runtime power management for af8133j driver 2022-02-09: - import af8133j patches from Icenowy - add support for the new magnetometer in PP 1.2 beta and in Pinephone Pro - fix for STK3311 interrupts (needs bootloader patch to turn GPIO4_D3 into input, because it's left as output by BROM) - integrated Benjamin Schaaf's camera patches 2022-02-04: - synced up with recent fixes for orange-pi-5.16 - rebase on 5.17-rc2+ 2022-01-23: - rebase on 5.17-rc1 and forward port everything - so far this is tested on pinephone and pinephone pro 2022-01-22: - added kernel drivers for kb151 and IP5209 - if you want to run ppkb-i2c-inputd, just add kb151.disable_input to kernel boot arguments - ip5209 status is now visible in sysfs - default keymap removed from DT - improve reporting of ppp battery charging status in the BSP battery driver 2022-01-20: - pull in v5.16.2 - rtw88/89: backport changes from 5.17, add patches from linux-wireless mailing list that implement AP support in rtw89 2022-01-16: - add support for POGO header on Pinephone Pro - add "mmc: core: Wait for command setting 'Power Off Notification' bit to complete" patch that should fix SD card suspend failures on Pinephone - pull in v5.16.1 2022-01-10: - rebase on v5.16 2022-01-09: - more properly disable ucam on ppp (unbreaks display initialization) - use v4 of "mfd: rk808: add reboot support to rk808.c" 2022-01-04: - rebase on v5.16-rc8 - fix quartz64-a ethernet (phy delays issue) - disabled ucam on pinephone pro (it's not ov5640 as previously thought) - fixed swapped reset gpios on pinephone pro cameras in DT - fixed blued LED gpio reference 2021-11-30: - rebase on v5.16-rc3 2021-11-24: - basic audio support for Pinephone Pro (everything should work, except bluetooth) 2021-11-23: - rebase on v5.16-rc2 - a bit more Pinephone Pro Type-C support tunning - added support for powering up the modem via modem-power driver 2021-11-16: - rebase on v5.16-rc1 - implemented support for all Type-C features of Pinephone Pro and Pinebook Pro (there are still some known issues https://xnux.eu/log/#054, and pinebook pro has a HW design issue, so be careful) - fix some fusb302 bugs - rk3399/pbp/ppp: improve display clock rate precision - fix DRM panics and refcount issues with drm scheduler on panfrost/lima - add chasis device tree properties to pinephone dts 2021-10-31: - rebase on top of v5.15 - add tsadc reset patch for Quartz64 (fixes thermal zone temperature reporting) 2021-10-28: - drop firmware suffix from bluetooth firmware on pinephone - drop bluetooth h5 reset support patch - disable debug logging in gc2145 driver - revert hci_h5 runtime PM support that was added to 5.15-rc1 (it is broken, and causes constant re-probing of bluetooth device, see: https://lore.kernel.org/lkml/20211027222326.e55g26ezaxpk7kkm@core/T/#u) 2021-10-26: - workadound broken HDMI HPD on Pinephone - this should make Alt-DP mode work on pinephones where it failed previously (reaching only DP state 0x03) - HPD is now signalled to HDMI PHY via a software route instead of in hardware (hardware is confirmed broken by the product design team, exactly as I discovered previously: https://xnux.eu/log/#045) 2021-10-25: - pinephone pro: - improve battery current reporting from rk818 driver (DT had incorrect values) 2021-10-22: - pinephone pro: - add DT definitions for both cameras - add support for reset/powerdown/supplies to IMX258 driver - SD card power supply fix - fix hang during boot on rk3399 (caused by debug nodes) - fix display initialization/wrong clock setting on Pinebook Pro/Pinephone Pro - https://x-lore.kernel.org/linux-clk/20211016105022.303413-1-martin.blumenstingl@googlemail.com/ 2021-10-20: - fixed probe error handling in anx7688 (fix suggested by rsglobal) - added axn7688 dependency on its I2C bus supply (avoids probe failure when anx7688 is probed before other devices using the bus and suspend/resume device ordering issues) - updated to the latest rockchip/for-next branch 2021-10-18: - fix various Pinephone Pro issues that prevented suspending to ram and broke PMIC and cause PMIC, touchscreen and fusb interrupt storms - power down touchscreen in suspend to ram (Pinephone Pro, saves 200mW in suspend when touching the screen) - add runtime suspend for eMMC (saves 200mW at runtime) - fix rockchip DSI controller driver to not break the display on suspend/resume - improve panel driver for pinephone pro 2021-10-17: - rebase on v5.15-rc6 - add support for Pinephone Pro 2021-10-11: - rebase on v5.15-rc5 2021-09-21: - add various dts variants for quartz64-a 2021-09-20: - use rockchip/for-next which was rebased on top of 5.15-rc1 recently 2021-09-16: - basic quartz64 support (5.15-rc1 upstream + rockchip/for-next branch + some fixes from me for me for poweroff + some patches from pgwipeout split to q64-5.15 and q64dts-5.15 branches) - rebase on v5.15-rc1+ 2021-09-13: - rebase on v5.15-rc1 - port 8723cs driver to 5.15 - fix some compile warnings 2021-08-30: - rebase on v5.14 2021-08-19: - rebase on v5.14-rc6+ 2021-08-09: - rebase on v5.14-rc5 2021-07-31: - rebase on v5.14-rc4 2021-07-28: - rebase on v5.14-rc3+ 2021-07-20: - update defconfigs 2021-07-19: - rebase on v5.14-rc2 2021-07-12: - rebase on v5.14-rc1 - port cam drivers to 5.14 2021-07-01: - rebase on v5.14-pre-rc1 2021-06-29: - rebase on v5.13 2021-06-20: - rebase on linus/master (5.13-rc6+) 2021-06-16: - rebase on linus/master (5.13-rc6+) 2021-06-05: - rebase on linus/master (5.13-rc5) - add support for runtime calibration of minimum duty cycle of PWM backlight (until now it was hardcoded in device tree) - minimum brightness calibration instructions (default for lth_brightness is 10%, meaning is 'PWM duty cycle at the lowest brightness setting'): echo 1 > /sys/class/backlight/backlight/brightness echo 1 > /sys/class/backlight/backlight/device/lth_brightness echo 2 > /sys/class/backlight/backlight/device/lth_brightness echo 3 > /sys/class/backlight/backlight/device/lth_brightness ... increase values until you like the minimum brightness ... then make sure to restore this value after each boot by writing it to /sys/class/backlight/backlight/device/lth_brightness 2021-06-05: - rebase on linus/master (5.13-rc4+) 2021-05-31: - rebase on linus/master (5.13-rc4) - fix bluetooth initialization failure on TBS A711 and elsewhere by using CONFIG_SERIAL_8250_16550A_VARIANTS See: https://lkml.org/lkml/2021/5/30/107 2021-05-22: - rebase on linus/master (5.13-rc2+) - fix headset button handling and jack/mic plug in/plug out detection - should be much more reliable now 2021-05-21: - rebase on linus/master (5.13-rc2+) 2021-05-20: - rebase on linus/master (5.13-rc2+) - fixed up booting with fw_devlink=on (see fixes-5.13) - applied Samuel's time travel avoidance fix https://patchwork.kernel.org/project/linux-arm-kernel/patch/20210515021439.55316-1-samuel@sholland.org/ - this should fix occasional stalls and system hangs - revert fine tuned OCV based capacity reporting, PMIC is not reporting OCV correctly so kernel has garbage input for the OCV -> capacity conversion and thus produces garbage output too (this stops large jumps in capacity when plugging in a charger and in general makes capacity reporting saner) - fixed "NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #08!!!" - wifi driver no longer prevents dynticks from working - improved (well..., added) suspend/resume code to anx7688 driver :) - fixes some issues caused by this driver ignoring the suspend/resume cycle 2021-05-09: - rebase on linus/master (pre 5.13-rc1) - replace old HDMI audio patches with the new HDMI sound card support from Jernej - cleanup compilation warnings 2021-05-07: - rebase on linus/master (pre 5.13-rc1) 2021-05-01: - fixed suspend failure of light/proximity sensor - raise the default minimum frequency for mbus devfreq governor (you can still lower it in sysfs for higher runtime power savings at the cost of some performance, see /sys/class/devfreq and tune it there for your distro) 2021-04-26: - rebase on 5.12 final - fixed behavior with dumb charger (DCP) being forced to 500mA on boot from anx7688 driver - disable lradc wakeup by default (lowers the power consumption in suspend) 2021-04-25: - rebase on linus/master - I've created a patch that disables touchscreen controller during system sleep reducing power consumption by about 40mW in sleep (and by 130mW when touching the screen in sleep) - before: https://megous.com/dl/tmp/0533207eed42258c.png - after: https://megous.com/dl/tmp/5d504d680415e2e3.png - those power spikes are touch controller checking if there's a finger touching the screen, and those dense spikes are when the finger is actually touching the screen - Added Samuel's DRAM downclocking patches 2021-04-19: - rebase on 5.12-rc8 2021-04-12: - rebase on 5.12-rc7 2021-04-09: - rebase on linus/master 2021-04-05: - rebase on 5.12-rc6 2021-04-01: - added patches from Samuel that implement cpuidle power savings on PinePhone (You also need to run the latest master of TF-A and crust firmware.) - rebased on top of linus/master 2021-03-22: - rebase on 5.12-rc4 2021-03-15: - rebase on 5.12-rc3 - enable interrupt on battery capacity low (wakeup the phone and notify power supply change, for userspace to gracefully handle this condition) 2021-03-11: - linus/master update 2021-03-09: - linus/master update 2021-03-04: - linus/master update (fixes FS corruption when using swapfiles) 2021-03-01: - rebase on 5.12-rc1 2021-02-23: - rebased on top of linus/master (5.12 cycle) - cleaned up compile errors 2021-02-20: - fix an7688 compilation on 32-bit ARM 2021-02-19: - added support for wake over wireless LAN (WoWLAN) - howto is in the 2021-02-18: - added USB_QUIRK_RESET for EG25G modem (https://gitlab.com/mobian1/devices/eg25-manager/-/merge_requests/5) 2021-02-15: - rebased on v5.11 final - fixed anx7688 fw flashing timeout - added Samuel's patches: - allow to use RTC wakeup when powered off - NVMEM driver for RTC data registers - pulled in some fixes from linux-next into fixes-5.11 - disable MMC runtime PM again (causes issues on H5/H6 https://megous.com/dl/tmp/1eec9b1c7f03ad93.png) - used nvmem reboot driver (suggested by Samuel in RFC patch) for rebooting to FEL, eMMC bootloader, various p-boot boot configs on either eMMC or SD card's bootfs filesystems, boot menu, etc. via reboot() syscall with extra arg (see LINUX_REBOOT_CMD_RESTART2) (p-boot is also updated to support this mechanism, as of 2021-02-15) 2021-02-08: - rebased on 5.11-rc7 2021-02-04: - rebased on linus/master 2021-01-30: - rebased on linus/master 2021-01-27: - tested on all my boards - make HDMI audio sound card initializa again on H3/H5 - fix rebase regression in stmmac driver that broke ethernet on PC 2 2021-01-25: - rebased on top of v5.11-rc5 - fix 8723cs bluetooth DT to load pinephone BT config file correctly (add -pinephone postfix) - fix a bunch of ASoC debugfs/bt-soc errors - remove some noisy logging - move mmc# aliases to SoC DT files to cover more boards - added gc2145 BGGR bayer mode patch (makes this kernel work with megapixels) - update Samuel's patches for irq-wakeup to v5 2021-01-12: - rebased on top of v5.11-rc3+ - update Samuel's patches (stmmac, i2c-pm, irq-wakeup) 2021-01-02: - rebased on top of v5.11-rc1+ 2020-12-14: - rebased on top of v5.10 - added patch to chnage Vbus hold voltage to 4.5V on Pinephone (this makes PD charging more stable) 2020-12-11: - rebased on top of linus/master 2020-12-07: - rebased on top of 5.10-rc7 2020-12-05: - modem power driver: add more powerup modes and change interface for dumb and fastboot powerup - you can now write 2, 3 or 4 to .../powered sysfs file to select differnt powerup mode from the normal one (1) - this is useful for selecting alternate userspace configurations early in boot to allow tracing the userspace processes from early on for reverse engineering, and in the near future, it will be used to switch between original and fully-FOSS userspace code running on the modem's APPS CPU on powerup - see https://xnux.eu/log/#028 2020-12-02: - fix WiFi blocking suspend - improve modem power driver interaction with kernel's autosleep - shorten resume times from 1.2s to 400ms (wifi driver optimization) 2020-11-30: - I improved the anx7688 driver to actually respect PD capabilities of the source, and don't overload it. This should make it more likely to work with the USB-C docks when docks are powered. - Pine64 dock can provide either 500mA when powered from regular USB-A charger (regardless of what kind of charger it is, it can't use more current from it) - With my 3A PD charger, Pine64 dock will advertise 2600mA and Pinephone will now respect this limit. - rebase on linus/master (5.10-rc6 atm) - increase I2C clock for sensors and touchscreen/anx7688 from 100kHz to 400kHz - added patch from https://patchwork.kernel.org/project/dri-devel/cover/20200222024210.18697-1-yuq825@gmail.com/#23237865 for easier GPU debugging (suggested by bshah) 2020-11-28: - rebased on linus/master - replaced my 60FPS fix with a more mainlineable and better working solution from Roman Beranek - disable 8723cs CONCURRENT_MODE, enable wifi 802.11z TDLS 2020-11-25: - enable wifi power saving mode (saves 350mW in idle, and doesn't seem to break the wifi so far) 2020-11-25: - added a new 2020-10 wifi driver and cleaned up to work with PinePhone - see wifi-5.10 branch - rebased on linus/master 2020-11-23: - rebased, added modem power blocking mode (p-boot privacy support) 2020-11-17: - drop ov5640 AF patch 2020-11-17: - rebase on linux/master - fix camera probe 2020-11-15: - rebase on linux/master - add "retain LED state in sleep" patch 2020-11-13: - fix boot failure on pocketbook (see https://www.mail-archive.com/linux-crypto@vger.kernel.org/msg46288.html) 2020-11-13: - rebase on top of 5.10-rc3+ - update defconfigs 2020-11-10: - rebase on top of 5.10-rc3 2020-11-01: - added some musb suspend/resume fixes - fixed regulator probe on a711 - fix mmc device numbering - rebase on top of 5.10-rc2 2020-10-31: - rebased on top of 5.10-rc1+ - added ov5640 autofocus support from Martijn Braam (you'll need /lib/firmware/ov5640_af.bin) - added fix for DSI panel 36.6 FPS issue (myself) - import upstreamed variant of audio patches from Samuel 2020-10-25: - rebased on top of 5.10-rc1 2020-10-19: - fix orange pi 3 ethernet 2020-10-12: - fix issue with dsi clock described here: https://xnux.eu/log/#021 - rebase on v5.9 final - integrate pinetab panel patches from (untested) https://gitlab.com/pine64-org/linux/-/commits/pine64-kernel-5.7.y-pinetabpanel/ 2020-09-29: - add a few more codec API fixes from Samuel 2020-09-28: - rebase on top of 5.9-rc7 - integrated the newest audio patches from Samuel 2020-09-23: - port battery thermal regulation fix from p-boot (completely untested, see https://xnux.eu/log/#018) 2020-09-18: - cedrus panic fix - rebase on linus/master 2020-09-17: - further modem driver improvements (fix urc setting on old modem firmwares) 2020-09-13: - rebase on top of 5.9-rc5 2020-09-12: - rebase on top of 5.9-rc4+ 2020-09-10: - rebase on top of 5.9-rc4+ - further fixes for the modem driver poweron, support for fast poweroff feature present on new modem firmware - added flash DT changes - add mounting matrix and a kernel command line option to override it (ignore_mount_matrix) - https://xff.cz/kernels also contains special kernel builds for my multi-dist image (see https://xnux.eu/log/) - enabled opportunistic sleep - enabled btrfs support 2020-09-01: - rebase on top of 5.9-rc3 2020-08-19: - rebase and port to 5.9-rc1 - fix various issues with 5.9-rc1 - fix sleeps in atomic context in anx7688 driver - dropped panfrost dvfs patches for now (conflicts, stability issues) - fix modem UART issues on powerup (sometimes not receiving RDY, etc.) - root cause was host UART locking up due to noise on RX, and the fix is to only open UART port when the modem is powered 2020-08-11: - fix sun50i-codec-analog probe failure when built-in 2020-08-09: - pull in codec changes from Samuel - don't wait for RDY but poll with empty AT command for the modem's status 2020-08-06: - added Samuel's patch for making recording from the codec work again 2020-08-05: - modem driver fixes for BH 2020-08-03: - fixed AC100 driver to make it work without mod clock 2020-08-02: - integrated latest Samuel's audio patches + rebased my AC100 support on top - finished the modem-power driver into a hopefully useable state 2020-07-25: - rebased on top of 5.8-rc7+ - fixed modem driver issue with not shutting down the modem on poweroff/reset on PinePhone (introduced during modem driver rewrite around 5.8-rc5) - worked around AXP reseting input current limit to 500mA regardless of BC detection being disabled (happened on boot with USB-C cable connected to USB-C PD charger) (and reverted again) - improved modem driver - initialize the modem configuration for proper sleep - setup QDAI automatically from DTS - show modem firmware version in dmesg - added rfkill interface - handle URC caching during suspend 2020-07-16: - added HP jack detection patches from A-wai 2020-07-14: - added support for Pinebook Pro - fix issue in my bl_pwm PinePhone patch that broke Pinebook Pro's backlight 2020-07-13: - rebased on top of 5.8-rc5 - improved HW led trigger API - more modem-power work (change to serdev, recv messages from the modem) - support HDMI audio on PinePhone - bump PD power requirement to 15W on PinePhone 2020-07-08: - refactoring of the modem driver, moved to modem-5.8 branch (not finished yet, see TODO in the driver) - update pinephone 1.0-1.2 dts to reflect the differences in modem setup - enable orange pi 3 hdmi audio 2020-07-06: - rebased on top of 5.8-rc4 2020-07-05: - Added fixes for PinePhone panel initialization after resume from sleep 2020-07-04: - Integrated Clément's HDMI audio series (20200704113902.336911-1-peron.clem@gmail.com) - Integrated Clément's panfrost DVFS series (20200704102535.189647-1-peron.clem@gmail.com) My kernel's main integration branch is 'orange-pi-$VER' (this one). No other branch is supposed to work alone. My defconfigs are tested and work on the boards I support. Read the README.md for more info. Only my branches based on the current mainline kernel branch are maintained (those are usually the -rc# kernels!). You can find the current mainline version here https://www.kernel.org/ (mainline: ...) My prebuilt kernels can be found at https://xff.cz/kernels/ You can use them to test that your board works, or just run them without bothering with building everything yourself. I run them on all my boards. My website is https://xnux.eu and may contain useful advice. Good luck! ~megi -
x86-fred-2024-03-10
c416b5ba · ·Support for x86 Fast Return and Event Delivery (FRED): FRED is a replacement for IDT event delivery on x86 and addresses most of the technical nightmares which IDT exposes: 1) Exception cause registers like CR2 need to be manually preserved in nested exception scenarios. 2) Hardware interrupt stack switching is suboptimal for nested exceptions as the interrupt stack mechanism rewinds the stack on each entry which requires a massive effort in the low level entry of #NMI code to handle this. 3) No hardware distinction between entry from kernel or from user which makes establishing kernel context more complex than it needs to be especially for unconditionally nestable exceptions like NMI. 4) NMI nesting caused by IRET unconditionally reenabling NMIs, which is a problem when the perf NMI takes a fault when collecting a stack trace. 5) Partial restore of ESP when returning to a 16-bit segment 6) Limitation of the vector space which can cause vector exhaustion on large systems. 7) Inability to differentiate NMI sources FRED addresses these shortcomings by: 1) An extended exception stack frame which the CPU uses to save exception cause registers. This ensures that the meta information for each exception is preserved on stack and avoids the extra complexity of preserving it in software. 2) Hardware interrupt stack switching is non-rewinding if a nested exception uses the currently interrupt stack. 3) The entry points for kernel and user context are separate and GS BASE handling which is required to establish kernel context for per CPU variable access is done in hardware. 4) NMIs are now nesting protected. They are only reenabled on the return from NMI. 5) FRED guarantees full restore of ESP 6) FRED does not put a limitation on the vector space by design because it uses a central entry points for kernel and user space and the CPUstores the entry type (exception, trap, interrupt, syscall) on the entry stack along with the vector number. The entry code has to demultiplex this information, but this removes the vector space restriction. The first hardware implementations will still have the current restricted vector space because lifting this limitation requires further changes to the local APIC. 7) FRED stores the vector number and meta information on stack which allows having more than one NMI vector in future hardware when the required local APIC changes are in place. The series implements the initial FRED support by: - Reworking the existing entry and IDT handling infrastructure to accomodate for the alternative entry mechanism. - Expanding the stack frame to accomodate for the extra 16 bytes FRED requires to store context and meta information - Providing FRED specific C entry points for events which have information pushed to the extended stack frame, e.g. #PF and #DB. - Providing FRED specific C entry points for #NMI and #MCE - Implementing the FRED specific ASM entry points and the C code to demultiplex the events - Providing detection and initialization mechanisms and the necessary tweaks in context switching, GS BASE handling etc. The FRED integration aims for maximum code reuse vs. the existing IDT implementation to the extent possible and the deviation in hot paths like context switching are handled with alternatives to minimalize the impact. The low level entry and exit paths are seperate due to the extended stack frame and the hardware based GS BASE swichting and therefore have no impact on IDT based systems. It has been extensively tested on existing systems and on the FRED simulation and as of now there are know outstanding problems. -
-
x86-apic-2024-03-10
f0551af0 · ·Rework of APIC enumeration and topology evaluation: The current implementation has a couple of shortcomings: - It fails to handle hybrid systems correctly. - The APIC registration code which handles CPU number assignents is in the middle of the APIC code and detached from the topology evaluation. - The various mechanisms which enumerate APICs, ACPI, MPPARSE and guest specific ones, tweak global variables as they see fit or in case of XENPV just hack around the generic mechanisms completely. - The CPUID topology evaluation code is sprinkled all over the vendor code and reevaluates global variables on every hotplug operation. - There is no way to analyze topology on the boot CPU before bringing up the APs. This causes problems for infrastructure like PERF which needs to size certain aspects upfront or could be simplified if that would be possible. - The APIC admission and CPU number association logic is incomprehensible and overly complex and needs to be kept around after boot instead of completing this right after the APIC enumeration. This update addresses these shortcomings with the following changes: - Rework the CPUID evaluation code so it is common for all vendors and provides information about the APIC ID segments in a uniform way independent of the number of segments (Thread, Core, Module, ..., Die, Package) so that this information can be computed instead of rewriting global variables of dubious value over and over. - A few cleanups and simplifcations of the APIC, IO/APIC and related interfaces to prepare for the topology evaluation changes. - Seperation of the parser stages so the early evaluation which tries to find the APIC address can be seperately overridden from the late evaluation which enumerates and registers the local APIC as further preparation for sanitizing the topology evaluation. - A new registration and admission logic which - encapsulates the inner workings so that parsers and guest logic cannot longer fiddle in it - uses the APIC ID segments to build topology bitmaps at registration time - provides a sane admission logic - allows to detect the crash kernel case, where CPU0 does not run on the real BSP, automatically. This is required to prevent sending INIT/SIPI sequences to the real BSP which would reset the whole machine. This was so far handled by a tedious command line parameter, which does not even work in nested crash scenarios. - Associates CPU number after the enumeration completed and prevents the late registration of APICs, which was somehow tolerated before. - Converting all parsers and guest enumeration mechanisms over to the new interfaces. This allows to get rid of all global variable tweaking from the parsers and enumeration mechanisms and sanitizes the XEN[PV] handling so it can use CPUID evaluation for the first time. - Mopping up existing sins by taking the information from the APIC ID segment bitmaps. This evaluates hybrid systems correctly on the boot CPU and allows for cleanups and fixes in the related drivers, e.g. PERF. The series has been extensively tested and the minimal late fallout due to a broken ACPI/MADT table has been addressed by tightening the admission logic further. -
timers-ptp-2024-03-10
27f6a9c8 · ·Updates for timekeeping and PTP core: The cross-timestamp mechanism which allows to correlate hardware clocks uses clocksource pointers for describing the correlation. That's suboptimal as drivers need to obtain the pointer, which requires needless exports and exposing internals. This can be completely avoided by assigning clocksource IDs and using them for describing the correlated clock source. This update adds clocksource IDs to all clocksources in the tree which can be exposed to this mechanism and removes the pointer and now needless exports. This is separate from the timer core changes as it was provided to the PTP folks to build further changes on top. A related improvement for the core and the correlation handling has not made it this time, but is expected to get ready for the next round.
-
timers-core-2024-03-10
8ca18367 · ·A large set of updates and features for timers and timekeeping: - The hierarchical timer pull model When timer wheel timers are armed they are placed into the timer wheel of a CPU which is likely to be busy at the time of expiry. This is done to avoid wakeups on potentially idle CPUs. This is wrong in several aspects: 1) The heuristics to select the target CPU are wrong by definition as the chance to get the prediction right is close to zero. 2) Due to #1 it is possible that timers are accumulated on a single target CPU 3) The required computation in the enqueue path is just overhead for dubious value especially under the consideration that the vast majority of timer wheel timers are either canceled or rearmed before they expire. The timer pull model avoids the above by removing the target computation on enqueue and queueing timers always on the CPU on which they get armed. This is achieved by having separate wheels for CPU pinned timers and global timers which do not care about where they expire. As long as a CPU is busy it handles both the pinned and the global timers which are queued on the CPU local timer wheels. When a CPU goes idle it evaluates its own timer wheels: - If the first expiring timer is a pinned timer, then the global timers can be ignored as the CPU will wake up before they expire. - If the first expiring timer is a global timer, then the expiry time is propagated into the timer pull hierarchy and the CPU makes sure to wake up for the first pinned timer. The timer pull hierarchy organizes CPUs in groups of eight at the lowest level and at the next levels groups of eight groups up to the point where no further aggregation of groups is required, i.e. the number of levels is log8(NR_CPUS). The magic number of eight has been established by experimention, but can be adjusted if needed. In each group one busy CPU acts as the migrator. It's only one CPU to avoid lock contention on remote timer wheels. The migrator CPU checks in its own timer wheel handling whether there are other CPUs in the group which have gone idle and have global timers to expire. If there are global timers to expire, the migrator locks the remote CPU timer wheel and handles the expiry. Depending on the group level in the hierarchy this handling can require to walk the hierarchy downwards to the CPU level. Special care is taken when the last CPU goes idle. At this point the CPU is the systemwide migrator at the top of the hierarchy and it therefore cannot delegate to the hierarchy. It needs to arm its own timer device to expire either at the first expiring timer in the hierarchy or at the first CPU local timer, which ever expires first. This completely removes the overhead from the enqueue path, which is e.g. for networking a true hotpath and trades it for a slightly more complex idle path. This has been in development for a couple of years and the final series has been extensively tested by various teams from silicon vendors and ran through extensive CI. There have been slight performance improvements observed on network centric workloads and an Intel team confirmed that this allows them to power down a die completely on a mult-die socket for the first time in a mostly idle scenario. There is only one outstanding ~1.5% regression on a specific overloaded netperf test which is currently investigated, but the rest is either positive or neutral performance wise and positive on the power management side. - Fixes for the timekeeping interpolation code for cross-timestamps: cross-timestamps are used for PTP to get snapshots from hardware timers and interpolated them back to clock MONOTONIC. The changes address a few corner cases in the interpolation code which got the math and logic wrong. - Simplifcation of the clocksource watchdog retry logic to automatically adjust to handle larger systems correctly instead of having more incomprehensible command line parameters. - Treewide consolidation of the VDSO data structures. - The usual small improvements and cleanups all over the place. -
-
irq-msi-2024-03-10
678c607e · ·Updates for the MSI interrupt subsystem and RISC-V initial MSI support: - Core and platform-MSI The core changes have been adopted from previous work which converted ARM[64] to the new per device MSI domain model, which was merged to support multiple MSI domain per device. The ARM[64] changes are being worked on too, but have not been ready yet. The core and platform-MSI changes have been split out to not hold up RISC-V and to avoid that RISC-V builds on the scheduled for removal interfaces. The core support provides new interfaces to handle wire to MSI bridges in a straight forward way and introduces new platform-MSI interfaces which are built on top of the per device MSI domain model. Once ARM[64] is converted over the old platform-MSI interfaces and the related ugliness in the MSI core code will be removed. - Drivers: - Add a new driver for the Andes hart-level interrupt controller - Rework the SiFive PLIC driver to prepare for MSI suport - Expand the RISC-V INTC driver to support the new RISC-V AIA controller which provides the basis for MSI on RISC-V - A few fixup for the fallout of the core changes. The actual MSI parts for RISC-V were finalized late and have been post-poned for the next merge window. -
irq-core-2024-03-10
f7f56d59 · ·Updates for the interrupt subsystem: - Core: - Make affinity changes immediately effective for interrupt threads. This reduces the impact on isolated CPUs as it pulls over the thread right away instead of doing it after the next hardware interrupt arrived. - Cleanup and improvements for the interrupt chip simulator - Deduplication of the interrupt descriptor initialization code so the sparse and non-sparse mode share more code. - Drivers: - A set of conversions to platform_drivers::remove_new() which gets rid of the pointless return value. - A new driver for the Starfive JH8100 SoC - Support for Amlogic-T7 SoCs - Improvement for the interrupt handling and EOI management for the loongson interrupt controller. - The usual fixes and improvements all over the place. -
rust-6.9
768409cf · ·Rust changes for v6.9 Another routine one in terms of features. We got two version upgrades this time, but in terms of lines, 'alloc' changes are not very large. Toolchain and infrastructure: - Upgrade to Rust 1.76.0. This time around, due to how the kernel and Rust schedules have aligned, there are two upgrades in fact. These allow us to remove two more unstable features ('const_maybe_uninit_zeroed' and 'ptr_metadata') from the list, among other improvements. - Mark 'rustc' (and others) invocations as recursive, which fixes a new warning and prepares us for the future in case we eventually take advantage of the Make jobserver. 'kernel' crate: - Add the 'container_of!' macro. - Stop using the unstable 'ptr_metadata' feature by employing the now stable 'byte_sub' method to implement 'Arc::from_raw()'. - Add the 'time' module with a 'msecs_to_jiffies()' conversion function to begin with, to be used by Rust Binder. - Add 'notify_sync()' and 'wait_interruptible_timeout()' methods to 'CondVar', to be used by Rust Binder. - Update integer types for 'CondVar'. - Rename 'wait_list' field to 'wait_queue_head' in 'CondVar'. - Implement 'Display' and 'Debug' for 'BStr'. - Add the 'try_from_foreign()' method to the 'ForeignOwnable' trait. - Add reexports for macros so that they can be used from the right module (in addition to the root). - A series of code documentation improvements, including adding intra-doc links, consistency improvements, typo fixes... 'macros' crate: - Place generated 'init_module()' function in '.init.text'. Documentation: - Add documentation on Rust doctests and how they work. -
orange-pi-6.7-20240306-2359
c59848f7 · ·Release: orange-pi-6.7-20240306-2359 NEWS ==== See also: - https://xnux.eu/log/ - https://xnux.eu/devices/pine64-pinephone.html - https://xff.cz/kernels/ KNOWN ISSUES: - Pinephone Pro: - imx258 capture doesn't work after suspend/resume cycle (test) - Pinephone: - You may experience p-boot display pipeline handover failures with the new HDMI HPD fix since (2021-10-26) if you have drivers compiled in such a way that parts of the sunxi DRM stack have to re-probe on boot. One way to workaround this is to compile everything needed for anx7688 and display pipeline as built-in drivers. - Bluetooth is never powered off. Only way to power it off is to unload the bluetooth driver module. (rfkill or bluetoothctl power off do not work) 2024-03-06: - pulled in v6.7.9 2024-02-27: - add lima error recovery patches from Erico Nunes - https://patchwork.freedesktop.org/series/128856/#rev2 2024-02-11: - fix upstream bug introduced in v6.7.4 that broke probe of ISP devices on Pinephone Pro (all camera use broken by that) 2024-02-10: - fixed issue with source power mode of Pinephone Pro Type-C port (no devices that needed to be powered from the phone worked) 2024-02-05: - pulled in v6.7.4 2024-01-27: - pulled in v6.7.2 - revert one useless DRM patch 2024-01-13: - add writable controls for pinetab2 RK817 PMIC: - USB input voltage limit - battery CC max charging voltage and current 2024-01-08: - rebased on 6.7 final 2023-12-03: - rebased on 6.7-rc4 2023-11-18: - rebased on 6.7-rc3 - ported various drivers and patches to Linux 6.7 2023-11-03: - rebased on top of Linux v6.6 - fixed power off button behavior on PineTab2 - cleaned up support for USB 3.0 for OrangePi 5 Plus and QuartzPro64 in preparation for upstreaming (partial Type-C support included - orientation multiplexing of USB 3.0 SS signals not working correctly) - Improvements to PineTab2 USB port/charging support 2023-10-14: - pulled in 6.6-rc5+ - upstreamed orange pi 5 plus and pine64 quartzpro64 RK3588 boards - various small fixes for Pinephone (OG and Pro) to fix compatibility with Linux 6.6 - power down I2C regulator for anx7688 during sleep, to allow powerdown of touchscreen controller (also supplied from it), and to fix anx7688 probe - add regulator support to the audio codec (to fix probe errors, due to codec probing before regulators it depends on are enabled) 2023-09-14: - pulled in 6.5.3 2023-09-07: - pulled in 6.5.2 - fix USB peripheral mode with networking on Pinephone Pro (and other dual role devices using DWC3) - add support for Quartz Pro 64 2023-07-31: - pulled in 6.4.7 - re-enable pcie on Pinebook Pro 2023-07-19: - pulled in 6.4.4 - added Pinetab 2 DT 2023-07-01: - rebased on v6.4 - pulled in 6.4.1 2023-06-14: - rebased on v6.4-rc6 - workaround poweroff ITS timeouts on Orange Pi 5 Plus - enable card detection on SD card slot of Orange Pi 5 Plus 2023-06-11: - rebased on v6.4-rc5 - added support for RK3588 / Orange Pi 5 Plus (almost complete, only USB 3.0 ports don't work) - fixed regression in Pinephone power consumption during sleep (touchscreen was not disabled properly, consuming a lot of power) - added DRAM reclocking support to Pinephone Pro (needs Rockchip TPL/TF-A) 2023-04-30: - rebased on v6.4-rc1 - resovled conflicts 2023-04-26: - rebased on v6.3 2023-03-30: - pinephone pro: fix display backlight PWM frequency from 1 to 20kHz - pinephone: add support for RSSI monitoring API expected by upstream WPA supplicant (should help with automatic roaming when the signal is low - see bgscan wpa_supplicant config option) 2023-03-13: - pinephone pro: fix camera and magnetometer rotations 2023-03-13: - rebased on v6.3-rc2 - Fix H3/A83T thermal zones - Fix axp20x-battery driver to not return EINVAL when no battery info is present in DT (this otherwise breaks uevent support) 2023-03-06: - rebased on v6.3-rc1 2023-02-20: - rebased on v6.2 - add several fixes for USB-PD and Alt-DP on Pinephone Pro. If you have had trouble with Alt-DP or USB3 in the past when using a type-c dock or similar device, try writing 1 to /sys/module/typec_extcon/parameterss/reset_on_mux and re-plug the device and report back to x@xnux.eu if it helped 2023-02-16: - rebased on v6.2-rc8+ - reverted f2fs to Linux 6.1 version - see: https://lore.kernel.org/linux-f2fs-devel/20230214225704.pqqisa62pfzj6wz2@core/T/#t (f2fs is completely broken on 32bit systems in v6.2) 2023-02-03: - rebased on v6.2-rc6+ 2023-01-22: - reworked multi-camera support for Pinephone on top of upstream changes (media device graph changed quite a bit upstream, you may need to update the userspace camera apps for them to continue working) - fixed Alt-DP mode on Pinebook Pro - rebased on v6.2-rc5+ 2022-12-30: - rebased on v6.1 - pulled in v6.1.1 2022-12-11: - ppp: don't reset 'display state of charge' (dsoc) to 0 on vbat low interrupt 2022-12-10: - rebased on v6.1-rc7+ - don't enable ppkb-manager by default, to enable it manually use: echo echo 0 > /sys/devices/platform/keyboard-power/disabled - ppp: make stk3311 gpio input if bootloader does leave it as output (fixes probe issues on phones with broken bootloaders) 2022-12-04: - rebased on v6.1-rc7+ - don't reinitialize bluetooth on Pinephone during resume 2022-11-28: - rebased on v6.1-rc7 - pinephone: fix power key behavior during suspend (avoid stuck key during resume) - pinephone pro: finished fix for LCD to make it refresh at precisely 60 Hz - pinephone keyboard: wait for 100ms after enabling power supply and before probing 2022-11-01: - rebased on v6.1-rc3 - add pinephone keyboard power manager driver - this driver manages charging cycle of both batteries and provides LED triggers, uevents and combined state in debugfs/kbpwr/state usable for summary capacity/discharge rate reporting - the driver optimizes for the highest power efficiency (power is used more directly without needless recharging of phone's battery from the keyboard battery) - the driver also performs calibration of kb battery internal resistance to improve reliability of capacity reporting of keyboard battery - the driver optionally provides emergency shutdown when both batteries are almost discharged - make various PMIC drivers report battery capacity in uWh to userspace to make calculations for total capacity of multi-battery setup with different sized batteries more meaningful - move to mainlined pinephone-keyboard driver - ported sun6i-csi patches over to the 6.1 (base driver was changed quite a lot in rc2, so multicamera support needed to be rewritten from scratch) - fixed pinephone keyboard current reporting (with large currents, the keyboard would sometimes report incorrect negative values due to integer overflow) - renamed ppp selfie camera sensor subdevice name to be mainline compatible - ppkb: allowed to disable special handling of FN layer via module parameter (to make it possible to use Fn key as another modifier key in xkb) - hopefully final fix for quartz64-a pcie register/address ranges map - added buffer support for af8133j magnetometer driver - removed useless error messages - sun4i-drm (pinephone) DRM driver fixes - rewritten patches that fix layer positioning and fixed additional bugs in the driver (reconfiguring planes while crtc was turned off led to corruption/stale framebuffer being scanned to the display) - pinephone: fix power key getting stuck after resume, when pressed and released quickly enough (reported by Aren) 2022-10-17: - rebased on v6.1-rc1 - drivers ported to 6.1 2022-10-03: - rebased on v6.0 - updated rtw88/89 patches from wireless-next - fixed quartz64-a pcie register/address ranges map - mainline is broken with rtw88 wifi cards when used in parallel with nvme storage device 2022-09-15: - rebased on v6.0-rc5+ 2022-09-09: - rebased on v6.0-rc4+ - rebased on mainlined DT for PPP, re-shuffled patches 2022-08-29: - fix the same audio issue on Pinebook Pro, too 2022-08-25: - fix longstanding issue with 44.1kHz sample rate playback not working correctly after playing 48kHz audio on RK3399 (Pinephone Pro) 2022-08-24: - rebased on v6.0-rc2 2022-08-18: - rebased on v6.0-rc1+ 2022-08-01: - rebased on v5.19 final - fix Pinebook Pro audio codec output soft ramp control - only update input current limit during boot, after USB power supply detection finishes (ignore 0A current_max USB power supply change notifications) - this is part of a fix for "bootloop on low battery" (other part is https://xff.cz/git/levinboot/commit/?id=d7c80398211d18a29e44a3c7b95b0a5edcb5733c) 2022-07-29: - rebased on 5.19-rc8+ 2022-07-22: - rebased on 5.19-rc7+ 2022-07-19: - rebased on 5.19-rc7+ 2022-07-16: - rebased on 5.19-rc6+ - tested on all boards 2022-07-07: - rebased on 5.19-rc5+ 2022-06-27: - Add support for applying Type-C plug orientation correctly to Rockchip Type-C PHY from the DWC3 USB driver. This completes the Type-C port support for Pinephone Pro. - Enable processing the highest resolution of the IMX258 sensor via RKISP10. - rebase on v5.19-rc4 2022-05-26: - fix smaller sized IMX258 output formats and PLL/MIPI settings 2022-05-25: - fix kconfig and build issue for Pinephone user facing camera - update defconfigs for all devices - improve imx258 camera support: - hook up flash and focus lens support - add mode that maxes out what isp1 supports - improve image quality using register values suggested by Sony - cleanup the driver and add support for 24MHz clock - don't flip the image 2022-05-22: - rebase on v5.18 - added support for front and back camera for Pinephone Pro - resolved clock frequency incompatibility between the sensor drivers 2022-05-21: - rebase on v5.18-rc8 - stupid ass schematic for pinephone pro is completely confusing, which is one reason why world facing camera didn't work up to now. See for yourself: This https://megous.com/dl/tmp/39cbd011289c6818.png apparently means that IMX258 is connected to MIPI1_TX1/RX1 lol https://megous.com/dl/tmp/5f25b00ef0166252.png MIPI_RX0 is isp0 MIPI1_RX1 is isp1. Just by reading the camera sheet in the schematic, I happily assumed that naming signals MIPI_RX0, they actually really are MIPI_RX0, but alas. Anyway, I moved IMX258 sensor node in device tree to isp1, so that increases chances that users who have working connection to the sensor over I2C will have a working camera now. :) Please test and report back. - some cleanup and patch re-ordering in ppp branches - drop A64 idle states from DT (these should be auto-added by TF-A when supported; you need to build TF-A properly, though! check p-boot/fw for example) - intergate latest patches from wireless-next for rtw88/89 2022-05-10: - rebase on v5.18-rc6 - fix musb suspend issues: https://gitlab.com/postmarketOS/pmaports/-/issues/1478 - fix null pointer dereference in TCPM debug code 2022-04-10: - rebase on v5.18-rc2 2022-04-09: - rebase on linus/master - replaced pinephone keyboard/charger drivers with their latest versions - unified rk818-charger/battery power supplies into one - small changes in preparation for pinephone keyboard power manager - added many rtw88/89 changes from wireless-next 2022-03-23: - Really fix Pinephone Pro support for docks with Alt-DP :) - Enable some more debugging output 2022-03-22: - Fix Pinephone Pro support for docks with Alt-DP on Type-C receptacles (as opposed to captive cables) See: https://xnux.eu/log/#063 2022-03-20: - rebase on 5.17 2022-03-16: - rebase on 5.17-rc8+ 2022-03-11: - make touchscreen work again on pocketbook touch lux - rebase on 5.17-rc7+ 2022-03-07: - rebase on 5.17-rc7 2022-02-22: - add missing keyboard capacity reporting commits 2022-02-17: - fix flash led support on PPP, enable the driver in defconfig 2022-02-16: - add support for capacity reporting of pinephone keyboard battery - integrate some patches from Mobian (Pinephone Pro): - sound card improvements (rename, HP plugin detection) - Flash LED support - Add patches from Martijn Braam, that add support for SPI NOR flash, and forward port them to 5.17 - Integrated multi-consumer patches for Type-C mux/switch (v2) - rebase on 5.17-rc4+ 2022-02-10: - implemented runtime power management for af8133j driver 2022-02-09: - import af8133j patches from Icenowy - add support for the new magnetometer in PP 1.2 beta and in Pinephone Pro - fix for STK3311 interrupts (needs bootloader patch to turn GPIO4_D3 into input, because it's left as output by BROM) - integrated Benjamin Schaaf's camera patches 2022-02-04: - synced up with recent fixes for orange-pi-5.16 - rebase on 5.17-rc2+ 2022-01-23: - rebase on 5.17-rc1 and forward port everything - so far this is tested on pinephone and pinephone pro 2022-01-22: - added kernel drivers for kb151 and IP5209 - if you want to run ppkb-i2c-inputd, just add kb151.disable_input to kernel boot arguments - ip5209 status is now visible in sysfs - default keymap removed from DT - improve reporting of ppp battery charging status in the BSP battery driver 2022-01-20: - pull in v5.16.2 - rtw88/89: backport changes from 5.17, add patches from linux-wireless mailing list that implement AP support in rtw89 2022-01-16: - add support for POGO header on Pinephone Pro - add "mmc: core: Wait for command setting 'Power Off Notification' bit to complete" patch that should fix SD card suspend failures on Pinephone - pull in v5.16.1 2022-01-10: - rebase on v5.16 2022-01-09: - more properly disable ucam on ppp (unbreaks display initialization) - use v4 of "mfd: rk808: add reboot support to rk808.c" 2022-01-04: - rebase on v5.16-rc8 - fix quartz64-a ethernet (phy delays issue) - disabled ucam on pinephone pro (it's not ov5640 as previously thought) - fixed swapped reset gpios on pinephone pro cameras in DT - fixed blued LED gpio reference 2021-11-30: - rebase on v5.16-rc3 2021-11-24: - basic audio support for Pinephone Pro (everything should work, except bluetooth) 2021-11-23: - rebase on v5.16-rc2 - a bit more Pinephone Pro Type-C support tunning - added support for powering up the modem via modem-power driver 2021-11-16: - rebase on v5.16-rc1 - implemented support for all Type-C features of Pinephone Pro and Pinebook Pro (there are still some known issues https://xnux.eu/log/#054, and pinebook pro has a HW design issue, so be careful) - fix some fusb302 bugs - rk3399/pbp/ppp: improve display clock rate precision - fix DRM panics and refcount issues with drm scheduler on panfrost/lima - add chasis device tree properties to pinephone dts 2021-10-31: - rebase on top of v5.15 - add tsadc reset patch for Quartz64 (fixes thermal zone temperature reporting) 2021-10-28: - drop firmware suffix from bluetooth firmware on pinephone - drop bluetooth h5 reset support patch - disable debug logging in gc2145 driver - revert hci_h5 runtime PM support that was added to 5.15-rc1 (it is broken, and causes constant re-probing of bluetooth device, see: https://lore.kernel.org/lkml/20211027222326.e55g26ezaxpk7kkm@core/T/#u) 2021-10-26: - workadound broken HDMI HPD on Pinephone - this should make Alt-DP mode work on pinephones where it failed previously (reaching only DP state 0x03) - HPD is now signalled to HDMI PHY via a software route instead of in hardware (hardware is confirmed broken by the product design team, exactly as I discovered previously: https://xnux.eu/log/#045) 2021-10-25: - pinephone pro: - improve battery current reporting from rk818 driver (DT had incorrect values) 2021-10-22: - pinephone pro: - add DT definitions for both cameras - add support for reset/powerdown/supplies to IMX258 driver - SD card power supply fix - fix hang during boot on rk3399 (caused by debug nodes) - fix display initialization/wrong clock setting on Pinebook Pro/Pinephone Pro - https://x-lore.kernel.org/linux-clk/20211016105022.303413-1-martin.blumenstingl@googlemail.com/ 2021-10-20: - fixed probe error handling in anx7688 (fix suggested by rsglobal) - added axn7688 dependency on its I2C bus supply (avoids probe failure when anx7688 is probed before other devices using the bus and suspend/resume device ordering issues) - updated to the latest rockchip/for-next branch 2021-10-18: - fix various Pinephone Pro issues that prevented suspending to ram and broke PMIC and cause PMIC, touchscreen and fusb interrupt storms - power down touchscreen in suspend to ram (Pinephone Pro, saves 200mW in suspend when touching the screen) - add runtime suspend for eMMC (saves 200mW at runtime) - fix rockchip DSI controller driver to not break the display on suspend/resume - improve panel driver for pinephone pro 2021-10-17: - rebase on v5.15-rc6 - add support for Pinephone Pro 2021-10-11: - rebase on v5.15-rc5 2021-09-21: - add various dts variants for quartz64-a 2021-09-20: - use rockchip/for-next which was rebased on top of 5.15-rc1 recently 2021-09-16: - basic quartz64 support (5.15-rc1 upstream + rockchip/for-next branch + some fixes from me for me for poweroff + some patches from pgwipeout split to q64-5.15 and q64dts-5.15 branches) - rebase on v5.15-rc1+ 2021-09-13: - rebase on v5.15-rc1 - port 8723cs driver to 5.15 - fix some compile warnings 2021-08-30: - rebase on v5.14 2021-08-19: - rebase on v5.14-rc6+ 2021-08-09: - rebase on v5.14-rc5 2021-07-31: - rebase on v5.14-rc4 2021-07-28: - rebase on v5.14-rc3+ 2021-07-20: - update defconfigs 2021-07-19: - rebase on v5.14-rc2 2021-07-12: - rebase on v5.14-rc1 - port cam drivers to 5.14 2021-07-01: - rebase on v5.14-pre-rc1 2021-06-29: - rebase on v5.13 2021-06-20: - rebase on linus/master (5.13-rc6+) 2021-06-16: - rebase on linus/master (5.13-rc6+) 2021-06-05: - rebase on linus/master (5.13-rc5) - add support for runtime calibration of minimum duty cycle of PWM backlight (until now it was hardcoded in device tree) - minimum brightness calibration instructions (default for lth_brightness is 10%, meaning is 'PWM duty cycle at the lowest brightness setting'): echo 1 > /sys/class/backlight/backlight/brightness echo 1 > /sys/class/backlight/backlight/device/lth_brightness echo 2 > /sys/class/backlight/backlight/device/lth_brightness echo 3 > /sys/class/backlight/backlight/device/lth_brightness ... increase values until you like the minimum brightness ... then make sure to restore this value after each boot by writing it to /sys/class/backlight/backlight/device/lth_brightness 2021-06-05: - rebase on linus/master (5.13-rc4+) 2021-05-31: - rebase on linus/master (5.13-rc4) - fix bluetooth initialization failure on TBS A711 and elsewhere by using CONFIG_SERIAL_8250_16550A_VARIANTS See: https://lkml.org/lkml/2021/5/30/107 2021-05-22: - rebase on linus/master (5.13-rc2+) - fix headset button handling and jack/mic plug in/plug out detection - should be much more reliable now 2021-05-21: - rebase on linus/master (5.13-rc2+) 2021-05-20: - rebase on linus/master (5.13-rc2+) - fixed up booting with fw_devlink=on (see fixes-5.13) - applied Samuel's time travel avoidance fix https://patchwork.kernel.org/project/linux-arm-kernel/patch/20210515021439.55316-1-samuel@sholland.org/ - this should fix occasional stalls and system hangs - revert fine tuned OCV based capacity reporting, PMIC is not reporting OCV correctly so kernel has garbage input for the OCV -> capacity conversion and thus produces garbage output too (this stops large jumps in capacity when plugging in a charger and in general makes capacity reporting saner) - fixed "NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #08!!!" - wifi driver no longer prevents dynticks from working - improved (well..., added) suspend/resume code to anx7688 driver :) - fixes some issues caused by this driver ignoring the suspend/resume cycle 2021-05-09: - rebase on linus/master (pre 5.13-rc1) - replace old HDMI audio patches with the new HDMI sound card support from Jernej - cleanup compilation warnings 2021-05-07: - rebase on linus/master (pre 5.13-rc1) 2021-05-01: - fixed suspend failure of light/proximity sensor - raise the default minimum frequency for mbus devfreq governor (you can still lower it in sysfs for higher runtime power savings at the cost of some performance, see /sys/class/devfreq and tune it there for your distro) 2021-04-26: - rebase on 5.12 final - fixed behavior with dumb charger (DCP) being forced to 500mA on boot from anx7688 driver - disable lradc wakeup by default (lowers the power consumption in suspend) 2021-04-25: - rebase on linus/master - I've created a patch that disables touchscreen controller during system sleep reducing power consumption by about 40mW in sleep (and by 130mW when touching the screen in sleep) - before: https://megous.com/dl/tmp/0533207eed42258c.png - after: https://megous.com/dl/tmp/5d504d680415e2e3.png - those power spikes are touch controller checking if there's a finger touching the screen, and those dense spikes are when the finger is actually touching the screen - Added Samuel's DRAM downclocking patches 2021-04-19: - rebase on 5.12-rc8 2021-04-12: - rebase on 5.12-rc7 2021-04-09: - rebase on linus/master 2021-04-05: - rebase on 5.12-rc6 2021-04-01: - added patches from Samuel that implement cpuidle power savings on PinePhone (You also need to run the latest master of TF-A and crust firmware.) - rebased on top of linus/master 2021-03-22: - rebase on 5.12-rc4 2021-03-15: - rebase on 5.12-rc3 - enable interrupt on battery capacity low (wakeup the phone and notify power supply change, for userspace to gracefully handle this condition) 2021-03-11: - linus/master update 2021-03-09: - linus/master update 2021-03-04: - linus/master update (fixes FS corruption when using swapfiles) 2021-03-01: - rebase on 5.12-rc1 2021-02-23: - rebased on top of linus/master (5.12 cycle) - cleaned up compile errors 2021-02-20: - fix an7688 compilation on 32-bit ARM 2021-02-19: - added support for wake over wireless LAN (WoWLAN) - howto is in the 2021-02-18: - added USB_QUIRK_RESET for EG25G modem (https://gitlab.com/mobian1/devices/eg25-manager/-/merge_requests/5) 2021-02-15: - rebased on v5.11 final - fixed anx7688 fw flashing timeout - added Samuel's patches: - allow to use RTC wakeup when powered off - NVMEM driver for RTC data registers - pulled in some fixes from linux-next into fixes-5.11 - disable MMC runtime PM again (causes issues on H5/H6 https://megous.com/dl/tmp/1eec9b1c7f03ad93.png) - used nvmem reboot driver (suggested by Samuel in RFC patch) for rebooting to FEL, eMMC bootloader, various p-boot boot configs on either eMMC or SD card's bootfs filesystems, boot menu, etc. via reboot() syscall with extra arg (see LINUX_REBOOT_CMD_RESTART2) (p-boot is also updated to support this mechanism, as of 2021-02-15) 2021-02-08: - rebased on 5.11-rc7 2021-02-04: - rebased on linus/master 2021-01-30: - rebased on linus/master 2021-01-27: - tested on all my boards - make HDMI audio sound card initializa again on H3/H5 - fix rebase regression in stmmac driver that broke ethernet on PC 2 2021-01-25: - rebased on top of v5.11-rc5 - fix 8723cs bluetooth DT to load pinephone BT config file correctly (add -pinephone postfix) - fix a bunch of ASoC debugfs/bt-soc errors - remove some noisy logging - move mmc# aliases to SoC DT files to cover more boards - added gc2145 BGGR bayer mode patch (makes this kernel work with megapixels) - update Samuel's patches for irq-wakeup to v5 2021-01-12: - rebased on top of v5.11-rc3+ - update Samuel's patches (stmmac, i2c-pm, irq-wakeup) 2021-01-02: - rebased on top of v5.11-rc1+ 2020-12-14: - rebased on top of v5.10 - added patch to chnage Vbus hold voltage to 4.5V on Pinephone (this makes PD charging more stable) 2020-12-11: - rebased on top of linus/master 2020-12-07: - rebased on top of 5.10-rc7 2020-12-05: - modem power driver: add more powerup modes and change interface for dumb and fastboot powerup - you can now write 2, 3 or 4 to .../powered sysfs file to select differnt powerup mode from the normal one (1) - this is useful for selecting alternate userspace configurations early in boot to allow tracing the userspace processes from early on for reverse engineering, and in the near future, it will be used to switch between original and fully-FOSS userspace code running on the modem's APPS CPU on powerup - see https://xnux.eu/log/#028 2020-12-02: - fix WiFi blocking suspend - improve modem power driver interaction with kernel's autosleep - shorten resume times from 1.2s to 400ms (wifi driver optimization) 2020-11-30: - I improved the anx7688 driver to actually respect PD capabilities of the source, and don't overload it. This should make it more likely to work with the USB-C docks when docks are powered. - Pine64 dock can provide either 500mA when powered from regular USB-A charger (regardless of what kind of charger it is, it can't use more current from it) - With my 3A PD charger, Pine64 dock will advertise 2600mA and Pinephone will now respect this limit. - rebase on linus/master (5.10-rc6 atm) - increase I2C clock for sensors and touchscreen/anx7688 from 100kHz to 400kHz - added patch from https://patchwork.kernel.org/project/dri-devel/cover/20200222024210.18697-1-yuq825@gmail.com/#23237865 for easier GPU debugging (suggested by bshah) 2020-11-28: - rebased on linus/master - replaced my 60FPS fix with a more mainlineable and better working solution from Roman Beranek - disable 8723cs CONCURRENT_MODE, enable wifi 802.11z TDLS 2020-11-25: - enable wifi power saving mode (saves 350mW in idle, and doesn't seem to break the wifi so far) 2020-11-25: - added a new 2020-10 wifi driver and cleaned up to work with PinePhone - see wifi-5.10 branch - rebased on linus/master 2020-11-23: - rebased, added modem power blocking mode (p-boot privacy support) 2020-11-17: - drop ov5640 AF patch 2020-11-17: - rebase on linux/master - fix camera probe 2020-11-15: - rebase on linux/master - add "retain LED state in sleep" patch 2020-11-13: - fix boot failure on pocketbook (see https://www.mail-archive.com/linux-crypto@vger.kernel.org/msg46288.html) 2020-11-13: - rebase on top of 5.10-rc3+ - update defconfigs 2020-11-10: - rebase on top of 5.10-rc3 2020-11-01: - added some musb suspend/resume fixes - fixed regulator probe on a711 - fix mmc device numbering - rebase on top of 5.10-rc2 2020-10-31: - rebased on top of 5.10-rc1+ - added ov5640 autofocus support from Martijn Braam (you'll need /lib/firmware/ov5640_af.bin) - added fix for DSI panel 36.6 FPS issue (myself) - import upstreamed variant of audio patches from Samuel 2020-10-25: - rebased on top of 5.10-rc1 2020-10-19: - fix orange pi 3 ethernet 2020-10-12: - fix issue with dsi clock described here: https://xnux.eu/log/#021 - rebase on v5.9 final - integrate pinetab panel patches from (untested) https://gitlab.com/pine64-org/linux/-/commits/pine64-kernel-5.7.y-pinetabpanel/ 2020-09-29: - add a few more codec API fixes from Samuel 2020-09-28: - rebase on top of 5.9-rc7 - integrated the newest audio patches from Samuel 2020-09-23: - port battery thermal regulation fix from p-boot (completely untested, see https://xnux.eu/log/#018) 2020-09-18: - cedrus panic fix - rebase on linus/master 2020-09-17: - further modem driver improvements (fix urc setting on old modem firmwares) 2020-09-13: - rebase on top of 5.9-rc5 2020-09-12: - rebase on top of 5.9-rc4+ 2020-09-10: - rebase on top of 5.9-rc4+ - further fixes for the modem driver poweron, support for fast poweroff feature present on new modem firmware - added flash DT changes - add mounting matrix and a kernel command line option to override it (ignore_mount_matrix) - https://xff.cz/kernels also contains special kernel builds for my multi-dist image (see https://xnux.eu/log/) - enabled opportunistic sleep - enabled btrfs support 2020-09-01: - rebase on top of 5.9-rc3 2020-08-19: - rebase and port to 5.9-rc1 - fix various issues with 5.9-rc1 - fix sleeps in atomic context in anx7688 driver - dropped panfrost dvfs patches for now (conflicts, stability issues) - fix modem UART issues on powerup (sometimes not receiving RDY, etc.) - root cause was host UART locking up due to noise on RX, and the fix is to only open UART port when the modem is powered 2020-08-11: - fix sun50i-codec-analog probe failure when built-in 2020-08-09: - pull in codec changes from Samuel - don't wait for RDY but poll with empty AT command for the modem's status 2020-08-06: - added Samuel's patch for making recording from the codec work again 2020-08-05: - modem driver fixes for BH 2020-08-03: - fixed AC100 driver to make it work without mod clock 2020-08-02: - integrated latest Samuel's audio patches + rebased my AC100 support on top - finished the modem-power driver into a hopefully useable state 2020-07-25: - rebased on top of 5.8-rc7+ - fixed modem driver issue with not shutting down the modem on poweroff/reset on PinePhone (introduced during modem driver rewrite around 5.8-rc5) - worked around AXP reseting input current limit to 500mA regardless of BC detection being disabled (happened on boot with USB-C cable connected to USB-C PD charger) (and reverted again) - improved modem driver - initialize the modem configuration for proper sleep - setup QDAI automatically from DTS - show modem firmware version in dmesg - added rfkill interface - handle URC caching during suspend 2020-07-16: - added HP jack detection patches from A-wai 2020-07-14: - added support for Pinebook Pro - fix issue in my bl_pwm PinePhone patch that broke Pinebook Pro's backlight 2020-07-13: - rebased on top of 5.8-rc5 - improved HW led trigger API - more modem-power work (change to serdev, recv messages from the modem) - support HDMI audio on PinePhone - bump PD power requirement to 15W on PinePhone 2020-07-08: - refactoring of the modem driver, moved to modem-5.8 branch (not finished yet, see TODO in the driver) - update pinephone 1.0-1.2 dts to reflect the differences in modem setup - enable orange pi 3 hdmi audio 2020-07-06: - rebased on top of 5.8-rc4 2020-07-05: - Added fixes for PinePhone panel initialization after resume from sleep 2020-07-04: - Integrated Clément's HDMI audio series (20200704113902.336911-1-peron.clem@gmail.com) - Integrated Clément's panfrost DVFS series (20200704102535.189647-1-peron.clem@gmail.com) My kernel's main integration branch is 'orange-pi-$VER' (this one). No other branch is supposed to work alone. My defconfigs are tested and work on the boards I support. Read the README.md for more info. Only my branches based on the current mainline kernel branch are maintained (those are usually the -rc# kernels!). You can find the current mainline version here https://www.kernel.org/ (mainline: ...) My prebuilt kernels can be found at https://xff.cz/kernels/ You can use them to test that your board works, or just run them without bothering with building everything yourself. I run them on all my boards. My website is https://xnux.eu and may contain useful advice. Good luck! ~megi -
-
-
-