Compare commits

..
Author SHA1 Message Date
Richard Acayan 95ac806b5d google-bonito: mirror sargo changes
Mirror the following changes to the Pixel 3a:

    device-google-sargo: add sensors support (MR 5329)
    google-sargo: add gpi to modules-initfs to fix fde (MR 5347)
    google-sargo: do not enable HexagonRPCD on every upgrade (MR 5400)
    google-sargo: stop HexagonRPCD on suspend (MR 5400)
    google-sargo: make necessary userspace changes for kernel v6.10.2
2024-09-30 18:43:55 -04:00
68 changed files with 501 additions and 19122 deletions

No files matched your search

@@ -1,8 +1,8 @@
# Maintainer: Adam Thiede <me@adamthiede.com>
# Co-Maintainer: Jenneron <jenneron@protonmail.com>
pkgname=linux-postmarketos-mediatek-mt8173
pkgver=6.11.1
pkgrel=0
pkgver=6.10.10
pkgrel=2
pkgdesc="Mainline kernel fork for Mediatek MT8173 devices"
arch="aarch64"
_carch="arm64"
@@ -37,7 +37,6 @@ source="
https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-${pkgver//_/-}.tar.xz
$_config
fix-mmc-order.patch
revert-drm-change.patch
"
builddir="$srcdir/linux-${_kernver//_/-}"
@@ -67,8 +66,7 @@ package() {
}
sha512sums="
026b8fe7a1eaacf832e9d0da08861869542248ef89daade3292d1e11b886788e2b1e4c8828b0509c454aedfdc7f22e9afbb446033072ebabf8c02fd5f5bf0d7f linux-6.11.1.tar.xz
18f9f5d61a02558cc3a8fbc6311d6d05853e62bac5592ee24c4314d8e63bc2fc50914607cdabbb9e6a9d4c3d3a95100bfc71326387bc2303fa78773e33a042bd config-postmarketos-mediatek-mt8173.aarch64
affaa3690150ca13f0ee14f91f0e09a5ad3340a7ea6404e34286dfb4bd4fdfe12fcac47e83da7878681bf28a8a8b78e0b315e1563408885dbb07aac5bd2e4dce linux-6.10.10.tar.xz
44c35de93ea3bfe214585c4b8909613b17a6e280765ab84352e3d07490a42403e3e68ab7f26eb9442004a1ee7f78ef0fd6ebdeab01561ac84a8073d817ca3434 config-postmarketos-mediatek-mt8173.aarch64
c86f8dfc32165a32381d45a4c8b6811ebf43f01b5d8a48fbe227cf5084cfefe24b32264c1c150cb49115db4759a2d21ad48b37dcaac78367d226e9cc2a5ba849 fix-mmc-order.patch
837e3cbd28f5948beb6f71ce6c39cd738ce5916596c9c3d9727621b7441268a415ec8487dc6b8ae936ac9193bbbd23ebcf023419357e1e1ec5b9d1a9ffc52452 revert-drm-change.patch
"
@@ -1,18 +1,21 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 6.11.1 Kernel Configuration
# Linux/arm64 6.10.10 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="aarch64-alpine-linux-musl-gcc (Alpine 14.2.0) 14.2.0"
CONFIG_CC_VERSION_TEXT="gcc (Alpine 14.2.0) 14.2.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=140200
CONFIG_CLANG_VERSION=0
CONFIG_AS_IS_GNU=y
CONFIG_AS_VERSION=24200
CONFIG_AS_VERSION=24301
CONFIG_LD_IS_BFD=y
CONFIG_LD_VERSION=24200
CONFIG_LD_VERSION=24301
CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y
CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y
CONFIG_TOOLS_SUPPORT_RELR=y
CONFIG_CC_HAS_ASM_INLINE=y
CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y
CONFIG_PAHOLE_VERSION=0
@@ -175,7 +178,7 @@ CONFIG_CGROUPS=y
CONFIG_PAGE_COUNTER=y
# CONFIG_CGROUP_FAVOR_DYNMODS is not set
CONFIG_MEMCG=y
# CONFIG_MEMCG_V1 is not set
CONFIG_MEMCG_KMEM=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_WRITEBACK=y
CONFIG_CGROUP_SCHED=y
@@ -534,7 +537,6 @@ CONFIG_ARM64_CONTPTE=y
CONFIG_CMDLINE=""
CONFIG_EFI_STUB=y
CONFIG_EFI=y
# CONFIG_COMPRESSED_INSTALL is not set
CONFIG_DMI=y
# end of Boot options
@@ -757,6 +759,7 @@ CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
CONFIG_ARCH_USE_MEMREMAP_PROT=y
# CONFIG_LOCK_EVENT_COUNTS is not set
CONFIG_ARCH_HAS_RELR=y
CONFIG_RELR=y
CONFIG_HAVE_PREEMPT_DYNAMIC=y
CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y
CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
@@ -808,6 +811,7 @@ CONFIG_BLK_CGROUP_PUNT_BIO=y
CONFIG_BLK_DEV_BSG_COMMON=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_INTEGRITY_T10=y
CONFIG_BLK_DEV_WRITE_MOUNTED=y
# CONFIG_BLK_DEV_ZONED is not set
CONFIG_BLK_DEV_THROTTLING=y
@@ -894,7 +898,6 @@ CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud"
CONFIG_ZBUD=y
CONFIG_Z3FOLD=y
CONFIG_HAVE_ZSMALLOC=y
CONFIG_ZSMALLOC=y
# CONFIG_ZSMALLOC_STAT is not set
CONFIG_ZSMALLOC_CHAIN_SIZE=8
@@ -906,7 +909,6 @@ CONFIG_SLUB=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLAB_FREELIST_RANDOM is not set
# CONFIG_SLAB_FREELIST_HARDENED is not set
# CONFIG_SLAB_BUCKETS is not set
# CONFIG_SLUB_STATS is not set
CONFIG_SLUB_CPU_PARTIAL=y
# CONFIG_RANDOM_KMALLOC_CACHES is not set
@@ -1403,7 +1405,6 @@ CONFIG_NET_DSA_TAG_BRCM_PREPEND=m
# CONFIG_NET_DSA_TAG_LAN9303 is not set
# CONFIG_NET_DSA_TAG_SJA1105 is not set
# CONFIG_NET_DSA_TAG_TRAILER is not set
# CONFIG_NET_DSA_TAG_VSC73XX_8021Q is not set
# CONFIG_NET_DSA_TAG_XRS700X is not set
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
@@ -1721,6 +1722,7 @@ CONFIG_PCI_HOST_COMMON=y
CONFIG_PCI_HOST_GENERIC=y
# CONFIG_PCIE_MEDIATEK is not set
# CONFIG_PCIE_MEDIATEK_GEN3 is not set
# CONFIG_PCIE_MICROCHIP_HOST is not set
CONFIG_PCI_XGENE=y
CONFIG_PCI_XGENE_MSI=y
# CONFIG_PCIE_XILINX is not set
@@ -1749,12 +1751,6 @@ CONFIG_PCIE_KIRIN=y
# Mobiveil-based PCIe controllers
#
# end of Mobiveil-based PCIe controllers
#
# PLDA-based PCIe controllers
#
# CONFIG_PCIE_MICROCHIP_HOST is not set
# end of PLDA-based PCIe controllers
# end of PCI controller drivers
#
@@ -2196,7 +2192,6 @@ CONFIG_EEPROM_93CX6=m
CONFIG_UACCE=m
# CONFIG_PVPANIC is not set
# CONFIG_GP_PCI1XXXX is not set
# CONFIG_KEBA_CP500 is not set
# end of Misc devices
#
@@ -2585,7 +2580,6 @@ CONFIG_SKY2=y
# CONFIG_PRESTERA is not set
# CONFIG_NET_VENDOR_MEDIATEK is not set
# CONFIG_NET_VENDOR_MELLANOX is not set
# CONFIG_NET_VENDOR_META is not set
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_NET_VENDOR_MICROSEMI is not set
@@ -2782,7 +2776,6 @@ CONFIG_MDIO_BUS_MUX_MMIOREG=m
#
# PCS device drivers
#
# CONFIG_PCS_XPCS is not set
# end of PCS device drivers
# CONFIG_PPP is not set
@@ -2854,7 +2847,6 @@ CONFIG_ATH10K_SDIO=m
# CONFIG_ATH10K_USB is not set
CONFIG_ATH10K_DEBUG=y
CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K_LEDS=y
# CONFIG_ATH10K_SPECTRAL is not set
# CONFIG_ATH10K_TRACING is not set
CONFIG_WCN36XX=m
@@ -2943,7 +2935,6 @@ CONFIG_RTL_CARDS=m
# CONFIG_RTL8192EE is not set
# CONFIG_RTL8821AE is not set
# CONFIG_RTL8192CU is not set
# CONFIG_RTL8192DU is not set
CONFIG_RTL8XXXU=m
# CONFIG_RTL8XXXU_UNTESTED is not set
# CONFIG_RTW88 is not set
@@ -3485,7 +3476,6 @@ CONFIG_SPI_MEM=y
# CONFIG_SPI_CADENCE is not set
CONFIG_SPI_CADENCE_QUADSPI=y
# CONFIG_SPI_CADENCE_XSPI is not set
# CONFIG_SPI_CH341 is not set
CONFIG_SPI_DESIGNWARE=m
CONFIG_SPI_DW_DMA=y
# CONFIG_SPI_DW_PCI is not set
@@ -3574,7 +3564,6 @@ CONFIG_PINCTRL_MAX77620=y
CONFIG_PINCTRL_SINGLE=y
# CONFIG_PINCTRL_STMFX is not set
# CONFIG_PINCTRL_SX150X is not set
# CONFIG_PINCTRL_IMX_SCMI is not set
#
# MediaTek pinctrl drivers
@@ -3703,12 +3692,6 @@ CONFIG_GPIO_MAX77620=y
# CONFIG_GPIO_SIM is not set
# end of Virtual GPIO drivers
#
# GPIO Debugging utilities
#
# CONFIG_GPIO_VIRTUSER is not set
# end of GPIO Debugging utilities
# CONFIG_W1 is not set
CONFIG_POWER_RESET=y
# CONFIG_POWER_RESET_GPIO is not set
@@ -3723,7 +3706,6 @@ CONFIG_POWER_RESET_SYSCON=y
CONFIG_REBOOT_MODE=y
CONFIG_SYSCON_REBOOT_MODE=y
# CONFIG_NVMEM_REBOOT_MODE is not set
# CONFIG_POWER_SEQUENCING is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
CONFIG_POWER_SUPPLY_HWMON=y
@@ -3745,7 +3727,6 @@ CONFIG_BATTERY_BQ27XXX_I2C=y
# CONFIG_AXP20X_POWER is not set
# CONFIG_BATTERY_MAX17040 is not set
CONFIG_BATTERY_MAX17042=m
# CONFIG_BATTERY_MAX1720X is not set
# CONFIG_CHARGER_ISP1704 is not set
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_LP8727 is not set
@@ -3810,7 +3791,6 @@ CONFIG_SENSORS_ARM_SCPI=y
# CONFIG_SENSORS_CHIPCAP2 is not set
# CONFIG_SENSORS_CORSAIR_CPRO is not set
# CONFIG_SENSORS_CORSAIR_PSU is not set
CONFIG_SENSORS_CROS_EC=y
# CONFIG_SENSORS_DRIVETEMP is not set
# CONFIG_SENSORS_DS620 is not set
# CONFIG_SENSORS_DS1621 is not set
@@ -3930,7 +3910,6 @@ CONFIG_SENSORS_PWM_FAN=m
CONFIG_SENSORS_INA2XX=m
# CONFIG_SENSORS_INA238 is not set
CONFIG_SENSORS_INA3221=m
# CONFIG_SENSORS_SPD5118 is not set
# CONFIG_SENSORS_TC74 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP102 is not set
@@ -4079,7 +4058,6 @@ CONFIG_MFD_HI6421_PMIC=y
# CONFIG_MFD_88PM800 is not set
# CONFIG_MFD_88PM805 is not set
# CONFIG_MFD_88PM860X is not set
# CONFIG_MFD_88PM886_PMIC is not set
# CONFIG_MFD_MAX14577 is not set
# CONFIG_MFD_MAX77541 is not set
CONFIG_MFD_MAX77620=y
@@ -4156,14 +4134,11 @@ CONFIG_MFD_SYSCON=y
CONFIG_MFD_ROHM_BD718XX=y
# CONFIG_MFD_ROHM_BD71828 is not set
# CONFIG_MFD_ROHM_BD957XMUF is not set
# CONFIG_MFD_ROHM_BD96801 is not set
# CONFIG_MFD_STPMIC1 is not set
# CONFIG_MFD_STMFX is not set
CONFIG_MFD_WCD934X=m
# CONFIG_MFD_ATC260X_I2C is not set
# CONFIG_MFD_QCOM_PM8008 is not set
# CONFIG_MFD_CS40L50_I2C is not set
# CONFIG_MFD_CS40L50_SPI is not set
# CONFIG_RAVE_SP_CORE is not set
# CONFIG_MFD_INTEL_M10_BMC_SPI is not set
# CONFIG_MFD_RSMU_I2C is not set
@@ -4461,7 +4436,6 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y
#
# Chips&Media media platform drivers
#
# CONFIG_VIDEO_E5010_JPEG_ENC is not set
#
# Intel media platform drivers
@@ -4503,11 +4477,6 @@ CONFIG_VIDEO_MEDIATEK_VPU=m
# Qualcomm media platform drivers
#
#
# Raspberry Pi media platform drivers
#
# CONFIG_VIDEO_RASPBERRYPI_PISP_BE is not set
#
# Renesas media platform drivers
#
@@ -4572,8 +4541,6 @@ CONFIG_VIDEO_CAMERA_SENSOR=y
# CONFIG_VIDEO_ALVIUM_CSI2 is not set
# CONFIG_VIDEO_AR0521 is not set
# CONFIG_VIDEO_GC0308 is not set
# CONFIG_VIDEO_GC05A2 is not set
# CONFIG_VIDEO_GC08A3 is not set
# CONFIG_VIDEO_GC2145 is not set
# CONFIG_VIDEO_HI556 is not set
# CONFIG_VIDEO_HI846 is not set
@@ -4583,7 +4550,6 @@ CONFIG_VIDEO_CAMERA_SENSOR=y
CONFIG_VIDEO_IMX219=m
# CONFIG_VIDEO_IMX258 is not set
# CONFIG_VIDEO_IMX274 is not set
# CONFIG_VIDEO_IMX283 is not set
# CONFIG_VIDEO_IMX290 is not set
# CONFIG_VIDEO_IMX296 is not set
# CONFIG_VIDEO_IMX319 is not set
@@ -4639,7 +4605,7 @@ CONFIG_VIDEO_OV5645=m
# CONFIG_VIDEO_S5C73M3 is not set
# CONFIG_VIDEO_S5K5BAF is not set
# CONFIG_VIDEO_S5K6A3 is not set
# CONFIG_VIDEO_VGXY61 is not set
# CONFIG_VIDEO_ST_VGXY61 is not set
# CONFIG_VIDEO_CCS is not set
# CONFIG_VIDEO_ET8EK8 is not set
@@ -4682,8 +4648,6 @@ CONFIG_VIDEO_OV5645=m
# CONFIG_VIDEO_DS90UB913 is not set
# CONFIG_VIDEO_DS90UB953 is not set
# CONFIG_VIDEO_DS90UB960 is not set
# CONFIG_VIDEO_MAX96714 is not set
# CONFIG_VIDEO_MAX96717 is not set
# end of Video serializers and deserializers
#
@@ -4776,21 +4740,18 @@ CONFIG_DRM_KMS_HELPER=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_DISPLAY_DP_AUX_BUS=y
CONFIG_DRM_DISPLAY_HELPER=y
CONFIG_DRM_BRIDGE_CONNECTOR=y
CONFIG_DRM_DISPLAY_DP_AUX_BUS=y
# CONFIG_DRM_DISPLAY_DP_AUX_CEC is not set
# CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV is not set
CONFIG_DRM_DISPLAY_DP_HELPER=y
CONFIG_DRM_DISPLAY_HDCP_HELPER=y
CONFIG_DRM_DISPLAY_HDMI_HELPER=y
CONFIG_DRM_DISPLAY_HDMI_STATE_HELPER=y
CONFIG_DRM_TTM=m
CONFIG_DRM_EXEC=y
CONFIG_DRM_GPUVM=y
CONFIG_DRM_VRAM_HELPER=m
CONFIG_DRM_TTM_HELPER=m
CONFIG_DRM_GEM_DMA_HELPER=y
CONFIG_DRM_GEM_DMA_HELPER=m
CONFIG_DRM_GEM_SHMEM_HELPER=y
CONFIG_DRM_SCHED=y
@@ -4844,13 +4805,11 @@ CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=y
# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
# CONFIG_DRM_PANEL_DSI_CM is not set
CONFIG_DRM_PANEL_LVDS=y
# CONFIG_DRM_PANEL_HIMAX_HX83102 is not set
# CONFIG_DRM_PANEL_HIMAX_HX83112A is not set
# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set
# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9805 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9806E is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9882T is not set
# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set
@@ -4863,7 +4822,6 @@ CONFIG_DRM_PANEL_INNOLUX_P079ZCA=y
CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=y
# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set
# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set
# CONFIG_DRM_PANEL_LINCOLNTECH_LCD197 is not set
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LG_SW43408 is not set
@@ -5086,7 +5044,6 @@ CONFIG_BACKLIGHT_PWM=y
# CONFIG_BACKLIGHT_QCOM_WLED is not set
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
# CONFIG_BACKLIGHT_LM3509 is not set
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
# CONFIG_BACKLIGHT_LP855X is not set
@@ -5326,7 +5283,6 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_AK4458 is not set
# CONFIG_SND_SOC_AK4554 is not set
CONFIG_SND_SOC_AK4613=m
# CONFIG_SND_SOC_AK4619 is not set
# CONFIG_SND_SOC_AK4642 is not set
# CONFIG_SND_SOC_AK5386 is not set
# CONFIG_SND_SOC_AK5558 is not set
@@ -5370,7 +5326,6 @@ CONFIG_SND_SOC_CROS_EC_CODEC=m
# CONFIG_SND_SOC_CS4341 is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
# CONFIG_SND_SOC_CS530X_I2C is not set
# CONFIG_SND_SOC_CX2072X is not set
# CONFIG_SND_SOC_DA7213 is not set
CONFIG_SND_SOC_DA7219=m
@@ -5378,7 +5333,6 @@ CONFIG_SND_SOC_DMIC=m
CONFIG_SND_SOC_HDMI_CODEC=y
CONFIG_SND_SOC_ES7134=m
CONFIG_SND_SOC_ES7241=m
# CONFIG_SND_SOC_ES8311 is not set
# CONFIG_SND_SOC_ES8316 is not set
# CONFIG_SND_SOC_ES8326 is not set
# CONFIG_SND_SOC_ES8328_I2C is not set
@@ -5426,7 +5380,6 @@ CONFIG_SND_SOC_RT1015P=m
# CONFIG_SND_SOC_RT1308_SDW is not set
# CONFIG_SND_SOC_RT1316_SDW is not set
# CONFIG_SND_SOC_RT1318_SDW is not set
# CONFIG_SND_SOC_RT1320_SDW is not set
CONFIG_SND_SOC_RT5514=m
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
@@ -5493,7 +5446,6 @@ CONFIG_SND_SOC_WCD_CLASSH=m
CONFIG_SND_SOC_WCD9335=m
CONFIG_SND_SOC_WCD_MBHC=m
CONFIG_SND_SOC_WCD934X=m
# CONFIG_SND_SOC_WCD937X_SDW is not set
# CONFIG_SND_SOC_WCD938X_SDW is not set
# CONFIG_SND_SOC_WCD939X_SDW is not set
# CONFIG_SND_SOC_WM8510 is not set
@@ -6161,7 +6113,6 @@ CONFIG_LEDS_CLASS_MULTICOLOR=m
# CONFIG_LEDS_BCM6328 is not set
# CONFIG_LEDS_BCM6358 is not set
# CONFIG_LEDS_CR0014114 is not set
CONFIG_LEDS_CROS_EC=m
# CONFIG_LEDS_EL15203000 is not set
# CONFIG_LEDS_LM3530 is not set
# CONFIG_LEDS_LM3532 is not set
@@ -6238,7 +6189,6 @@ CONFIG_LEDS_TRIGGER_PANIC=y
# CONFIG_LEDS_TRIGGER_NETDEV is not set
CONFIG_LEDS_TRIGGER_PATTERN=y
# CONFIG_LEDS_TRIGGER_TTY is not set
# CONFIG_LEDS_TRIGGER_INPUT_EVENTS is not set
#
# Simple LED drivers
@@ -6588,10 +6538,10 @@ CONFIG_CROS_EC_TYPEC=m
# CONFIG_CROS_HPS_I2C is not set
CONFIG_CROS_USBPD_LOGGER=m
CONFIG_CROS_USBPD_NOTIFY=y
# CONFIG_CZNIC_PLATFORMS is not set
# CONFIG_MELLANOX_PLATFORM is not set
CONFIG_SURFACE_PLATFORMS=y
CONFIG_ARM64_PLATFORM_DEVICES=y
# CONFIG_EC_ACER_ASPIRE1 is not set
CONFIG_HAVE_CLK=y
CONFIG_HAVE_CLK_PREPARE=y
CONFIG_COMMON_CLK=y
@@ -7067,7 +7017,6 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
# CONFIG_AD7291 is not set
# CONFIG_AD7292 is not set
# CONFIG_AD7298 is not set
# CONFIG_AD7380 is not set
# CONFIG_AD7476 is not set
# CONFIG_AD7606_IFACE_PARALLEL is not set
# CONFIG_AD7606_IFACE_SPI is not set
@@ -7082,6 +7031,7 @@ CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
# CONFIG_AD7949 is not set
# CONFIG_AD799X is not set
# CONFIG_AD9467 is not set
# CONFIG_ADI_AXI_ADC is not set
# CONFIG_AXP20X_ADC is not set
# CONFIG_AXP288_ADC is not set
# CONFIG_CC10001_ADC is not set
@@ -7107,7 +7057,6 @@ CONFIG_MAX9611=m
# CONFIG_MCP3422 is not set
# CONFIG_MCP3564 is not set
# CONFIG_MCP3911 is not set
# CONFIG_MEDIATEK_MT6359_AUXADC is not set
# CONFIG_MEDIATEK_MT6360_ADC is not set
CONFIG_MEDIATEK_MT6577_AUXADC=m
# CONFIG_NAU7802 is not set
@@ -7126,7 +7075,6 @@ CONFIG_QCOM_SPMI_ADC5=m
# CONFIG_TI_ADC128S052 is not set
# CONFIG_TI_ADC161S626 is not set
CONFIG_TI_ADS1015=m
# CONFIG_TI_ADS1119 is not set
# CONFIG_TI_ADS7924 is not set
# CONFIG_TI_ADS1100 is not set
# CONFIG_TI_ADS1298 is not set
@@ -7178,7 +7126,6 @@ CONFIG_TI_ADS1015=m
# CONFIG_ATLAS_EZO_SENSOR is not set
# CONFIG_BME680 is not set
# CONFIG_CCS811 is not set
# CONFIG_ENS160 is not set
# CONFIG_IAQCORE is not set
# CONFIG_PMS7003 is not set
# CONFIG_SCD30_CORE is not set
@@ -7232,6 +7179,7 @@ CONFIG_IIO_ST_SENSORS_CORE=m
# CONFIG_AD5504 is not set
# CONFIG_AD5624R_SPI is not set
# CONFIG_AD9739A is not set
# CONFIG_ADI_AXI_DAC is not set
# CONFIG_LTC2688 is not set
# CONFIG_AD5686_SPI is not set
# CONFIG_AD5696_I2C is not set
@@ -7427,7 +7375,6 @@ CONFIG_SENSORS_ISL29018=m
CONFIG_VCNL4000=m
# CONFIG_VCNL4035 is not set
# CONFIG_VEML6030 is not set
# CONFIG_VEML6040 is not set
# CONFIG_VEML6070 is not set
# CONFIG_VEML6075 is not set
# CONFIG_VL6180 is not set
@@ -7593,7 +7540,6 @@ CONFIG_PWM=y
CONFIG_PWM_CROS_EC=y
# CONFIG_PWM_DWC is not set
# CONFIG_PWM_FSL_FTM is not set
# CONFIG_PWM_GPIO is not set
CONFIG_PWM_MTK_DISP=y
CONFIG_PWM_MEDIATEK=y
# CONFIG_PWM_PCA9685 is not set
@@ -7609,9 +7555,7 @@ CONFIG_ARM_GIC_V2M=y
CONFIG_ARM_GIC_V3=y
CONFIG_ARM_GIC_V3_ITS=y
CONFIG_ARM_GIC_V3_ITS_PCI=y
CONFIG_IRQ_MSI_LIB=y
# CONFIG_AL_FIC is not set
# CONFIG_LAN966X_OIC is not set
# CONFIG_XILINX_INTC is not set
CONFIG_PARTITION_PERCPU=y
CONFIG_MST_IRQ=y
@@ -7758,7 +7702,6 @@ CONFIG_PM_OPP=y
CONFIG_SLIMBUS=m
CONFIG_SLIM_QCOM_CTRL=m
CONFIG_INTERCONNECT=y
# CONFIG_INTERCONNECT_MTK is not set
# CONFIG_COUNTER is not set
# CONFIG_MOST is not set
# CONFIG_PECI is not set
@@ -7853,7 +7796,6 @@ CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
#
CONFIG_NETFS_SUPPORT=y
# CONFIG_NETFS_STATS is not set
# CONFIG_NETFS_DEBUG is not set
# CONFIG_FSCACHE is not set
# end of Caches
@@ -8178,6 +8120,7 @@ CONFIG_CRYPTO_ECC=m
CONFIG_CRYPTO_ECDH=m
# CONFIG_CRYPTO_ECDSA is not set
# CONFIG_CRYPTO_ECRDSA is not set
# CONFIG_CRYPTO_SM2 is not set
# CONFIG_CRYPTO_CURVE25519 is not set
# end of Public-key cryptography
@@ -1,27 +0,0 @@
From 94cb0ae98fc7e8e0ad0dc4e0d8f0dde2beb681a8 Mon Sep 17 00:00:00 2001
From: Adam Thiede <me@adamthiede.com>
Date: Mon, 30 Sep 2024 08:08:23 -0500
Subject: [PATCH] Revert "drm/mediatek: Support DRM plane alpha in OVL"
This reverts commit bc46eb5d5d7780782c70c7915f59ed25a908d550.
---
drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
index 9d6d9fd8342e41..3cf02b4eaff6d1 100644
--- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
+++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
@@ -453,10 +453,8 @@ void mtk_ovl_layer_config(struct device *dev, unsigned int idx,
}
con = ovl_fmt_convert(ovl, fmt);
- if (state->base.fb) {
- con |= OVL_CON_AEN;
- con |= state->base.alpha & OVL_CON_ALPHA;
- }
+ if (state->base.fb && state->base.fb->format->has_alpha)
+ con |= OVL_CON_AEN | OVL_CON_ALPHA;
/* CONST_BLD must be enabled for XRGB formats although the alpha channel
* can be ignored, or OVL will still read the value from memory.
@@ -1,4 +1,4 @@
From b1aa006649db47a3a7f4f8a0cb9867bc553d9609 Mon Sep 17 00:00:00 2001
From d4332814a2b716a54a743412559cd98cb050d652 Mon Sep 17 00:00:00 2001
From: Martijn Braam <martijn@brixit.nl>
Date: Sat, 20 Apr 2019 01:19:48 +0200
Subject: [PATCH] dts: add dontbeevil (pinephone devkit)
@@ -17,7 +17,7 @@ Subject: [PATCH] dts: add dontbeevil (pinephone devkit)
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-dontbeevil.dts
diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
index 0a0ec8a39259..0fb55ce917d7 100644
index 38867649c063..5cddf8655d64 100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -1,6 +1,8 @@
@@ -532,5 +532,5 @@ index 000000000000..15a91f2d6202
+ status = "disabled";
+};
--
2.46.1
2.45.0
@@ -1,4 +1,4 @@
From 5c671df3771c2ccda1e3537949050bab1d012e8f Mon Sep 17 00:00:00 2001
From 915dabee2a8213d0fc343179e815d4639c184d32 Mon Sep 17 00:00:00 2001
From: Martijn Braam <martijn@brixit.nl>
Date: Tue, 20 Oct 2020 14:42:01 +0200
Subject: [PATCH] dts: add pinetab-dev (old display panel)
@@ -10,7 +10,7 @@ Subject: [PATCH] dts: add pinetab-dev (old display panel)
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab-dev.dts
diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
index 0fb55ce917d7..c17cc1afa402 100644
index 5cddf8655d64..8cfed65e268d 100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -17,6 +17,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2.dtb
@@ -57,5 +57,5 @@ index 000000000000..1e287f2fb9f3
+ };
+};
--
2.46.1
2.45.0
@@ -1,4 +1,4 @@
From c52f6eb387d094ea181bb156440b9f5014361b39 Mon Sep 17 00:00:00 2001
From 388517c7e13be56a364e48820e64a7f9376b1248 Mon Sep 17 00:00:00 2001
From: Oliver Smith <ollieparanoid@postmarketos.org>
Date: Tue, 20 Oct 2020 11:11:48 +0200
Subject: [PATCH] dts: pinetab: add missing ohci1
@@ -13,7 +13,7 @@ https://gitlab.com/pine64-org/linux/-/commit/69ae7087ec51b09bb6a0afb53dddb5eb030
1 file changed, 4 insertions(+)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts
index 419fe19b4a6f..e30034a1553b 100644
index 37466d70bb25..29e527e499db 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts
@@ -311,6 +311,10 @@ &ohci0 {
@@ -28,5 +28,5 @@ index 419fe19b4a6f..e30034a1553b 100644
status = "okay";
};
--
2.46.1
2.45.0
@@ -1,4 +1,4 @@
From 91f8fcf39d8465ba7d6c8147650eb564915225e6 Mon Sep 17 00:00:00 2001
From eba1ff43e3bb9c7624f9678e7e9528663f89380e Mon Sep 17 00:00:00 2001
From: Martijn Braam <martijn@brixit.nl>
Date: Tue, 20 Oct 2020 14:44:51 +0200
Subject: [PATCH] dts: pinetab: make audio routing consistent with
@@ -9,7 +9,7 @@ Subject: [PATCH] dts: pinetab: make audio routing consistent with
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts
index e30034a1553b..b2a3c0f97ce1 100644
index 29e527e499db..230eedb39d50 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts
@@ -494,13 +494,13 @@ &sound {
@@ -32,5 +32,5 @@ index e30034a1553b..b2a3c0f97ce1 100644
"ADCR", "Right ADC",
"Internal Microphone Left", "MBIAS",
--
2.46.1
2.45.0
@@ -1,4 +1,4 @@
From 48e55b423aa0347751c58c90c5d6846943736122 Mon Sep 17 00:00:00 2001
From 2ee09f1d8da9d5fcf7b2579525c87151ee0896a2 Mon Sep 17 00:00:00 2001
From: Clayton Craft <clayton@craftyguy.net>
Date: Wed, 16 Dec 2020 20:16:14 -0800
Subject: [PATCH] dts: pinephone: drop modem-power node
@@ -139,7 +139,7 @@ index ec4927dfe9dc..57b651d695af 100644
+ gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL6 */
+};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
index dcd392fe6027..24b7f01fd901 100644
index fe7f2113a727..68392dee4407 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
@@ -310,6 +310,17 @@ ec25_codec: ec25-codec {
@@ -160,7 +160,7 @@ index dcd392fe6027..24b7f01fd901 100644
i2c_csi: i2c-csi {
compatible = "i2c-gpio";
sda-gpios = <&pio 4 13 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; /* PE13 */
@@ -389,6 +400,7 @@ reg_usb_5v: usb-5v {
@@ -382,6 +393,7 @@ reg_usb_5v: usb-5v {
reg_vbat_bb: vbat-bb {
compatible = "regulator-fixed";
regulator-name = "vbat-bb";
@@ -169,5 +169,5 @@ index dcd392fe6027..24b7f01fd901 100644
regulator-max-microvolt = <3500000>;
gpio = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
--
2.46.1
2.45.0
@@ -1,4 +1,4 @@
From 39c6fba7dd220d7349e0a425e9aaaabe979dd924 Mon Sep 17 00:00:00 2001
From dee9e527e2f59edf679dffbd0dad2179be9e9965 Mon Sep 17 00:00:00 2001
From: JuniorJPDJ <git@juniorjpdj.pl>
Date: Tue, 23 Mar 2021 12:27:30 +0100
Subject: [PATCH] drm: panel: simple: Add Hannstar TQTM070CB501
@@ -8,10 +8,10 @@ Subject: [PATCH] drm: panel: simple: Add Hannstar TQTM070CB501
1 file changed, 27 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index bf40057c5cf3..55a8d221b002 100644
index 20e3df1c59d4..d37108020fb7 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -2381,6 +2381,30 @@ static const struct panel_desc hannstar_hsd101pww2 = {
@@ -2344,6 +2344,30 @@ static const struct panel_desc hannstar_hsd101pww2 = {
.connector_type = DRM_MODE_CONNECTOR_LVDS,
};
@@ -42,7 +42,7 @@ index bf40057c5cf3..55a8d221b002 100644
static const struct drm_display_mode hitachi_tx23d38vm0caa_mode = {
.clock = 33333,
.hdisplay = 800,
@@ -4717,6 +4741,9 @@ static const struct of_device_id platform_of_match[] = {
@@ -4513,6 +4537,9 @@ static const struct of_device_id platform_of_match[] = {
}, {
.compatible = "hit,tx23d38vm0caa",
.data = &hitachi_tx23d38vm0caa
@@ -53,5 +53,5 @@ index bf40057c5cf3..55a8d221b002 100644
.compatible = "innolux,at043tn24",
.data = &innolux_at043tn24,
--
2.46.1
2.45.0
@@ -1,4 +1,4 @@
From 21d71ed910712ed81eef6cf6254d89fe6d49c3a1 Mon Sep 17 00:00:00 2001
From 538c7faf1059027cb62f2e5ec4931a8fccaa3976 Mon Sep 17 00:00:00 2001
From: JuniorJPDJ <git@juniorjpdj.pl>
Date: Tue, 23 Mar 2021 12:29:37 +0100
Subject: [PATCH] ARM: dts: sun6i: Add GoClever Orion 70L tablet
@@ -10,10 +10,10 @@ Subject: [PATCH] ARM: dts: sun6i: Add GoClever Orion 70L tablet
create mode 100644 arch/arm/boot/dts/allwinner/sun6i-a31s-goclever-gcta741l.dts
diff --git a/arch/arm/boot/dts/allwinner/Makefile b/arch/arm/boot/dts/allwinner/Makefile
index 54b156fca9bf..77593039273c 100644
index 7c7fb94d2153..097614b95ff2 100644
--- a/arch/arm/boot/dts/allwinner/Makefile
+++ b/arch/arm/boot/dts/allwinner/Makefile
@@ -111,6 +111,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \
@@ -110,6 +110,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \
sun6i-a31-mele-a1000g-quad.dtb \
sun6i-a31s-colorfly-e708-q1.dtb \
sun6i-a31s-cs908.dtb \
@@ -131,5 +131,5 @@ index 000000000000..4fcba20ffe48
+ status = "okay";
+};
--
2.46.1
2.45.0
@@ -1,4 +1,4 @@
From 6aa3e90d38c53c76b31ecc33e190605f0b63d554 Mon Sep 17 00:00:00 2001
From c8bf750c05bff5c271c1f51135d75e5641b0c58a Mon Sep 17 00:00:00 2001
From: JuniorJPDJ <git@juniorjpdj.pl>
Date: Thu, 25 Mar 2021 19:11:22 +0100
Subject: [PATCH] drm: panel: simple: Add Hannstar HSD070IDW1-A
@@ -8,10 +8,10 @@ Subject: [PATCH] drm: panel: simple: Add Hannstar HSD070IDW1-A
1 file changed, 27 insertions(+)
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 55a8d221b002..abdf57dc2a63 100644
index d37108020fb7..b269ddadd64f 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -2301,6 +2301,30 @@ static const struct panel_desc giantplus_gpm940b0 = {
@@ -2264,6 +2264,30 @@ static const struct panel_desc giantplus_gpm940b0 = {
.bus_flags = DRM_BUS_FLAG_DE_HIGH | DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE,
};
@@ -42,7 +42,7 @@ index 55a8d221b002..abdf57dc2a63 100644
static const struct display_timing hannstar_hsd070pww1_timing = {
.pixelclock = { 64300000, 71100000, 82000000 },
.hactive = { 1280, 1280, 1280 },
@@ -4729,6 +4753,9 @@ static const struct of_device_id platform_of_match[] = {
@@ -4525,6 +4549,9 @@ static const struct of_device_id platform_of_match[] = {
}, {
.compatible = "giantplus,gpm940b0",
.data = &giantplus_gpm940b0,
@@ -53,5 +53,5 @@ index 55a8d221b002..abdf57dc2a63 100644
.compatible = "hannstar,hsd070pww1",
.data = &hannstar_hsd070pww1,
--
2.46.1
2.45.0
@@ -1,4 +1,4 @@
From b346724c85c5d7852eab9b9902fd2f761185df7c Mon Sep 17 00:00:00 2001
From 4b4c85b0a093be28ec9a8a72ef3a3f764fb28e03 Mon Sep 17 00:00:00 2001
From: JuniorJPDJ <git@juniorjpdj.pl>
Date: Thu, 25 Mar 2021 19:18:58 +0100
Subject: [PATCH] ARM: dts: sun6i: Add Lark FreeMe 70.2S tablet
@@ -10,7 +10,7 @@ Subject: [PATCH] ARM: dts: sun6i: Add Lark FreeMe 70.2S tablet
create mode 100644 arch/arm/boot/dts/allwinner/sun4i-a10-lark-freeme-70-2s.dts
diff --git a/arch/arm/boot/dts/allwinner/Makefile b/arch/arm/boot/dts/allwinner/Makefile
index 77593039273c..ddc3b0deab8c 100644
index 097614b95ff2..902b8f6752a0 100644
--- a/arch/arm/boot/dts/allwinner/Makefile
+++ b/arch/arm/boot/dts/allwinner/Makefile
@@ -36,6 +36,7 @@ dtb-$(CONFIG_MACH_SUN4I) += \
@@ -274,5 +274,5 @@ index 000000000000..5f17902410c1
+ status = "okay";
+};
--
2.46.1
2.45.0
@@ -1,4 +1,4 @@
From cd0734143da954f0a4bda9c40b353d55f9cacf66 Mon Sep 17 00:00:00 2001
From 125b782564a7dac6e6d1137e8103e2613b12600e Mon Sep 17 00:00:00 2001
From: Jernej Skrabec <jernej.skrabec@siol.net>
Date: Sat, 24 Aug 2019 01:36:44 +0200
Subject: [PATCH] eMMC workaround
@@ -34,5 +34,5 @@ index e9370c736497..a4abd589e95d 100644
ret = mmc_of_parse(mmc);
--
2.46.1
2.45.0
@@ -1,4 +1,4 @@
From e166f056c5a77c2258f8c1581d9b34de76f4a839 Mon Sep 17 00:00:00 2001
From c824f1e06e282be26c78918cb15f2dd1c6687e5e Mon Sep 17 00:00:00 2001
From: Maxim Karasev <begs@disroot.org>
Date: Sat, 4 Sep 2021 14:56:01 +0300
Subject: [PATCH] arm64: dts: allwinner: orangepi-3: fix ethernet
@@ -10,7 +10,7 @@ patch from LibreELEC tree.
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts
index 332a9fe83ccd..6e53dadf543e 100644
index 218c26c59429..a424eded0016 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts
@@ -145,7 +145,7 @@ hdmi_out_con: endpoint {
@@ -34,5 +34,5 @@ index 332a9fe83ccd..6e53dadf543e 100644
};
--
2.46.1
2.45.0
@@ -0,0 +1,295 @@
From b9e47d013dac71b2f6d6c877222aa128138c3099 Mon Sep 17 00:00:00 2001
From: Denis Burkov <hitechshell@mail.ru>
Date: Mon, 11 Mar 2024 18:23:39 +0500
Subject: [PATCH] ARM: dts: allwinner: sun5i-a13-pocketbook-614-plus: Add
initial devicetree
---
arch/arm/boot/dts/allwinner/Makefile | 2 +
.../sun5i-a13-pocketbook-614-plus.dts | 254 ++++++++++++++++++
2 files changed, 256 insertions(+)
create mode 100644 arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-614-plus.dts
diff --git a/arch/arm/boot/dts/allwinner/Makefile b/arch/arm/boot/dts/allwinner/Makefile
index 902b8f6752a0..f7eb88a5709b 100644
--- a/arch/arm/boot/dts/allwinner/Makefile
+++ b/arch/arm/boot/dts/allwinner/Makefile
@@ -62,6 +62,7 @@ dtb-$(CONFIG_MACH_SUN5I) += \
sun5i-a13-olinuxino.dtb \
sun5i-a13-olinuxino-micro.dtb \
sun5i-a13-pocketbook-touch-lux-3.dtb \
+ sun5i-a13-pocketbook-614-plus.dtb \
sun5i-a13-q8-tablet.dtb \
sun5i-a13-utoo-p66.dtb \
sun5i-gr8-chip-pro.dtb \
@@ -83,6 +84,7 @@ dtb-$(CONFIG_MACH_SUN5I) += \
sun5i-a13-olinuxino.dtb \
sun5i-a13-olinuxino-micro.dtb \
sun5i-a13-pocketbook-touch-lux-3.dtb \
+ sun5i-a13-pocketbook-614-plus.dtb \
sun5i-a13-q8-tablet.dtb \
sun5i-a13-utoo-p66.dtb \
sun5i-gr8-chip-pro.dtb \
diff --git a/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-614-plus.dts b/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-614-plus.dts
new file mode 100644
index 000000000000..cad9ce5f2a6f
--- /dev/null
+++ b/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-614-plus.dts
@@ -0,0 +1,254 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2024 Denis Burkov <hitechshell@mail.ru>
+ */
+
+/dts-v1/;
+#include "sun5i-a13.dtsi"
+#include "sunxi-common-regulators.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+ model = "PocketBook 614 Plus";
+ compatible = "pocketbook,614-plus", "allwinner,sun5i-a13";
+
+ aliases {
+ serial0 = &uart1;
+ i2c0 = &i2c0;
+ i2c1 = &i2c1;
+ i2c2 = &i2c2;
+ rtc0 = &pcf8563;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&led_pins_pocketbook>;
+
+ led {
+ gpios = <&pio 4 8 GPIO_ACTIVE_LOW>; /* PE8 */
+ default-state = "on";
+ };
+ };
+
+ gpio-keys {
+ compatible = "gpio-keys";
+ autorepeat;
+ label = "GPIO Keys";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pocketbook_btn_pins>;
+
+ key-right {
+ label = "Right";
+ linux,code = <KEY_NEXT>;
+ gpios = <&pio 6 9 GPIO_ACTIVE_LOW>; /* PG9 */
+ };
+
+ key-left {
+ label = "Left";
+ linux,code = <KEY_PREVIOUS>;
+ gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 */
+ };
+ };
+
+ reg_3v3_mmc0: regulator-mmc0 {
+ compatible = "regulator-fixed";
+ regulator-name = "vdd-mmc0";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pocketbook_reg_mmc0_pin>;
+ gpio = <&pio 4 4 GPIO_ACTIVE_LOW>; /* PE4 */
+ vin-supply = <&reg_vcc3v3>;
+ };
+};
+
+&cpu0 {
+ cpu-supply = <&reg_dcdc2>;
+};
+
+&ehci0 {
+ status = "okay";
+};
+
+&i2c0 {
+ status = "okay";
+
+ axp209: pmic@34 {
+ compatible = "x-powers,axp209";
+ reg = <0x34>;
+ interrupts = <0>;
+ };
+};
+
+#include "axp209.dtsi"
+
+&i2c1 {
+ status = "okay";
+
+ pcf8563: rtc@51 {
+ compatible = "nxp,pcf8563";
+ reg = <0x51>;
+ #clock-cells = <0>;
+ };
+};
+
+&i2c2 {
+ status = "okay";
+
+ /* Touchpanel is connected here. */
+};
+
+&lradc {
+ vref-supply = <&reg_ldo2>;
+ status = "okay";
+
+ button-300 {
+ label = "Down";
+ linux,code = <KEY_DOWN>;
+ channel = <0>;
+ voltage = <300000>;
+ };
+
+ button-700 {
+ label = "Up";
+ linux,code = <KEY_UP>;
+ channel = <0>;
+ voltage = <700000>;
+ };
+
+ button-1000 {
+ label = "Left";
+ linux,code = <KEY_LEFT>;
+ channel = <0>;
+ voltage = <1000000>;
+ };
+
+ button-1200 {
+ label = "Menu";
+ linux,code = <KEY_MENU>;
+ channel = <0>;
+ voltage = <1200000>;
+ };
+
+ button-1500 {
+ label = "Right";
+ linux,code = <KEY_RIGHT>;
+ channel = <0>;
+ voltage = <1500000>;
+ };
+};
+
+&mmc0 {
+ vmmc-supply = <&reg_3v3_mmc0>;
+ bus-width = <4>;
+ cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
+ status = "okay";
+};
+
+&mmc2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc2_4bit_pc_pins>;
+ vmmc-supply = <&reg_vcc3v3>;
+ bus-width = <4>;
+ non-removable;
+ status = "okay";
+};
+
+&ohci0 {
+ status = "okay";
+};
+
+&otg_sram {
+ status = "okay";
+};
+
+&pio {
+ led_pins_pocketbook: led-pin {
+ pins = "PE8";
+ function = "gpio_out";
+ };
+ pocketbook_btn_pins: pocketbook_btn_pins {
+ pins = "PG9", "PG10";
+ function = "gpio_in";
+ bias-pull-up;
+ };
+ pocketbook_reg_mmc0_pin: pocketbook_reg_mmc0_pin {
+ pins = "PE4";
+ function = "gpio_out";
+ };
+};
+
+&reg_dcdc2 {
+ regulator-always-on;
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1500000>;
+ regulator-name = "vdd-cpu";
+};
+
+&reg_dcdc3 {
+ regulator-always-on;
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1400000>;
+ regulator-name = "vdd-int-dll";
+};
+
+&reg_ldo1 {
+ regulator-name = "vdd-rtc";
+};
+
+&reg_ldo2 {
+ regulator-always-on;
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-name = "avcc";
+};
+
+&reg_ldo3 {
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "vcc-wifi";
+};
+
+&reg_usb0_vbus {
+ status = "okay";
+ gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
+};
+
+&reg_usb1_vbus {
+ gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
+ status = "okay";
+};
+
+&uart1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart1_pg_pins>;
+ status = "okay";
+};
+
+&usb_otg {
+ dr_mode = "otg";
+ status = "okay";
+};
+
+&usb_power_supply {
+ status = "okay";
+};
+
+&battery_power_supply {
+ status = "okay";
+};
+
+&usbphy {
+ usb0_id_det-gpios = <&pio 6 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PG2 */
+ usb0_vbus_det-gpios = <&axp_gpio 1 GPIO_ACTIVE_HIGH>;
+ usb0_vbus-supply = <&reg_usb0_vbus>;
+ usb1_vbus-supply = <&reg_usb1_vbus>;
+ status = "okay";
+};
--
2.45.0
@@ -1,11 +1,11 @@
# Maintainer: Arnav Singh <me@arnavion.dev>
# Co-Maintainer: Jan Jasper de Kroon <jajadekroon@gmail.com>
# Maintainer: Jan Jasper de Kroon <jajadekroon@gmail.com>
# Co-Maintainer: Arnav Singh <me@arnavion.dev>
_flavor=postmarketos-allwinner
_config="config-$_flavor.$CARCH"
pkgname=linux-$_flavor
pkgver=6.11.0_git20240915
pkgrel=0
_tag="orange-pi-6.11-20240915-2344"
pkgver=6.9.10_git20240721
pkgrel=5
_tag="orange-pi-6.9-20240721-2345"
pkgdesc="Kernel fork with Pine64 patches (megi's tree, slightly patched)"
arch="aarch64 armv7"
url="https://megous.com/git/linux/"
@@ -43,6 +43,7 @@ source="$pkgname-$_tag.tar.gz::https://codeberg.org/megi/linux/archive/$_tag.tar
0009-ARM-dts-sun6i-Add-Lark-FreeMe-70.2S-tablet.patch
0010-eMMC-workaround.patch
0011-arm64-dts-allwinner-orangepi-3-fix-ethernet.patch
0012-ARM-dts-allwinner-sun5i-a13-pocketbook-614-plus-Add-.patch
"
builddir="$srcdir/linux"
@@ -79,18 +80,19 @@ package() {
INSTALL_DTBS_PATH="$pkgdir/boot/dtbs"
}
sha512sums="
8ade8d4c15c9cd1e27a2cc5a93d98e50597824d98995d69ab1b428677ad9e8232704184f9eafd36986f88b783d39735c16210b542aa346d37679a2ccfcfca835 linux-postmarketos-allwinner-orange-pi-6.11-20240915-2344.tar.gz
d6b6ac843e93aa26c0d9ec1c03d2d3d71200bc802119d7e7bd76efabeb30fd2cfdfabb22a60ee5e078a13f9a56bd09531ee8acc43e293565f9bd24383ae8573f config-postmarketos-allwinner.aarch64
8d918a9f28a3e47feebcf53732b0c20d9c0f1068ccda01cbd5d1d2c8c41183899d8fbfb95f773ad9468d863ceaeaf9d35cfb09603d4b5c52f55673efad98bf2b config-postmarketos-allwinner.armv7
54bb653f2eec755d831e4c3c7d5a202c09e8d738335d79664879fea6783c54ea74a935259e77bbbe748138a17e92f421ab3e6bd5b07f7e970fd7b22deebcb84b 0001-dts-add-dontbeevil-pinephone-devkit.patch
1bfff7c0bd3c6761520c444968b9d61b9c43a733d398628dbe12134858a2803b4761117cd2946e86595a3dd2cbffb395c075502dafa40d9fa97e298f49701eb2 0002-dts-add-pinetab-dev-old-display-panel.patch
91d10d8d377e3f957f76b634a2e075a8927462621610a12be3fbb7e233580bfbb41e0bc5dab06d16eb59fda54a61c4d0415de7b07a7a3de4b46c7f33d7c00aa3 0003-dts-pinetab-add-missing-ohci1.patch
27f740236f9612616984bb25fee9970b5874b1f4560fdad45738174953cc00c6b6632e6beb384c84d7d18333c1788a49c20ba32ab360a0a7deda17fbadcaf838 0004-dts-pinetab-make-audio-routing-consistent-with-pinep.patch
ac775aef3fcece0d1bb18dd6df40e84ed616549a9f4369da196bc3f92da9eaab1d388e8c38ae8082bcf18884f7cda9e8a226fa79442af3bdfade8acfcab88685 0005-dts-pinephone-drop-modem-power-node.patch
0fe41ef47ace057d4f4bdab2c9f8c908ea4f16f6b118432c71c2a2ad467286532a62dffdbfe0e46781619eca449f11a6d8b13c18e1859a9aaa8a3208156e75a9 0006-drm-panel-simple-Add-Hannstar-TQTM070CB501.patch
029d2e5863af00bbfe1e6a7fa2455d8773a475434881f528d9c868a9b04c6173c13e9dc63d51920142a89f6d66d6e49d8d14577b243d6c15427dfe2bf2788a8d 0007-ARM-dts-sun6i-Add-GoClever-Orion-70L-tablet.patch
fa4da8e9b43dfa217afb49fe7c83d7a0a59b1a1bef31d7228c8c5560df36c61bfaaff4134d31655c24e791106a7e75b6797d91f487b802133136d8cb79b32572 0008-drm-panel-simple-Add-Hannstar-HSD070IDW1-A.patch
7393d67d1144c61bc327a6ce571d4c2b043576a356a74ec74384afc667bc044ecbeb57d2218523b83f84bc873b1b3ae3161b7f8270113953092bb55bbeb89aeb 0009-ARM-dts-sun6i-Add-Lark-FreeMe-70.2S-tablet.patch
1d922045f835beec1e1a652ae6c2cf7c0081d114bfa4a9bf03c6fdbd79827d9600aae7c79b0740b354bf5aa9c1bd131ced5e939fb1b3e01777e93fcd17dd4f19 0010-eMMC-workaround.patch
359cda536862c90f0a5c7e87e12448982650c9451921cbad6d611887031ac2c6d0b619666c557acadedf12bc8c27511f118deb97b8e88c76fd09bc18462ed844 0011-arm64-dts-allwinner-orangepi-3-fix-ethernet.patch
c6081383741fe883d8f6e223caa45d7ecf179f4cd0c759432bbbb2e43603088840393a0cf58735ab5dda4dbf5e2655d8c9b053a74b029ac4768c200ff6ca6f65 linux-postmarketos-allwinner-orange-pi-6.9-20240721-2345.tar.gz
3281e69061af98020adf412773a187cb3245b26e0dc22c29a08f37c64360e8ad23a5ea2c4cc19365e2c2ed07d7aae0d63e9e116a9f0badb25584dfe763f3476c config-postmarketos-allwinner.aarch64
0011646badbea59ecc670667252d0f6b9fe84c05e43cd3583f7730de526d072f29f47100f65d17dbf84d1284ed6b6cae8eb9d7b6a8df33a178cdfa376402b2e1 config-postmarketos-allwinner.armv7
a1fe1a21c34062eb92b6a4a9d2ef330d0e745859af283ccf05fc899ec263f9d452c1399c29620a0e4c748eca4b0c13645668b2fc0dc72f5703426d472f1294be 0001-dts-add-dontbeevil-pinephone-devkit.patch
0ef26b34fa834c119ebff6daa27b1dd3fac27448d6a40c0b2022a00c239dad0ef3e2b3ab3f9eec5460f921c9c6ea21db360adc175a7e658d5c34c5d0aacc498f 0002-dts-add-pinetab-dev-old-display-panel.patch
d37d929100a9de9431cc3cef6b714b61b5af9633e35a2880fcc8b60279fdc9ab65198fa70d01e070a9f263818d994b9b851973bb079ddea1ca66d2b7964f365d 0003-dts-pinetab-add-missing-ohci1.patch
e368935e8e1a2380b0b42961ca65e7ebb842916e80b7b3e96211d5091413d5b8112e60f2437f82795e9c21183411f81daf1f2806b7a93b0c03dca0a64e25f079 0004-dts-pinetab-make-audio-routing-consistent-with-pinep.patch
e4dd137537cecc8cfbb2152120134ee4fb19b930ed0e66313c414fb14061f9d2dd4c280cfbde722f8f39531868823c8f12ec79e45800f5c6e0ded03475557f79 0005-dts-pinephone-drop-modem-power-node.patch
0234490da9ea6d172ccea95092ab8a0623d2b57d43b0066d0b77a096b4a5e2a02047579f12b09d2e6bc1b77a3f9ea67dc26e9d5c02b947a7126f822132c85d30 0006-drm-panel-simple-Add-Hannstar-TQTM070CB501.patch
09e8a2b06b45bb0be75a4c09f6a9d165861a950bf6ed1cd91faa493710dd9fdc0aa35a38e23a731bb3f281c30c353310e4a17cdea3ddc6ab7ec3436722eb3b07 0007-ARM-dts-sun6i-Add-GoClever-Orion-70L-tablet.patch
96d7b7d8161dcd7379092b6aec531ca47ee0566c308057aec2f934256f67ee9f3dcd2fb7ca592b056a5305600ea4125932c96f2c244966d7d46f9b1f3fb77052 0008-drm-panel-simple-Add-Hannstar-HSD070IDW1-A.patch
22cf608d79337aee6354e7db6bf1f177a6b4ab89f7b26da46e0cf2e280978ace7203829a0e87675449ef41b488ab114cedd5ab911e326b87fa823a0073c8d1fc 0009-ARM-dts-sun6i-Add-Lark-FreeMe-70.2S-tablet.patch
898f1227fe27e38706ea8e6e2846cbc9bded328090ddb457733cf6417f2e1da5bac2d9caa753b29a0667a2733a937b9d447b666a070462a93d1cfea3f88daea7 0010-eMMC-workaround.patch
4acfd79aa2978d6b8078fbd7649a2dda4ef5a1e03b52d7e034a7cc40b5a7349c4dc741fab9cb7722fa61eb022fd270719ed5257ac8487796c9e2b1135a123e86 0011-arm64-dts-allwinner-orangepi-3-fix-ethernet.patch
0770f510a12f8ec29fa2798682b0687438f733634df0b339876b8181c08cd154904412aa88d5dd5df336803da3a4f5c274cba5008be533e036dc5deb3c41fb17 0012-ARM-dts-allwinner-sun5i-a13-pocketbook-614-plus-Add-.patch
"
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm64 6.11.0 Kernel Configuration
# Linux/arm64 6.9.10 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="aarch64-alpine-linux-musl-gcc (Alpine 14.2.0) 14.2.0"
CONFIG_CC_IS_GCC=y
@@ -115,7 +115,7 @@ CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_HAVE_SCHED_AVG_IRQ=y
CONFIG_SCHED_HW_PRESSURE=y
CONFIG_SCHED_THERMAL_PRESSURE=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
@@ -137,7 +137,6 @@ CONFIG_RCU_EXPERT=y
CONFIG_TREE_SRCU=y
CONFIG_TASKS_RCU_GENERIC=y
# CONFIG_FORCE_TASKS_RCU is not set
CONFIG_NEED_TASKS_RCU=y
CONFIG_TASKS_RCU=y
# CONFIG_FORCE_TASKS_RUDE_RCU is not set
CONFIG_TASKS_RUDE_RCU=y
@@ -180,12 +179,11 @@ CONFIG_CC_NO_ARRAY_BOUNDS=y
CONFIG_GCC_NO_STRINGOP_OVERFLOW=y
CONFIG_CC_NO_STRINGOP_OVERFLOW=y
CONFIG_ARCH_SUPPORTS_INT128=y
CONFIG_SLAB_OBJ_EXT=y
CONFIG_CGROUPS=y
CONFIG_PAGE_COUNTER=y
# CONFIG_CGROUP_FAVOR_DYNMODS is not set
CONFIG_MEMCG=y
# CONFIG_MEMCG_V1 is not set
CONFIG_MEMCG_KMEM=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_WRITEBACK=y
CONFIG_CGROUP_SCHED=y
@@ -243,6 +241,7 @@ CONFIG_POSIX_TIMERS=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_FUTEX_PI=y
CONFIG_EPOLL=y
@@ -259,6 +258,7 @@ CONFIG_RSEQ=y
CONFIG_CACHESTAT_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_SELFTEST is not set
CONFIG_KALLSYMS_BASE_RELATIVE=y
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
CONFIG_HAVE_PERF_EVENTS=y
@@ -311,7 +311,6 @@ CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y
# Platform selection
#
# CONFIG_ARCH_ACTIONS is not set
# CONFIG_ARCH_AIROHA is not set
CONFIG_ARCH_SUNXI=y
# CONFIG_ARCH_ALPINE is not set
# CONFIG_ARCH_APPLE is not set
@@ -392,7 +391,6 @@ CONFIG_ARM64_ERRATUM_2645198=y
CONFIG_ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD=y
CONFIG_ARM64_ERRATUM_2966298=y
CONFIG_ARM64_ERRATUM_3117295=y
CONFIG_ARM64_ERRATUM_3194386=y
CONFIG_CAVIUM_ERRATUM_22375=y
CONFIG_CAVIUM_ERRATUM_23154=y
CONFIG_CAVIUM_ERRATUM_27456=y
@@ -530,7 +528,6 @@ CONFIG_CMDLINE="console=ttyAMA0"
CONFIG_CMDLINE_FROM_BOOTLOADER=y
# CONFIG_CMDLINE_FORCE is not set
# CONFIG_EFI is not set
# CONFIG_COMPRESSED_INSTALL is not set
# end of Boot options
#
@@ -697,7 +694,6 @@ CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
CONFIG_ARCH_WANT_PMD_MKWRITE=y
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_MODULES_USE_ELF_RELA=y
CONFIG_ARCH_WANTS_EXECMEM_LATE=y
CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
CONFIG_SOFTIRQ_ON_OWN_STACK=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
@@ -735,7 +731,6 @@ CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
CONFIG_ARCH_HAVE_TRACE_MMIO_ACCESS=y
CONFIG_ARCH_HAS_HW_PTE_YOUNG=y
CONFIG_ARCH_HAS_KERNEL_FPU_SUPPORT=y
#
# GCOV-based kernel profiling
@@ -755,6 +750,7 @@ CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT=y
# end of General architecture-dependent options
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
# CONFIG_MODULE_DEBUG is not set
# CONFIG_MODULE_FORCE_LOAD is not set
@@ -780,9 +776,11 @@ CONFIG_BLK_CGROUP_PUNT_BIO=y
CONFIG_BLK_DEV_BSG_COMMON=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_INTEGRITY_T10=y
CONFIG_BLK_DEV_WRITE_MOUNTED=y
# CONFIG_BLK_DEV_ZONED is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_THROTTLING_LOW is not set
# CONFIG_BLK_WBT is not set
# CONFIG_BLK_CGROUP_IOLATENCY is not set
# CONFIG_BLK_CGROUP_IOCOST is not set
@@ -847,7 +845,6 @@ CONFIG_COREDUMP=y
#
CONFIG_SWAP=y
# CONFIG_ZSWAP is not set
CONFIG_HAVE_ZSMALLOC=y
CONFIG_ZSMALLOC=m
CONFIG_ZSMALLOC_STAT=y
CONFIG_ZSMALLOC_CHAIN_SIZE=8
@@ -859,7 +856,6 @@ CONFIG_SLUB=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLAB_FREELIST_RANDOM is not set
# CONFIG_SLAB_FREELIST_HARDENED is not set
# CONFIG_SLAB_BUCKETS is not set
# CONFIG_SLUB_STATS is not set
CONFIG_SLUB_CPU_PARTIAL=y
# CONFIG_RANDOM_KMALLOC_CACHES is not set
@@ -871,7 +867,7 @@ CONFIG_SPARSEMEM=y
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSEMEM_VMEMMAP=y
CONFIG_HAVE_GUP_FAST=y
CONFIG_HAVE_FAST_GUP=y
CONFIG_ARCH_KEEP_MEMBLOCK=y
CONFIG_MEMORY_ISOLATION=y
CONFIG_EXCLUSIVE_SYSTEM_RAM=y
@@ -901,7 +897,6 @@ CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
# CONFIG_TRANSPARENT_HUGEPAGE_NEVER is not set
CONFIG_THP_SWAP=y
# CONFIG_READ_ONLY_THP_FOR_FS is not set
CONFIG_PGTABLE_HAS_HUGE_LEAVES=y
CONFIG_CMA=y
# CONFIG_CMA_DEBUGFS is not set
# CONFIG_CMA_SYSFS is not set
@@ -932,7 +927,6 @@ CONFIG_LRU_GEN_WALKS_MMU=y
CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
CONFIG_PER_VMA_LOCK=y
CONFIG_LOCK_MM_AND_FIND_VMA=y
CONFIG_EXECMEM=y
#
# Data Access Monitoring
@@ -1866,7 +1860,6 @@ CONFIG_VXLAN=m
# CONFIG_GENEVE is not set
# CONFIG_BAREUDP is not set
# CONFIG_GTP is not set
# CONFIG_PFCP is not set
# CONFIG_AMT is not set
# CONFIG_MACSEC is not set
# CONFIG_NETCONSOLE is not set
@@ -1902,7 +1895,6 @@ CONFIG_SUN4I_EMAC=y
# CONFIG_NET_VENDOR_LITEX is not set
# CONFIG_NET_VENDOR_MARVELL is not set
# CONFIG_NET_VENDOR_MELLANOX is not set
CONFIG_NET_VENDOR_META=y
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
# CONFIG_NET_VENDOR_MICROSEMI is not set
@@ -1949,7 +1941,6 @@ CONFIG_FIXED_PHY=y
#
# MII PHY device drivers
#
# CONFIG_AIR_EN8811H_PHY is not set
# CONFIG_AMD_PHY is not set
# CONFIG_ADIN_PHY is not set
# CONFIG_ADIN1100_PHY is not set
@@ -1992,7 +1983,6 @@ CONFIG_MICROCHIP_PHY=m
CONFIG_REALTEK_PHY=m
# CONFIG_RENESAS_PHY is not set
# CONFIG_ROCKCHIP_PHY is not set
# CONFIG_RK630_PHY is not set
CONFIG_SMSC_PHY=m
# CONFIG_STE10XP is not set
# CONFIG_TERANETICS_PHY is not set
@@ -2099,7 +2089,6 @@ CONFIG_ATH10K_CE=y
# CONFIG_ATH10K_USB is not set
# CONFIG_ATH10K_DEBUG is not set
# CONFIG_ATH10K_DEBUGFS is not set
CONFIG_ATH10K_LEDS=y
# CONFIG_ATH10K_TRACING is not set
# CONFIG_WCN36XX is not set
# CONFIG_ATH11K is not set
@@ -2145,7 +2134,6 @@ CONFIG_WLAN_VENDOR_REALTEK=y
# CONFIG_RTL8187 is not set
CONFIG_RTL_CARDS=m
# CONFIG_RTL8192CU is not set
# CONFIG_RTL8192DU is not set
# CONFIG_RTL8XXXU is not set
# CONFIG_RTW88 is not set
# CONFIG_RTW89 is not set
@@ -2476,7 +2464,6 @@ CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=m
CONFIG_DEVMEM=y
CONFIG_DEVPORT=y
CONFIG_TCG_TPM=y
# CONFIG_TCG_TPM2_HMAC is not set
# CONFIG_TCG_TIS is not set
# CONFIG_TCG_TIS_I2C is not set
# CONFIG_TCG_TIS_I2C_CR50 is not set
@@ -2694,12 +2681,6 @@ CONFIG_GPIO_PCA953X_IRQ=y
# CONFIG_GPIO_SIM is not set
# end of Virtual GPIO drivers
#
# GPIO Debugging utilities
#
# CONFIG_GPIO_VIRTUSER is not set
# end of GPIO Debugging utilities
# CONFIG_W1 is not set
CONFIG_POWER_RESET=y
# CONFIG_POWER_RESET_GPIO is not set
@@ -2713,7 +2694,6 @@ CONFIG_POWER_RESET_SYSCON=y
CONFIG_REBOOT_MODE=y
CONFIG_SYSCON_REBOOT_MODE=y
# CONFIG_NVMEM_REBOOT_MODE is not set
# CONFIG_POWER_SEQUENCING is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
CONFIG_POWER_SUPPLY_HWMON=y
@@ -2737,7 +2717,6 @@ CONFIG_BATTERY_AXP20X=y
CONFIG_AXP20X_POWER=y
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_MAX1720X is not set
# CONFIG_CHARGER_ISP1704 is not set
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_LP8727 is not set
@@ -2774,6 +2753,7 @@ CONFIG_HWMON=y
#
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
@@ -2839,6 +2819,7 @@ CONFIG_SENSORS_ARM_SCPI=y
# CONFIG_SENSORS_MAX6620 is not set
# CONFIG_SENSORS_MAX6621 is not set
# CONFIG_SENSORS_MAX6639 is not set
# CONFIG_SENSORS_MAX6642 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_MAX6697 is not set
# CONFIG_SENSORS_MAX31790 is not set
@@ -2904,7 +2885,6 @@ CONFIG_SENSORS_ARM_SCPI=y
# CONFIG_SENSORS_INA2XX is not set
# CONFIG_SENSORS_INA238 is not set
# CONFIG_SENSORS_INA3221 is not set
# CONFIG_SENSORS_SPD5118 is not set
# CONFIG_SENSORS_TC74 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP102 is not set
@@ -3027,7 +3007,6 @@ CONFIG_MFD_AXP20X_RSB=y
# CONFIG_MFD_88PM800 is not set
# CONFIG_MFD_88PM805 is not set
# CONFIG_MFD_88PM860X is not set
# CONFIG_MFD_88PM886_PMIC is not set
# CONFIG_MFD_MAX14577 is not set
# CONFIG_MFD_MAX77541 is not set
# CONFIG_MFD_MAX77620 is not set
@@ -3095,12 +3074,10 @@ CONFIG_MFD_SYSCON=y
# CONFIG_MFD_ROHM_BD718XX is not set
# CONFIG_MFD_ROHM_BD71828 is not set
# CONFIG_MFD_ROHM_BD957XMUF is not set
# CONFIG_MFD_ROHM_BD96801 is not set
# CONFIG_MFD_STPMIC1 is not set
# CONFIG_MFD_STMFX is not set
# CONFIG_MFD_ATC260X_I2C is not set
# CONFIG_MFD_QCOM_PM8008 is not set
# CONFIG_MFD_CS40L50_I2C is not set
# CONFIG_RAVE_SP_CORE is not set
# CONFIG_MFD_RSMU_I2C is not set
# end of Multifunction device drivers
@@ -3173,7 +3150,6 @@ CONFIG_REGULATOR_PWM=y
# CONFIG_REGULATOR_RTQ6752 is not set
# CONFIG_REGULATOR_RTQ2208 is not set
# CONFIG_REGULATOR_SLG51000 is not set
CONFIG_REGULATOR_SUN20I=y
# CONFIG_REGULATOR_SY8106A is not set
# CONFIG_REGULATOR_SY8824X is not set
# CONFIG_REGULATOR_SY8827N is not set
@@ -3363,7 +3339,6 @@ CONFIG_VIDEO_MEM2MEM_DEINTERLACE=y
#
# Chips&Media media platform drivers
#
# CONFIG_VIDEO_E5010_JPEG_ENC is not set
#
# Intel media platform drivers
@@ -3397,11 +3372,6 @@ CONFIG_VIDEO_MEM2MEM_DEINTERLACE=y
# Qualcomm media platform drivers
#
#
# Raspberry Pi media platform drivers
#
# CONFIG_VIDEO_RASPBERRYPI_PISP_BE is not set
#
# Renesas media platform drivers
#
@@ -3461,8 +3431,6 @@ CONFIG_VIDEO_CAMERA_SENSOR=y
# CONFIG_VIDEO_ALVIUM_CSI2 is not set
# CONFIG_VIDEO_AR0521 is not set
# CONFIG_VIDEO_GC0308 is not set
# CONFIG_VIDEO_GC05A2 is not set
# CONFIG_VIDEO_GC08A3 is not set
# CONFIG_VIDEO_GC2145_MIPI is not set
# CONFIG_VIDEO_HI556 is not set
# CONFIG_VIDEO_HI846 is not set
@@ -3472,7 +3440,6 @@ CONFIG_VIDEO_CAMERA_SENSOR=y
# CONFIG_VIDEO_IMX219 is not set
# CONFIG_VIDEO_IMX258 is not set
# CONFIG_VIDEO_IMX274 is not set
# CONFIG_VIDEO_IMX283 is not set
# CONFIG_VIDEO_IMX290 is not set
# CONFIG_VIDEO_IMX296 is not set
# CONFIG_VIDEO_IMX319 is not set
@@ -3527,7 +3494,7 @@ CONFIG_VIDEO_OV5640=m
# CONFIG_VIDEO_RJ54N1 is not set
# CONFIG_VIDEO_S5K5BAF is not set
# CONFIG_VIDEO_S5K6A3 is not set
# CONFIG_VIDEO_VGXY61 is not set
# CONFIG_VIDEO_ST_VGXY61 is not set
# CONFIG_VIDEO_CCS is not set
# CONFIG_VIDEO_ET8EK8 is not set
# CONFIG_VIDEO_HM5065 is not set
@@ -3668,8 +3635,6 @@ CONFIG_VIDEO_GC2145=m
# CONFIG_VIDEO_DS90UB913 is not set
# CONFIG_VIDEO_DS90UB953 is not set
# CONFIG_VIDEO_DS90UB960 is not set
# CONFIG_VIDEO_MAX96714 is not set
# CONFIG_VIDEO_MAX96717 is not set
# end of Video serializers and deserializers
# end of Media ancillary drivers
@@ -3687,9 +3652,9 @@ CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
CONFIG_DRM_DISPLAY_HELPER=y
# CONFIG_DRM_DISPLAY_DP_AUX_CEC is not set
# CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV is not set
CONFIG_DRM_DISPLAY_HDMI_HELPER=y
# CONFIG_DRM_DP_AUX_CHARDEV is not set
# CONFIG_DRM_DP_CEC is not set
CONFIG_DRM_GEM_DMA_HELPER=y
CONFIG_DRM_GEM_SHMEM_HELPER=y
CONFIG_DRM_SCHED=y
@@ -3736,11 +3701,9 @@ CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=y
CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=y
# CONFIG_DRM_PANEL_DSI_CM is not set
# CONFIG_DRM_PANEL_LVDS is not set
# CONFIG_DRM_PANEL_HIMAX_HX83102 is not set
# CONFIG_DRM_PANEL_HIMAX_HX83112A is not set
# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9805 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9806E is not set
CONFIG_DRM_PANEL_ILITEK_ILI9881C=y
# CONFIG_DRM_PANEL_ILITEK_ILI9882T is not set
# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set
@@ -3752,8 +3715,6 @@ CONFIG_DRM_PANEL_ILITEK_ILI9881C=y
# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set
# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set
# CONFIG_DRM_PANEL_LINCOLNTECH_LCD197 is not set
# CONFIG_DRM_PANEL_LG_SW43408 is not set
# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set
# CONFIG_DRM_PANEL_NEWVISION_NV3051D is not set
# CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set
@@ -3770,11 +3731,9 @@ CONFIG_DRM_PANEL_ILITEK_ILI9881C=y
# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM692E5 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM69380 is not set
# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set
# CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E3FA7 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set
@@ -3862,7 +3821,6 @@ CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
# CONFIG_DRM_PL111 is not set
CONFIG_DRM_LIMA=y
CONFIG_DRM_PANFROST=y
# CONFIG_DRM_PANTHOR is not set
# CONFIG_DRM_TIDSS is not set
# CONFIG_DRM_GUD is not set
# CONFIG_DRM_SSD130X is not set
@@ -3918,7 +3876,6 @@ CONFIG_BACKLIGHT_PWM=y
# CONFIG_BACKLIGHT_QCOM_WLED is not set
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
# CONFIG_BACKLIGHT_LM3509 is not set
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
# CONFIG_BACKLIGHT_LP855X is not set
@@ -4077,7 +4034,6 @@ CONFIG_SND_SOC_I2C_AND_SPI=m
# CONFIG_SND_SOC_AK4458 is not set
# CONFIG_SND_SOC_AK4554 is not set
CONFIG_SND_SOC_AK4613=m
# CONFIG_SND_SOC_AK4619 is not set
# CONFIG_SND_SOC_AK4642 is not set
# CONFIG_SND_SOC_AK5386 is not set
# CONFIG_SND_SOC_AK5558 is not set
@@ -4114,7 +4070,6 @@ CONFIG_SND_SOC_BT_SCO=m
# CONFIG_SND_SOC_CS4341 is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
# CONFIG_SND_SOC_CS530X_I2C is not set
# CONFIG_SND_SOC_CX2072X is not set
# CONFIG_SND_SOC_DA7213 is not set
CONFIG_SND_SOC_DMIC=m
@@ -4122,13 +4077,13 @@ CONFIG_SND_SOC_HDMI_CODEC=m
CONFIG_SND_SOC_EC25=m
# CONFIG_SND_SOC_ES7134 is not set
# CONFIG_SND_SOC_ES7241 is not set
# CONFIG_SND_SOC_ES8311 is not set
# CONFIG_SND_SOC_ES8316 is not set
# CONFIG_SND_SOC_ES8326 is not set
# CONFIG_SND_SOC_ES8328_I2C is not set
# CONFIG_SND_SOC_GTM601 is not set
# CONFIG_SND_SOC_HDA is not set
# CONFIG_SND_SOC_ICS43432 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
# CONFIG_SND_SOC_MAX98088 is not set
# CONFIG_SND_SOC_MAX98090 is not set
# CONFIG_SND_SOC_MAX98357A is not set
@@ -4151,7 +4106,7 @@ CONFIG_SND_SOC_EC25=m
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM5102A is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
# CONFIG_SND_SOC_PCM6240 is not set
# CONFIG_SND_SOC_RK3328 is not set
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
# CONFIG_SND_SOC_RT5640 is not set
@@ -4354,7 +4309,6 @@ CONFIG_HID_MULTITOUCH=y
# CONFIG_HID_U2FZERO is not set
CONFIG_HID_WACOM=m
# CONFIG_HID_WIIMOTE is not set
# CONFIG_HID_WINWING is not set
# CONFIG_HID_XINMO is not set
# CONFIG_HID_ZEROPLUS is not set
# CONFIG_HID_ZYDACRON is not set
@@ -4607,7 +4561,7 @@ CONFIG_USB_HSIC_USB3503=y
# CONFIG_USB_HSIC_USB4604 is not set
# CONFIG_USB_LINK_LAYER_TEST is not set
# CONFIG_USB_CHAOSKEY is not set
# CONFIG_USB_ONBOARD_DEV is not set
# CONFIG_USB_ONBOARD_HUB is not set
#
# USB Physical Layer drivers
@@ -4625,7 +4579,6 @@ CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG_FS is not set
CONFIG_USB_GADGET_VBUS_DRAW=2
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
# CONFIG_U_SERIAL_CONSOLE is not set
#
# USB Peripheral Controller
@@ -4645,8 +4598,6 @@ CONFIG_USB_BDC_UDC=y
# end of USB Peripheral Controller
CONFIG_USB_LIBCOMPOSITE=y
CONFIG_USB_F_ACM=y
CONFIG_USB_U_SERIAL=y
CONFIG_USB_U_ETHER=y
CONFIG_USB_F_NCM=y
CONFIG_USB_F_ECM=y
@@ -4840,7 +4791,6 @@ CONFIG_LEDS_SGM3140=y
# CONFIG_LEDS_LM3601X is not set
# CONFIG_LEDS_RT4505 is not set
# CONFIG_LEDS_RT8515 is not set
# CONFIG_LEDS_SY7802 is not set
#
# RGB LED drivers
@@ -4867,8 +4817,8 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
CONFIG_LEDS_TRIGGER_PANIC=y
# CONFIG_LEDS_TRIGGER_NETDEV is not set
CONFIG_LEDS_TRIGGER_PATTERN=y
# CONFIG_LEDS_TRIGGER_AUDIO is not set
# CONFIG_LEDS_TRIGGER_TTY is not set
# CONFIG_LEDS_TRIGGER_INPUT_EVENTS is not set
#
# Simple LED drivers
@@ -4928,7 +4878,6 @@ CONFIG_RTC_INTF_DEV=y
# CONFIG_RTC_DRV_S35390A is not set
# CONFIG_RTC_DRV_FM3130 is not set
# CONFIG_RTC_DRV_RX8010 is not set
# CONFIG_RTC_DRV_RX8111 is not set
# CONFIG_RTC_DRV_RX8581 is not set
# CONFIG_RTC_DRV_RX8025 is not set
# CONFIG_RTC_DRV_EM3027 is not set
@@ -5063,6 +5012,7 @@ CONFIG_VHOST_MENU=y
# CONFIG_GREYBUS is not set
# CONFIG_COMEDI is not set
CONFIG_STAGING=y
# CONFIG_PRISM2_USB is not set
# CONFIG_RTLLIB is not set
CONFIG_RTL8723BS=m
# CONFIG_R8712U is not set
@@ -5118,10 +5068,8 @@ CONFIG_VIDEO_SUNXI_CEDRUS=y
CONFIG_RTL8723CS=m
# CONFIG_GOLDFISH is not set
# CONFIG_CHROME_PLATFORMS is not set
# CONFIG_CZNIC_PLATFORMS is not set
# CONFIG_MELLANOX_PLATFORM is not set
# CONFIG_SURFACE_PLATFORMS is not set
CONFIG_ARM64_PLATFORM_DEVICES=y
CONFIG_HAVE_CLK=y
CONFIG_HAVE_CLK_PREPARE=y
CONFIG_COMMON_CLK=y
@@ -5187,7 +5135,6 @@ CONFIG_SUN50I_ERRATUM_UNKNOWN1=y
CONFIG_MAILBOX=y
CONFIG_ARM_MHU=y
# CONFIG_ARM_MHU_V2 is not set
# CONFIG_ARM_MHU_V3 is not set
CONFIG_PLATFORM_MHU=y
# CONFIG_PL320_MBOX is not set
# CONFIG_ALTERA_MBOX is not set
@@ -5410,6 +5357,7 @@ CONFIG_BMC150_ACCEL_I2C=m
# CONFIG_AD7291 is not set
# CONFIG_AD7606_IFACE_PARALLEL is not set
# CONFIG_AD799X is not set
# CONFIG_ADI_AXI_ADC is not set
CONFIG_AXP20X_ADC=y
# CONFIG_AXP288_ADC is not set
# CONFIG_CC10001_ADC is not set
@@ -5434,7 +5382,6 @@ CONFIG_AXP20X_ADC=y
# CONFIG_SUN20I_GPADC is not set
# CONFIG_TI_ADC081C is not set
# CONFIG_TI_ADS1015 is not set
# CONFIG_TI_ADS1119 is not set
# CONFIG_TI_ADS7924 is not set
# CONFIG_TI_ADS1100 is not set
# CONFIG_VF610_ADC is not set
@@ -5473,7 +5420,6 @@ CONFIG_AXP20X_ADC=y
# CONFIG_ATLAS_EZO_SENSOR is not set
# CONFIG_BME680 is not set
# CONFIG_CCS811 is not set
# CONFIG_ENS160 is not set
# CONFIG_IAQCORE is not set
# CONFIG_PMS7003 is not set
# CONFIG_SCD30_CORE is not set
@@ -5612,7 +5558,6 @@ CONFIG_INV_MPU6050_I2C=m
# CONFIG_AL3010 is not set
# CONFIG_AL3320A is not set
# CONFIG_APDS9300 is not set
# CONFIG_APDS9306 is not set
# CONFIG_APDS9960 is not set
# CONFIG_AS73211 is not set
# CONFIG_BH1750 is not set
@@ -5657,7 +5602,6 @@ CONFIG_STK3310=m
# CONFIG_VCNL4000 is not set
# CONFIG_VCNL4035 is not set
# CONFIG_VEML6030 is not set
# CONFIG_VEML6040 is not set
# CONFIG_VEML6070 is not set
# CONFIG_VEML6075 is not set
# CONFIG_VL6180 is not set
@@ -5790,10 +5734,10 @@ CONFIG_IIO_ST_MAGN_I2C_3AXIS=m
# end of Temperature sensors
CONFIG_PWM=y
CONFIG_PWM_SYSFS=y
# CONFIG_PWM_ATMEL_TCB is not set
# CONFIG_PWM_CLK is not set
# CONFIG_PWM_FSL_FTM is not set
# CONFIG_PWM_GPIO is not set
# CONFIG_PWM_PCA9685 is not set
CONFIG_PWM_SUN4I=y
# CONFIG_PWM_XILINX is not set
@@ -5806,9 +5750,7 @@ CONFIG_ARM_GIC=y
CONFIG_ARM_GIC_MAX_NR=1
CONFIG_ARM_GIC_V3=y
CONFIG_ARM_GIC_V3_ITS=y
CONFIG_IRQ_MSI_LIB=y
# CONFIG_AL_FIC is not set
# CONFIG_LAN966X_OIC is not set
CONFIG_SUN6I_R_INTC=y
CONFIG_SUNXI_NMI_INTC=y
# CONFIG_XILINX_INTC is not set
@@ -6016,9 +5958,9 @@ CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
#
CONFIG_NETFS_SUPPORT=m
# CONFIG_NETFS_STATS is not set
# CONFIG_NETFS_DEBUG is not set
CONFIG_FSCACHE=y
# CONFIG_FSCACHE_STATS is not set
# CONFIG_FSCACHE_DEBUG is not set
CONFIG_CACHEFILES=m
# CONFIG_CACHEFILES_DEBUG is not set
# CONFIG_CACHEFILES_ERROR_INJECTION is not set
@@ -6327,6 +6269,7 @@ CONFIG_CRYPTO_ECC=m
CONFIG_CRYPTO_ECDH=m
# CONFIG_CRYPTO_ECDSA is not set
# CONFIG_CRYPTO_ECRDSA is not set
# CONFIG_CRYPTO_SM2 is not set
# CONFIG_CRYPTO_CURVE25519 is not set
# end of Public-key cryptography
@@ -6447,6 +6390,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
# CONFIG_CRYPTO_USER_API_RNG is not set
# CONFIG_CRYPTO_USER_API_AEAD is not set
# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
# CONFIG_CRYPTO_STATS is not set
# end of Userspace interface
CONFIG_CRYPTO_HASH_INFO=y
@@ -6621,13 +6565,13 @@ CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_DMA_DECLARE_COHERENT=y
CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
CONFIG_SWIOTLB=y
# CONFIG_SWIOTLB_DYNAMIC is not set
CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC=y
CONFIG_DMA_NEED_SYNC=y
# CONFIG_DMA_RESTRICTED_POOL is not set
CONFIG_DMA_NONCOHERENT_MMAP=y
CONFIG_DMA_COHERENT_POOL=y
@@ -6654,7 +6598,6 @@ CONFIG_NLATTR=y
CONFIG_CLZ_TAB=y
# CONFIG_IRQ_POLL is not set
CONFIG_MPILIB=y
CONFIG_DIMLIB=y
CONFIG_LIBFDT=y
CONFIG_OID_REGISTRY=y
CONFIG_HAVE_GENERIC_VDSO=y
@@ -6747,7 +6690,6 @@ CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
# CONFIG_DEBUG_VM_PGTABLE is not set
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_MEM_ALLOC_PROFILING is not set
CONFIG_HAVE_ARCH_KASAN=y
CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y
CONFIG_HAVE_ARCH_KASAN_HW_TAGS=y
@@ -6774,7 +6716,6 @@ CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y
# Scheduler Debugging
#
CONFIG_SCHED_INFO=y
# CONFIG_SCHEDSTATS is not set
# end of Scheduler Debugging
# CONFIG_DEBUG_TIMEKEEPING is not set
@@ -6803,7 +6744,6 @@ CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0
# CONFIG_RCU_CPU_STALL_CPUTIME is not set
# end of RCU Debugging
CONFIG_USER_STACKTRACE_SUPPORT=y
CONFIG_NOP_TRACER=y
CONFIG_HAVE_FUNCTION_TRACER=y
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
@@ -6859,7 +6799,6 @@ CONFIG_FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY=y
# CONFIG_RING_BUFFER_BENCHMARK is not set
# CONFIG_TRACE_EVAL_MAP_FILE is not set
# CONFIG_FTRACE_RECORD_RECURSION is not set
# CONFIG_FTRACE_VALIDATE_RCU_IS_WATCHING is not set
# CONFIG_FTRACE_STARTUP_TEST is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not set
# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/arm 6.11.0 Kernel Configuration
# Linux/arm 6.9.10 Kernel Configuration
#
CONFIG_CC_VERSION_TEXT="armv7-alpine-linux-musleabihf-gcc (Alpine 14.2.0) 14.2.0"
CONFIG_CC_IS_GCC=y
@@ -115,7 +115,7 @@ CONFIG_PREEMPTION=y
CONFIG_TICK_CPU_ACCOUNTING=y
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
# CONFIG_IRQ_TIME_ACCOUNTING is not set
CONFIG_SCHED_HW_PRESSURE=y
CONFIG_SCHED_THERMAL_PRESSURE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
CONFIG_PSI=y
@@ -134,7 +134,6 @@ CONFIG_TREE_SRCU=y
CONFIG_NEED_SRCU_NMI_SAFE=y
CONFIG_TASKS_RCU_GENERIC=y
# CONFIG_FORCE_TASKS_RCU is not set
CONFIG_NEED_TASKS_RCU=y
CONFIG_TASKS_RCU=y
# CONFIG_FORCE_TASKS_RUDE_RCU is not set
CONFIG_TASKS_RUDE_RCU=y
@@ -173,12 +172,11 @@ CONFIG_GCC10_NO_ARRAY_BOUNDS=y
CONFIG_CC_NO_ARRAY_BOUNDS=y
CONFIG_GCC_NO_STRINGOP_OVERFLOW=y
CONFIG_CC_NO_STRINGOP_OVERFLOW=y
CONFIG_SLAB_OBJ_EXT=y
CONFIG_CGROUPS=y
CONFIG_PAGE_COUNTER=y
# CONFIG_CGROUP_FAVOR_DYNMODS is not set
CONFIG_MEMCG=y
# CONFIG_MEMCG_V1 is not set
CONFIG_MEMCG_KMEM=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_WRITEBACK=y
CONFIG_CGROUP_SCHED=y
@@ -220,7 +218,6 @@ CONFIG_RD_ZSTD=y
CONFIG_INITRAMFS_PRESERVE_MTIME=y
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y
CONFIG_LD_ORPHAN_WARN=y
CONFIG_LD_ORPHAN_WARN_LEVEL="warn"
CONFIG_SYSCTL=y
@@ -234,6 +231,7 @@ CONFIG_POSIX_TIMERS=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_FUTEX_PI=y
CONFIG_EPOLL=y
@@ -250,6 +248,7 @@ CONFIG_RSEQ=y
CONFIG_CACHESTAT_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_SELFTEST is not set
CONFIG_KALLSYMS_BASE_RELATIVE=y
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_USE_VMALLOC=y
@@ -482,7 +481,6 @@ CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_HIGHMEM=y
CONFIG_HIGHPTE=y
CONFIG_ARM_PAN=y
CONFIG_CPU_SW_DOMAIN_PAN=y
CONFIG_HW_PERF_EVENTS=y
CONFIG_ARM_MODULE_PLTS=y
@@ -635,12 +633,10 @@ CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP=y
CONFIG_SECCOMP_FILTER=y
# CONFIG_SECCOMP_CACHE_DEBUG is not set
CONFIG_HAVE_ARCH_STACKLEAK=y
CONFIG_HAVE_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR_STRONG=y
CONFIG_LTO_NONE=y
CONFIG_ARCH_SUPPORTS_CFI_CLANG=y
CONFIG_HAVE_CONTEXT_TRACKING_USER=y
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
@@ -691,6 +687,7 @@ CONFIG_CC_HAS_SANE_FUNCTION_ALIGNMENT=y
# end of General architecture-dependent options
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
# CONFIG_MODULE_DEBUG is not set
# CONFIG_MODULE_FORCE_LOAD is not set
@@ -715,9 +712,11 @@ CONFIG_BLK_CGROUP_PUNT_BIO=y
CONFIG_BLK_DEV_BSG_COMMON=y
# CONFIG_BLK_DEV_BSGLIB is not set
CONFIG_BLK_DEV_INTEGRITY=y
CONFIG_BLK_DEV_INTEGRITY_T10=y
CONFIG_BLK_DEV_WRITE_MOUNTED=y
# CONFIG_BLK_DEV_ZONED is not set
CONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_DEV_THROTTLING_LOW is not set
# CONFIG_BLK_WBT is not set
# CONFIG_BLK_CGROUP_IOLATENCY is not set
# CONFIG_BLK_CGROUP_IOCOST is not set
@@ -775,7 +774,6 @@ CONFIG_COREDUMP=y
#
CONFIG_SWAP=y
# CONFIG_ZSWAP is not set
CONFIG_HAVE_ZSMALLOC=y
CONFIG_ZSMALLOC=m
CONFIG_ZSMALLOC_STAT=y
CONFIG_ZSMALLOC_CHAIN_SIZE=8
@@ -787,7 +785,6 @@ CONFIG_SLUB=y
CONFIG_SLAB_MERGE_DEFAULT=y
# CONFIG_SLAB_FREELIST_RANDOM is not set
# CONFIG_SLAB_FREELIST_HARDENED is not set
# CONFIG_SLAB_BUCKETS is not set
# CONFIG_SLUB_STATS is not set
CONFIG_SLUB_CPU_PARTIAL=y
# CONFIG_RANDOM_KMALLOC_CACHES is not set
@@ -835,7 +832,6 @@ CONFIG_LRU_GEN_ENABLED=y
CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
CONFIG_PER_VMA_LOCK=y
CONFIG_LOCK_MM_AND_FIND_VMA=y
CONFIG_EXECMEM=y
#
# Data Access Monitoring
@@ -1734,7 +1730,6 @@ CONFIG_VXLAN=m
# CONFIG_GENEVE is not set
# CONFIG_BAREUDP is not set
# CONFIG_GTP is not set
# CONFIG_PFCP is not set
# CONFIG_MACSEC is not set
# CONFIG_NETCONSOLE is not set
CONFIG_TUN=y
@@ -1784,7 +1779,6 @@ CONFIG_NET_VENDOR_ADI=y
CONFIG_NET_VENDOR_MELLANOX=y
# CONFIG_MLXSW_CORE is not set
# CONFIG_MLXFW is not set
CONFIG_NET_VENDOR_META=y
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROCHIP is not set
CONFIG_NET_VENDOR_MICROSEMI=y
@@ -1836,7 +1830,6 @@ CONFIG_FIXED_PHY=y
#
# MII PHY device drivers
#
# CONFIG_AIR_EN8811H_PHY is not set
# CONFIG_AMD_PHY is not set
# CONFIG_ADIN_PHY is not set
# CONFIG_ADIN1100_PHY is not set
@@ -1879,7 +1872,6 @@ CONFIG_MICREL_PHY=y
CONFIG_REALTEK_PHY=y
# CONFIG_RENESAS_PHY is not set
# CONFIG_ROCKCHIP_PHY is not set
# CONFIG_RK630_PHY is not set
# CONFIG_SMSC_PHY is not set
# CONFIG_STE10XP is not set
# CONFIG_TERANETICS_PHY is not set
@@ -2048,7 +2040,6 @@ CONFIG_ATH10K_SDIO=m
CONFIG_ATH10K_USB=m
# CONFIG_ATH10K_DEBUG is not set
CONFIG_ATH10K_DEBUGFS=y
CONFIG_ATH10K_LEDS=y
CONFIG_ATH10K_SPECTRAL=y
# CONFIG_ATH10K_TRACING is not set
CONFIG_WCN36XX=m
@@ -2146,7 +2137,6 @@ CONFIG_WLAN_VENDOR_REALTEK=y
# CONFIG_RTL8187 is not set
CONFIG_RTL_CARDS=m
# CONFIG_RTL8192CU is not set
# CONFIG_RTL8192DU is not set
CONFIG_RTL8XXXU=m
CONFIG_RTL8XXXU_UNTESTED=y
CONFIG_RTW88=m
@@ -2577,7 +2567,6 @@ CONFIG_SPI_MASTER=y
# CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_CADENCE is not set
# CONFIG_SPI_CADENCE_QUADSPI is not set
# CONFIG_SPI_CH341 is not set
# CONFIG_SPI_DESIGNWARE is not set
# CONFIG_SPI_GPIO is not set
# CONFIG_SPI_FSL_SPI is not set
@@ -2755,15 +2744,8 @@ CONFIG_GPIO_CDEV_V1=y
# CONFIG_GPIO_SIM is not set
# end of Virtual GPIO drivers
#
# GPIO Debugging utilities
#
# CONFIG_GPIO_VIRTUSER is not set
# end of GPIO Debugging utilities
# CONFIG_W1 is not set
# CONFIG_POWER_RESET is not set
# CONFIG_POWER_SEQUENCING is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
CONFIG_POWER_SUPPLY_HWMON=y
@@ -2785,7 +2767,6 @@ CONFIG_BATTERY_AXP20X=y
CONFIG_AXP20X_POWER=y
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
# CONFIG_BATTERY_MAX1720X is not set
# CONFIG_CHARGER_ISP1704 is not set
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_LP8727 is not set
@@ -2823,6 +2804,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_AD7314 is not set
# CONFIG_SENSORS_AD7414 is not set
# CONFIG_SENSORS_AD7418 is not set
# CONFIG_SENSORS_ADM1021 is not set
# CONFIG_SENSORS_ADM1025 is not set
# CONFIG_SENSORS_ADM1026 is not set
# CONFIG_SENSORS_ADM1029 is not set
@@ -2892,6 +2874,7 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_MAX6620 is not set
# CONFIG_SENSORS_MAX6621 is not set
# CONFIG_SENSORS_MAX6639 is not set
# CONFIG_SENSORS_MAX6642 is not set
# CONFIG_SENSORS_MAX6650 is not set
# CONFIG_SENSORS_MAX6697 is not set
# CONFIG_SENSORS_MAX31790 is not set
@@ -2959,7 +2942,6 @@ CONFIG_HWMON=y
# CONFIG_SENSORS_INA2XX is not set
# CONFIG_SENSORS_INA238 is not set
# CONFIG_SENSORS_INA3221 is not set
# CONFIG_SENSORS_SPD5118 is not set
# CONFIG_SENSORS_TC74 is not set
# CONFIG_SENSORS_THMC50 is not set
# CONFIG_SENSORS_TMP102 is not set
@@ -3086,7 +3068,6 @@ CONFIG_MFD_AXP20X_RSB=y
# CONFIG_MFD_88PM800 is not set
# CONFIG_MFD_88PM805 is not set
# CONFIG_MFD_88PM860X is not set
# CONFIG_MFD_88PM886_PMIC is not set
# CONFIG_MFD_MAX14577 is not set
# CONFIG_MFD_MAX77541 is not set
# CONFIG_MFD_MAX77620 is not set
@@ -3163,13 +3144,10 @@ CONFIG_MFD_SYSCON=y
# CONFIG_MFD_ROHM_BD718XX is not set
# CONFIG_MFD_ROHM_BD71828 is not set
# CONFIG_MFD_ROHM_BD957XMUF is not set
# CONFIG_MFD_ROHM_BD96801 is not set
# CONFIG_MFD_STPMIC1 is not set
# CONFIG_MFD_STMFX is not set
# CONFIG_MFD_ATC260X_I2C is not set
# CONFIG_MFD_QCOM_PM8008 is not set
# CONFIG_MFD_CS40L50_I2C is not set
# CONFIG_MFD_CS40L50_SPI is not set
# CONFIG_MFD_INTEL_M10_BMC_SPI is not set
# CONFIG_MFD_RSMU_I2C is not set
# CONFIG_MFD_RSMU_SPI is not set
@@ -3240,7 +3218,6 @@ CONFIG_REGULATOR_GPIO=y
# CONFIG_REGULATOR_RTQ6752 is not set
# CONFIG_REGULATOR_RTQ2208 is not set
# CONFIG_REGULATOR_SLG51000 is not set
CONFIG_REGULATOR_SUN20I=y
# CONFIG_REGULATOR_SY8106A is not set
# CONFIG_REGULATOR_SY8824X is not set
# CONFIG_REGULATOR_SY8827N is not set
@@ -3369,7 +3346,6 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y
#
# Chips&Media media platform drivers
#
# CONFIG_VIDEO_E5010_JPEG_ENC is not set
#
# Intel media platform drivers
@@ -3403,11 +3379,6 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y
# Qualcomm media platform drivers
#
#
# Raspberry Pi media platform drivers
#
# CONFIG_VIDEO_RASPBERRYPI_PISP_BE is not set
#
# Renesas media platform drivers
#
@@ -3485,8 +3456,6 @@ CONFIG_VIDEO_IR_I2C=y
# CONFIG_VIDEO_DS90UB913 is not set
# CONFIG_VIDEO_DS90UB953 is not set
# CONFIG_VIDEO_DS90UB960 is not set
# CONFIG_VIDEO_MAX96714 is not set
# CONFIG_VIDEO_MAX96717 is not set
# end of Video serializers and deserializers
#
@@ -3514,10 +3483,9 @@ CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
CONFIG_DRM_DISPLAY_HELPER=y
# CONFIG_DRM_DISPLAY_DP_AUX_CEC is not set
# CONFIG_DRM_DISPLAY_DP_AUX_CHARDEV is not set
CONFIG_DRM_DISPLAY_HDMI_HELPER=y
CONFIG_DRM_DISPLAY_HDMI_STATE_HELPER=y
# CONFIG_DRM_DP_AUX_CHARDEV is not set
# CONFIG_DRM_DP_CEC is not set
CONFIG_DRM_GEM_DMA_HELPER=y
CONFIG_DRM_GEM_SHMEM_HELPER=y
CONFIG_DRM_SCHED=y
@@ -3573,13 +3541,11 @@ CONFIG_DRM_PANEL=y
# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set
# CONFIG_DRM_PANEL_DSI_CM is not set
CONFIG_DRM_PANEL_LVDS=y
# CONFIG_DRM_PANEL_HIMAX_HX83102 is not set
# CONFIG_DRM_PANEL_HIMAX_HX83112A is not set
# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set
# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9805 is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9806E is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set
# CONFIG_DRM_PANEL_ILITEK_ILI9882T is not set
# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set
@@ -3592,10 +3558,8 @@ CONFIG_DRM_PANEL_LVDS=y
# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set
# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set
# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set
# CONFIG_DRM_PANEL_LINCOLNTECH_LCD197 is not set
# CONFIG_DRM_PANEL_LG_LB035Q02 is not set
# CONFIG_DRM_PANEL_LG_LG4573 is not set
# CONFIG_DRM_PANEL_LG_SW43408 is not set
# CONFIG_DRM_PANEL_MAGNACHIP_D53E6EA8966 is not set
# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set
# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set
@@ -3617,13 +3581,11 @@ CONFIG_DRM_PANEL_LVDS=y
# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM692E5 is not set
# CONFIG_DRM_PANEL_RAYDIUM_RM69380 is not set
# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set
# CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set
# CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set
# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6E3FA7 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set
# CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set
@@ -3728,7 +3690,6 @@ CONFIG_DRM_DW_HDMI=y
# CONFIG_DRM_TVE200 is not set
CONFIG_DRM_LIMA=y
# CONFIG_DRM_PANFROST is not set
# CONFIG_DRM_PANTHOR is not set
# CONFIG_DRM_MCDE is not set
# CONFIG_DRM_TIDSS is not set
# CONFIG_DRM_GUD is not set
@@ -3783,7 +3744,6 @@ CONFIG_BACKLIGHT_PWM=y
# CONFIG_BACKLIGHT_QCOM_WLED is not set
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
# CONFIG_BACKLIGHT_LM3509 is not set
# CONFIG_BACKLIGHT_LM3630A is not set
# CONFIG_BACKLIGHT_LM3639 is not set
# CONFIG_BACKLIGHT_LP855X is not set
@@ -3941,7 +3901,6 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_AK4458 is not set
# CONFIG_SND_SOC_AK4554 is not set
# CONFIG_SND_SOC_AK4613 is not set
# CONFIG_SND_SOC_AK4619 is not set
# CONFIG_SND_SOC_AK4642 is not set
# CONFIG_SND_SOC_AK5386 is not set
# CONFIG_SND_SOC_AK5558 is not set
@@ -3982,14 +3941,12 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_CS4341 is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
# CONFIG_SND_SOC_CS530X_I2C is not set
# CONFIG_SND_SOC_CX2072X is not set
# CONFIG_SND_SOC_DA7213 is not set
# CONFIG_SND_SOC_DMIC is not set
# CONFIG_SND_SOC_EC25 is not set
# CONFIG_SND_SOC_ES7134 is not set
# CONFIG_SND_SOC_ES7241 is not set
# CONFIG_SND_SOC_ES8311 is not set
# CONFIG_SND_SOC_ES8316 is not set
# CONFIG_SND_SOC_ES8326 is not set
# CONFIG_SND_SOC_ES8328_I2C is not set
@@ -3998,6 +3955,7 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_HDA is not set
# CONFIG_SND_SOC_ICS43432 is not set
# CONFIG_SND_SOC_IDT821034 is not set
# CONFIG_SND_SOC_INNO_RK3036 is not set
# CONFIG_SND_SOC_MAX98088 is not set
# CONFIG_SND_SOC_MAX98090 is not set
# CONFIG_SND_SOC_MAX98357A is not set
@@ -4024,8 +3982,8 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_PCM5102A is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
# CONFIG_SND_SOC_PCM512x_SPI is not set
# CONFIG_SND_SOC_PCM6240 is not set
# CONFIG_SND_SOC_PEB2466 is not set
# CONFIG_SND_SOC_RK3328 is not set
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
# CONFIG_SND_SOC_RT5640 is not set
@@ -4234,7 +4192,6 @@ CONFIG_HID_MONTEREY=y
# CONFIG_HID_UDRAW_PS3 is not set
CONFIG_HID_WACOM=m
# CONFIG_HID_WIIMOTE is not set
# CONFIG_HID_WINWING is not set
# CONFIG_HID_XINMO is not set
# CONFIG_HID_ZEROPLUS is not set
# CONFIG_HID_ZYDACRON is not set
@@ -4411,7 +4368,7 @@ CONFIG_APPLE_MFI_FASTCHARGE=m
# CONFIG_USB_HSIC_USB3503 is not set
# CONFIG_USB_HSIC_USB4604 is not set
# CONFIG_USB_LINK_LAYER_TEST is not set
# CONFIG_USB_ONBOARD_DEV is not set
# CONFIG_USB_ONBOARD_HUB is not set
#
# USB Physical Layer drivers
@@ -4453,7 +4410,6 @@ CONFIG_USB_MAX3420_UDC=m
# end of USB Peripheral Controller
CONFIG_USB_LIBCOMPOSITE=m
CONFIG_USB_F_ACM=m
CONFIG_USB_U_SERIAL=m
CONFIG_USB_U_ETHER=m
CONFIG_USB_U_AUDIO=m
@@ -4661,8 +4617,8 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
# CONFIG_LEDS_TRIGGER_PANIC is not set
# CONFIG_LEDS_TRIGGER_NETDEV is not set
CONFIG_LEDS_TRIGGER_PATTERN=y
# CONFIG_LEDS_TRIGGER_AUDIO is not set
# CONFIG_LEDS_TRIGGER_TTY is not set
# CONFIG_LEDS_TRIGGER_INPUT_EVENTS is not set
#
# Simple LED drivers
@@ -4718,7 +4674,6 @@ CONFIG_RTC_DRV_PCF8563=m
# CONFIG_RTC_DRV_S35390A is not set
# CONFIG_RTC_DRV_FM3130 is not set
# CONFIG_RTC_DRV_RX8010 is not set
# CONFIG_RTC_DRV_RX8111 is not set
# CONFIG_RTC_DRV_RX8581 is not set
# CONFIG_RTC_DRV_RX8025 is not set
# CONFIG_RTC_DRV_EM3027 is not set
@@ -4834,6 +4789,7 @@ CONFIG_DMABUF_HEAPS_CMA=y
CONFIG_UIO=m
CONFIG_UIO_PDRV_GENIRQ=m
CONFIG_UIO_DMEM_GENIRQ=m
# CONFIG_UIO_PRUSS is not set
# CONFIG_VFIO is not set
# CONFIG_VIRT_DRIVERS is not set
CONFIG_VIRTIO_MENU=y
@@ -4852,6 +4808,7 @@ CONFIG_VHOST_MENU=y
# CONFIG_GREYBUS is not set
# CONFIG_COMEDI is not set
CONFIG_STAGING=y
CONFIG_PRISM2_USB=m
CONFIG_RTLLIB=m
CONFIG_RTLLIB_CRYPTO_CCMP=m
CONFIG_RTLLIB_CRYPTO_TKIP=m
@@ -4911,12 +4868,12 @@ CONFIG_VIDEO_SUNXI_CEDRUS=y
# CONFIG_LTE_GDM724X is not set
# CONFIG_FB_TFT is not set
# CONFIG_KS7010 is not set
# CONFIG_PI433 is not set
# CONFIG_XIL_AXIS_FIFO is not set
# CONFIG_FIELDBUS_DEV is not set
CONFIG_RTL8723CS=m
# CONFIG_GOLDFISH is not set
# CONFIG_CHROME_PLATFORMS is not set
# CONFIG_CZNIC_PLATFORMS is not set
# CONFIG_MELLANOX_PLATFORM is not set
CONFIG_HAVE_CLK=y
CONFIG_HAVE_CLK_PREPARE=y
@@ -4986,7 +4943,6 @@ CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
# end of Clock Source drivers
CONFIG_MAILBOX=y
# CONFIG_ARM_MHU_V3 is not set
# CONFIG_PLATFORM_MHU is not set
# CONFIG_ALTERA_MBOX is not set
# CONFIG_MAILBOX_TEST is not set
@@ -5183,14 +5139,12 @@ CONFIG_MMA7660=m
# CONFIG_AD7091R5 is not set
# CONFIG_AD7091R8 is not set
# CONFIG_AD7124 is not set
# CONFIG_AD7173 is not set
# CONFIG_AD7192 is not set
# CONFIG_AD7266 is not set
# CONFIG_AD7280 is not set
# CONFIG_AD7291 is not set
# CONFIG_AD7292 is not set
# CONFIG_AD7298 is not set
# CONFIG_AD7380 is not set
# CONFIG_AD7476 is not set
# CONFIG_AD7606_IFACE_PARALLEL is not set
# CONFIG_AD7606_IFACE_SPI is not set
@@ -5201,10 +5155,10 @@ CONFIG_MMA7660=m
# CONFIG_AD7793 is not set
# CONFIG_AD7887 is not set
# CONFIG_AD7923 is not set
# CONFIG_AD7944 is not set
# CONFIG_AD7949 is not set
# CONFIG_AD799X is not set
# CONFIG_AD9467 is not set
# CONFIG_ADI_AXI_ADC is not set
CONFIG_AXP20X_ADC=y
# CONFIG_AXP288_ADC is not set
# CONFIG_CC10001_ADC is not set
@@ -5244,7 +5198,6 @@ CONFIG_AXP20X_ADC=y
# CONFIG_TI_ADC128S052 is not set
# CONFIG_TI_ADC161S626 is not set
# CONFIG_TI_ADS1015 is not set
# CONFIG_TI_ADS1119 is not set
# CONFIG_TI_ADS7924 is not set
# CONFIG_TI_ADS1100 is not set
# CONFIG_TI_ADS1298 is not set
@@ -5296,7 +5249,6 @@ CONFIG_AXP20X_ADC=y
# CONFIG_ATLAS_EZO_SENSOR is not set
# CONFIG_BME680 is not set
# CONFIG_CCS811 is not set
# CONFIG_ENS160 is not set
# CONFIG_IAQCORE is not set
# CONFIG_SCD30_CORE is not set
# CONFIG_SCD4X is not set
@@ -5337,7 +5289,6 @@ CONFIG_AXP20X_ADC=y
# CONFIG_AD5593R is not set
# CONFIG_AD5504 is not set
# CONFIG_AD5624R_SPI is not set
# CONFIG_AD9739A is not set
# CONFIG_LTC2688 is not set
# CONFIG_AD5686_SPI is not set
# CONFIG_AD5696_I2C is not set
@@ -5478,7 +5429,6 @@ CONFIG_AXP20X_ADC=y
# CONFIG_AL3010 is not set
# CONFIG_AL3320A is not set
# CONFIG_APDS9300 is not set
# CONFIG_APDS9306 is not set
# CONFIG_APDS9960 is not set
# CONFIG_AS73211 is not set
# CONFIG_BH1750 is not set
@@ -5523,7 +5473,6 @@ CONFIG_AXP20X_ADC=y
# CONFIG_VCNL4000 is not set
# CONFIG_VCNL4035 is not set
# CONFIG_VEML6030 is not set
# CONFIG_VEML6040 is not set
# CONFIG_VEML6070 is not set
# CONFIG_VEML6075 is not set
# CONFIG_VL6180 is not set
@@ -5665,10 +5614,10 @@ CONFIG_AXP20X_ADC=y
# end of Temperature sensors
CONFIG_PWM=y
CONFIG_PWM_SYSFS=y
# CONFIG_PWM_ATMEL_TCB is not set
# CONFIG_PWM_CLK is not set
# CONFIG_PWM_FSL_FTM is not set
# CONFIG_PWM_GPIO is not set
# CONFIG_PWM_PCA9685 is not set
CONFIG_PWM_SUN4I=y
# CONFIG_PWM_XILINX is not set
@@ -5680,7 +5629,6 @@ CONFIG_IRQCHIP=y
CONFIG_ARM_GIC=y
CONFIG_ARM_GIC_MAX_NR=1
# CONFIG_AL_FIC is not set
# CONFIG_LAN966X_OIC is not set
CONFIG_SUN4I_INTC=y
CONFIG_SUN6I_R_INTC=y
CONFIG_SUNXI_NMI_INTC=y
@@ -5738,7 +5686,6 @@ CONFIG_PHY_SUN50I_USB3=y
# CONFIG_ARM_CCI_PMU is not set
# CONFIG_ARM_CCN is not set
CONFIG_ARM_PMU=y
CONFIG_ARM_V7_PMU=y
# CONFIG_ARM_PMUV3 is not set
# end of Performance monitor support
@@ -5866,9 +5813,9 @@ CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
#
CONFIG_NETFS_SUPPORT=m
# CONFIG_NETFS_STATS is not set
# CONFIG_NETFS_DEBUG is not set
CONFIG_FSCACHE=y
# CONFIG_FSCACHE_STATS is not set
# CONFIG_FSCACHE_DEBUG is not set
CONFIG_CACHEFILES=m
# CONFIG_CACHEFILES_DEBUG is not set
# CONFIG_CACHEFILES_ERROR_INJECTION is not set
@@ -6078,7 +6025,6 @@ CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
CONFIG_INIT_STACK_NONE=y
# CONFIG_INIT_STACK_ALL_PATTERN is not set
# CONFIG_INIT_STACK_ALL_ZERO is not set
# CONFIG_GCC_PLUGIN_STACKLEAK is not set
# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
@@ -6147,6 +6093,7 @@ CONFIG_CRYPTO_ECC=y
CONFIG_CRYPTO_ECDH=y
# CONFIG_CRYPTO_ECDSA is not set
# CONFIG_CRYPTO_ECRDSA is not set
# CONFIG_CRYPTO_SM2 is not set
# CONFIG_CRYPTO_CURVE25519 is not set
# end of Public-key cryptography
@@ -6264,6 +6211,7 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
# CONFIG_CRYPTO_USER_API_RNG is not set
# CONFIG_CRYPTO_USER_API_AEAD is not set
# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
# CONFIG_CRYPTO_STATS is not set
# end of Userspace interface
CONFIG_CRYPTO_HASH_INFO=y
@@ -6429,7 +6377,6 @@ CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
CONFIG_DMA_NEED_SYNC=y
CONFIG_DMA_NONCOHERENT_MMAP=y
CONFIG_ARCH_HAS_DMA_ALLOC=y
CONFIG_DMA_CMA=y
@@ -6454,7 +6401,6 @@ CONFIG_NLATTR=y
CONFIG_CLZ_TAB=y
# CONFIG_IRQ_POLL is not set
CONFIG_MPILIB=y
CONFIG_DIMLIB=y
CONFIG_LIBFDT=y
CONFIG_OID_REGISTRY=y
CONFIG_HAVE_GENERIC_VDSO=y
@@ -6538,7 +6484,6 @@ CONFIG_HAVE_DEBUG_KMEMLEAK=y
# CONFIG_SHRINKER_DEBUG is not set
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_MEM_ALLOC_PROFILING is not set
CONFIG_HAVE_ARCH_KASAN=y
CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
CONFIG_CC_HAS_KASAN_GENERIC=y
@@ -6561,7 +6506,6 @@ CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y
#
# Scheduler Debugging
#
# CONFIG_SCHEDSTATS is not set
# end of Scheduler Debugging
# CONFIG_DEBUG_TIMEKEEPING is not set
@@ -0,0 +1,8 @@
# Invert the acceleration so it is directed downwards, at rest on a planet.
# This is for compatibility with iio-sensor-proxy.
#
# https://gitlab.freedesktop.org/hadess/iio-sensor-proxy/-/issues/375
SUBSYSTEM=="misc", KERNEL=="fastrpc-adsp*", ENV{ACCEL_MOUNT_MATRIX}="-1, 0, 0; 0, -1, 0; 0, 0, -1"
# Be compatible with the fix to CVE 2024-41024.
SUBSYSTEM=="misc", KERNEL=="fastrpc-adsp-secure", SYMLINK="fastrpc-adsp"
+27 -2
View File
@@ -1,7 +1,7 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-google-bonito
pkgdesc="Google Pixel 3a XL"
pkgver=2
pkgver=3
pkgrel=0
url="https://postmarketos.org"
license="MIT"
@@ -17,9 +17,12 @@ depends="
"
makedepends="devicepkg-dev"
source="
81-libssc-google-sargo.rules
90-feedbackd-drv2624.rules
deviceinfo
hexagonrpcd-adsp-sensorspd.confd
modules-initfs
no-hexagonrpcd-on-suspend.sh
q6voiced.conf
"
subpackages="
@@ -47,23 +50,45 @@ kernel_sdc() {
nonfree_firmware() {
pkgdesc="Proprietary firmware blobs for the Google Pixel 3a XL"
replaces="hexagonrpcd-openrc"
depends="
firmware-google-sargo
hexagonrpcd
linux-firmware-ath10k
linux-firmware-qca
linux-firmware-qcom
soc-qcom-sdm845-modem
soc-qcom-sdm845-nonfree-firmware
"
# Enable HexagonRPCD by default, but not if the user installed this
# package then disabled it.
install="
device-google-sargo-nonfree-firmware.post-install
"
# The q6voiced configuration can only be used if the ADSP is brought up
# via non-free firmware.
install -Dm644 "$srcdir"/q6voiced.conf "$subpkgdir"/etc/conf.d/q6voiced
# Sensors depend on ADSP firmware and the sensors registry served over FastRPC.
install -Dm644 "$srcdir"/hexagonrpcd-adsp-sensorspd.confd \
"$subpkgdir"/etc/conf.d/hexagonrpcd-adsp-sensorspd
# Sensors depend on ADSP firmware and the sensors registry served over FastRPC.
install -Dm644 "$srcdir"/81-libssc-google-sargo.rules \
"$subpkgdir"/usr/lib/udev/rules.d/81-libssc-google-sargo.rules
# The FastRPC service is only enabled when non-free firmware is installed.
install -Dm755 "$srcdir"/no-hexagonrpcd-on-suspend.sh \
"$subpkgdir"/etc/elogind/system-sleep/no-hexagonrpcd-on-suspend.sh
}
sha512sums="
089ce0acba4e1d789e337bedfca7570796a6416e7230ae9b8fc6b625747a40dbb064b1a707877cd6b7bdc73844c6571316e2ec0746a77060f13d98c52fdbfc00 81-libssc-google-sargo.rules
016d398155f2344417f5e5649a361719ba6e53e593c501b5df39114cdd284302b9bf8686a39817aee0c08fec95b3ab613c181d6cc9596299aaf7fd05dbe0c3dd 90-feedbackd-drv2624.rules
a6860945d4c75b698a9fadfd0f42355a601c064f62bcf197061ba97be46d23727cac1df355a238042ce9c9017e0ddf458f23a858aad60bebe672ba495cc6c4ad deviceinfo
1eb5f138619f499fab31ea64f63ee9f8984f195528708ec6a01ddc533c74cfb71d1442b97905ae15db24b8faac259fa3e89db357ca9c747ce3ee598c2d681639 modules-initfs
b6208c254b6e44ac4f6d748a38cc6b05da0db2c90235ada2011b138b82ccc3372687df2f5ad97e885e9eea135216a3c52266a08a7f4eb323e62e799f6f82ec7b hexagonrpcd-adsp-sensorspd.confd
0253ff4688b789aa7cdbffb22e7ff9497aabe083adc44bf33fa52617215a1f48fc722bd61aa13a35d109eff1e69202eb599dccff029e39c0a390dcab11dd9b76 modules-initfs
2972005a9cf6ca57061965075593dddfa8ee479bc6c21cd41851b1a14768cb1cddbd31a17975ae17adc36d40d294ccbc6bf83defbd69fc7b363f638d8564fbbc no-hexagonrpcd-on-suspend.sh
3a4a9322839d4b3ef9d79668a37840a9f444954759ae3c512e694051d2f9a2573db42ad6c4c1a5c75eeb861232a27ba1a8cef9b503decd54ead25a96e3dd6f98 q6voiced.conf
"
@@ -0,0 +1,3 @@
#!/bin/sh
rc-update add hexagonrpcd-adsp-sensorspd
@@ -0,0 +1,2 @@
# HexagonFS root directory for served files.
hexagonrpcd_fw_dir="/usr/share/qcom/sdm670/Google/sargo"
@@ -1,3 +1,4 @@
gpi
i2c_qcom_geni
rmi_core
rmi_i2c
@@ -0,0 +1,9 @@
#!/bin/sh
if [ "$1" = "pre" ]
then
# If HexagonRPCD listens for a remote method call while the device is
# waking up, the DSP may crash. Assume that HexagonRPCD has fulfilled
# all incoming remote method invocations, and stop it.
rc-service hexagonrpcd-adsp-sensorspd stop
fi
@@ -3,7 +3,7 @@
pkgname=device-purism-librem5dev
pkgdesc="Purism Librem 5 Devkit"
pkgver=2
pkgrel=2
pkgrel=1
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
@@ -60,7 +60,7 @@ package() {
install -D -m644 "$srcdir"/modprobe.d_rsi.conf "$pkgdir"/etc/modprobe.d/rsi.conf
install -D -m644 "$srcdir"/00-mesa.sh "$pkgdir"/etc/profile.d/00-mesa.sh
install -D -m644 "$srcdir"/flash_script.lst "$pkgdir"/usr/share/uuu/flash_script.lst
install -D -m644 "$_confdir"/default/hwdb/80-librem5.hwdb "$pkgdir"/usr/lib/udev/hwdb.d/80-librem5.hwdb
install -D -m644 "$_confdir"/default/hwdb/80-librem5.hwdb "$pkgdir"/lib/udev/hwdb.d/80-librem5.hwdb
install -D -m644 "$_confdir"/debian/librem5-base-defaults.librem5-devkit-sgtl5000.udev \
"$pkgdir"/usr/lib/udev/rules.d/librem5-base-defaults.librem5-devkit-sgtl5000.udev
install -D -m644 "$_confdir"/debian/librem5-base-defaults.librem5-pm.udev \
-38
View File
@@ -1,38 +0,0 @@
pkgname=device-sony-ps4
pkgdesc="Sony Playstation 4 Original"
pkgver=1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="x86_64"
options="!check !archcheck"
depends="
linux-sony-ps4
postmarketos-base
grub-efi-x86
"
makedepends="devicepkg-dev"
source="
deviceinfo
modules-initfs
"
subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
build() {
devicepkg_build $startdir $pkgname
}
package() {
devicepkg_package $startdir $pkgname
}
nonfree_firmware() {
pkgdesc="Wi-Fi and bluetooth firmware"
depends="linux-firmware-mrvl"
mkdir "$subpkgdir"
}
sha512sums="
065faa7aed5acc1a8e15e1fe1e06929b57dc11030b7c842e7a46f7d4fae310ce3796a2d760a95222177c0d1d23f1e6cd982c3241a06e50c6d4961e69d3ce4450 deviceinfo
24ed2457630757df9e69b3216b883c3032848b3cc692fd5cf0252baa6dc0dbea33e95b20767a9cb36e8461a8e79e65d50cc5ecd3a6801dc3e8e90951a34138aa modules-initfs
"
-24
View File
@@ -1,24 +0,0 @@
# Reference: <https://postmarketos.org/deviceinfo>
# Please use double quotes only. You can source this file in shell
# scripts.
deviceinfo_format_version="0"
deviceinfo_name="Sony Playstation 4"
deviceinfo_manufacturer="Sony"
deviceinfo_codename="sony-ps4"
deviceinfo_year="2013"
deviceinfo_arch="x86_64"
deviceinfo_gpu_accelerated="true"
# Device related
deviceinfo_chassis="desktop"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="1920"
deviceinfo_screen_height="1080"
deviceinfo_framebuffer_landscape="true"
# Bootloader related
deviceinfo_flash_method="none"
deviceinfo_kernel_cmdline="panic=0 clocksource=tsc consoleblank=0 drm.debug=0 drm.edid_firmware=edid/my_edid.bin"
deviceinfo_partition_type="gpt"
deviceinfo_boot_filesystem="fat32"
@@ -1 +0,0 @@
hid-steam
+2 -2
View File
@@ -2,7 +2,7 @@
# Kernel config based on: arch/arm64/configs/defconfig
pkgname=linux-next
pkgver=6.12_git20241001
pkgver=6.12_git20240930
pkgrel=2
_nextver="${pkgver#*_git}"
pkgdesc="Linux next kernel"
@@ -69,7 +69,7 @@ package() {
}
sha512sums="
127c9be0262ba82bfd39977085a70bf0f16d523bde1823dda151a78e9b262b4b33efe5543f27d3f745a4ee4ecf911b57a01adac3970ad306a05582cb61119aef linux-next-next-20241001.tar.gz
9edf7524d6d9240ecc0fc34e26f0710e7a54ceed6e61fe730b9c7c16b33030335232b2916772004b8a9ae71ed7b9e22114facf656c960d38d98bedfff717441d linux-next-next-20240930.tar.gz
adbb506c0a2d676b1964a5d7c693f72338541ebd0cacee62e4579d43163c468d95607d73bf7439fb55b4d6bfa0dd42578b07ee20965aa03c2a9d8022cb3ae267 devices.config
a30df186f06519e2f519bfe622bbd46caec6c2473a1fd3df370320a661d53882b49cfb2b3be7edd92fabdb4a8e6e3419194e8d43cca3cf4ab1615275dab4fee4 pmos.config
"
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -1,37 +0,0 @@
From e9382715a310fc01a375e6e3eff7b185ce4277b4 Mon Sep 17 00:00:00 2001
From: codedwrench <rick.04.1996@gmail.com>
Date: Mon, 20 Dec 2021 14:01:45 +0100
Subject: [PATCH 04/22] feat: temperature sensors
---
drivers/hwmon/fam15h_power.c | 1 +
drivers/hwmon/k10temp.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/drivers/hwmon/fam15h_power.c b/drivers/hwmon/fam15h_power.c
index 521534d5c1e5..5b84627c7942 100644
--- a/drivers/hwmon/fam15h_power.c
+++ b/drivers/hwmon/fam15h_power.c
@@ -486,6 +486,7 @@ static const struct pci_device_id fam15h_power_id_table[] = {
{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_M70H_NB_F4) },
{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_16H_NB_F4) },
{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_16H_M30H_NB_F4) },
+ { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_16H_M41H_F4) },
{}
};
MODULE_DEVICE_TABLE(pci, fam15h_power_id_table);
diff --git a/drivers/hwmon/k10temp.c b/drivers/hwmon/k10temp.c
index 3618a924e78e..478672b391cb 100644
--- a/drivers/hwmon/k10temp.c
+++ b/drivers/hwmon/k10temp.c
@@ -487,6 +487,7 @@ static const struct pci_device_id k10temp_id_table[] = {
{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_NB_F3) },
{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_M10H_F3) },
{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_M30H_NB_F3) },
+ { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_16H_M41H_F3) },
{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_M60H_NB_F3) },
{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_M70H_NB_F3) },
{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_16H_NB_F3) },
--
2.45.1
@@ -1,147 +0,0 @@
From 0d69fe3288f2c3444a25c72847a6d670ab07c77b Mon Sep 17 00:00:00 2001
From: codedwrench <rick.04.1996@gmail.com>
Date: Mon, 20 Dec 2021 14:56:09 +0100
Subject: [PATCH 05/22] feat: sdhci support
---
drivers/mmc/host/sdhci-pci-core.c | 67 +++++++++++++++++++++++++++++++
drivers/mmc/host/sdhci-pci.h | 2 +
2 files changed, 69 insertions(+)
diff --git a/drivers/mmc/host/sdhci-pci-core.c b/drivers/mmc/host/sdhci-pci-core.c
index 8736e04fa73c..d50a3658820d 100644
--- a/drivers/mmc/host/sdhci-pci-core.c
+++ b/drivers/mmc/host/sdhci-pci-core.c
@@ -37,6 +37,10 @@
#include "cqhci.h"
+#ifdef CONFIG_X86_PS4
+#include <asm/ps4.h>
+#endif
+
#include "sdhci.h"
#include "sdhci-pci.h"
@@ -319,6 +323,54 @@ static const struct sdhci_pci_fixes sdhci_intel_qrk = {
.quirks = SDHCI_QUIRK_NO_HISPD_BIT,
};
+#ifdef CONFIG_X86_PS4
+static int aeolia_probe(struct sdhci_pci_chip *chip)
+{
+ chip->num_slots = 1;
+ chip->first_bar = 0;
+ if (apcie_status() == 0)
+ return -EPROBE_DEFER;
+
+ chip->pdev->class &= ~0x0000FF;
+ chip->pdev->class |= PCI_SDHCI_IFDMA;
+ return 0;
+}
+
+static int aeolia_probe_slot(struct sdhci_pci_slot *slot)
+{
+ int err = apcie_assign_irqs(slot->chip->pdev, 1);
+ if (err <= 0) {
+ dev_err(&slot->chip->pdev->dev, "failed to get IRQ: %d\n", err);
+ return -ENODEV;
+ }
+ slot->host->irq = slot->chip->pdev->irq;
+ return 0;
+}
+
+static void aeolia_remove_slot(struct sdhci_pci_slot *slot, int dead)
+{
+ apcie_free_irqs(slot->chip->pdev->irq, 1);
+}
+
+static int aeolia_enable_dma(struct sdhci_pci_slot *slot)
+{
+ if (pci_set_dma_mask(slot->chip->pdev, DMA_BIT_MASK(31))) {
+ return -EINVAL;
+ }
+ if (pci_set_consistent_dma_mask(slot->chip->pdev, DMA_BIT_MASK(31))) {
+ return -EINVAL;
+ }
+ return 0;
+}
+
+static const struct sdhci_pci_fixes sdhci_aeolia = {
+ .probe = aeolia_probe,
+ .probe_slot = aeolia_probe_slot,
+ .remove_slot = aeolia_remove_slot,
+ .enable_dma = aeolia_enable_dma,
+};
+#endif
+
static int mrst_hc_probe_slot(struct sdhci_pci_slot *slot)
{
slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA;
@@ -1974,6 +2026,12 @@ static const struct pci_device_id pci_ids[] = {
SDHCI_PCI_DEVICE(O2, SEABIRD1, o2),
SDHCI_PCI_DEVICE(ARASAN, PHY_EMMC, arasan),
SDHCI_PCI_DEVICE(SYNOPSYS, DWC_MSHC, snps),
+ #ifdef CONFIG_X86_PS4
+ SDHCI_PCI_DEVICE(SONY, AEOLIA_SDHCI, aeolia),
+ SDHCI_PCI_DEVICE(SONY, BELIZE_SDHCI, aeolia),
+ // TODO (ps4patches): What is this doing in comments?
+ //SDHCI_PCI_DEVICE(SONY, BAIKAL_SDHCI, aeolia),
+ #endif
SDHCI_PCI_DEVICE(GLI, 9750, gl9750),
SDHCI_PCI_DEVICE(GLI, 9755, gl9755),
SDHCI_PCI_DEVICE(GLI, 9763E, gl9763e),
@@ -2008,6 +2066,10 @@ int sdhci_pci_enable_dma(struct sdhci_host *host)
pci_set_master(pdev);
+ if (slot->chip->fixes && slot->chip->fixes->enable_dma) {
+ return slot->chip->fixes->enable_dma(slot);
+ }
+
return 0;
}
@@ -2361,6 +2423,7 @@ static int sdhci_pci_probe(struct pci_dev *pdev,
chip->allow_runtime_pm = chip->fixes->allow_runtime_pm;
}
chip->num_slots = slots;
+ chip->first_bar = first_bar;
chip->pm_retune = true;
chip->rpm_retune = true;
@@ -2375,7 +2438,11 @@ static int sdhci_pci_probe(struct pci_dev *pdev,
slots = chip->num_slots; /* Quirk may have changed this */
for (i = 0; i < slots; i++) {
+ #ifdef CONFIG_X86_PS4
+ slot = sdhci_pci_probe_slot(pdev, chip, chip->first_bar, i);
+ #else
slot = sdhci_pci_probe_slot(pdev, chip, first_bar, i);
+ #endif
if (IS_ERR(slot)) {
for (i--; i >= 0; i--)
sdhci_pci_remove_slot(chip->slots[i]);
diff --git a/drivers/mmc/host/sdhci-pci.h b/drivers/mmc/host/sdhci-pci.h
index dcd99d5057ee..8caa7acbddb0 100644
--- a/drivers/mmc/host/sdhci-pci.h
+++ b/drivers/mmc/host/sdhci-pci.h
@@ -140,6 +140,7 @@ struct sdhci_pci_fixes {
int (*probe_slot) (struct sdhci_pci_slot *);
int (*add_host) (struct sdhci_pci_slot *);
void (*remove_slot) (struct sdhci_pci_slot *, int);
+ int (*enable_dma) (struct sdhci_pci_slot *);
#ifdef CONFIG_PM_SLEEP
int (*suspend) (struct sdhci_pci_chip *);
@@ -181,6 +182,7 @@ struct sdhci_pci_chip {
const struct sdhci_pci_fixes *fixes;
int num_slots; /* Slots on controller */
+ int first_bar; /* First valid BAR */
struct sdhci_pci_slot *slots[MAX_SLOTS]; /* Pointers to host slots */
};
--
2.45.1
@@ -1,323 +0,0 @@
From 905b33761e7344f07d4b2270896ebaa298d55047 Mon Sep 17 00:00:00 2001
From: codedwrench <rick.04.1996@gmail.com>
Date: Mon, 20 Dec 2021 15:29:54 +0100
Subject: [PATCH 06/22] feat: ethernet support
---
drivers/net/ethernet/marvell/sky2.c | 164 +++++++++++++++++++++++++---
drivers/net/ethernet/marvell/sky2.h | 3 +
2 files changed, 150 insertions(+), 17 deletions(-)
diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
index e9fc74e54b22..66ee6f8ab1bd 100644
--- a/drivers/net/ethernet/marvell/sky2.c
+++ b/drivers/net/ethernet/marvell/sky2.c
@@ -38,6 +38,11 @@
#include <asm/irq.h>
+#ifdef CONFIG_X86_PS4
+#include <asm/ps4.h>
+#include "../../../ps4/aeolia.h"
+#endif
+
#include "sky2.h"
#define DRV_NAME "sky2"
@@ -134,6 +139,9 @@ static const struct pci_device_id sky2_id_table[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4380) }, /* 88E8057 */
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4381) }, /* 88E8059 */
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4382) }, /* 88E8079 */
+ { PCI_DEVICE(PCI_VENDOR_ID_SONY, PCI_DEVICE_ID_SONY_AEOLIA_GBE) },
+ { PCI_DEVICE(PCI_VENDOR_ID_SONY, PCI_DEVICE_ID_SONY_BELIZE_GBE) },
+ { PCI_DEVICE(PCI_VENDOR_ID_SONY, PCI_DEVICE_ID_SONY_BAIKAL_GBE) },
{ 0 }
};
@@ -154,7 +162,7 @@ static int gm_phy_write(struct sky2_hw *hw, unsigned port, u16 reg, u16 val)
gma_write16(hw, port, GM_SMI_DATA, val);
gma_write16(hw, port, GM_SMI_CTRL,
- GM_SMI_CT_PHY_AD(PHY_ADDR_MARV) | GM_SMI_CT_REG_AD(reg));
+ GM_SMI_CT_PHY_AD(hw->phy_addr) | GM_SMI_CT_REG_AD(reg));
for (i = 0; i < PHY_RETRIES; i++) {
u16 ctrl = gma_read16(hw, port, GM_SMI_CTRL);
@@ -179,7 +187,7 @@ static int __gm_phy_read(struct sky2_hw *hw, unsigned port, u16 reg, u16 *val)
{
int i;
- gma_write16(hw, port, GM_SMI_CTRL, GM_SMI_CT_PHY_AD(PHY_ADDR_MARV)
+ gma_write16(hw, port, GM_SMI_CTRL, GM_SMI_CT_PHY_AD(hw->phy_addr)
| GM_SMI_CT_REG_AD(reg) | GM_SMI_CT_OP_RD);
for (i = 0; i < PHY_RETRIES; i++) {
@@ -1375,7 +1383,7 @@ static int sky2_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
switch (cmd) {
case SIOCGMIIPHY:
- data->phy_id = PHY_ADDR_MARV;
+ data->phy_id = hw->phy_addr;
fallthrough;
case SIOCGMIIREG: {
@@ -3234,6 +3242,24 @@ static void sky2_reset(struct sky2_hw *hw)
int i;
u32 hwe_mask = Y2_HWE_ALL_MASK;
+ #ifdef CONFIG_X86_PS4
+ if (pdev->vendor == PCI_VENDOR_ID_SONY &&
+ pdev->device == PCI_DEVICE_ID_SONY_AEOLIA_GBE) {
+ u32 val1, val2;
+
+ sky2_write32(hw, 0x60, 0x32100);
+ sky2_write32(hw, 0x64, 6);
+ sky2_write32(hw, 0x68, 0x63b9c);
+ sky2_write32(hw, 0x6c, 0x300);
+ val1 = sky2_read32(hw, 0x158);
+ val2 = sky2_read32(hw, 0x160);
+ val1 &= ~0x33333333;
+ val2 &= ~0xCC00000;
+ sky2_write32(hw, 0x158, val1);
+ sky2_write32(hw, 0x160, val2);
+ }
+ #endif
+
/* disable ASF */
if (hw->chip_id == CHIP_ID_YUKON_EX
|| hw->chip_id == CHIP_ID_YUKON_SUPR) {
@@ -3298,6 +3324,13 @@ static void sky2_reset(struct sky2_hw *hw)
sky2_pci_write32(hw, PCI_DEV_REG3, P_CLK_MACSEC_DIS);
}
+ #ifdef CONFIG_X86_PS4
+ if (pdev->vendor == PCI_VENDOR_ID_SONY &&
+ pdev->device == PCI_DEVICE_ID_SONY_AEOLIA_GBE) {
+ ; /* Do not perform phy resets on aeolia, it will hang */
+ } else
+ #endif
+
if (hw->chip_id == CHIP_ID_YUKON_OPT ||
hw->chip_id == CHIP_ID_YUKON_PRM ||
hw->chip_id == CHIP_ID_YUKON_OP_2) {
@@ -3582,7 +3615,7 @@ static int sky2_get_link_ksettings(struct net_device *dev,
u32 supported, advertising;
supported = sky2_supported_modes(hw);
- cmd->base.phy_address = PHY_ADDR_MARV;
+ cmd->base.phy_address = hw->phy_addr;
if (sky2_is_copper(hw)) {
cmd->base.port = PORT_TP;
cmd->base.speed = sky2->speed;
@@ -4726,6 +4759,44 @@ static const struct net_device_ops sky2_netdev_ops[2] = {
},
};
+#ifdef CONFIG_X86_PS4
+/* NOTE: This region is no longer referenced by current ps4 x86 code. */
+/* However it still contains the mac address. */
+static void aeolia_get_mac_address(struct sky2_hw *hw, unsigned char *addr) {
+ u8 default_addr[ETH_ALEN] = { 0x52, 0x54, 0x00, 0xf0, 0xff, 0x0f };
+ unsigned int mem_devfn = PCI_DEVFN(PCI_SLOT(hw->pdev->devfn), AEOLIA_FUNC_ID_MEM);
+ struct pci_dev *mem_dev;
+ phys_addr_t bp_base;
+ void __iomem *bp;
+
+ memcpy(addr, default_addr, sizeof(default_addr));
+
+ mem_dev = pci_get_slot(hw->pdev->bus, mem_devfn);
+ if (!mem_dev) {
+ dev_err(&hw->pdev->dev, "sky2: could not get handle to mem device\n");
+ return;
+ }
+
+ bp_base = pci_resource_start(mem_dev, 5) + APCIE_SPM_BP_BASE;
+ if (!request_mem_region(bp_base, APCIE_SPM_BP_SIZE, "spm.bp")) {
+ dev_err(&hw->pdev->dev, "sky2: failed to request bootparam SPM region\n");
+ return;
+ }
+
+ bp = ioremap(bp_base, APCIE_SPM_BP_SIZE);
+ if (!bp) {
+ dev_err(&hw->pdev->dev, "sky2: failed to map bootparam portion of SPM\n");
+ goto release_bp;
+ }
+
+ memcpy_fromio(addr, bp, ETH_ALEN);
+
+ iounmap(bp);
+release_bp:
+ release_mem_region(bp_base, APCIE_SPM_BP_SIZE);
+}
+#endif
+
/* Initialize network device */
static struct net_device *sky2_init_netdev(struct sky2_hw *hw, unsigned port,
int highmem, int wol)
@@ -4798,26 +4869,34 @@ static struct net_device *sky2_init_netdev(struct sky2_hw *hw, unsigned port,
else
dev->max_mtu = ETH_JUMBO_MTU;
- /* try to get mac address in the following order:
- * 1) from device tree data
- * 2) from internal registers set by bootloader
- */
- ret = of_get_mac_address(hw->pdev->dev.of_node, dev->dev_addr);
- if (ret)
- memcpy_fromio(dev->dev_addr, hw->regs + B2_MAC_1 + port * 8,
- ETH_ALEN);
+ #ifdef CONFIG_X86_PS4
+ if (hw->pdev->vendor == PCI_VENDOR_ID_SONY) {
+ aeolia_get_mac_address(hw, dev->dev_addr);
+ } else
+ #endif
+ {
+ /* try to get mac address in the following order:
+ * 1) from device tree data
+ * 2) from internal registers set by bootloader
+ */
+ ret = of_get_mac_address(hw->pdev->dev.of_node, dev->dev_addr);
+ if (ret)
+ memcpy_fromio(dev->dev_addr,
+ hw->regs + B2_MAC_1 + port * 8, ETH_ALEN);
+ }
/* if the address is invalid, use a random value */
if (!is_valid_ether_addr(dev->dev_addr)) {
struct sockaddr sa = { AF_UNSPEC };
- dev_warn(&hw->pdev->dev, "Invalid MAC address, defaulting to random\n");
+ dev_warn(&hw->pdev->dev,
+ "Invalid MAC address, defaulting to random\n");
eth_hw_addr_random(dev);
memcpy(sa.sa_data, dev->dev_addr, ETH_ALEN);
if (sky2_set_mac_address(dev, &sa))
- dev_warn(&hw->pdev->dev, "Failed to set MAC address.\n");
+ dev_warn(&hw->pdev->dev,
+ "Failed to set MAC address.\n");
}
-
return dev;
}
@@ -4957,6 +5036,12 @@ static int sky2_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
u32 reg;
char buf1[16];
+ #ifdef CONFIG_X86_PS4
+ /* This will return negative on non-PS4 platforms */
+ if (apcie_status() == 0)
+ return -EPROBE_DEFER;
+ #endif
+
err = pci_enable_device(pdev);
if (err) {
dev_err(&pdev->dev, "cannot enable PCI device\n");
@@ -4988,6 +5073,16 @@ static int sky2_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
pci_set_master(pdev);
+ #ifdef CONFIG_X86_PS4
+ if (pdev->vendor == PCI_VENDOR_ID_SONY) {
+ if (pci_set_dma_mask(pdev, DMA_BIT_MASK(31)) < 0 ||
+ pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(31)) < 0) {
+ dev_err(&pdev->dev, "no usable DMA configuration\n");
+ goto err_out_free_regions;
+ }
+ } else
+ #endif
+
if (sizeof(dma_addr_t) > sizeof(u32) &&
!(err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64)))) {
using_dac = 1;
@@ -5036,6 +5131,16 @@ static int sky2_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
goto err_out_free_hw;
}
+ hw->phy_addr = PHY_ADDR_MARV;
+ #ifdef CONFIG_X86_PS4
+ if (pdev->vendor == PCI_VENDOR_ID_SONY &&
+ pdev->device == PCI_DEVICE_ID_SONY_AEOLIA_GBE) {
+ /* aeolia supports some sort of "l2 switch" */
+ /* it has normal phy at addr 1 with a possibly-active switch at addr 2 */
+ hw->phy_addr = 1;
+ }
+ #endif
+
err = sky2_init(hw);
if (err)
goto err_out_iounmap;
@@ -5064,6 +5169,19 @@ static int sky2_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
if (disable_msi == -1)
disable_msi = !!dmi_check_system(msi_blacklist);
+ #ifdef CONFIG_X86_PS4
+ if (pdev->vendor == PCI_VENDOR_ID_SONY &&
+ apcie_assign_irqs(pdev, 1) > 0) {
+ err = sky2_test_msi(hw);
+ if (err) {
+ apcie_free_irqs(pdev->irq, 1);
+ /* PS4 requires MSI, so if it fails, bail out. */
+ goto err_out_free_netdev;
+ }
+ hw->flags |= SKY2_HW_USE_AEOLIA_MSI;
+ } else
+ #endif
+
if (!disable_msi && pci_enable_msi(pdev) == 0) {
err = sky2_test_msi(hw);
if (err) {
@@ -5120,8 +5238,14 @@ static int sky2_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
err_out_unregister:
unregister_netdev(dev);
err_out_free_netdev:
- if (hw->flags & SKY2_HW_USE_MSI)
- pci_disable_msi(pdev);
+ #ifdef CONFIG_X86_PS4
+ if (hw->flags & SKY2_HW_USE_AEOLIA_MSI)
+ apcie_free_irqs(pdev->irq, 1);
+ else
+ #endif
+ if (hw->flags & SKY2_HW_USE_MSI)
+ pci_disable_msi(pdev);
+
free_netdev(dev);
err_out_free_pci:
dma_free_coherent(&pdev->dev,
@@ -5168,6 +5292,12 @@ static void sky2_remove(struct pci_dev *pdev)
free_irq(pdev->irq, hw);
}
+ #ifdef CONFIG_X86_PS4
+ if (hw->flags & SKY2_HW_USE_AEOLIA_MSI)
+ apcie_free_irqs(pdev->irq, 1);
+ else
+ #endif
+
if (hw->flags & SKY2_HW_USE_MSI)
pci_disable_msi(pdev);
dma_free_coherent(&pdev->dev,
diff --git a/drivers/net/ethernet/marvell/sky2.h b/drivers/net/ethernet/marvell/sky2.h
index ddec1627f1a7..eeb3a5a8b029 100644
--- a/drivers/net/ethernet/marvell/sky2.h
+++ b/drivers/net/ethernet/marvell/sky2.h
@@ -2289,6 +2289,8 @@ struct sky2_hw {
#define SKY2_HW_RSS_CHKSUM 0x00000400 /* RSS requires chksum */
#define SKY2_HW_IRQ_SETUP 0x00000800
+#define SKY2_HW_USE_AEOLIA_MSI 0x00001000
+
u8 chip_id;
u8 chip_rev;
u8 pmd_type;
@@ -2303,6 +2305,7 @@ struct sky2_hw {
struct work_struct restart_work;
wait_queue_head_t msi_wait;
+ u8 phy_addr;
char irq_name[];
};
--
2.45.1
@@ -1,701 +0,0 @@
From 915809af6ee266c1c7792a0be01ae4da02d4766f Mon Sep 17 00:00:00 2001
From: codedwrench <rick.04.1996@gmail.com>
Date: Mon, 20 Dec 2021 16:30:44 +0100
Subject: [PATCH 07/22] feat: usb support
---
drivers/usb/host/Kconfig | 8 +
drivers/usb/host/Makefile | 1 +
drivers/usb/host/xhci-aeolia.c | 585 +++++++++++++++++++++++++++++++++
drivers/usb/host/xhci-aeolia.h | 14 +
drivers/usb/host/xhci.c | 30 +-
5 files changed, 624 insertions(+), 14 deletions(-)
create mode 100644 drivers/usb/host/xhci-aeolia.c
create mode 100644 drivers/usb/host/xhci-aeolia.h
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index c4736d1d020c..92107bda6004 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -104,6 +104,14 @@ config USB_XHCI_TEGRA
Say 'Y' to enable the support for the xHCI host controller
found in NVIDIA Tegra124 and later SoCs.
+
+config USB_XHCI_AEOLIA
+ tristate "xHCI support for Sony PS4 (Aeolia)"
+ depends on X86_PS4
+ help
+ Say 'Y' to enable the support for the xHCI host controller
+ found in the Sony PlayStation 4.
+
endif # USB_XHCI_HCD
config USB_EHCI_BRCMSTB
diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
index 171de4df50bd..d0365fbf8b45 100644
--- a/drivers/usb/host/Makefile
+++ b/drivers/usb/host/Makefile
@@ -73,6 +73,7 @@ obj-$(CONFIG_USB_XHCI_PLATFORM) += xhci-plat-hcd.o
obj-$(CONFIG_USB_XHCI_HISTB) += xhci-histb.o
obj-$(CONFIG_USB_XHCI_MTK) += xhci-mtk-hcd.o
obj-$(CONFIG_USB_XHCI_TEGRA) += xhci-tegra.o
+obj-$(CONFIG_USB_XHCI_AEOLIA) += xhci-aeolia.o
obj-$(CONFIG_USB_SL811_HCD) += sl811-hcd.o
obj-$(CONFIG_USB_SL811_CS) += sl811_cs.o
obj-$(CONFIG_USB_U132_HCD) += u132-hcd.o
diff --git a/drivers/usb/host/xhci-aeolia.c b/drivers/usb/host/xhci-aeolia.c
new file mode 100644
index 000000000000..a9b345284495
--- /dev/null
+++ b/drivers/usb/host/xhci-aeolia.c
@@ -0,0 +1,585 @@
+/*
+ * xhci-aeoliat.c - xHCI host controller driver for Aeolia (Sony PS4)
+ *
+ * Borrows code from xhci-pci.c, hcd-pci.c, and xhci-plat.c.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * version 2 as published by the Free Software Foundation.
+ */
+
+#include <linux/pci.h>
+#include <linux/slab.h>
+#include <linux/module.h>
+#include <linux/acpi.h>
+#include <asm/ps4.h>
+#include "xhci-aeolia.h"
+#include "../../ps4/aeolia.h"
+
+#include "xhci.h"
+
+static const char hcd_name[] = "xhci_aeolia";
+
+static struct hc_driver __read_mostly xhci_aeolia_hc_driver;
+
+#define NR_DEVICES 3
+
+struct aeolia_xhci {
+ // TODO (ps4patches): Belize, enable in ahci commit
+ // struct ata_host *host;
+ int nr_irqs;
+ struct usb_hcd *hcd[NR_DEVICES];
+};
+
+static int xhci_aeolia_setup(struct usb_hcd *hcd);
+
+static const struct xhci_driver_overrides xhci_aeolia_overrides __initconst = {
+ .extra_priv_size = sizeof(struct xhci_hcd),
+ .reset = xhci_aeolia_setup,
+};
+
+static void xhci_aeolia_quirks(struct device *dev, struct xhci_hcd *xhci)
+{
+ /*
+ * Do not try to enable MSIs, we provide the MSIs ourselves
+ * Do not touch DMA mask, we need a custom one
+ */
+ xhci->quirks |= XHCI_PLAT | XHCI_PLAT_DMA;
+}
+
+/* called during probe() after chip reset completes */
+static int xhci_aeolia_setup(struct usb_hcd *hcd)
+{
+ return xhci_gen_setup(hcd, xhci_aeolia_quirks);
+}
+
+static int xhci_aeolia_probe_one(struct pci_dev *dev, int index)
+{
+ int retval;
+ struct aeolia_xhci *axhci = pci_get_drvdata(dev);
+ struct hc_driver *driver = &xhci_aeolia_hc_driver;
+ struct usb_hcd *hcd;
+ struct xhci_hcd *xhci;
+ int irq = (axhci->nr_irqs > 1) ? (dev->irq + index) : dev->irq;
+
+ // ok...adding this printk appears to have introduced a delay that fixed
+ // bringup of the middle host controller, so w/e for now...
+
+ printk("xhci_aeolia_probe_one %d, controller is %x\n", index, dev->device);
+
+ hcd = usb_create_hcd(driver, &dev->dev, pci_name(dev));
+ pci_set_drvdata(dev, axhci); /* usb_create_hcd clobbers this */
+ if (!hcd)
+ return -ENOMEM;
+
+ hcd->rsrc_start = pci_resource_start(dev, 2 * index);
+ hcd->rsrc_len = pci_resource_len(dev, 2 * index);
+
+ /*
+ * TODO (ps4patches): Belize, enable in ahci commit
+ if (!devm_request_mem_region(&dev->dev, hcd->rsrc_start, hcd->rsrc_len,
+ driver->description)) {
+ */
+
+ if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len,
+ driver->description)) {
+ dev_dbg(&dev->dev, "controller already in use\n");
+ retval = -EBUSY;
+ goto put_hcd;
+ }
+ hcd->regs = pci_ioremap_bar(dev, 2 * index);
+ if (hcd->regs == NULL) {
+ dev_dbg(&dev->dev, "error mapping memory\n");
+ retval = -EFAULT;
+ goto release_mem_region;
+ }
+
+ device_wakeup_enable(hcd->self.controller);
+
+ xhci = hcd_to_xhci(hcd);
+ xhci->main_hcd = hcd;
+ xhci->shared_hcd = usb_create_shared_hcd(driver, &dev->dev,
+ pci_name(dev), hcd);
+ if (!xhci->shared_hcd) {
+ retval = -ENOMEM;
+ goto unmap_registers;
+ }
+
+ retval = usb_add_hcd(hcd, irq, IRQF_SHARED);
+ if (retval)
+ goto put_usb3_hcd;
+
+ retval = usb_add_hcd(xhci->shared_hcd, irq, IRQF_SHARED);
+ if (retval)
+ goto dealloc_usb2_hcd;
+
+ axhci->hcd[index] = hcd;
+
+ return 0;
+
+dealloc_usb2_hcd:
+ usb_remove_hcd(hcd);
+put_usb3_hcd:
+ usb_put_hcd(xhci->shared_hcd);
+unmap_registers:
+ iounmap(hcd->regs);
+release_mem_region:
+ //
+ // devm_release_mem_region(&dev->dev, hcd->rsrc_start, hcd->rsrc_len);
+ release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
+put_hcd:
+ usb_put_hcd(hcd);
+ dev_err(&dev->dev, "init %s(%d) fail, %d\n",
+ pci_name(dev), index, retval);
+ return retval;
+}
+
+static void xhci_aeolia_remove_one(struct pci_dev *dev, int index)
+{
+ struct aeolia_xhci *axhci = pci_get_drvdata(dev);
+ struct usb_hcd *hcd = axhci->hcd[index];
+ struct xhci_hcd *xhci;
+
+ if (!hcd)
+ return;
+ xhci = hcd_to_xhci(hcd);
+
+ usb_remove_hcd(xhci->shared_hcd);
+ usb_remove_hcd(hcd);
+ usb_put_hcd(xhci->shared_hcd);
+ iounmap(hcd->regs);
+ usb_put_hcd(hcd);
+ axhci->hcd[index] = NULL;
+}
+
+// TODO (ps4patches): Belize, enable in ahci commit
+//#define DRV_VERSION "3.0"
+//#define DRV_NAME "ahci"
+//static const struct ata_port_info ahci_port_info = {
+// .flags = AHCI_FLAG_COMMON,
+// .pio_mask = ATA_PIO4,
+// .udma_mask = ATA_UDMA6,
+// .port_ops = &ahci_ops,
+//};
+//
+//static struct scsi_host_template ahci_sht = {
+// AHCI_SHT(DRV_NAME),
+//};
+//
+//static bool bus_master;
+//static int ahci_init_one(struct pci_dev *pdev)
+//{
+// struct f_resource* r_mem;
+// struct ahci_controller* ctlr;
+// struct aeolia_xhci *axhci = pci_get_drvdata(pdev);
+// struct ata_port_info pi = ahci_port_info;
+// const struct ata_port_info *ppi[] = { &pi, NULL };
+// struct ahci_host_priv *hpriv;
+// struct ata_host *host;
+// int n_ports, i, rc;
+// int ahci_pci_bar = 2;
+// resource_size_t rsrc_start;
+// resource_size_t rsrc_len;
+//
+// VPRINTK("ENTER\n");
+//
+// WARN_ON((int)ATA_MAX_QUEUE > AHCI_MAX_CMDS);
+//
+// ata_print_version_once(&pdev->dev, DRV_VERSION);
+//
+// /*
+// rc = pcim_iomap_regions_request_all(pdev, 1 << ahci_pci_bar, DRV_NAME);
+// if (rc == -EBUSY)
+// pcim_pin_device(pdev);
+// if (rc)
+// return rc;
+// */
+//
+// hpriv = devm_kzalloc(&pdev->dev, sizeof(*hpriv), GFP_KERNEL);
+// //hpriv = kzalloc(sizeof(*hpriv), GFP_KERNEL);
+// if (!hpriv)
+// return -ENOMEM;
+// hpriv->flags |= (unsigned long)pi.private_data;
+//
+// //hpriv->mmio = pcim_iomap_table(pdev)[ahci_pci_bar];
+// rsrc_start = pci_resource_start(pdev, ahci_pci_bar);
+// rsrc_len = pci_resource_len(pdev, ahci_pci_bar);
+// //if (!request_mem_region(rsrc_start, rsrc_len, "xhci-ahci.mem")) {
+// if (!devm_request_mem_region(&pdev->dev, rsrc_start, rsrc_len, "xhci-ahci.mem")) {
+// dev_dbg(&pdev->dev, "controller already in use\n");
+// rc = -EBUSY;
+// goto put_hpriv;
+// }
+//
+//
+// hpriv->mmio = pci_ioremap_bar(pdev, ahci_pci_bar);
+// if (hpriv->mmio == NULL) {
+// dev_dbg(&pdev->dev, "error mapping memory\n");
+// rc = -EFAULT;
+// goto release_mem_region;
+// }
+//
+// r_mem = kzalloc(sizeof(*r_mem), GFP_KERNEL);
+// if (r_mem) {
+// r_mem->r_bustag = 1;//mem
+// r_mem->r_bushandle = hpriv->mmio;
+//
+// ctlr = kzalloc(sizeof(*ctlr), GFP_KERNEL);
+// if (ctlr) {
+// ctlr->r_mem = r_mem;
+// ctlr->dev_id = 0; //or 0x90ca104d;
+// ctlr->trace_len = 6;
+// bpcie_sata_phy_init(&pdev->dev, ctlr);
+// kfree(ctlr);
+// }
+// kfree(r_mem);
+// }
+// device_wakeup_enable(&pdev->dev);
+//
+// /* save initial config */
+// ahci_save_initial_config(&pdev->dev, hpriv);
+//
+// /* prepare host */
+// if (hpriv->cap & HOST_CAP_NCQ) {
+// pi.flags |= ATA_FLAG_NCQ;
+// /*
+// * Auto-activate optimization is supposed to be
+// * supported on all AHCI controllers indicating NCQ
+// * capability, but it seems to be broken on some
+// * chipsets including NVIDIAs.
+// */
+// if (!(hpriv->flags & AHCI_HFLAG_NO_FPDMA_AA))
+// pi.flags |= ATA_FLAG_FPDMA_AA;
+//
+// /*
+// * All AHCI controllers should be forward-compatible
+// * with the new auxiliary field. This code should be
+// * conditionalized if any buggy AHCI controllers are
+// * encountered.
+// */
+// pi.flags |= ATA_FLAG_FPDMA_AUX;
+// }
+//
+// if (hpriv->cap & HOST_CAP_PMP)
+// pi.flags |= ATA_FLAG_PMP;
+//
+// ahci_set_em_messages(hpriv, &pi);
+//
+// /* CAP.NP sometimes indicate the index of the last enabled
+// * port, at other times, that of the last possible port, so
+// * determining the maximum port number requires looking at
+// * both CAP.NP and port_map.
+// */
+// n_ports = max(ahci_nr_ports(hpriv->cap), fls(hpriv->port_map));
+//
+// host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports);
+// if (!host) {
+// rc = -ENOMEM;
+// goto unmap_registers;
+// }
+// axhci->host = host;
+// pci_set_drvdata(pdev, axhci);
+//
+// host->private_data = hpriv;
+//
+// {
+// int index = 1;
+// int irq = (axhci->nr_irqs > 1) ? (pdev->irq + index) : pdev->irq;
+// hpriv->irq = irq;
+// }
+//
+// if (!(hpriv->cap & HOST_CAP_SSS) || ahci_ignore_sss)
+// host->flags |= ATA_HOST_PARALLEL_SCAN;
+// else
+// dev_info(&pdev->dev, "SSS flag set, parallel bus scan disabled\n");
+//
+// if (pi.flags & ATA_FLAG_EM)
+// ahci_reset_em(host);
+//
+// for (i = 0; i < host->n_ports; i++) {
+// struct ata_port *ap = host->ports[i];
+//
+// ata_port_pbar_desc(ap, ahci_pci_bar, -1, "abar");
+// ata_port_pbar_desc(ap, ahci_pci_bar,
+// 0x100 + ap->port_no * 0x80, "port");
+//
+// /* set enclosure management message type */
+// if (ap->flags & ATA_FLAG_EM)
+// ap->em_message_type = hpriv->em_msg_type;
+//
+//
+// /* disabled/not-implemented port */
+// if (!(hpriv->port_map & (1 << i)))
+// ap->ops = &ata_dummy_port_ops;
+// }
+//
+// rc = ahci_reset_controller(host);
+// dev_dbg(&pdev->dev, "ahci_reset_controller returned %d\n", rc);
+// if (rc)
+// goto release_host;
+//
+// ahci_init_controller(host);
+// ahci_print_info(host, "ATA");
+//
+// if (!bus_master) {
+// pci_set_master(pdev);
+// bus_master = true;
+// }
+//
+// rc = ahci_host_activate(host, &ahci_sht);
+// dev_dbg(&pdev->dev, "ahci_host_activate returned %d\n", rc);
+// if (rc) {
+// goto host_deactivate;
+// }
+//
+// pm_runtime_put_noidle(&pdev->dev);
+// return 0;
+//
+// host_deactivate:
+// release_host:
+// unmap_registers:
+// iounmap(hpriv->mmio);
+// release_mem_region:
+//
+// release_mem_region(rsrc_start, rsrc_len);
+//
+// // TODO (ps4patches): Belize, enable in ahci commit
+// //devm_release_mem_region(&pdev->dev, rsrc_start, rsrc_len);
+// put_hpriv:
+// //kfree(hpriv);
+// devm_kfree(&pdev->dev, hpriv);
+// dev_err(&pdev->dev, "init %s fail, %d\n",
+// pci_name(pdev), rc);
+// return rc;
+//}
+//
+//static void ahci_remove_one(struct pci_dev *pdev)
+//{
+// pm_runtime_get_noresume(&pdev->dev);
+//
+// struct aeolia_xhci *axhci = pci_get_drvdata(pdev);
+// if (axhci && axhci->host) {
+// ata_host_detach(axhci->host);
+// struct ahci_host_priv *hpriv = axhci->host->private_data;
+// if (hpriv) {
+// iounmap(hpriv->mmio);
+// }
+// axhci->host = NULL;
+// }
+//}
+
+static int xhci_aeolia_probe(struct pci_dev *dev, const struct pci_device_id *id)
+{
+ int idx;
+ int retval;
+ struct aeolia_xhci *axhci;
+
+ if (apcie_status() == 0)
+ return -EPROBE_DEFER;
+
+ if (pci_enable_device(dev) < 0)
+ return -ENODEV;
+
+ axhci = kzalloc(sizeof(*axhci), GFP_KERNEL);
+ // TODO (ps4patches): Belize, enable in ahci commit
+ // axhci = devm_kzalloc(&dev->dev, sizeof(*axhci), GFP_KERNEL);
+ if (!axhci) {
+ retval = -ENOMEM;
+ goto disable_device;
+ }
+ pci_set_drvdata(dev, axhci);
+
+ axhci->nr_irqs = retval = apcie_assign_irqs(dev, NR_DEVICES);
+ if (retval < 0) {
+ goto free_axhci;
+ }
+
+ // TODO (ps4patches): Belize, disable in ahci commit
+ pci_set_master(dev);
+
+ if (pci_set_dma_mask(dev, DMA_BIT_MASK(31)) ||
+ pci_set_consistent_dma_mask(dev, DMA_BIT_MASK(31))) {
+ return -ENODEV;
+ }
+
+ // TODO (ps4patches): Belize, enable in ahci commit
+// retval = ahci_init_one(dev);
+// dev_dbg(&dev->dev, "ahci_init_one returned %d", retval);
+// if (!bus_master) {
+// pci_set_master(dev);
+// bus_master = true;
+// }
+
+ for (idx = 0; idx < NR_DEVICES; idx++) {
+ if(dev->device != PCI_DEVICE_ID_SONY_AEOLIA_XHCI && idx == 1){ //this is for Belize and Baikal
+ continue;
+ }
+ retval = xhci_aeolia_probe_one(dev, idx);
+ if (retval)
+ goto remove_hcds;
+ }
+
+ return 0;
+
+remove_hcds:
+ while (idx--)
+ xhci_aeolia_remove_one(dev, idx);
+ apcie_free_irqs(dev->irq, axhci->nr_irqs);
+free_axhci:
+ kfree(axhci);
+
+ // TODO (ps4patches): Belize, disable in ahci commit
+ // devm_kfree(&dev->dev, axhci);
+ // pci_set_drvdata(dev, NULL);
+disable_device:
+ pci_disable_device(dev);
+ return retval;
+}
+
+static void xhci_aeolia_remove(struct pci_dev *dev)
+{
+ int idx;
+ struct aeolia_xhci *axhci = pci_get_drvdata(dev);
+ if (!axhci)
+ return;
+
+ for (idx = 0; idx < NR_DEVICES; idx++) {
+ if(dev->device != PCI_DEVICE_ID_SONY_AEOLIA_XHCI) {
+ if(idx != 1)
+ xhci_aeolia_remove_one(dev, idx);
+ // TODO (ps4patches): Belize, enable in ahci commit
+ // else
+ // ahci_remove_one(dev);
+ }
+ else
+ xhci_aeolia_remove_one(dev, idx);
+ }
+
+ apcie_free_irqs(dev->irq, axhci->nr_irqs);
+
+ // TODO (ps4patches): Belize, remove in ahci commit
+ kfree(axhci);
+
+ pci_disable_device(dev);
+}
+
+// TODO (ps4patches): Belize, enable in ahci commit
+//static void xhci_hcd_pci_shutdown(struct pci_dev *dev){
+// struct aeolia_xhci *axhci;
+// struct usb_hcd *hcd;
+// int idx;
+//
+// axhci = pci_get_drvdata(dev);
+// if (!axhci)
+// return;
+//
+// for (idx = 0; idx < NR_DEVICES; idx++) {
+// if(dev->device != PCI_DEVICE_ID_SONY_AEOLIA_XHCI) {
+// if(idx != 1) {
+// hcd = axhci->hcd[idx];
+// if (hcd) {
+// if (test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags) && hcd->driver->shutdown) {
+// hcd->driver->shutdown(hcd);
+// if (usb_hcd_is_primary_hcd(hcd) && hcd->irq > 0)
+// free_irq(hcd->irq, hcd);
+// }
+// }
+// }
+// }
+// }
+//}
+
+
+static const struct pci_device_id pci_ids[] = {
+ { PCI_DEVICE(PCI_VENDOR_ID_SONY, PCI_DEVICE_ID_SONY_AEOLIA_XHCI) },
+ { PCI_DEVICE(PCI_VENDOR_ID_SONY, PCI_DEVICE_ID_SONY_BELIZE_XHCI) },
+ { PCI_DEVICE(PCI_VENDOR_ID_SONY, PCI_DEVICE_ID_SONY_BAIKAL_XHCI) },
+ { /* end: all zeroes */ }
+};
+MODULE_DEVICE_TABLE(pci, pci_ids);
+
+#ifdef CONFIG_PM_SLEEP
+static int xhci_aeolia_suspend(struct device *dev)
+{
+ int idx;
+ struct aeolia_xhci *axhci = dev_get_drvdata(dev);
+ struct xhci_hcd *xhci;
+ int retval;
+ struct pci_dev *pdev = to_pci_dev(dev);
+
+ for (idx = 0; idx < NR_DEVICES; idx++) {
+ if(pdev->device != PCI_DEVICE_ID_SONY_AEOLIA_XHCI && idx == 1)
+ continue;
+ xhci = hcd_to_xhci(axhci->hcd[idx]);
+ retval = xhci_suspend(xhci, device_may_wakeup(dev));
+ if (retval < 0)
+ goto resume;
+ }
+ return 0;
+
+resume:
+ while (idx--) {
+ xhci = hcd_to_xhci(axhci->hcd[idx]);
+ xhci_resume(xhci, 0);
+ }
+ return retval;
+}
+
+static int xhci_aeolia_resume(struct device *dev)
+{
+ int idx;
+ struct aeolia_xhci *axhci = dev_get_drvdata(dev);
+ struct xhci_hcd *xhci;
+ int retval;
+ struct pci_dev *pdev = to_pci_dev(dev);
+
+ for (idx = 0; idx < NR_DEVICES; idx++) {
+ if(pdev->device != PCI_DEVICE_ID_SONY_AEOLIA_XHCI && idx == 1)
+ continue;
+ xhci = hcd_to_xhci(axhci->hcd[idx]);
+ retval = xhci_resume(xhci, 0);
+ if (retval < 0)
+ return retval;
+ }
+ return 0;
+}
+
+static const struct dev_pm_ops xhci_aeolia_pm_ops = {
+ SET_SYSTEM_SLEEP_PM_OPS(xhci_aeolia_suspend, xhci_aeolia_resume)
+};
+#endif
+
+/* pci driver glue; this is a "new style" PCI driver module */
+static struct pci_driver xhci_aeolia_driver = {
+ .name = "xhci_aeolia",
+ .id_table = pci_ids,
+
+ .probe = xhci_aeolia_probe,
+ .remove = xhci_aeolia_remove,
+ /* suspend and resume implemented later */
+
+ .shutdown = usb_hcd_pci_shutdown,
+ // TODO (ps4patches): Belize, enable in ahci commit
+ //.shutdown = xhci_hcd_pci_shutdown,
+#ifdef CONFIG_PM_SLEEP
+ .driver = {
+ .pm = &xhci_aeolia_pm_ops
+ },
+#endif
+};
+
+static int __init xhci_aeolia_init(void)
+{
+ xhci_init_driver(&xhci_aeolia_hc_driver, &xhci_aeolia_overrides);
+ return pci_register_driver(&xhci_aeolia_driver);
+}
+module_init(xhci_aeolia_init);
+
+static void __exit xhci_aeolia_exit(void)
+{
+ pci_unregister_driver(&xhci_aeolia_driver);
+}
+module_exit(xhci_aeolia_exit);
+
+MODULE_DESCRIPTION("xHCI Aeolia Host Controller Driver");
+MODULE_LICENSE("GPL");
diff --git a/drivers/usb/host/xhci-aeolia.h b/drivers/usb/host/xhci-aeolia.h
new file mode 100644
index 000000000000..2b711d6a92ca
--- /dev/null
+++ b/drivers/usb/host/xhci-aeolia.h
@@ -0,0 +1,14 @@
+/*
+ * xhci-aeolia.h
+ *
+ * Created on: 31 Oct 2019
+ * Author: visicva
+ */
+
+#ifndef DRIVERS_USB_HOST_XHCI_AEOLIA_H_
+#define DRIVERS_USB_HOST_XHCI_AEOLIA_H_
+
+#include "../../ata/ahci.h"
+#include <linux/irqdomain.h>
+
+#endif /* DRIVERS_USB_HOST_XHCI_AEOLIA_H_ */
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 1fd2f6a850eb..1c8fb48c7095 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -5373,20 +5373,22 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
/* Set dma_mask and coherent_dma_mask to 64-bits,
* if xHC supports 64-bit addressing */
- if (HCC_64BIT_ADDR(xhci->hcc_params) &&
- !dma_set_mask(dev, DMA_BIT_MASK(64))) {
- xhci_dbg(xhci, "Enabling 64-bit DMA addresses.\n");
- dma_set_coherent_mask(dev, DMA_BIT_MASK(64));
- } else {
- /*
- * This is to avoid error in cases where a 32-bit USB
- * controller is used on a 64-bit capable system.
- */
- retval = dma_set_mask(dev, DMA_BIT_MASK(32));
- if (retval)
- return retval;
- xhci_dbg(xhci, "Enabling 32-bit DMA addresses.\n");
- dma_set_coherent_mask(dev, DMA_BIT_MASK(32));
+ if (!(xhci->quirks & XHCI_PLAT_DMA)) {
+ if (HCC_64BIT_ADDR(xhci->hcc_params) &&
+ !dma_set_mask(dev, DMA_BIT_MASK(64))) {
+ xhci_dbg(xhci, "Enabling 64-bit DMA addresses.\n");
+ dma_set_coherent_mask(dev, DMA_BIT_MASK(64));
+ } else {
+ /*
+ * This is to avoid error in cases where a 32-bit USB
+ * controller is used on a 64-bit capable system.
+ */
+ retval = dma_set_mask(dev, DMA_BIT_MASK(32));
+ if (retval)
+ return retval;
+ xhci_dbg(xhci, "Enabling 32-bit DMA addresses.\n");
+ dma_set_coherent_mask(dev, DMA_BIT_MASK(32));
+ }
}
xhci_dbg(xhci, "Calling HCD init\n");
--
2.45.1
File diff suppressed because it is too large. Load diff
@@ -1,158 +0,0 @@
From 0bd681355cbd557d93a6cc62e0b816ed661095c9 Mon Sep 17 00:00:00 2001
From: codedwrench <rick.04.1996@gmail.com>
Date: Tue, 21 Dec 2021 19:22:42 +0100
Subject: [PATCH 09/22] feat: trying to modernize ps4-apcie so it works with
kernel 5.15
---
arch/x86/include/asm/irqdomain.h | 1 +
arch/x86/kernel/apic/vector.c | 11 ++++++++-
drivers/iommu/amd/iommu.c | 2 ++
drivers/pci/probe.c | 6 +++++
drivers/ps4/ps4-apcie.c | 40 ++++++++++++++++++++++++--------
5 files changed, 49 insertions(+), 11 deletions(-)
diff --git a/arch/x86/include/asm/irqdomain.h b/arch/x86/include/asm/irqdomain.h
index 125c23b7bad3..2f8410292efc 100644
--- a/arch/x86/include/asm/irqdomain.h
+++ b/arch/x86/include/asm/irqdomain.h
@@ -14,6 +14,7 @@ enum {
extern int x86_fwspec_is_ioapic(struct irq_fwspec *fwspec);
extern int x86_fwspec_is_hpet(struct irq_fwspec *fwspec);
+extern int x86_fwspec_is_aeolia(struct irq_fwspec *fwspec);
extern struct irq_domain *x86_vector_domain;
diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c
index c132daabe615..af7339aaa843 100644
--- a/arch/x86/kernel/apic/vector.c
+++ b/arch/x86/kernel/apic/vector.c
@@ -676,6 +676,15 @@ int x86_fwspec_is_hpet(struct irq_fwspec *fwspec)
return 0;
}
+int x86_fwspec_is_aeolia(struct irq_fwspec *fwspec)
+{
+ if (is_fwnode_irqchip(fwspec->fwnode)) {
+ const char *fwname = fwnode_get_name(fwspec->fwnode);
+ return fwname && !strncmp(fwname, "Aeolia-MSI", 10);
+ }
+ return 0;
+}
+
static int x86_vector_select(struct irq_domain *d, struct irq_fwspec *fwspec,
enum irq_domain_bus_token bus_token)
{
@@ -687,7 +696,7 @@ static int x86_vector_select(struct irq_domain *d, struct irq_fwspec *fwspec,
if (apic->apic_id_valid(32768))
return 0;
- return x86_fwspec_is_ioapic(fwspec) || x86_fwspec_is_hpet(fwspec);
+ return x86_fwspec_is_ioapic(fwspec) || x86_fwspec_is_hpet(fwspec) || x86_fwspec_is_aeolia(fwspec);
}
static const struct irq_domain_ops x86_vector_domain_ops = {
diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
index 5ceaaabb4f9d..f20dc0c7b78f 100644
--- a/drivers/iommu/amd/iommu.c
+++ b/drivers/iommu/amd/iommu.c
@@ -3294,6 +3294,8 @@ static int irq_remapping_select(struct irq_domain *d, struct irq_fwspec *fwspec,
devid = get_ioapic_devid(fwspec->param[0]);
else if (x86_fwspec_is_hpet(fwspec))
devid = get_hpet_devid(fwspec->param[0]);
+ else if(x86_fwspec_is_aeolia(fwspec))
+ devid = fwspec->param[0];
if (devid < 0)
return 0;
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 5fe5e84fab40..288b49cc49a5 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -2638,6 +2638,12 @@ int pci_scan_slot(struct pci_bus *bus, int devfn)
nr++;
for (fn = next_fn(bus, dev, 0); fn > 0; fn = next_fn(bus, dev, fn)) {
+ if (PCI_SLOT(devfn) != AEOLIA_SLOT_NUM &&
+ pci_bus_read_dev_vendor_id(bus, devfn + fn, &l, 60*1000) &&
+ (l & 0xffff) == PCI_VENDOR_ID_SONY) {
+ continue;
+ }
+
dev = pci_scan_single_device(bus, devfn + fn);
if (dev) {
if (!pci_dev_is_added(dev))
diff --git a/drivers/ps4/ps4-apcie.c b/drivers/ps4/ps4-apcie.c
index d5e87d1ee74e..d9c36f7715bb 100644
--- a/drivers/ps4/ps4-apcie.c
+++ b/drivers/ps4/ps4-apcie.c
@@ -219,28 +219,47 @@ static struct msi_domain_info apcie_msi_domain_info = {
static struct irq_domain *apcie_create_irq_domain(struct apcie_dev *sc)
{
- struct irq_domain *domain;
+ struct msi_domain_info *domain_info;
+ struct irq_domain *domain, *parent;
struct fwnode_handle *fn;
+ struct irq_fwspec fwspec;
sc_dbg("apcie_create_irq_domain\n");
if (x86_vector_domain == NULL)
return NULL;
- apcie_msi_domain_info.chip_data = (void *)sc;
- apcie_msi_domain_info.flags |= MSI_FLAG_MULTI_PCI_MSI;
- apcie_msi_controller.name = "IR-Aeolia-MSI";
+ domain_info = kzalloc(sizeof(*domain_info), GFP_KERNEL);
+ if (!domain_info)
+ return NULL;
+
+ *domain_info = apcie_msi_domain_info;
+ domain_info->chip_data = (void *)sc;
- fn = irq_domain_alloc_named_fwnode(apcie_msi_controller.name);
- if (!fn)
+ fn = irq_domain_alloc_named_id_fwnode(apcie_msi_controller.name, pci_dev_id(sc->pdev));
+ if (!fn) {
+ kfree(domain_info);
return NULL;
- domain = pci_msi_create_irq_domain(fn, &apcie_msi_domain_info,
- x86_vector_domain);
+ }
+
+ fwspec.fwnode = fn;
+ fwspec.param_count = 1;
+
+ // It should be correct to put the pci device id in here
+ fwspec.param[0] = pci_dev_id(sc->pdev);
+ parent = irq_find_matching_fwspec(&fwspec, DOMAIN_BUS_ANY);
+ if (!parent) {
+ parent = x86_vector_domain;
+ } else {
+ apcie_msi_domain_info.flags |= MSI_FLAG_MULTI_PCI_MSI;
+ apcie_msi_controller.name = "IR-Aeolia-MSI";
+ }
+
+ domain = msi_create_irq_domain(fn, domain_info, parent);
if (!domain) {
irq_domain_free_fwnode(fn);
+ kfree(domain_info);
pr_warn("Failed to initialize IR-Aeolia-MSI irqdomain.\n");
- } else {
- domain->flags |= IRQ_DOMAIN_MSI_NOMASK_QUIRK;
}
return domain;
@@ -283,6 +302,7 @@ int apcie_assign_irqs(struct pci_dev *dev, int nvec)
info.type = X86_IRQ_ALLOC_TYPE_PCI_MSI;
/* IRQs "come from" function 4 as far as the IOMMU/system see */
//info.msi_dev = sc->pdev;
+ info.desc = alloc_msi_entry(&dev->dev, nvec, NULL);
/* Our hwirq number is function << 8 plus subfunction.
* Subfunction is usually 0 and implicitly increments per hwirq,
* but can also be 0xff to indicate that this is a shared IRQ. */
--
2.45.1
@@ -1,680 +0,0 @@
From 92a4a84d51795f0a765a0dc6b3db08ca60b74805 Mon Sep 17 00:00:00 2001
From: codedwrench <rick.04.1996@gmail.com>
Date: Fri, 24 Dec 2021 22:40:25 +0100
Subject: [PATCH 10/22] feat: working state, broken gpu
---
drivers/ata/ahci.c | 289 ++++++++++++++++++++++++++
drivers/ata/ahci.h | 28 +++
drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c | 6 +
drivers/iommu/amd/iommu.c | 1 +
drivers/ps4/aeolia.h | 8 +-
drivers/ps4/ps4-apcie.c | 95 ++++++---
6 files changed, 392 insertions(+), 35 deletions(-)
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 149ee16fd022..5ba41c18b295 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -34,6 +34,10 @@
#include <linux/io-64-nonatomic-lo-hi.h>
#include "ahci.h"
+#ifdef CONFIG_X86_PS4
+#include <asm/ps4.h>
+#endif
+
#define DRV_NAME "ahci"
#define DRV_VERSION "3.0"
@@ -605,6 +609,11 @@ static const struct pci_device_id ahci_pci_tbl[] = {
/* Enmotus */
{ PCI_DEVICE(0x1c44, 0x8000), board_ahci },
+ /* Sony (PS4) */
+ { PCI_VDEVICE(SONY, PCI_DEVICE_ID_SONY_AEOLIA_AHCI), board_ahci },
+ { PCI_VDEVICE(SONY, PCI_DEVICE_ID_SONY_BELIZE_AHCI), board_ahci },
+ { PCI_VDEVICE(SONY, PCI_DEVICE_ID_SONY_BAIKAL_AHCI), board_ahci },
+
/* Loongson */
{ PCI_VDEVICE(LOONGSON, 0x7a08), board_ahci },
@@ -954,6 +963,23 @@ static int ahci_configure_dma_masks(struct pci_dev *pdev, int using_dac)
if (pdev->dma_mask && pdev->dma_mask < DMA_BIT_MASK(32))
return 0;
+ #ifdef CONFIG_X86_PS4
+ if (pdev->vendor == PCI_VENDOR_ID_SONY) {
+ rc = dma_set_mask(&pdev->dev, DMA_BIT_MASK(31));
+ if (rc) {
+ dev_err(&pdev->dev, "31-bit DMA enable failed\n");
+ return rc;
+ }
+ rc = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(31));
+ if (rc) {
+ dev_err(&pdev->dev,
+ "31-bit consistent DMA enable failed\n");
+ return rc;
+ }
+ return 0;
+ }
+ #endif
+
rc = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(dma_bits));
if (rc)
dev_err(&pdev->dev, "DMA enable failed\n");
@@ -1574,6 +1600,12 @@ static int ahci_init_msi(struct pci_dev *pdev, unsigned int n_ports,
{
int nvec;
+ #ifdef CONFIG_X86_PS4
+ if (pdev->vendor == PCI_VENDOR_ID_SONY) {
+ return apcie_assign_irqs(pdev, n_ports);
+ }
+ #endif
+
if (hpriv->flags & AHCI_HFLAG_NO_MSI)
return -ENODEV;
@@ -1700,6 +1732,13 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
WARN_ON((int)ATA_MAX_QUEUE > AHCI_MAX_CMDS);
+
+ #ifdef CONFIG_X86_PS4
+ /* This will return negative on non-PS4 platforms */
+ if (apcie_status() == 0)
+ return -EPROBE_DEFER;
+ #endif
+
ata_print_version_once(&pdev->dev, DRV_VERSION);
/* The AHCI driver can only drive the SATA ports, the PATA driver
@@ -1947,8 +1986,258 @@ static void ahci_remove_one(struct pci_dev *pdev)
NULL);
pm_runtime_get_noresume(&pdev->dev);
ata_pci_remove_one(pdev);
+
+ #ifdef CONFIG_X86_PS4
+ if (pdev->vendor == PCI_VENDOR_ID_SONY) {
+ apcie_free_irqs(pdev->irq, 1);
+ }
+ #endif
+}
+
+#ifdef CONFIG_X86_PS4
+void bpcie_sata_phy_init(struct device *dev, struct ahci_controller *ctlr)
+{
+ int i;
+ u32 v;
+ u32 v2;
+ bool is_phy_gen_3;
+ unsigned int trace_length;
+
+ dev_info(dev, "Belize SATA PHY init\n");
+
+ for (i = 0; i < 100; i++) {
+ udelay(10000);
+ }
+
+ //step 1
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x81);
+
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xffffff00) | 1);
+
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0xa5);
+
+ //step 2
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+
+ if (ctlr->dev_id == 0x90ca104d || ctlr->dev_id == 0x909f104d || ctlr->dev_id == 0x90d9104d) {
+ is_phy_gen_3 = false;
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, v & 0xfffff3ff);
+ } else {
+ u32 v2 = bpcie_ahci_read(ctlr->r_mem, 0);
+ if ((v2 & 0xf00000) != 0x300000) {
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xfffff3ff) | 0x400);
+ is_phy_gen_3 = false;
+ } else {
+ dev_info(dev,"PHY SET GEN3\n");
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xfffff3ff) | 0x800);
+ is_phy_gen_3 = true;
+ }
+ }
+
+ //--- step 3 ---
+ if (ctlr->trace_len == 0) {
+ trace_length = 6;
+ } else {
+ trace_length = ctlr->trace_len & 0x1f;
+ if (trace_length >= 0x13) {
+ trace_length = 6;
+ }
+ }
+
+ dev_info(dev,"Belize SATA PHY Trace length : %d\n",trace_length);
+
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0xa3);
+
+ //--- step 4 ---
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xfffff3ff) | 0x800);
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0xd0);
+
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xfffff800) | 0x441);
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0xe1);
+
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xffffff8f) | 0x60);
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0xd0);
+
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xffff3fff) | 0x8000);
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0xf1);
+
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xfffff3ff) | 0x400);
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x48);
+
+ //--- step 5 ---
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, 0x62d8);
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0xe);
+
+ //--- step 6 ---
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, v & 0xffffdfff);
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x8d);
+
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, v | 1);
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x8f);
+
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, v | 1);
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x91);
+
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, v | 1);
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x8d);
+
+ //--- step 7 ---
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ if (trace_length >= 0xe) {
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xffffffc1) | 0x28);
+ } else {
+ if (trace_length < 0xb) {
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xffffffc1) | 8);
+ } else {
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xffffffc1) | 0x10);
+ }
+ }
+
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x8f);
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xffffffc1) | 0x12);
+
+ //--- step 8 ---
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x91);
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ if (trace_length < 5) {
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xffffffc1) | 0x24);
+ } else {
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xffffffc1) | 0x2a);
+ }
+
+ //--- step 9 ---
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0xff);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, 1);
+
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x97);
+
+ //--- step 10 ---
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ if (is_phy_gen_3) {
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xffffff80) | 0xd3);
+ } else {
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xffffff80) | 0xee);
+ }
+
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x95);
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xffffff00) | 0xee);
+
+ //--- step 11 ---
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0xff);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, 0);
+
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x8d);
+
+ //--- step 12 ---
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ if (trace_length < 0xe) {
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xfffff87f) | 0x900);
+ } else {
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xfffff87f) | 0xe00);
+ }
+
+ //--- step 13 ---
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x8f);
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xfffff07f) | 0x900);
+
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x91);
+
+ //--- step 14 ---
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ if (is_phy_gen_3) {
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xfffff87f) | 0xd00);
+ } else {
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xfffff87f) | 0xe80);
+ }
+
+ //--- step 15 ---
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 200);
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, v & 0xffffefff);
+
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 10);
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, v & 0xffffefff);
+
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x82);
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, v | 0x1000);
+
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0xc9);
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, v | 0x1000);
+
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x84);
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xffffffc0) | 0xc);
+
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x8d);
+
+ //--- step 16 ---
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ v = v & 0xffff0fff;
+ if (trace_length < 0xe) {
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, v | 0x8000);
+ } else {
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, v);
+ }
+
+ //--- step 17 ---
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0x8f);
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+ bpcie_ahci_write(ctlr->r_mem, 0x17c, (v & 0xffff0fff) | 0x8000);
+
+ //--- step 18 ---
+ bpcie_ahci_write(ctlr->r_mem, 0xa0, 0);
+ v = bpcie_ahci_read(ctlr->r_mem, 0xa4);
+ bpcie_ahci_write(ctlr->r_mem, 0xa4, v | 0x40);
+
+ //--- step 19 ---
+ if (ctlr->dev_id != 0x909f104d && ctlr->dev_id != 0x90ca104d && ctlr->dev_id != 0x90d9104d) {
+ v2 = 0x73000000;
+ } else {
+ v2 = 0x30000000;
+ }
+
+ //--- step 20 ---
+ bpcie_ahci_write(ctlr->r_mem, 0xa0, 4);
+ v = bpcie_ahci_read(ctlr->r_mem, 0xa4);
+ bpcie_ahci_write(ctlr->r_mem, 0xa4, (v & 0x88ffffff) | v2);
+
+ //--- step 21 ---
+ v = bpcie_ahci_read(ctlr->r_mem, 0xa4);
+
+ //--- step 22 ---
+ for (i = 0; i < 100; i++) {
+ udelay(10000);
+ }
+
+ //--- step 23 ---
+ bpcie_ahci_write(ctlr->r_mem, 0x178, 0xf9);
+ v = bpcie_ahci_read(ctlr->r_mem, 0x17c);
+
+ if (is_phy_gen_3) {
+ dev_info(dev,"Align 90=0x%02x\n",v & 0x7f);
+ }
+ //done!
}
+EXPORT_SYMBOL_GPL(bpcie_sata_phy_init);
+#endif
+
module_pci_driver(ahci_pci_driver);
MODULE_AUTHOR("Jeff Garzik");
diff --git a/drivers/ata/ahci.h b/drivers/ata/ahci.h
index 60ae707a88cc..efdfac788727 100644
--- a/drivers/ata/ahci.h
+++ b/drivers/ata/ahci.h
@@ -447,4 +447,32 @@ static inline int ahci_nr_ports(u32 cap)
return (cap & 0x1f) + 1;
}
+#ifdef CONFIG_X86_PS4
+struct f_resource{
+ u64 resource_i_ptr;
+ u64 r_bustag;
+ void __iomem * r_bushandle;
+};
+
+struct ahci_controller{
+ void *dev;
+ int dev_id;
+ struct f_resource *r_mem;
+ u32 trace_len;
+};
+
+void bpcie_sata_phy_init(struct device *dev, struct ahci_controller *ctlr);
+
+static inline void bpcie_ahci_write(struct f_resource *r_mem, u32 offset, u32 val) {
+ iowrite32(val, r_mem->r_bushandle + offset);
+}
+
+static inline u32 bpcie_ahci_read(struct f_resource *r_mem, u32 offset) {
+ return ioread32(r_mem->r_bushandle + offset);
+}
+#endif
+
+
+
+
#endif /* _AHCI_H */
diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
index 752b66d7d0df..5e249922a72a 100644
--- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
@@ -1068,6 +1068,10 @@ static int gmc_v7_0_sw_init(void *handle)
if (r)
return r;
+
+ dev_info(adev->dev, "Done gart\n");
+
+
/*
* number of VMs
* VMID 0 is reserved for System
@@ -1093,6 +1097,8 @@ static int gmc_v7_0_sw_init(void *handle)
return -ENOMEM;
atomic_set(&adev->gmc.vm_fault_info_updated, 0);
+ dev_info(adev->dev, "Done init\n");
+
return 0;
}
diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
index f20dc0c7b78f..4d36261e88a9 100644
--- a/drivers/iommu/amd/iommu.c
+++ b/drivers/iommu/amd/iommu.c
@@ -3300,6 +3300,7 @@ static int irq_remapping_select(struct irq_domain *d, struct irq_fwspec *fwspec,
if (devid < 0)
return 0;
+ pr_err("Remapping Selected: %x\n", devid);
iommu = amd_iommu_rlookup_table[devid];
return iommu && iommu->ir_domain == d;
}
diff --git a/drivers/ps4/aeolia.h b/drivers/ps4/aeolia.h
index 13df4b9a4fef..5319822ca818 100644
--- a/drivers/ps4/aeolia.h
+++ b/drivers/ps4/aeolia.h
@@ -151,11 +151,11 @@ struct apcie_dev {
struct apcie_icc_dev icc;
};
-#define sc_err(...) dev_err(&sc->pdev->dev, __VA_ARGS__)
-#define sc_warn(...) dev_warn(&sc->pdev->dev, __VA_ARGS__)
-#define sc_notice(...) dev_notice(&sc->pdev->dev, __VA_ARGS__)
+#define sc_err(...) dev_info(&sc->pdev->dev, __VA_ARGS__)
+#define sc_warn(...) dev_info(&sc->pdev->dev, __VA_ARGS__)
+#define sc_notice(...) dev_info(&sc->pdev->dev, __VA_ARGS__)
#define sc_info(...) dev_info(&sc->pdev->dev, __VA_ARGS__)
-#define sc_dbg(...) dev_dbg(&sc->pdev->dev, __VA_ARGS__)
+#define sc_dbg(...) dev_info(&sc->pdev->dev, __VA_ARGS__)
static inline int apcie_irqnum(struct apcie_dev *sc, int index)
{
diff --git a/drivers/ps4/ps4-apcie.c b/drivers/ps4/ps4-apcie.c
index d9c36f7715bb..f4e3a380d591 100644
--- a/drivers/ps4/ps4-apcie.c
+++ b/drivers/ps4/ps4-apcie.c
@@ -18,6 +18,11 @@
#include "aeolia.h"
+
+#define MSI_DATA_VECTOR_SHIFT 0
+#define MSI_DATA_VECTOR(v) (((u8)v) << MSI_DATA_VECTOR_SHIFT)
+#define MSI_DATA_VECTOR_MASK 0xffffff00
+
/* #define QEMU_HACK_NO_IOMMU */
/* Number of implemented MSI registers per function */
@@ -63,12 +68,20 @@ static void apcie_config_msi(struct apcie_dev *sc, u32 func, u32 subfunc,
glue_clear_mask(sc, APCIE_REG_MSI_CONTROL, APCIE_REG_MSI_CONTROL_ENABLE);
/* Unknown */
+ sc_dbg("glue_write32 to offset, value (%08x, %08x, %08x)\n", sc->bar4, APCIE_REG_MSI(0x8), 0xffffffff);
glue_write32(sc, APCIE_REG_MSI(0x8), 0xffffffff);
/* Unknown */
+ sc_dbg("glue_write32 to offset, value (%08x, %08x, %08x)\n", sc->bar4, APCIE_REG_MSI(0xc + (func << 2)), 0xB7FFFF00 + func * 16);
glue_write32(sc, APCIE_REG_MSI(0xc + (func << 2)), 0xB7FFFF00 + func * 16);
+
+ sc_dbg("glue_write32 to offset, value (%08x, %08x, %08x)\n", sc->bar4, APCIE_REG_MSI_ADDR(func), addr);
glue_write32(sc, APCIE_REG_MSI_ADDR(func), addr);
/* Unknown */
+
+ sc_dbg("glue_write32 to offset, value (%08x, %08x, %08x)\n", sc->bar4, APCIE_REG_MSI(0xcc + (func << 2)), 0);
glue_write32(sc, APCIE_REG_MSI(0xcc + (func << 2)), 0);
+
+ sc_dbg("glue_write32 to offset, value (%08x, %08x, %08x)\n", sc->bar4, APCIE_REG_MSI_DATA_HI(func), data & 0xffe0);
glue_write32(sc, APCIE_REG_MSI_DATA_HI(func), data & 0xffe0);
if (func < 4) {
@@ -84,6 +97,8 @@ static void apcie_config_msi(struct apcie_dev *sc, u32 func, u32 subfunc,
} else {
offset = 0xa0 + ((func - 5) << 4) + (subfunc << 2);
}
+
+ sc_dbg("glue_write32 to offset, value (%08x, %08x, %08x)\n", sc->bar4, APCIE_REG_MSI_DATA_LO(offset), data & 0x1f);
glue_write32(sc, APCIE_REG_MSI_DATA_LO(offset), data & 0x1f);
if (func == AEOLIA_FUNC_ID_PCIE)
@@ -149,9 +164,17 @@ static void apcie_msi_calc_mask(struct irq_data *data) {
static void apcie_irq_msi_compose_msg(struct irq_data *data,
struct msi_msg *msg)
{
- __irq_msi_compose_msg(irqd_cfg(data), msg, false);
-}
+ struct irq_cfg *cfg = irqd_cfg(data);
+ memset(msg, 0, sizeof(*msg));
+ msg->address_hi = X86_MSI_BASE_ADDRESS_HIGH;
+ msg->address_lo = 0xfee00000;// Just do it like this for now
+
+ // I know this is absolute horseshit, but it matches a known working kernel
+ msg->data = data->irq - 1;
+
+ pr_err("apcie_irq_msi_compose_msg\n");
+}
static struct irq_chip apcie_msi_controller = {
.name = "Aeolia-MSI",
@@ -162,7 +185,7 @@ static struct irq_chip apcie_msi_controller = {
.irq_retrigger = irq_chip_retrigger_hierarchy,
.irq_compose_msi_msg = apcie_irq_msi_compose_msg,
.irq_write_msi_msg = apcie_msi_write_msg,
- .flags = IRQCHIP_SKIP_SET_WAKE,
+ .flags = IRQCHIP_SKIP_SET_WAKE | IRQCHIP_AFFINITY_PRE_STARTUP,
};
static irq_hw_number_t apcie_msi_get_hwirq(struct msi_domain_info *info,
@@ -176,7 +199,7 @@ static int apcie_msi_init(struct irq_domain *domain,
irq_hw_number_t hwirq, msi_alloc_info_t *arg)
{
struct irq_data *data;
- pr_devel("apcie_msi_init(%p, %p, %d, 0x%lx, %p)\n", domain, info, virq, hwirq, arg);
+ pr_err("apcie_msi_init(%p, %p, %d, 0x%lx, %p)\n", domain, info, virq, hwirq, arg);
data = irq_domain_get_irq_data(domain, virq);
irq_domain_set_info(domain, virq, hwirq, info->chip, info->chip_data,
@@ -188,23 +211,25 @@ static int apcie_msi_init(struct irq_domain *domain,
static void apcie_msi_free(struct irq_domain *domain,
struct msi_domain_info *info, unsigned int virq)
{
- pr_devel("apcie_msi_free(%d)\n", virq);
+ pr_err("apcie_msi_free(%d)\n", virq);
}
-int apcie_msi_prepare(struct irq_domain *domain, struct device *dev, int nvec,
- msi_alloc_info_t *arg)
+
+static void apcie_set_desc(msi_alloc_info_t *arg, struct msi_desc *desc)
{
- init_irq_alloc_info(arg, NULL);
+ arg->desc = desc;
+ struct pci_dev* device = msi_desc_to_pci_dev(desc);
- arg->type = X86_IRQ_ALLOC_TYPE_PCI_MSI;
- arg->flags |= MSI_FLAG_MULTI_PCI_MSI;
+ arg->hwirq = PCI_FUNC(device->devfn) << 8;
- return 0;
+#ifndef QEMU_HACK_NO_IOMMU
+ arg->hwirq |= 0xFF;
+#endif
}
static struct msi_domain_ops apcie_msi_domain_ops = {
.get_hwirq = apcie_msi_get_hwirq,
- .msi_prepare = apcie_msi_prepare,
+ .set_desc = apcie_set_desc,
.msi_init = apcie_msi_init,
.msi_free = apcie_msi_free,
};
@@ -219,7 +244,6 @@ static struct msi_domain_info apcie_msi_domain_info = {
static struct irq_domain *apcie_create_irq_domain(struct apcie_dev *sc)
{
- struct msi_domain_info *domain_info;
struct irq_domain *domain, *parent;
struct fwnode_handle *fn;
struct irq_fwspec fwspec;
@@ -228,19 +252,15 @@ static struct irq_domain *apcie_create_irq_domain(struct apcie_dev *sc)
if (x86_vector_domain == NULL)
return NULL;
- domain_info = kzalloc(sizeof(*domain_info), GFP_KERNEL);
- if (!domain_info)
- return NULL;
-
- *domain_info = apcie_msi_domain_info;
- domain_info->chip_data = (void *)sc;
+ apcie_msi_domain_info.chip_data = (void *)sc;
fn = irq_domain_alloc_named_id_fwnode(apcie_msi_controller.name, pci_dev_id(sc->pdev));
if (!fn) {
- kfree(domain_info);
return NULL;
}
+ sc_dbg("devid = %d\n", pci_dev_id(sc->pdev));
+
fwspec.fwnode = fn;
fwspec.param_count = 1;
@@ -249,17 +269,19 @@ static struct irq_domain *apcie_create_irq_domain(struct apcie_dev *sc)
parent = irq_find_matching_fwspec(&fwspec, DOMAIN_BUS_ANY);
if (!parent) {
+ sc_dbg("no parent \n");
parent = x86_vector_domain;
+ } else if (parent == x86_vector_domain) {
+ sc_dbg("no parent \n");
} else {
apcie_msi_domain_info.flags |= MSI_FLAG_MULTI_PCI_MSI;
apcie_msi_controller.name = "IR-Aeolia-MSI";
}
- domain = msi_create_irq_domain(fn, domain_info, parent);
+ domain = msi_create_irq_domain(fn, &apcie_msi_domain_info, parent);
if (!domain) {
irq_domain_free_fwnode(fn);
- kfree(domain_info);
- pr_warn("Failed to initialize IR-Aeolia-MSI irqdomain.\n");
+ pr_warn("Failed to initialize Aeolia-MSI irqdomain.\n");
}
return domain;
@@ -302,15 +324,17 @@ int apcie_assign_irqs(struct pci_dev *dev, int nvec)
info.type = X86_IRQ_ALLOC_TYPE_PCI_MSI;
/* IRQs "come from" function 4 as far as the IOMMU/system see */
//info.msi_dev = sc->pdev;
- info.desc = alloc_msi_entry(&dev->dev, nvec, NULL);
+ info.devid = pci_dev_id(sc->pdev);
+
+ int i, base = 0;
+ struct msi_desc *desc;
+ struct device* bare_dev = &sc->pdev->dev;
+
/* Our hwirq number is function << 8 plus subfunction.
* Subfunction is usually 0 and implicitly increments per hwirq,
* but can also be 0xff to indicate that this is a shared IRQ. */
- //https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=3b9c1d377d67072d1d8a2373b4969103cca00dab
info.hwirq = PCI_FUNC(dev->devfn) << 8;
- dev_dbg(&dev->dev, "apcie_assign_irqs(%d)\n", nvec);
-
#ifndef QEMU_HACK_NO_IOMMU
info.flags = X86_IRQ_ALLOC_CONTIGUOUS_VECTORS;
if (!(apcie_msi_domain_info.flags & MSI_FLAG_MULTI_PCI_MSI)) {
@@ -319,14 +343,23 @@ int apcie_assign_irqs(struct pci_dev *dev, int nvec)
}
#endif
+ desc = alloc_msi_entry(bare_dev, 1, NULL);
+
+ info.desc = desc;
+ info.data = sc;
+
+ dev_info(&dev->dev, "apcie_assign_irqs(%d) (%d)\n", nvec, info.hwirq);
+
ret = irq_domain_alloc_irqs(sc->irqdomain, nvec, NUMA_NO_NODE, &info);
if (ret >= 0) {
+ dev_info(&dev->dev, "irq_domain_alloc_irqs = %x\n", ret);
dev->irq = ret;
+ desc->irq = ret;
ret = nvec;
}
fail:
- dev_dbg(&dev->dev, "apcie_assign_irqs returning %d\n", ret);
+ dev_info(&dev->dev, "apcie_assign_irqs returning %d\n", ret);
if (sc_dev)
pci_dev_put(sc_dev);
return ret;
@@ -494,10 +527,10 @@ static int apcie_probe(struct pci_dev *dev, const struct pci_device_id *id) {
if ((ret = apcie_glue_init(sc)) < 0)
goto free_bars;
- if ((ret = apcie_uart_init(sc)) < 0)
- goto remove_glue;
+ //if ((ret = apcie_uart_init(sc)) < 0)
+ // goto remove_glue;
if ((ret = apcie_icc_init(sc)) < 0)
- goto remove_uart;
+ goto remove_glue;
apcie_initialized = true;
return 0;
--
2.45.1
@@ -1,126 +0,0 @@
From ed61a42f4a35bf12c7a78642f7d814f50b936f57 Mon Sep 17 00:00:00 2001
From: codedwrench <rick.04.1996@gmail.com>
Date: Sat, 25 Dec 2021 16:13:58 +0100
Subject: [PATCH 11/22] fix: incorrectly applied patches and missing patches
---
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 3 +++
.../gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 2 ++
drivers/gpu/drm/radeon/cik.c | 14 +++++++-------
drivers/ps4/ps4-apcie.c | 1 +
4 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
index d81187445ebe..8513dd006ad5 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
@@ -1400,11 +1400,14 @@ static int gfx_v7_0_init_microcode(struct amdgpu_device *adev)
(adev->asic_type == CHIP_GLADIUS)) {
snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mec2.bin", chip_name);
err = request_firmware(&adev->gfx.mec2_fw, fw_name, adev->dev);
+ if (err)
{
pr_err("gfx7: Failed to open firmware \"%s\"\n", fw_name);
goto out;
}
+
err = amdgpu_ucode_validate(adev->gfx.mec2_fw);
+ if (err)
{
pr_err("gfx7: Failed to validate ucode firmware \"%s\"\n", fw_name);
goto out;
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
index d88513d0aca0..0ddcd498a68b 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
@@ -1860,6 +1860,8 @@ struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
switch (dev->device_info->asic_family) {
/* HWS is not available on Hawaii. */
+ case CHIP_LIVERPOOL:
+ case CHIP_GLADIUS:
case CHIP_HAWAII:
/* HWS depends on CWSR for timely dequeue. CWSR is not
* available on Tonga.
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c
index f6ca400c006f..a0b83b91fdac 100644
--- a/drivers/gpu/drm/radeon/cik.c
+++ b/drivers/gpu/drm/radeon/cik.c
@@ -8251,7 +8251,7 @@ int cik_irq_process(struct radeon_device *rdev)
return IRQ_NONE;
rptr = rdev->ih.rptr;
- DRM_DEBUG("cik_irq_process start: rptr %d, wptr %d\n", rptr, wptr);
+ //DRM_DEBUG("cik_irq_process start: rptr %d, wptr %d\n", rptr, wptr);
/* Order reading of wptr vs. reading of IH ring data */
rmb();
@@ -8294,7 +8294,7 @@ int cik_irq_process(struct radeon_device *rdev)
break;
default:
- DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data);
+ //DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data);
break;
}
break;
@@ -8324,7 +8324,7 @@ int cik_irq_process(struct radeon_device *rdev)
break;
default:
- DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data);
+ //DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data);
break;
}
break;
@@ -8354,7 +8354,7 @@ int cik_irq_process(struct radeon_device *rdev)
break;
default:
- DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data);
+ //DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data);
break;
}
break;
@@ -8384,7 +8384,7 @@ int cik_irq_process(struct radeon_device *rdev)
break;
default:
- DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data);
+ //DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data);
break;
}
break;
@@ -8414,7 +8414,7 @@ int cik_irq_process(struct radeon_device *rdev)
break;
default:
- DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data);
+ //DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data);
break;
}
break;
@@ -8444,7 +8444,7 @@ int cik_irq_process(struct radeon_device *rdev)
break;
default:
- DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data);
+ //DRM_DEBUG("Unhandled interrupt: %d %d\n", src_id, src_data);
break;
}
break;
diff --git a/drivers/ps4/ps4-apcie.c b/drivers/ps4/ps4-apcie.c
index f4e3a380d591..fd27a4f38e61 100644
--- a/drivers/ps4/ps4-apcie.c
+++ b/drivers/ps4/ps4-apcie.c
@@ -527,6 +527,7 @@ static int apcie_probe(struct pci_dev *dev, const struct pci_device_id *id) {
if ((ret = apcie_glue_init(sc)) < 0)
goto free_bars;
+ // TODO (ps4patches): figure out why this dies a horrible and painful death.
//if ((ret = apcie_uart_init(sc)) < 0)
// goto remove_glue;
if ((ret = apcie_icc_init(sc)) < 0)
--
2.45.1
@@ -1,188 +0,0 @@
From b009aedae1dd07fa3c761e7ddcc92071dd792853 Mon Sep 17 00:00:00 2001
From: codedwrench <rick.04.1996@gmail.com>
Date: Tue, 28 Dec 2021 17:53:53 +0100
Subject: [PATCH 12/22] fix: radeon drivers
---
drivers/gpu/drm/radeon/cik.c | 30 +++++++++++++--------------
drivers/gpu/drm/radeon/ps4_bridge.c | 23 +++++++++++---------
drivers/gpu/drm/radeon/radeon.h | 2 +-
drivers/gpu/drm/radeon/radeon_audio.c | 2 +-
4 files changed, 30 insertions(+), 27 deletions(-)
diff --git a/drivers/gpu/drm/radeon/cik.c b/drivers/gpu/drm/radeon/cik.c
index a0b83b91fdac..ce9799517ff4 100644
--- a/drivers/gpu/drm/radeon/cik.c
+++ b/drivers/gpu/drm/radeon/cik.c
@@ -1038,7 +1038,20 @@ static const u32 kalindi_rlc_save_restore_register_list[] =
(0x0e00 << 16) | (0x9600 >> 2),
};
-static const u32 liverpool_rlc_save_restore_register_li
+static const u32 bonaire_golden_spm_registers[] =
+{
+ 0x30800, 0xe0ffffff, 0xe0000000
+};
+
+static const u32 bonaire_golden_common_registers[] =
+{
+ 0xc770, 0xffffffff, 0x00000800,
+ 0xc774, 0xffffffff, 0x00000800,
+ 0xc798, 0xffffffff, 0x00007fbf,
+ 0xc79c, 0xffffffff, 0x00007faf
+};
+
+static const u32 liverpool_rlc_save_restore_register_list[] =
{
(0x0600 << 16) | 0x263d,
0x00000000,
@@ -1453,19 +1466,6 @@ static const u32 liverpool_rlc_save_restore_register_li
(0x0e00 << 16) | 0x230d,
};
-static const u32 bonaire_golden_spm_registers[] =
-{
- 0x30800, 0xe0ffffff, 0xe0000000
-};
-
-static const u32 bonaire_golden_common_registers[] =
-{
- 0xc770, 0xffffffff, 0x00000800,
- 0xc774, 0xffffffff, 0x00000800,
- 0xc798, 0xffffffff, 0x00007fbf,
- 0xc79c, 0xffffffff, 0x00007faf
-};
-
static const u32 bonaire_golden_registers[] =
{
0x3354, 0x00000333, 0x00000333,
@@ -1616,7 +1616,7 @@ static const u32 liverpool_golden_common_registers[] =
0x5004, 0x00002000, 0x00002000, /* GARLIC_FLUSH_CNTL */
};
-onst u32 liverpool_golden_registers[] =
+static const u32 liverpool_golden_registers[] =
{
0xc420, 0xffffffff, 0xfffffffc, /* RLC_CGTT_MGCG_OVERRIDE */
0x30800, 0xffffffff, 0xe0000000, /* GRBM_GFX_INDEX */
diff --git a/drivers/gpu/drm/radeon/ps4_bridge.c b/drivers/gpu/drm/radeon/ps4_bridge.c
index 1c1cb0b4dabb..6f6e354e182d 100644
--- a/drivers/gpu/drm/radeon/ps4_bridge.c
+++ b/drivers/gpu/drm/radeon/ps4_bridge.c
@@ -13,11 +13,14 @@
#include <asm/ps4.h>
+#include <drm/drm_bridge.h>
#include <drm/drm_crtc.h>
#include <drm/drm_crtc_helper.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_edid.h>
-#include <drm/drmP.h>
+#include <drm/drm_print.h>
+
+#include <linux/pci.h>
#include "radeon_mode.h"
#include "ObjectID.h"
@@ -95,7 +98,6 @@
# define HDCPEN_ENC_EN 0x03
# define HDCPEN_ENC_DIS 0x05
-#define PCI_VENDOR_ID_AMD 0x1002
#define PCI_DEVICE_ID_CUH_11XX 0x9920
#define PCI_DEVICE_ID_CUH_12XX 0x9922
#define PCI_DEVICE_ID_CUH_2XXX 0x9923
@@ -269,8 +271,8 @@ static inline struct radeon_ps4_bridge *
}
static void radeon_ps4_bridge_mode_set(struct drm_bridge *bridge,
- struct drm_display_mode *mode,
- struct drm_display_mode *adjusted_mode)
+ const struct drm_display_mode *mode,
+ const struct drm_display_mode *adjusted_mode)
{
struct radeon_ps4_bridge *mn_bridge = bridge_to_radeon_ps4_bridge(bridge);
@@ -357,7 +359,7 @@ static void radeon_ps4_bridge_enable(struct drm_bridge *bridge)
struct radeon_ps4_bridge *mn_bridge = bridge_to_radeon_ps4_bridge(bridge);
struct drm_connector *connector = mn_bridge->connector;
struct drm_device *dev = connector->dev;
- struct pci_dev *pdev = dev->pdev;
+ struct pci_dev *pdev = to_pci_dev(dev->dev);
u8 dp[3];
if (!mn_bridge->mode) {
@@ -638,21 +640,21 @@ static const struct drm_display_mode mode_480p = {
DRM_MODE("640x480", DRM_MODE_TYPE_DRIVER, 25175, 640, 656,
752, 800, 0, 480, 490, 492, 525, 0,
DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC),
- .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3
+ .picture_aspect_ratio = HDMI_PICTURE_ASPECT_4_3
};
/* 4 - 1280x720@60Hz */
static const struct drm_display_mode mode_720p = {
DRM_MODE("1280x720", DRM_MODE_TYPE_DRIVER, 74250, 1280, 1390,
1430, 1650, 0, 720, 725, 730, 750, 0,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
- .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9
+ .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9
};
/* 16 - 1920x1080@60Hz */
static const struct drm_display_mode mode_1080p = {
DRM_MODE("1920x1080", DRM_MODE_TYPE_DRIVER, 148500, 1920, 2008,
2052, 2200, 0, 1080, 1084, 1089, 1125, 0,
DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC),
- .vrefresh = 60, .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9
+ .picture_aspect_ratio = HDMI_PICTURE_ASPECT_16_9
};
int radeon_ps4_bridge_get_modes(struct drm_connector *connector)
@@ -669,7 +671,7 @@ int radeon_ps4_bridge_get_modes(struct drm_connector *connector)
//newmode = drm_mode_duplicate(dev, &mode_480p);
//drm_mode_probed_add(connector, newmode);
- drm_mode_connector_update_edid_property(connector, NULL);
+ drm_connector_update_edid_property(connector, NULL);
return 0;
}
@@ -718,7 +720,8 @@ int radeon_ps4_bridge_mode_valid(struct drm_connector *connector,
return MODE_OK;
}
-static int radeon_ps4_bridge_attach(struct drm_bridge *bridge)
+static int radeon_ps4_bridge_attach(struct drm_bridge *bridge,
+ enum drm_bridge_attach_flags flags)
{
/* struct radeon_ps4_bridge *mn_bridge = bridge_to_radeon_ps4_bridge(bridge); */
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 314fd436f3c9..05cbdf9e6dfe 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -2679,7 +2679,7 @@ void r100_pll_errata_after_index(struct radeon_device *rdev);
#define ASIC_IS_DCE81(rdev) ((rdev->family == CHIP_KAVERI))
#define ASIC_IS_DCE82(rdev) ((rdev->family == CHIP_BONAIRE))
#define ASIC_IS_DCE83(rdev) ((rdev->family == CHIP_KABINI) || \
- (rdev->family == CHIP_MULLINS || \
+ (rdev->family == CHIP_MULLINS) || \
(rdev->family == CHIP_LIVERPOOL))
#define ASIC_IS_LOMBOK(rdev) ((rdev->pdev->device == 0x6849) || \
diff --git a/drivers/gpu/drm/radeon/radeon_audio.c b/drivers/gpu/drm/radeon/radeon_audio.c
index ba877d0b73fd..3bca01e82835 100644
--- a/drivers/gpu/drm/radeon/radeon_audio.c
+++ b/drivers/gpu/drm/radeon/radeon_audio.c
@@ -244,7 +244,7 @@ int radeon_audio_init(struct radeon_device *rdev)
rdev->audio.enabled = true;
- if (ASIC_IS_DCE83(rdev)) /* KB: 2 streams, 3 endpoints */
+ if (ASIC_IS_DCE83(rdev)) /* KB: 2 streams, 3 endpoints */
rdev->audio.num_pins = 3;
else if (ASIC_IS_DCE81(rdev)) /* KV: 4 streams, 7 endpoints */
rdev->audio.num_pins = 7;
--
2.45.1
@@ -1,53 +0,0 @@
From 1b9c84e8afd63df84109a717f6fe3076f2990841 Mon Sep 17 00:00:00 2001
From: codedwrench <rick.04.1996@gmail.com>
Date: Tue, 28 Dec 2021 18:49:46 +0100
Subject: [PATCH 13/22] fix: amdgpu drivers
---
drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c | 2 +-
drivers/gpu/drm/amd/amdgpu/atombios_dp.c | 2 +-
drivers/gpu/drm/amd/amdgpu/atombios_encoders.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c
index 619d4c771176..dc517dc8ae94 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c
@@ -41,7 +41,7 @@ static void amdgpu_maybe_add_bridge(struct drm_connector *connector,
struct drm_encoder *encoder)
{
struct drm_device *dev = connector->dev;
- struct amdgpu_device *adev = dev->dev_private;
+ struct amdgpu_device *adev = drm_to_adev(dev);
if (adev->asic_type == CHIP_LIVERPOOL || adev->asic_type == CHIP_GLADIUS) {
ps4_bridge_register(connector, encoder);
diff --git a/drivers/gpu/drm/amd/amdgpu/atombios_dp.c b/drivers/gpu/drm/amd/amdgpu/atombios_dp.c
index 33987ecdc517..a41352dbe298 100644
--- a/drivers/gpu/drm/amd/amdgpu/atombios_dp.c
+++ b/drivers/gpu/drm/amd/amdgpu/atombios_dp.c
@@ -262,7 +262,7 @@ static int amdgpu_atombios_dp_get_dp_link_config(struct drm_connector *connector
unsigned lane_num, i, max_pix_clock;
struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector);
struct drm_device *dev = amdgpu_connector->base.dev;
- struct amdgpu_device *adev = dev->dev_private;
+ struct amdgpu_device *adev = drm_to_adev(dev);
/* Liverpool is always connected to an encoder that needs 4 lanes */
if (adev->asic_type == CHIP_LIVERPOOL)
diff --git a/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c b/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c
index 5bd8a782feb5..801178479719 100644
--- a/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c
+++ b/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c
@@ -446,7 +446,7 @@ int amdgpu_atombios_encoder_get_encoder_mode(struct drm_encoder *encoder)
struct amdgpu_connector_atom_dig *dig_connector;
struct drm_device *dev = encoder->dev;
- struct amdgpu_device *adev = dev->dev_private;
+ struct amdgpu_device *adev = drm_to_adev(dev);
/* dp bridges are always DP */
if ((amdgpu_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE) ||
--
2.45.1
@@ -1,191 +0,0 @@
From 3b2f7c502e713f75cd73793657eb58b55121d8c6 Mon Sep 17 00:00:00 2001
From: codedwrench <rick.04.1996@gmail.com>
Date: Wed, 29 Dec 2021 14:16:57 +0100
Subject: [PATCH 14/22] fix: re-add legacy bridge functions
---
config | 2 +-
drivers/gpu/drm/amd/amdgpu/ps4_bridge.c | 20 +++++++------
drivers/gpu/drm/drm_crtc_helper.c | 37 +++++++++++++++++++++++++
3 files changed, 50 insertions(+), 9 deletions(-)
diff --git a/config b/config
index 9b3e8c78ecf1..ceaac7d2d935 100644
--- a/config
+++ b/config
@@ -2262,7 +2262,7 @@ CONFIG_DRM_SCHED=y
CONFIG_DRM_AMDGPU=y
# CONFIG_DRM_AMDGPU_SI is not set
CONFIG_DRM_AMDGPU_CIK=y
-CONFIG_DRM_AMDGPU_USERPTR=y
+# CONFIG_DRM_AMDGPU_USERPTR is not set
#
# ACP (Audio CoProcessor) Configuration
diff --git a/drivers/gpu/drm/amd/amdgpu/ps4_bridge.c b/drivers/gpu/drm/amd/amdgpu/ps4_bridge.c
index 86af15c134c4..d63ae6dddbb2 100644
--- a/drivers/gpu/drm/amd/amdgpu/ps4_bridge.c
+++ b/drivers/gpu/drm/amd/amdgpu/ps4_bridge.c
@@ -11,6 +11,10 @@
* GNU General Public License for more details.
*/
+
+// TODO (ps4patches): Make functions atomic,
+// https://lore.kernel.org/linux-arm-kernel/20211020181901.2114645-5-sam@ravnborg.org/
+
#include <asm/ps4.h>
#include <drm/drm_crtc.h>
@@ -676,7 +680,7 @@ int ps4_bridge_get_modes(struct drm_connector *connector)
{
struct drm_device *dev = connector->dev;
struct drm_display_mode *newmode;
- DRM_DEBUG_KMS("ps4_bridge_get_modes\n");
+ pr_info("ps4_bridge_get_modes\n");
newmode = drm_mode_duplicate(dev, &mode_1080p);
drm_mode_probed_add(connector, newmode);
@@ -687,7 +691,7 @@ int ps4_bridge_get_modes(struct drm_connector *connector)
//drm_mode_probed_add(connector, newmode);
drm_connector_update_edid_property(connector, NULL);
-
+
return 0;
}
@@ -738,7 +742,6 @@ int ps4_bridge_mode_valid(struct drm_connector *connector,
static int ps4_bridge_attach(struct drm_bridge *bridge,
enum drm_bridge_attach_flags flags)
{
- // TODO (ps4patches): Why is this in comments?
/* struct ps4_bridge *mn_bridge = bridge_to_ps4_bridge(bridge); */
return 0;
@@ -761,16 +764,17 @@ int ps4_bridge_register(struct drm_connector *connector,
mn_bridge->encoder = encoder;
mn_bridge->connector = connector;
+ mn_bridge->bridge.type = DRM_MODE_CONNECTOR_HDMIA;
mn_bridge->bridge.funcs = &ps4_bridge_funcs;
- ret = drm_bridge_attach(mn_bridge->encoder, &mn_bridge->bridge, NULL, 0);
+
+ // TODO (ps4patches): This seems to be the new way of adding bridges
+ drm_bridge_add(&mn_bridge->bridge);
+
+ ret = drm_bridge_attach(mn_bridge->encoder, &mn_bridge->bridge, NULL, DRM_BRIDGE_ATTACH_NO_CONNECTOR);
if (ret) {
DRM_ERROR("Failed to initialize bridge with drm\n");
return -EINVAL;
}
- //encoder->bridge = &mn_bridge->bridge;
- // TODO (ps4patches): This seems to be the new way of adding bridges
- drm_bridge_add(&mn_bridge->bridge);
-
return 0;
}
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index bff917531f33..17bf9a7ff546 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -162,10 +162,15 @@ drm_encoder_disable(struct drm_encoder *encoder)
if (!encoder_funcs)
return;
+ struct drm_bridge* bridge = drm_bridge_chain_get_first_bridge(encoder);
+ drm_bridge_chain_disable(bridge);
+
if (encoder_funcs->disable)
(*encoder_funcs->disable)(encoder);
else if (encoder_funcs->dpms)
(*encoder_funcs->dpms)(encoder, DRM_MODE_DPMS_OFF);
+
+ drm_bridge_chain_post_disable(bridge);
}
static void __drm_helper_disable_unused_functions(struct drm_device *dev)
@@ -322,6 +327,14 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
if (!encoder_funcs)
continue;
+ struct drm_bridge* bridge = drm_bridge_chain_get_first_bridge(encoder);
+ ret = drm_bridge_chain_mode_fixup(bridge,
+ mode, adjusted_mode);
+ if (!ret) {
+ DRM_DEBUG_KMS("Bridge fixup failed\n");
+ goto done;
+ }
+
encoder_funcs = encoder->helper_private;
if (encoder_funcs->mode_fixup) {
if (!(ret = encoder_funcs->mode_fixup(encoder, mode,
@@ -353,9 +366,14 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
if (!encoder_funcs)
continue;
+ struct drm_bridge* bridge = drm_bridge_chain_get_first_bridge(encoder);
+ drm_bridge_chain_disable(bridge);
+
/* Disable the encoders as the first thing we do. */
if (encoder_funcs->prepare)
encoder_funcs->prepare(encoder);
+
+ drm_bridge_chain_post_disable(bridge);
}
drm_crtc_prepare_encoders(dev);
@@ -382,6 +400,9 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
encoder->base.id, encoder->name, mode->name);
if (encoder_funcs->mode_set)
encoder_funcs->mode_set(encoder, mode, adjusted_mode);
+
+ struct drm_bridge* bridge = drm_bridge_chain_get_first_bridge(encoder);
+ drm_bridge_chain_mode_set(bridge, mode, adjusted_mode);
}
/* Now enable the clocks, plane, pipe, and connectors that we set up. */
@@ -396,8 +417,13 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
if (!encoder_funcs)
continue;
+ struct drm_bridge* bridge = drm_bridge_chain_get_first_bridge(encoder);
+ drm_bridge_chain_pre_enable(bridge);
+
if (encoder_funcs->commit)
encoder_funcs->commit(encoder);
+
+ drm_bridge_chain_enable(bridge);
}
/* Calculate and store various constants which
@@ -816,14 +842,25 @@ static int drm_helper_choose_encoder_dpms(struct drm_encoder *encoder)
/* Helper which handles bridge ordering around encoder dpms */
static void drm_helper_encoder_dpms(struct drm_encoder *encoder, int mode)
{
+ struct drm_bridge* bridge = drm_bridge_chain_get_first_bridge(encoder);
const struct drm_encoder_helper_funcs *encoder_funcs;
encoder_funcs = encoder->helper_private;
if (!encoder_funcs)
return;
+ if (mode == DRM_MODE_DPMS_ON)
+ drm_bridge_chain_pre_enable(bridge);
+ else
+ drm_bridge_chain_disable(bridge);
+
if (encoder_funcs->dpms)
encoder_funcs->dpms(encoder, mode);
+
+ if (mode == DRM_MODE_DPMS_ON)
+ drm_bridge_chain_enable(bridge);
+ else
+ drm_bridge_chain_post_disable(bridge);
}
static int drm_helper_choose_crtc_dpms(struct drm_crtc *crtc)
--
2.45.1
@@ -1,644 +0,0 @@
From 00879e27dddefbe1c062f53b4eec0e9166780a2a Mon Sep 17 00:00:00 2001
From: codedwrench <rick.04.1996@gmail.com>
Date: Wed, 29 Dec 2021 15:43:55 +0100
Subject: [PATCH 15/22] feat: potentially added belize ahci support in a
universal way
---
drivers/usb/host/xhci-aeolia.c | 543 ++++++++++++++++-----------------
1 file changed, 268 insertions(+), 275 deletions(-)
diff --git a/drivers/usb/host/xhci-aeolia.c b/drivers/usb/host/xhci-aeolia.c
index a9b345284495..1401af61430c 100644
--- a/drivers/usb/host/xhci-aeolia.c
+++ b/drivers/usb/host/xhci-aeolia.c
@@ -25,8 +25,7 @@ static struct hc_driver __read_mostly xhci_aeolia_hc_driver;
#define NR_DEVICES 3
struct aeolia_xhci {
- // TODO (ps4patches): Belize, enable in ahci commit
- // struct ata_host *host;
+ struct ata_host *host;
int nr_irqs;
struct usb_hcd *hcd[NR_DEVICES];
};
@@ -75,14 +74,8 @@ static int xhci_aeolia_probe_one(struct pci_dev *dev, int index)
hcd->rsrc_start = pci_resource_start(dev, 2 * index);
hcd->rsrc_len = pci_resource_len(dev, 2 * index);
- /*
- * TODO (ps4patches): Belize, enable in ahci commit
if (!devm_request_mem_region(&dev->dev, hcd->rsrc_start, hcd->rsrc_len,
driver->description)) {
- */
-
- if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len,
- driver->description)) {
dev_dbg(&dev->dev, "controller already in use\n");
retval = -EBUSY;
goto put_hcd;
@@ -124,9 +117,7 @@ static int xhci_aeolia_probe_one(struct pci_dev *dev, int index)
unmap_registers:
iounmap(hcd->regs);
release_mem_region:
- //
- // devm_release_mem_region(&dev->dev, hcd->rsrc_start, hcd->rsrc_len);
- release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
+ devm_release_mem_region(&dev->dev, hcd->rsrc_start, hcd->rsrc_len);
put_hcd:
usb_put_hcd(hcd);
dev_err(&dev->dev, "init %s(%d) fail, %d\n",
@@ -147,226 +138,225 @@ static void xhci_aeolia_remove_one(struct pci_dev *dev, int index)
usb_remove_hcd(xhci->shared_hcd);
usb_remove_hcd(hcd);
usb_put_hcd(xhci->shared_hcd);
- iounmap(hcd->regs);
+
+ // TODO (ps4patches): Does this really need to be disabled?
+ if(dev->device == PCI_DEVICE_ID_SONY_BELIZE_XHCI) {
+ iounmap(hcd->regs);
+ }
usb_put_hcd(hcd);
axhci->hcd[index] = NULL;
}
-// TODO (ps4patches): Belize, enable in ahci commit
-//#define DRV_VERSION "3.0"
-//#define DRV_NAME "ahci"
-//static const struct ata_port_info ahci_port_info = {
-// .flags = AHCI_FLAG_COMMON,
-// .pio_mask = ATA_PIO4,
-// .udma_mask = ATA_UDMA6,
-// .port_ops = &ahci_ops,
-//};
-//
-//static struct scsi_host_template ahci_sht = {
-// AHCI_SHT(DRV_NAME),
-//};
-//
-//static bool bus_master;
-//static int ahci_init_one(struct pci_dev *pdev)
-//{
-// struct f_resource* r_mem;
-// struct ahci_controller* ctlr;
-// struct aeolia_xhci *axhci = pci_get_drvdata(pdev);
-// struct ata_port_info pi = ahci_port_info;
-// const struct ata_port_info *ppi[] = { &pi, NULL };
-// struct ahci_host_priv *hpriv;
-// struct ata_host *host;
-// int n_ports, i, rc;
-// int ahci_pci_bar = 2;
-// resource_size_t rsrc_start;
-// resource_size_t rsrc_len;
-//
-// VPRINTK("ENTER\n");
-//
-// WARN_ON((int)ATA_MAX_QUEUE > AHCI_MAX_CMDS);
-//
-// ata_print_version_once(&pdev->dev, DRV_VERSION);
-//
-// /*
-// rc = pcim_iomap_regions_request_all(pdev, 1 << ahci_pci_bar, DRV_NAME);
-// if (rc == -EBUSY)
-// pcim_pin_device(pdev);
-// if (rc)
-// return rc;
-// */
-//
-// hpriv = devm_kzalloc(&pdev->dev, sizeof(*hpriv), GFP_KERNEL);
-// //hpriv = kzalloc(sizeof(*hpriv), GFP_KERNEL);
-// if (!hpriv)
-// return -ENOMEM;
-// hpriv->flags |= (unsigned long)pi.private_data;
-//
-// //hpriv->mmio = pcim_iomap_table(pdev)[ahci_pci_bar];
-// rsrc_start = pci_resource_start(pdev, ahci_pci_bar);
-// rsrc_len = pci_resource_len(pdev, ahci_pci_bar);
-// //if (!request_mem_region(rsrc_start, rsrc_len, "xhci-ahci.mem")) {
-// if (!devm_request_mem_region(&pdev->dev, rsrc_start, rsrc_len, "xhci-ahci.mem")) {
-// dev_dbg(&pdev->dev, "controller already in use\n");
-// rc = -EBUSY;
-// goto put_hpriv;
-// }
-//
-//
-// hpriv->mmio = pci_ioremap_bar(pdev, ahci_pci_bar);
-// if (hpriv->mmio == NULL) {
-// dev_dbg(&pdev->dev, "error mapping memory\n");
-// rc = -EFAULT;
-// goto release_mem_region;
-// }
-//
-// r_mem = kzalloc(sizeof(*r_mem), GFP_KERNEL);
-// if (r_mem) {
-// r_mem->r_bustag = 1;//mem
-// r_mem->r_bushandle = hpriv->mmio;
-//
-// ctlr = kzalloc(sizeof(*ctlr), GFP_KERNEL);
-// if (ctlr) {
-// ctlr->r_mem = r_mem;
-// ctlr->dev_id = 0; //or 0x90ca104d;
-// ctlr->trace_len = 6;
-// bpcie_sata_phy_init(&pdev->dev, ctlr);
-// kfree(ctlr);
-// }
-// kfree(r_mem);
-// }
-// device_wakeup_enable(&pdev->dev);
-//
-// /* save initial config */
-// ahci_save_initial_config(&pdev->dev, hpriv);
-//
-// /* prepare host */
-// if (hpriv->cap & HOST_CAP_NCQ) {
-// pi.flags |= ATA_FLAG_NCQ;
-// /*
-// * Auto-activate optimization is supposed to be
-// * supported on all AHCI controllers indicating NCQ
-// * capability, but it seems to be broken on some
-// * chipsets including NVIDIAs.
-// */
-// if (!(hpriv->flags & AHCI_HFLAG_NO_FPDMA_AA))
-// pi.flags |= ATA_FLAG_FPDMA_AA;
-//
-// /*
-// * All AHCI controllers should be forward-compatible
-// * with the new auxiliary field. This code should be
-// * conditionalized if any buggy AHCI controllers are
-// * encountered.
-// */
-// pi.flags |= ATA_FLAG_FPDMA_AUX;
-// }
-//
-// if (hpriv->cap & HOST_CAP_PMP)
-// pi.flags |= ATA_FLAG_PMP;
-//
-// ahci_set_em_messages(hpriv, &pi);
-//
-// /* CAP.NP sometimes indicate the index of the last enabled
-// * port, at other times, that of the last possible port, so
-// * determining the maximum port number requires looking at
-// * both CAP.NP and port_map.
-// */
-// n_ports = max(ahci_nr_ports(hpriv->cap), fls(hpriv->port_map));
-//
-// host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports);
-// if (!host) {
-// rc = -ENOMEM;
-// goto unmap_registers;
-// }
-// axhci->host = host;
-// pci_set_drvdata(pdev, axhci);
-//
-// host->private_data = hpriv;
-//
-// {
-// int index = 1;
-// int irq = (axhci->nr_irqs > 1) ? (pdev->irq + index) : pdev->irq;
-// hpriv->irq = irq;
-// }
-//
-// if (!(hpriv->cap & HOST_CAP_SSS) || ahci_ignore_sss)
-// host->flags |= ATA_HOST_PARALLEL_SCAN;
-// else
-// dev_info(&pdev->dev, "SSS flag set, parallel bus scan disabled\n");
-//
-// if (pi.flags & ATA_FLAG_EM)
-// ahci_reset_em(host);
-//
-// for (i = 0; i < host->n_ports; i++) {
-// struct ata_port *ap = host->ports[i];
-//
-// ata_port_pbar_desc(ap, ahci_pci_bar, -1, "abar");
-// ata_port_pbar_desc(ap, ahci_pci_bar,
-// 0x100 + ap->port_no * 0x80, "port");
-//
-// /* set enclosure management message type */
-// if (ap->flags & ATA_FLAG_EM)
-// ap->em_message_type = hpriv->em_msg_type;
-//
-//
-// /* disabled/not-implemented port */
-// if (!(hpriv->port_map & (1 << i)))
-// ap->ops = &ata_dummy_port_ops;
-// }
-//
-// rc = ahci_reset_controller(host);
-// dev_dbg(&pdev->dev, "ahci_reset_controller returned %d\n", rc);
-// if (rc)
-// goto release_host;
-//
-// ahci_init_controller(host);
-// ahci_print_info(host, "ATA");
-//
-// if (!bus_master) {
-// pci_set_master(pdev);
-// bus_master = true;
-// }
-//
-// rc = ahci_host_activate(host, &ahci_sht);
-// dev_dbg(&pdev->dev, "ahci_host_activate returned %d\n", rc);
-// if (rc) {
-// goto host_deactivate;
-// }
-//
-// pm_runtime_put_noidle(&pdev->dev);
-// return 0;
-//
-// host_deactivate:
-// release_host:
-// unmap_registers:
-// iounmap(hpriv->mmio);
-// release_mem_region:
-//
-// release_mem_region(rsrc_start, rsrc_len);
-//
-// // TODO (ps4patches): Belize, enable in ahci commit
-// //devm_release_mem_region(&pdev->dev, rsrc_start, rsrc_len);
-// put_hpriv:
-// //kfree(hpriv);
-// devm_kfree(&pdev->dev, hpriv);
-// dev_err(&pdev->dev, "init %s fail, %d\n",
-// pci_name(pdev), rc);
-// return rc;
-//}
-//
-//static void ahci_remove_one(struct pci_dev *pdev)
-//{
-// pm_runtime_get_noresume(&pdev->dev);
-//
-// struct aeolia_xhci *axhci = pci_get_drvdata(pdev);
-// if (axhci && axhci->host) {
-// ata_host_detach(axhci->host);
-// struct ahci_host_priv *hpriv = axhci->host->private_data;
-// if (hpriv) {
-// iounmap(hpriv->mmio);
-// }
-// axhci->host = NULL;
-// }
-//}
+#define DRV_VERSION "3.0"
+#define DRV_NAME "ahci"
+static const struct ata_port_info ahci_port_info = {
+ .flags = AHCI_FLAG_COMMON,
+ .pio_mask = ATA_PIO4,
+ .udma_mask = ATA_UDMA6,
+ .port_ops = &ahci_ops,
+};
+
+static struct scsi_host_template ahci_sht = {
+ AHCI_SHT(DRV_NAME),
+};
+
+static bool bus_master;
+static int ahci_init_one(struct pci_dev *pdev)
+{
+ struct f_resource* r_mem;
+ struct ahci_controller* ctlr;
+ struct aeolia_xhci *axhci = pci_get_drvdata(pdev);
+ struct ata_port_info pi = ahci_port_info;
+ const struct ata_port_info *ppi[] = { &pi, NULL };
+ struct ahci_host_priv *hpriv;
+ struct ata_host *host;
+ int n_ports, i, rc;
+ int ahci_pci_bar = 2;
+ resource_size_t rsrc_start;
+ resource_size_t rsrc_len;
+
+ VPRINTK("ENTER\n");
+
+ WARN_ON((int)ATA_MAX_QUEUE > AHCI_MAX_CMDS);
+
+ ata_print_version_once(&pdev->dev, DRV_VERSION);
+
+ /*
+ rc = pcim_iomap_regions_request_all(pdev, 1 << ahci_pci_bar, DRV_NAME);
+ if (rc == -EBUSY)
+ pcim_pin_device(pdev);
+ if (rc)
+ return rc;
+ */
+
+ hpriv = devm_kzalloc(&pdev->dev, sizeof(*hpriv), GFP_KERNEL);
+ //hpriv = kzalloc(sizeof(*hpriv), GFP_KERNEL);
+ if (!hpriv)
+ return -ENOMEM;
+ hpriv->flags |= (unsigned long)pi.private_data;
+
+ //hpriv->mmio = pcim_iomap_table(pdev)[ahci_pci_bar];
+ rsrc_start = pci_resource_start(pdev, ahci_pci_bar);
+ rsrc_len = pci_resource_len(pdev, ahci_pci_bar);
+ //if (!request_mem_region(rsrc_start, rsrc_len, "xhci-ahci.mem")) {
+ if (!devm_request_mem_region(&pdev->dev, rsrc_start, rsrc_len, "xhci-ahci.mem")) {
+ dev_dbg(&pdev->dev, "controller already in use\n");
+ rc = -EBUSY;
+ goto put_hpriv;
+ }
+
+
+ hpriv->mmio = pci_ioremap_bar(pdev, ahci_pci_bar);
+ if (hpriv->mmio == NULL) {
+ dev_dbg(&pdev->dev, "error mapping memory\n");
+ rc = -EFAULT;
+ goto release_mem_region;
+ }
+
+ r_mem = kzalloc(sizeof(*r_mem), GFP_KERNEL);
+ if (r_mem) {
+ r_mem->r_bustag = 1;//mem
+ r_mem->r_bushandle = hpriv->mmio;
+
+ ctlr = kzalloc(sizeof(*ctlr), GFP_KERNEL);
+ if (ctlr) {
+ ctlr->r_mem = r_mem;
+ ctlr->dev_id = 0; //or 0x90ca104d;
+ ctlr->trace_len = 6;
+ bpcie_sata_phy_init(&pdev->dev, ctlr);
+ kfree(ctlr);
+ }
+ kfree(r_mem);
+ }
+ device_wakeup_enable(&pdev->dev);
+
+ /* save initial config */
+ ahci_save_initial_config(&pdev->dev, hpriv);
+
+ /* prepare host */
+ if (hpriv->cap & HOST_CAP_NCQ) {
+ pi.flags |= ATA_FLAG_NCQ;
+ /*
+ * Auto-activate optimization is supposed to be
+ * supported on all AHCI controllers indicating NCQ
+ * capability, but it seems to be broken on some
+ * chipsets including NVIDIAs.
+ */
+ if (!(hpriv->flags & AHCI_HFLAG_NO_FPDMA_AA))
+ pi.flags |= ATA_FLAG_FPDMA_AA;
+
+ /*
+ * All AHCI controllers should be forward-compatible
+ * with the new auxiliary field. This code should be
+ * conditionalized if any buggy AHCI controllers are
+ * encountered.
+ */
+ pi.flags |= ATA_FLAG_FPDMA_AUX;
+ }
+
+ if (hpriv->cap & HOST_CAP_PMP)
+ pi.flags |= ATA_FLAG_PMP;
+
+ ahci_set_em_messages(hpriv, &pi);
+
+ /* CAP.NP sometimes indicate the index of the last enabled
+ * port, at other times, that of the last possible port, so
+ * determining the maximum port number requires looking at
+ * both CAP.NP and port_map.
+ */
+ n_ports = max(ahci_nr_ports(hpriv->cap), fls(hpriv->port_map));
+
+ host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports);
+ if (!host) {
+ rc = -ENOMEM;
+ goto unmap_registers;
+ }
+ axhci->host = host;
+ pci_set_drvdata(pdev, axhci);
+
+ host->private_data = hpriv;
+
+ {
+ int index = 1;
+ int irq = (axhci->nr_irqs > 1) ? (pdev->irq + index) : pdev->irq;
+ hpriv->irq = irq;
+ }
+
+ if (!(hpriv->cap & HOST_CAP_SSS) || ahci_ignore_sss)
+ host->flags |= ATA_HOST_PARALLEL_SCAN;
+ else
+ dev_info(&pdev->dev, "SSS flag set, parallel bus scan disabled\n");
+
+ if (pi.flags & ATA_FLAG_EM)
+ ahci_reset_em(host);
+
+ for (i = 0; i < host->n_ports; i++) {
+ struct ata_port *ap = host->ports[i];
+
+ ata_port_pbar_desc(ap, ahci_pci_bar, -1, "abar");
+ ata_port_pbar_desc(ap, ahci_pci_bar,
+ 0x100 + ap->port_no * 0x80, "port");
+
+ /* set enclosure management message type */
+ if (ap->flags & ATA_FLAG_EM)
+ ap->em_message_type = hpriv->em_msg_type;
+
+
+ /* disabled/not-implemented port */
+ if (!(hpriv->port_map & (1 << i)))
+ ap->ops = &ata_dummy_port_ops;
+ }
+
+ rc = ahci_reset_controller(host);
+ dev_dbg(&pdev->dev, "ahci_reset_controller returned %d\n", rc);
+ if (rc)
+ goto release_host;
+
+ ahci_init_controller(host);
+ ahci_print_info(host, "ATA");
+
+ if (!bus_master) {
+ pci_set_master(pdev);
+ bus_master = true;
+ }
+
+ rc = ahci_host_activate(host, &ahci_sht);
+ dev_dbg(&pdev->dev, "ahci_host_activate returned %d\n", rc);
+ if (rc) {
+ goto host_deactivate;
+ }
+
+ pm_runtime_put_noidle(&pdev->dev);
+ return 0;
+
+ host_deactivate:
+ release_host:
+ unmap_registers:
+ iounmap(hpriv->mmio);
+ release_mem_region:
+ devm_release_mem_region(&pdev->dev, rsrc_start, rsrc_len);
+ put_hpriv:
+ //kfree(hpriv);
+ devm_kfree(&pdev->dev, hpriv);
+ dev_err(&pdev->dev, "init %s fail, %d\n",
+ pci_name(pdev), rc);
+ return rc;
+}
+
+static void ahci_remove_one(struct pci_dev *pdev)
+{
+ pm_runtime_get_noresume(&pdev->dev);
+
+ struct aeolia_xhci *axhci = pci_get_drvdata(pdev);
+ if (axhci && axhci->host) {
+ ata_host_detach(axhci->host);
+ struct ahci_host_priv *hpriv = axhci->host->private_data;
+ if (hpriv) {
+ iounmap(hpriv->mmio);
+ }
+ axhci->host = NULL;
+ }
+}
static int xhci_aeolia_probe(struct pci_dev *dev, const struct pci_device_id *id)
{
@@ -380,9 +370,7 @@ static int xhci_aeolia_probe(struct pci_dev *dev, const struct pci_device_id *id
if (pci_enable_device(dev) < 0)
return -ENODEV;
- axhci = kzalloc(sizeof(*axhci), GFP_KERNEL);
- // TODO (ps4patches): Belize, enable in ahci commit
- // axhci = devm_kzalloc(&dev->dev, sizeof(*axhci), GFP_KERNEL);
+ axhci = devm_kzalloc(&dev->dev, sizeof(*axhci), GFP_KERNEL);
if (!axhci) {
retval = -ENOMEM;
goto disable_device;
@@ -394,21 +382,23 @@ static int xhci_aeolia_probe(struct pci_dev *dev, const struct pci_device_id *id
goto free_axhci;
}
- // TODO (ps4patches): Belize, disable in ahci commit
- pci_set_master(dev);
+ if(dev->device != PCI_DEVICE_ID_SONY_BELIZE_XHCI) {
+ pci_set_master(dev);
+ }
if (pci_set_dma_mask(dev, DMA_BIT_MASK(31)) ||
pci_set_consistent_dma_mask(dev, DMA_BIT_MASK(31))) {
return -ENODEV;
}
- // TODO (ps4patches): Belize, enable in ahci commit
-// retval = ahci_init_one(dev);
-// dev_dbg(&dev->dev, "ahci_init_one returned %d", retval);
-// if (!bus_master) {
-// pci_set_master(dev);
-// bus_master = true;
-// }
+ if(dev->device == PCI_DEVICE_ID_SONY_BELIZE_XHCI) {
+ retval = ahci_init_one(dev);
+ dev_dbg(&dev->dev, "ahci_init_one returned %d", retval);
+ if (!bus_master) {
+ pci_set_master(dev);
+ bus_master = true;
+ }
+ }
for (idx = 0; idx < NR_DEVICES; idx++) {
if(dev->device != PCI_DEVICE_ID_SONY_AEOLIA_XHCI && idx == 1){ //this is for Belize and Baikal
@@ -426,11 +416,12 @@ static int xhci_aeolia_probe(struct pci_dev *dev, const struct pci_device_id *id
xhci_aeolia_remove_one(dev, idx);
apcie_free_irqs(dev->irq, axhci->nr_irqs);
free_axhci:
- kfree(axhci);
+ devm_kfree(&dev->dev, axhci);
- // TODO (ps4patches): Belize, disable in ahci commit
- // devm_kfree(&dev->dev, axhci);
- // pci_set_drvdata(dev, NULL);
+ // TODO (ps4patches): Don't aeolia and baikal also need this?
+ if(dev->device == PCI_DEVICE_ID_SONY_BELIZE_XHCI) {
+ pci_set_drvdata(dev, NULL);
+ }
disable_device:
pci_disable_device(dev);
return retval;
@@ -447,9 +438,8 @@ static void xhci_aeolia_remove(struct pci_dev *dev)
if(dev->device != PCI_DEVICE_ID_SONY_AEOLIA_XHCI) {
if(idx != 1)
xhci_aeolia_remove_one(dev, idx);
- // TODO (ps4patches): Belize, enable in ahci commit
- // else
- // ahci_remove_one(dev);
+ else if (dev->device == PCI_DEVICE_ID_SONY_BELIZE_XHCI)
+ ahci_remove_one(dev);
}
else
xhci_aeolia_remove_one(dev, idx);
@@ -463,32 +453,38 @@ static void xhci_aeolia_remove(struct pci_dev *dev)
pci_disable_device(dev);
}
-// TODO (ps4patches): Belize, enable in ahci commit
-//static void xhci_hcd_pci_shutdown(struct pci_dev *dev){
-// struct aeolia_xhci *axhci;
-// struct usb_hcd *hcd;
-// int idx;
-//
-// axhci = pci_get_drvdata(dev);
-// if (!axhci)
-// return;
-//
-// for (idx = 0; idx < NR_DEVICES; idx++) {
-// if(dev->device != PCI_DEVICE_ID_SONY_AEOLIA_XHCI) {
-// if(idx != 1) {
-// hcd = axhci->hcd[idx];
-// if (hcd) {
-// if (test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags) && hcd->driver->shutdown) {
-// hcd->driver->shutdown(hcd);
-// if (usb_hcd_is_primary_hcd(hcd) && hcd->irq > 0)
-// free_irq(hcd->irq, hcd);
-// }
-// }
-// }
-// }
-// }
-//}
+static void xhci_hcd_pci_shutdown(struct pci_dev *dev){
+
+ // We want to use the normal shutdown if we aren't belize
+ if (dev->device != PCI_DEVICE_ID_SONY_BELIZE_XHCI)
+ {
+ usb_hcd_pci_shutdown(dev);
+ return;
+ }
+
+ struct aeolia_xhci *axhci;
+ struct usb_hcd *hcd;
+ int idx;
+
+ axhci = pci_get_drvdata(dev);
+ if (!axhci)
+ return;
+ for (idx = 0; idx < NR_DEVICES; idx++) {
+ if(dev->device != PCI_DEVICE_ID_SONY_AEOLIA_XHCI) {
+ if(idx != 1) {
+ hcd = axhci->hcd[idx];
+ if (hcd) {
+ if (test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags) && hcd->driver->shutdown) {
+ hcd->driver->shutdown(hcd);
+ if (usb_hcd_is_primary_hcd(hcd) && hcd->irq > 0)
+ free_irq(hcd->irq, hcd);
+ }
+ }
+ }
+ }
+ }
+}
static const struct pci_device_id pci_ids[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_SONY, PCI_DEVICE_ID_SONY_AEOLIA_XHCI) },
@@ -557,10 +553,7 @@ static struct pci_driver xhci_aeolia_driver = {
.probe = xhci_aeolia_probe,
.remove = xhci_aeolia_remove,
/* suspend and resume implemented later */
-
- .shutdown = usb_hcd_pci_shutdown,
- // TODO (ps4patches): Belize, enable in ahci commit
- //.shutdown = xhci_hcd_pci_shutdown,
+ .shutdown = xhci_hcd_pci_shutdown,
#ifdef CONFIG_PM_SLEEP
.driver = {
.pm = &xhci_aeolia_pm_ops
--
2.45.1
@@ -1,25 +0,0 @@
From f94cfdd446ab433ba0e9a0cb074372025de283eb Mon Sep 17 00:00:00 2001
From: codedwrench <rick.04.1996@gmail.com>
Date: Wed, 29 Dec 2021 16:15:26 +0100
Subject: [PATCH 16/22] fix: this probably needs to be the amount of interrupts
---
drivers/ps4/ps4-apcie.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/ps4/ps4-apcie.c b/drivers/ps4/ps4-apcie.c
index fd27a4f38e61..b0bbc3f9891c 100644
--- a/drivers/ps4/ps4-apcie.c
+++ b/drivers/ps4/ps4-apcie.c
@@ -343,7 +343,7 @@ int apcie_assign_irqs(struct pci_dev *dev, int nvec)
}
#endif
- desc = alloc_msi_entry(bare_dev, 1, NULL);
+ desc = alloc_msi_entry(bare_dev, nvec, NULL);
info.desc = desc;
info.data = sc;
--
2.45.1
@@ -1,24 +0,0 @@
From 62b05b54178ecba3e2d42fbe78b97da94b0fec81 Mon Sep 17 00:00:00 2001
From: Ps3ita Team <ps3ita-team@ps3ita.it>
Date: Wed, 13 Feb 2019 14:09:55 +0100
Subject: [PATCH 17/22] Also on liverpool num_crtc is 6
---
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
index aaa6893d8e51..bd9d32217d25 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
@@ -404,6 +404,7 @@ static int dce_v8_0_get_num_crtc(struct amdgpu_device *adev)
case CHIP_BONAIRE:
case CHIP_HAWAII:
case CHIP_GLADIUS:
+ case CHIP_LIVERPOOL:
num_crtc = 6;
break;
case CHIP_KAVERI:
--
2.45.1
@@ -1,24 +0,0 @@
From 0bf01d7fb8556417ca16ce96b230dd2741de8d48 Mon Sep 17 00:00:00 2001
From: codedwrench <rick.04.1996@gmail.com>
Date: Thu, 30 Dec 2021 15:05:26 +0100
Subject: [PATCH 18/22] fix: cherrypick doubled CHIP_LIVERPOOL
---
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
index bd9d32217d25..e54b86bd6d99 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
@@ -408,7 +408,6 @@ static int dce_v8_0_get_num_crtc(struct amdgpu_device *adev)
num_crtc = 6;
break;
case CHIP_KAVERI:
- case CHIP_LIVERPOOL:
num_crtc = 4;
break;
case CHIP_KABINI:
--
2.45.1
@@ -1,25 +0,0 @@
From 4e2075413f8a4232857f9a87905f8afc28e74267 Mon Sep 17 00:00:00 2001
From: Ps3ita Team <psxitateam@psxita.it>
Date: Sat, 30 May 2020 12:04:24 +0200
Subject: [PATCH 19/22] Missing break;
---
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
index 8513dd006ad5..3c2e63c2d32b 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
@@ -4956,7 +4956,7 @@ static void gfx_v7_0_gpu_early_init(struct amdgpu_device *adev)
adev->gfx.config.max_tile_pipes = 8; // Verified
adev->gfx.config.max_cu_per_sh = 9; // Probably OK
adev->gfx.config.max_sh_per_se = 1; // Verified
- adev->gfx.config.max_backends_per_se = 1; // Probably OK?
+ adev->gfx.config.max_backends_per_se = 2; // Probably OK?
adev->gfx.config.max_texture_channel_caches = 4; // ??
adev->gfx.config.max_gprs = 256;
adev->gfx.config.max_gs_threads = 32; // ??
--
2.45.1
@@ -1,25 +0,0 @@
From 9dbe4ba89c9f330e27257ad50b9da4cf9ff1ac9a Mon Sep 17 00:00:00 2001
From: Rick de Bondt <rick_1996@hotmail.com>
Date: Fri, 31 Dec 2021 15:19:08 +0100
Subject: [PATCH 20/22] fix: needed for video codec support
---
drivers/gpu/drm/amd/amdgpu/cik.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c
index 353899a95424..147db89444fd 100644
--- a/drivers/gpu/drm/amd/amdgpu/cik.c
+++ b/drivers/gpu/drm/amd/amdgpu/cik.c
@@ -136,6 +136,8 @@ static int cik_query_video_codecs(struct amdgpu_device *adev, bool encode,
case CHIP_KAVERI:
case CHIP_KABINI:
case CHIP_MULLINS:
+ case CHIP_LIVERPOOL:
+ case CHIP_GLADIUS:
if (encode)
*codecs = &cik_video_codecs_encode;
else
--
2.45.1
@@ -1,36 +0,0 @@
From dc139fd452cfa78583a695b0d4fc2cdec39b31da Mon Sep 17 00:00:00 2001
From: crashniels <39709384+crashniels@users.noreply.github.com>
Date: Fri, 24 May 2024 19:47:37 +0200
Subject: [PATCH 21/22] fix: gcc newer than 11
https://lore.kernel.org/lkml/20220129010215.781601-1-jforbes@fedoraproject.org/t/
---
tools/lib/subcmd/subcmd-util.h | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/tools/lib/subcmd/subcmd-util.h b/tools/lib/subcmd/subcmd-util.h
index b2aec04fce8f..7009fc176636 100644
--- a/tools/lib/subcmd/subcmd-util.h
+++ b/tools/lib/subcmd/subcmd-util.h
@@ -49,9 +49,15 @@ static NORETURN inline void die(const char *err, ...)
static inline void *xrealloc(void *ptr, size_t size)
{
- void *ret = realloc(ptr, size);
- if (!ret)
- die("Out of memory, realloc failed");
+ void *ret;
+ if (!size)
+ size = 1;
+ ret = realloc(ptr, size);
+ if (!ret) {
+ ret = realloc(ptr, size);
+ if (!ret)
+ die("Out of memory, realloc failed");
+ }
return ret;
}
--
2.45.1
@@ -1,39 +0,0 @@
From 77961812e981b14669eb51cfa67181149a9bb64a Mon Sep 17 00:00:00 2001
From: crashniels <39709384+crashniels@users.noreply.github.com>
Date: Sat, 25 May 2024 19:32:05 +0200
Subject: [PATCH 22/22] fix: use upstream values
---
drivers/usb/host/xhci-aeolia.c | 2 +-
drivers/usb/host/xhci.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/host/xhci-aeolia.c b/drivers/usb/host/xhci-aeolia.c
index 1401af61430c..9ab0be144f42 100644
--- a/drivers/usb/host/xhci-aeolia.c
+++ b/drivers/usb/host/xhci-aeolia.c
@@ -43,7 +43,7 @@ static void xhci_aeolia_quirks(struct device *dev, struct xhci_hcd *xhci)
* Do not try to enable MSIs, we provide the MSIs ourselves
* Do not touch DMA mask, we need a custom one
*/
- xhci->quirks |= XHCI_PLAT | XHCI_PLAT_DMA;
+ xhci->quirks |= XHCI_PLAT | XHCI_SUSPEND_RESUME_CLKS;
}
/* called during probe() after chip reset completes */
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 1c8fb48c7095..a79e9dc827e4 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -5373,7 +5373,7 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
/* Set dma_mask and coherent_dma_mask to 64-bits,
* if xHC supports 64-bit addressing */
- if (!(xhci->quirks & XHCI_PLAT_DMA)) {
+ if (!(xhci->quirks & XHCI_SUSPEND_RESUME_CLKS)) {
if (HCC_64BIT_ADDR(xhci->hcc_params) &&
!dma_set_mask(dev, DMA_BIT_MASK(64))) {
xhci_dbg(xhci, "Enabling 64-bit DMA addresses.\n");
--
2.45.1
-112
View File
@@ -1,112 +0,0 @@
pkgname=linux-sony-ps4
pkgver=5.15.110
pkgrel=0
pkgdesc="Sony Playstation 4 kernel fork"
arch="x86_64"
_flavor="sony-ps4"
_carch="x86"
url="https://kernel.org"
license="GPL-2.0-only"
options="!strip !check !tracedeps
pmb:cross-native
pmb:kconfigcheck-community
"
makedepends="
bash
bison
elfutils-dev
findutils
flex
linux-headers
openssl-dev
perl
postmarketos-installkernel
linux-firmware-mrvl
"
# Source
_config="config-$_flavor.$arch"
case $pkgver in
*.*.*) _kernver=${pkgver%.0};;
*.*) _kernver=$pkgver;;
esac
source="
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/snapshot/linux-${_kernver//_/-}.tar.gz
$_config
0001-feat-very-basic-platform-support.patch
0002-feat-amdgpu-patches.patch
0003-feat-radeon-patches.patch
0004-feat-temperature-sensors.patch
0005-feat-sdhci-support.patch
0006-feat-ethernet-support.patch
0007-feat-usb-support.patch
0008-feat-configuration.patch
0009-feat-trying-to-modernize-ps4-apcie-so-it-works-with-.patch
0010-feat-working-state-broken-gpu.patch
0011-fix-incorrectly-applied-patches-and-missing-patches.patch
0012-fix-radeon-drivers.patch
0013-fix-amdgpu-drivers.patch
0014-fix-re-add-legacy-bridge-functions.patch
0015-feat-potentially-added-belize-ahci-support-in-a-univ.patch
0016-fix-this-probably-needs-to-be-the-amount-of-interrup.patch
0017-Also-on-liverpool-num_crtc-is-6.patch
0018-fix-cherrypick-doubled-CHIP_LIVERPOOL.patch
0019-Missing-break.patch
0020-fix-needed-for-video-codec-support.patch
0021-fix-gcc-newer-than-11.patch
0022-fix-use-upstream-values.patch
"
builddir="$srcdir/linux-${_kernver//_/-}"
prepare() {
default_prepare
cp "$srcdir/$_config" .config
}
build() {
unset LDFLAGS
make ARCH="$_carch" CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-$_flavor"
}
package() {
mkdir -p "$pkgdir"/boot
make install modules_install \
ARCH="$_carch" \
INSTALL_PATH="$pkgdir"/boot \
INSTALL_MOD_PATH="$pkgdir" \
INSTALL_MOD_STRIP=1
rm -f "$pkgdir"/lib/modules/*/build "$pkgdir"/lib/modules/*/source
install -D "$builddir"/include/config/kernel.release \
"$pkgdir"/usr/share/kernel/$_flavor/kernel.release
}
sha512sums="
405be3edf5855e45b50fd163542e00f58fab0d80c9e93e9605100107eba79ce4b49b83d5ddda3226665bdbdd1c31ac06b4ef05cf87b31f7cf1ff8adf662f2178 linux-5.15.110.tar.gz
1632c7eb73a7341b8fa1981a66bb59fe21aa6d04cad11bbbf85823950451240d942c40c8eb0b7a1301beec00f3375ae84cbb50594cca4f5fa9983fca56f09dae config-sony-ps4.x86_64
7d4e6ab0d273b4d121bfb485334ea949abc4466a914ac596edfae716f3f1d5dde896d27b2b29efd77115d732a0256db3b395ab7cf8d91a47d4a3c45778dc753e 0001-feat-very-basic-platform-support.patch
e69400cbc1772bc247868004f874c174289747fc36f5df6002664a6813fd24b7fe2dae3b6f6e0647466f89735454914d49316bbb996dd41863bcca1424c5191c 0002-feat-amdgpu-patches.patch
cffb257874c4e746c82a06be9b9442df9c2deb897e479c7d75a7d73883a64e0d9f00812e1468d8e3fdd15eda0bcfe92668c96bee2f7e2de57c1088f467b329b4 0003-feat-radeon-patches.patch
262b0934845d9c8bc92c6cacf8cbb1fb697830ac386380c27de586766b801c52ce0230755b62f4abd44c39fc0559446749a212d666636102c35d34299d8cf6c5 0004-feat-temperature-sensors.patch
536daa2a900ae214a2a1cde277c1ae1b9c4d5a740ddf4a8d2d23e5a4578eeb2e274d89ce917d9705495814580ceceb9cbf69ccb81e14d88ac932f84f1bb4fcad 0005-feat-sdhci-support.patch
1f960d7bcb8805f2c86e71125a73e28ba8b6b1dcf230a0994ae140f7874ed3e4d8e6ec867d4bff8fdccbfc94b432ccaf6c01e8774a702984f57bd323bf72c208 0006-feat-ethernet-support.patch
7856b33b05a090009dde83a03ec74044ae64100469ac004c94913a895ccd91c1b7c4623bcc08217e04110a79ef599018a9925c308d8f7e9e89791704675dfc0b 0007-feat-usb-support.patch
2b28e8059c6845ab3e7b64bc84469936f9d5620331b8738b335fdf11b2fc03d83a06c68b323ebe79d374b23f0264bd9a51e2fd6a323119c68d8edce0ec8fcf25 0008-feat-configuration.patch
5ce3347dabc35b419ee71fa1c29ebb1ece570c048439c8cdb43f7503863619c70c2c5af79383bbae23eb7f63e58ac1d4690bd9bced0bb103967392ca19d9f328 0009-feat-trying-to-modernize-ps4-apcie-so-it-works-with-.patch
a57142aa46e698e147f1527383006f77c2b6f62a52520dbcdc9da19782ff89252be841dfe6e2b5b9566c396ec15693a8b54c1ea98ae85d514b844642e1456d31 0010-feat-working-state-broken-gpu.patch
f922606e57a194dbde0bbf702f328b2bcc4116b7a6bf34eda6781414f5685dfad9a48e21af4c33af154c680a9093085432ccc71d3e083b1aec1c0fbfb5ef8b43 0011-fix-incorrectly-applied-patches-and-missing-patches.patch
cb22e3f401178b2801605db766f372a08322248b013f51ede908d0d1ca008c780c98cc53b8252fd473d1def043f44ab8b44530aa9a43d749480517e8e7f33226 0012-fix-radeon-drivers.patch
c8c6a9af6de9324ca66be658be59063c85e579420832e5394a778b8af0119894cc5ac2483a11d6dd1f714d6ac15f719f50de841b896b1c9f153a982dd28d307d 0013-fix-amdgpu-drivers.patch
1e8af016a999f18ca64d09a2dcf55d4dc961c9b5c78f45c5c5b09e22e97d2c76d65dcf4742c1da2dd557e8c995c23237161553946a9622adf51c4d99c59d9d2d 0014-fix-re-add-legacy-bridge-functions.patch
4de5a19976bfcfd6d290256f1ab5eb270d60e037341b8a998d8026751b2d55c911045b6b7034446258a677db668229516995585b8ce8d2ea1a1a49e333ac3164 0015-feat-potentially-added-belize-ahci-support-in-a-univ.patch
e18c4f277793181625c3769f3b5d5f264a6c7c2f562ab4e1638e7f8b3a57cc547ee5bc71f44ec182f1c9609b9d848267370fa85531ff483c9a0a5cb52db4bdcc 0016-fix-this-probably-needs-to-be-the-amount-of-interrup.patch
aa2d70a0dd8cef198d60de66446deead4b1b1a408f975bff2e733c3f554f555a99c1aca4b02ed58abbc609dc90e7711789dd396d1129bd6f96c30d569485acba 0017-Also-on-liverpool-num_crtc-is-6.patch
563b5c3cf8df1f82724b4dd0f21d5231a80c79a7cef5c93de73c6008ff7bd140313b0d7d0f92d4fd95c556ab18087967735c4eade1a98974efa2d3536f2ca01a 0018-fix-cherrypick-doubled-CHIP_LIVERPOOL.patch
38da37f52b3c1a77d80f70accc12351ee4c5e8d1302294d523741724d17a62e22cdf64c6dcbc1b472e3967b417d37754ea6faa5c8d5b4218bf731deeaef6e5e5 0019-Missing-break.patch
ada724aa09e1b29525e1c6bda38cf68fd4c72b9d6b8f45b1f9000e06e67e2c7806f81c53efce246396b5e7dc0d745dead599fce8b3c4108189fa77b40accaff0 0020-fix-needed-for-video-codec-support.patch
70d9dfd868e4da14c0b164f6a3c8450eda733c59b81d19341b54e38ba4faca7943ac3240c5872e08932ffd0b51b0884893d90bec20cd522ce5c0e4c7f37c187a 0021-fix-gcc-newer-than-11.patch
1c166aba9d18171b0a610ea8ed4798f0bb32a6f2d73f70d2fb32aa98ed93437b7bc1f264e8c50e9668e77dc85bd5b1128ead9810bfbb082f5cae919cd32e772a 0022-fix-use-upstream-values.patch
"
File diff suppressed because it is too large. Load diff
+3 -3
View File
@@ -1,7 +1,7 @@
# Maintainer: Henrik Grimler <henrik@grimler.se>
pkgname=postmarketos-base-downstream
pkgver=2
pkgrel=1
pkgrel=0
pkgdesc="Base package for devices with downstream (vendor) kernels"
url="https://postmarketos.org"
arch="noarch"
@@ -21,8 +21,8 @@ disable_udev_v4l() {
# udev if camera firmware is missing and/or fails to load
pkgdesc="Package to disable udev video4linux rules"
replaces="eudev"
mkdir -p "$subpkgdir"/usr/lib/udev/rules.d
ln -s /dev/null "$subpkgdir"/usr/lib/udev/rules.d/60-persistent-v4l.rules
mkdir -p "$subpkgdir"/lib/udev/rules.d
ln -s /dev/null "$subpkgdir"/lib/udev/rules.d/60-persistent-v4l.rules
}
lightdm() {
+2 -2
View File
@@ -1,7 +1,7 @@
# Maintainer: Petr Hodina <phodina@protonmail.com>
pkgname=postmarketos-base-eink
pkgver=1
pkgrel=2
pkgrel=1
pkgdesc="Base package with some opinionated default for e-ink devices"
# It's worth emphasising the word "opinionated" here, e-ink has some
# obvious differences compared to regular displays, there are cases
@@ -28,7 +28,7 @@ builddir="$srcdir/"
package() {
mkdir -p "$pkgdir"
install -Dm644 "$srcdir"/83-backlight.rules \
"$pkgdir"/usr/lib/udev/rules.d
"$pkgdir"/lib/udev/rules.d
}
gnome() {
@@ -19,5 +19,4 @@
/sbin/udevd
/etc/udev/rules.d
/lib/udev/rules.d
/usr/lib/udev/rules.d
/usr/lib/udev/scsi_id
/lib/udev/scsi_id
+2 -2
View File
@@ -2,7 +2,7 @@
# Co-Maintainer: Clayton Craft <clayton@craftyguy.net>
pkgname=postmarketos-initramfs
pkgver=3.3.5
pkgrel=1
pkgrel=0
pkgdesc="Base files for the postmarketOS initramfs / initramfs-extra"
url="https://postmarketos.org"
options="!check" # no tests
@@ -90,7 +90,7 @@ package() {
sha512sums="
20bc7a21f4f59548b8179c5cb1fc2b3db64eb355988bce992db3bc4075d65b4135ff9dd7d754215d0402978811494449cce476a26cda6bb2f0f8b53ae8e36bd7 00-default.modules
9c0e8f6f61d5da191e03a1aa9d5d0ceb5baf1eae6dbb9bfb0af59817783525119ac8394b135f303f7b6434a3eab0b49185fb90379e06823db847a4999c75ce33 00-initramfs-base.dirs
8bf038da4055ab67affad4cfdfdb81ea29fb52def6727d1d207ea3d498cb36562dfc2b1c24fdb886cca4fa936ddd6dcec1b969cbec8abf2f003eed6e5564630f 00-initramfs-base.files
929a8e6cca6b2b4ac6af89fc3912e80315f51c9bf6e9479124ccb7ebe9e99c6c1cafb98d3aa01b0a76a2f6e0071ba3eb86c7a2169a15c2e1788d69458bea3471 00-initramfs-base.files
c4ce6c9ef5b1aa8fce0937676eb68f0172474cb86f2ab9d839f327b1c58f22ed6ae2a48133dd1c04ede33324ce82f78863f68ab6e62f88b716964b3b84f0ae9e 00-initramfs-extra-base.files
7ea2c318e3b63b84ba8eb09e31dd74cdd9c86f5f4d8970ab54bb9213930e913c09728b60d429828007ea2dbb0472fd50dc3daae2efbe307babf854e4d8ecb238 init.sh
7518662b584328cc94b108d9283c19c4d551d0a25d51b4fed60b4367c129789a5d895ab68244ec448c92c6818e7cefc68552184b6e9098c8f9b9c7fcf008517d init_functions.sh
@@ -5,5 +5,4 @@
/sbin/udevd
/bin/udevadm
/etc/udev/rules.d
/lib/udev/rules.d
/usr/lib/udev/rules.d
/lib/udev/rules.d
+2 -2
View File
@@ -1,7 +1,7 @@
# Maintainer: Caleb Connolly <caleb@connolly.tech>
pkgname=postmarketos-mkinitfs-hook-ci
pkgver=0.1.0
pkgrel=1
pkgrel=0
pkgdesc="Hook for doing automated CI tests in the initramfs"
url="https://postmarketos.org"
source="
@@ -21,5 +21,5 @@ package() {
sha512sums="
43f9d9a35a57845eb36893a3f20d8ff5f20b93b1c22c7c6e3959b07a41b3c5fe2f9941612620cf006a0018b53edae5fdc7ed3006befc6908c19a5617f322dea3 05-ci.sh
69507171a4c4aabc2ae0a2d70dd12822dddfc9cd2855c240a28ba4ca16f1daa96c5c4aef57d08e953083874cfffc783a3054dd4a1ad1636d7aa5e4d2d2fbfd7c 05-ci.files
35457ab221acd485ebde84fccac2187f36a074554c5f73828f2031f1e8e92ab7b3d46e654f0d7c62c0aa483c1d7f0dc901422fe0398ae0eae6995a2ae539a4af 05-ci.files
"
@@ -1,7 +0,0 @@
# With 87a596f7867a49fae78c05042a92bea3e5e24b0d all GNOME-based UIs have the
# default accent color set to green.
#
# However only GNOME 47+ supports accent colors. In order to keep consistency
# keep blue accent color until GNOME mobile is upgraded to 47+.
[org.gnome.desktop.interface]
accent-color='blue'
+3 -11
View File
@@ -1,8 +1,8 @@
# Reference: https://postmarketos.org/uipkg
# Maintainer: Newbyte <newbyte@postmarketos.org>
pkgname=postmarketos-ui-gnome-mobile
pkgver=3
pkgrel=0
pkgver=2
pkgrel=7
pkgdesc="(Wayland) Gnome Shell patched to adapt better to phones (Experimental)"
url="https://gnome.org/"
arch="noarch !armhf !riscv64" # gnome-shell / riscv64: mutter-mobile
@@ -34,20 +34,13 @@ _pmb_recommends="
gnome-extensions-app
"
subpackages="$pkgname-openrc"
source="
20_postmarketos-blue-accent.gschema.override
firefox-wayland.sh
"
source="firefox-wayland.sh"
options="!check"
package() {
install -Dm755 \
"$srcdir"/firefox-wayland.sh \
-t "$pkgdir"/etc/profile.d/
# TODO: Remove once gnome-mobile is upgraded to 47
install -Dm644 "$srcdir"/20_postmarketos-blue-accent.gschema.override \
-t "$pkgdir"/usr/share/glib-2.0/schemas/
}
openrc() {
@@ -59,6 +52,5 @@ openrc() {
}
sha512sums="
224019eb563b62ce3c0cff46f1a4b875b916bd91d3ef866afe4a79da2d4d8b41b86df0e39a598a5dd4dd96483527916b499a66a0b4fddb08e94a7436d6620d5e 20_postmarketos-blue-accent.gschema.override
0d9ec58be7dc354e181989c7f08e7d4dd93fefd06a99e784b87fe898479dd47a40dfa9689c6a63ebdc04bf87883a270686aec27f7cc34cb21ec0f370a4afe2d8 firefox-wayland.sh
"
@@ -1,12 +0,0 @@
# With 87a596f7867a49fae78c05042a92bea3e5e24b0d all GNOME-based UIs have the
# default accent color set to green.
#
# Phosh hasn't implemented accent colors and using green accent colors for apps
# but not for the shell look inconsistent.
#
# Therefore set the blue accent color back until phosh has support for accent colors
#
# Ref: https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/1533
# Ref: https://gitlab.com/postmarketOS/pmaports/-/issues/3218
[org.gnome.desktop.interface]
accent-color='blue'
+2 -8
View File
@@ -1,8 +1,8 @@
# Reference: https://postmarketos.org/uipkg
# Maintainer: Newbyte <newbyte@postmarketos.org>
pkgname=postmarketos-ui-phosh
pkgver=22.4
pkgrel=0
pkgver=22.3
pkgrel=11
pkgdesc="(Wayland) Mobile UI initially developed for the Librem 5"
url="https://phosh.mobi"
arch="noarch !armhf"
@@ -28,7 +28,6 @@ _pmb_groups="feedbackd"
install="$pkgname.post-install $pkgname.post-upgrade"
source="
01_postmarketos-ui-phosh.gschema.override
20_postmarketos-blue-accent.gschema.override
mimeapps.list
udiskie.desktop
"
@@ -42,10 +41,6 @@ package() {
"$pkgdir"/usr/share/applications/mimeapps.list
install -Dm644 "$srcdir"/udiskie.desktop \
"$pkgdir"/etc/xdg/autostart/udiskie.desktop
# TODO: Remove once Phosh supports accent colors
install -Dm644 "$srcdir"/20_postmarketos-blue-accent.gschema.override \
-t "$pkgdir"/usr/share/glib-2.0/schemas/
}
openrc() {
@@ -68,7 +63,6 @@ systemd() {
sha512sums="
e577b8073df680ccee75ef5b6bb1f2877d5727687d63d6fd9211298e791b6c9f593eb79278c77a4b4918e3c57333c2a012030baf5a3c8d6d16000cc63a030f84 01_postmarketos-ui-phosh.gschema.override
b5269303032b35d6e249479eb8870063b862280eca9605522f47d09a3c2266861560934643cf4a39af2d309696bad16b086d8b98e1240bbaef5e6ba3048de1dd 20_postmarketos-blue-accent.gschema.override
a741e8db9e4232334b924326c48be4e4c8f7a2382a7608926918a7491c518b2dda551e55a00d4d5fcf58c7950a78dc35d5cc5eaab53ad93a56de40887071f242 mimeapps.list
53f5c565b4ca8a12f12b63ec84a0194ef530703565d123203d41582a35a54d66afaf3a676df158ae0effe327dcfc1c6496a082ce9dbe803b2547417c3c3fad6e udiskie.desktop
"
+3 -2
View File
@@ -1,7 +1,7 @@
# Maintainer: Johannes Marbach <n0-0ne+gitlab@mailbox.org>
pkgname=unl0kr
pkgver=3.2.0
pkgrel=1
pkgrel=0
_commit_lvgl=ceadda8a468b7d5fa6ba973bd82cf610166278d8
pkgdesc="Framebuffer-based disk unlocker for the initramfs based on LVGL"
url="https://gitlab.com/postmarketOS/buffybox"
@@ -82,11 +82,12 @@ pmtest() {
install -Dm644 "$srcdir"/unl0kr.files \
"$subpkgdir"/usr/share/mkinitfs/files/30-unl0kr.files
}
sha512sums="
83d6724750e6f7e048063863e78251d32a23b1c7aa9e3529a0b176c415bda70c91b83924f6a71cc7f5ca29f019e7a974b406f6e83ff038dae92430b53183d5fa buffybox-3.2.0.tar.gz
d3611fe9d55ed105d9567b6019dc49fc0510ac4ed6ca6e15ba0c1bae47f2833d8784b3e008a4dec76dce55bf3809531d07c62e4ba24bafad69c6c54fdd0b70c0 lvgl-ceadda8a468b7d5fa6ba973bd82cf610166278d8.tar.gz
7155c2f95dcf3716c0f392cf5717e96f1414c383a1f7c2ed30a1f8518dfe0b17c3c0e0e93f6476a342504aa855404099e2f5444eeb099023491c9a9a26fa3d90 unl0kr.conf
9e3cb41a430f042c59a8a41ee6697a6c85f492092c43b442f720d447f961ea1e0043450283a97e12b982c701654bed4f5ac5d08f4ea4c8e4d365282f72f4f360 unl0kr.files
521379c06843d31304c7317d083472bb0105da7e9360d7a303cb98c84112919278fa8b50c3781d9cf43bb057b7eb7d52a4f4d900be69a0c0d70f97f2e9843140 unl0kr.files
5386f434cd4f1fb9e0d561a8689e5e85d6a8b3c562823122c082d4932d2fb0ad4edcd635f14f0c61e5c8b5e53648c9937b042409c21683007700faea8894c750 unlock.sh
407180b49c1a05f12bd6ee6e59dca0a6e74fe7b01f195087dcf2865598c47827d0bb569afdba55defa2f9a16437230fa62aa64f35111508b906bcbf9537acba4 30-unl0kr-test.sh
"
-1
View File
@@ -8,5 +8,4 @@
/sbin/udevd
/etc/udev/rules.d
/lib/udev/rules.d
/usr/lib/udev/rules.d
/usr/share/X11/xkb
+1 -1
View File
@@ -1,6 +1,6 @@
pkgname=gnome-settings-daemon-mobile
pkgver=46.0
pkgrel=1
pkgrel=0
pkgdesc="GNOME settings daemon"
url="https://gitlab.gnome.org/verdre/gnome-settings-daemon-mobile"
arch="all"
+1 -1
View File
@@ -2,7 +2,7 @@
pkgname=iio-sensor-proxy
pkgver=9999
pkgrel=5
pkgrel=4
pkgdesc="IIO sensors to D-Bus proxy"
url="https://gitlab.freedesktop.org/hadess/iio-sensor-proxy"
arch="aarch64"
+1 -1
View File
@@ -2,7 +2,7 @@
pkgname=mutter-mobile
pkgver=46.1
pkgrel=1
pkgrel=0
pkgdesc="clutter-based window manager and compositor"
url="https://wiki.gnome.org/Projects/Mutter/"
# ricsv64: doesn't build currently: