apm821xx: add support for kernel 5.10 for testing
This patch copies over refreshed patches from 5.4. - dropped crypto patches (they got upstreamed) - dropped renesas USB 3 firmware loader (they got upstreamed) - NAND now needs extra device-properties for ECC settings. Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
This commit is contained in:
		| @@ -1653,6 +1653,11 @@ XHCI_MODULES := xhci-hcd xhci-pci xhci-plat-hcd | |||||||
| ifdef CONFIG_TARGET_ramips_mt7621 | ifdef CONFIG_TARGET_ramips_mt7621 | ||||||
|   XHCI_MODULES += xhci-mtk |   XHCI_MODULES += xhci-mtk | ||||||
| endif | endif | ||||||
|  | ifndef CONFIG_LINUX_5_4 | ||||||
|  |   ifdef CONFIG_TARGET_apm821xx_nand | ||||||
|  |     XHCI_MODULES += xhci-pci-renesas | ||||||
|  |   endif | ||||||
|  | endif | ||||||
| XHCI_FILES := $(wildcard $(patsubst %,$(LINUX_DIR)/drivers/usb/host/%.ko,$(XHCI_MODULES))) | XHCI_FILES := $(wildcard $(patsubst %,$(LINUX_DIR)/drivers/usb/host/%.ko,$(XHCI_MODULES))) | ||||||
| XHCI_AUTOLOAD := $(patsubst $(LINUX_DIR)/drivers/usb/host/%.ko,%,$(XHCI_FILES)) | XHCI_AUTOLOAD := $(patsubst $(LINUX_DIR)/drivers/usb/host/%.ko,%,$(XHCI_FILES)) | ||||||
|  |  | ||||||
| @@ -1667,6 +1672,7 @@ define KernelPackage/usb3 | |||||||
| 	CONFIG_USB_XHCI_PCI \ | 	CONFIG_USB_XHCI_PCI \ | ||||||
| 	CONFIG_USB_XHCI_PLATFORM \ | 	CONFIG_USB_XHCI_PLATFORM \ | ||||||
| 	CONFIG_USB_XHCI_MTK \ | 	CONFIG_USB_XHCI_MTK \ | ||||||
|  | 	CONFIG_USB_XHCI_PCI_RENESAS \ | ||||||
| 	CONFIG_USB_XHCI_HCD_DEBUGGING=n | 	CONFIG_USB_XHCI_HCD_DEBUGGING=n | ||||||
|   FILES:= \ |   FILES:= \ | ||||||
| 	$(XHCI_FILES) | 	$(XHCI_FILES) | ||||||
|   | |||||||
| @@ -10,6 +10,7 @@ FEATURES:=fpu dt gpio ramdisk squashfs usb | |||||||
| SUBTARGETS:=nand sata | SUBTARGETS:=nand sata | ||||||
|  |  | ||||||
| KERNEL_PATCHVER:=5.4 | KERNEL_PATCHVER:=5.4 | ||||||
|  | KERNEL_TESTING_PATCHVER:=5.10 | ||||||
|  |  | ||||||
| define Target/Description | define Target/Description | ||||||
| 	Build images for AppliedMicro APM821xx based boards. | 	Build images for AppliedMicro APM821xx based boards. | ||||||
|   | |||||||
							
								
								
									
										286
									
								
								target/linux/apm821xx/config-5.10
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										286
									
								
								target/linux/apm821xx/config-5.10
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,286 @@ | |||||||
|  | # CONFIG_40x is not set | ||||||
|  | CONFIG_44x=y | ||||||
|  | CONFIG_460EX=y | ||||||
|  | CONFIG_4xx=y | ||||||
|  | CONFIG_4xx_SOC=y | ||||||
|  | # CONFIG_ADVANCED_OPTIONS is not set | ||||||
|  | CONFIG_APM821xx=y | ||||||
|  | CONFIG_APOLLO3G=y | ||||||
|  | # CONFIG_ARCHES is not set | ||||||
|  | CONFIG_ARCH_32BIT_OFF_T=y | ||||||
|  | CONFIG_ARCH_DMA_ADDR_T_64BIT=y | ||||||
|  | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||||||
|  | CONFIG_ARCH_KEEP_MEMBLOCK=y | ||||||
|  | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||||||
|  | CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y | ||||||
|  | CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y | ||||||
|  | CONFIG_ARCH_MMAP_RND_BITS=11 | ||||||
|  | CONFIG_ARCH_MMAP_RND_BITS_MAX=17 | ||||||
|  | CONFIG_ARCH_MMAP_RND_BITS_MIN=11 | ||||||
|  | CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=17 | ||||||
|  | CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 | ||||||
|  | CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y | ||||||
|  | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||||||
|  | CONFIG_ARCH_WEAK_RELEASE_ACQUIRE=y | ||||||
|  | CONFIG_AUDIT_ARCH=y | ||||||
|  | # CONFIG_BAMBOO is not set | ||||||
|  | # CONFIG_BLK_DEV_INITRD is not set | ||||||
|  | CONFIG_BLK_MQ_PCI=y | ||||||
|  | CONFIG_BLK_PM=y | ||||||
|  | CONFIG_BLUESTONE=y | ||||||
|  | CONFIG_BOOKE=y | ||||||
|  | CONFIG_BOOKE_WDT=y | ||||||
|  | # CONFIG_CANYONLANDS is not set | ||||||
|  | CONFIG_CLKDEV_LOOKUP=y | ||||||
|  | CONFIG_CLONE_BACKWARDS=y | ||||||
|  | CONFIG_CMDLINE="rootfstype=squashfs noinitrd" | ||||||
|  | CONFIG_CMDLINE_FROM_BOOTLOADER=y | ||||||
|  | CONFIG_COMMON_CLK=y | ||||||
|  | CONFIG_COMPAT_32BIT_TIME=y | ||||||
|  | CONFIG_CPU_BIG_ENDIAN=y | ||||||
|  | CONFIG_CRC16=y | ||||||
|  | # CONFIG_CRC32_SARWATE is not set | ||||||
|  | CONFIG_CRC32_SLICEBY8=y | ||||||
|  | CONFIG_CRYPTO_ACOMP2=y | ||||||
|  | CONFIG_CRYPTO_AEAD=y | ||||||
|  | CONFIG_CRYPTO_AEAD2=y | ||||||
|  | CONFIG_CRYPTO_AUTHENC=y | ||||||
|  | CONFIG_CRYPTO_CCM=y | ||||||
|  | CONFIG_CRYPTO_CFB=y | ||||||
|  | CONFIG_CRYPTO_CTR=y | ||||||
|  | CONFIG_CRYPTO_DEFLATE=y | ||||||
|  | CONFIG_CRYPTO_DEV_PPC4XX=y | ||||||
|  | CONFIG_CRYPTO_DRBG=y | ||||||
|  | CONFIG_CRYPTO_DRBG_HMAC=y | ||||||
|  | CONFIG_CRYPTO_DRBG_MENU=y | ||||||
|  | CONFIG_CRYPTO_ECB=y | ||||||
|  | CONFIG_CRYPTO_ESSIV=y | ||||||
|  | CONFIG_CRYPTO_GCM=y | ||||||
|  | CONFIG_CRYPTO_GF128MUL=y | ||||||
|  | CONFIG_CRYPTO_GHASH=y | ||||||
|  | CONFIG_CRYPTO_HASH=y | ||||||
|  | CONFIG_CRYPTO_HASH2=y | ||||||
|  | CONFIG_CRYPTO_HMAC=y | ||||||
|  | CONFIG_CRYPTO_HW=y | ||||||
|  | CONFIG_CRYPTO_JITTERENTROPY=y | ||||||
|  | CONFIG_CRYPTO_LIB_SHA256=y | ||||||
|  | CONFIG_CRYPTO_LZO=y | ||||||
|  | CONFIG_CRYPTO_MANAGER=y | ||||||
|  | CONFIG_CRYPTO_MANAGER2=y | ||||||
|  | CONFIG_CRYPTO_MD5_PPC=y | ||||||
|  | CONFIG_CRYPTO_NULL=y | ||||||
|  | CONFIG_CRYPTO_NULL2=y | ||||||
|  | CONFIG_CRYPTO_OFB=y | ||||||
|  | CONFIG_CRYPTO_RNG=y | ||||||
|  | CONFIG_CRYPTO_RNG2=y | ||||||
|  | CONFIG_CRYPTO_RNG_DEFAULT=y | ||||||
|  | CONFIG_CRYPTO_SEQIV=y | ||||||
|  | CONFIG_CRYPTO_SHA1_PPC=y | ||||||
|  | CONFIG_CRYPTO_SHA256=y | ||||||
|  | CONFIG_DATA_SHIFT=12 | ||||||
|  | CONFIG_DEBUG_MISC=y | ||||||
|  | CONFIG_DMA_DIRECT_REMAP=y | ||||||
|  | CONFIG_DMA_REMAP=y | ||||||
|  | CONFIG_DTC=y | ||||||
|  | # CONFIG_E200 is not set | ||||||
|  | CONFIG_EARLY_PRINTK=y | ||||||
|  | # CONFIG_EBONY is not set | ||||||
|  | CONFIG_EDAC_ATOMIC_SCRUB=y | ||||||
|  | CONFIG_EDAC_SUPPORT=y | ||||||
|  | # CONFIG_EIGER is not set | ||||||
|  | CONFIG_EXTRA_TARGETS="uImage" | ||||||
|  | CONFIG_FIXED_PHY=y | ||||||
|  | CONFIG_FORCE_PCI=y | ||||||
|  | CONFIG_FREEZER=y | ||||||
|  | # CONFIG_FSL_LBC is not set | ||||||
|  | CONFIG_FW_CACHE=y | ||||||
|  | CONFIG_FW_LOADER_PAGED_BUF=y | ||||||
|  | CONFIG_GCC_PLUGINS=y | ||||||
|  | # CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set | ||||||
|  | # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set | ||||||
|  | # CONFIG_GCC_PLUGIN_RANDSTRUCT is not set | ||||||
|  | # CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set | ||||||
|  | # CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL is not set | ||||||
|  | # CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set | ||||||
|  | CONFIG_GENERIC_ALLOCATOR=y | ||||||
|  | CONFIG_GENERIC_ATOMIC64=y | ||||||
|  | CONFIG_GENERIC_BUG=y | ||||||
|  | CONFIG_GENERIC_CLOCKEVENTS=y | ||||||
|  | CONFIG_GENERIC_CMOS_UPDATE=y | ||||||
|  | CONFIG_GENERIC_CPU=y | ||||||
|  | CONFIG_GENERIC_CPU_AUTOPROBE=y | ||||||
|  | CONFIG_GENERIC_EARLY_IOREMAP=y | ||||||
|  | CONFIG_GENERIC_IRQ_SHOW=y | ||||||
|  | CONFIG_GENERIC_IRQ_SHOW_LEVEL=y | ||||||
|  | CONFIG_GENERIC_ISA_DMA=y | ||||||
|  | CONFIG_GENERIC_MSI_IRQ=y | ||||||
|  | CONFIG_GENERIC_MSI_IRQ_DOMAIN=y | ||||||
|  | CONFIG_GENERIC_PCI_IOMAP=y | ||||||
|  | CONFIG_GENERIC_SMP_IDLE_THREAD=y | ||||||
|  | CONFIG_GENERIC_STRNCPY_FROM_USER=y | ||||||
|  | CONFIG_GENERIC_STRNLEN_USER=y | ||||||
|  | CONFIG_GENERIC_TIME_VSYSCALL=y | ||||||
|  | # CONFIG_GEN_RTC is not set | ||||||
|  | # CONFIG_GLACIER is not set | ||||||
|  | CONFIG_GPIOLIB=y | ||||||
|  | CONFIG_GPIO_GENERIC=y | ||||||
|  | CONFIG_GPIO_GENERIC_PLATFORM=y | ||||||
|  | CONFIG_HAS_DMA=y | ||||||
|  | CONFIG_HAS_IOMEM=y | ||||||
|  | CONFIG_HAS_IOPORT_MAP=y | ||||||
|  | CONFIG_HW_RANDOM=y | ||||||
|  | CONFIG_HW_RANDOM_PPC4XX=y | ||||||
|  | CONFIG_I2C=y | ||||||
|  | CONFIG_I2C_BOARDINFO=y | ||||||
|  | CONFIG_I2C_CHARDEV=y | ||||||
|  | CONFIG_I2C_IBM_IIC=y | ||||||
|  | CONFIG_IBM_EMAC=y | ||||||
|  | CONFIG_IBM_EMAC_EMAC4=y | ||||||
|  | CONFIG_IBM_EMAC_POLL_WEIGHT=32 | ||||||
|  | CONFIG_IBM_EMAC_RGMII=y | ||||||
|  | CONFIG_IBM_EMAC_RXB=128 | ||||||
|  | CONFIG_IBM_EMAC_RX_COPY_THRESHOLD=256 | ||||||
|  | CONFIG_IBM_EMAC_TAH=y | ||||||
|  | CONFIG_IBM_EMAC_TXB=128 | ||||||
|  | # CONFIG_ICON is not set | ||||||
|  | CONFIG_ILLEGAL_POINTER_VALUE=0 | ||||||
|  | CONFIG_IRQCHIP=y | ||||||
|  | CONFIG_IRQ_DOMAIN=y | ||||||
|  | CONFIG_IRQ_DOMAIN_HIERARCHY=y | ||||||
|  | CONFIG_IRQ_FORCED_THREADING=y | ||||||
|  | CONFIG_IRQ_WORK=y | ||||||
|  | CONFIG_ISA_DMA_API=y | ||||||
|  | # CONFIG_JFFS2_FS is not set | ||||||
|  | # CONFIG_KATMAI is not set | ||||||
|  | CONFIG_KERNEL_START=0xc0000000 | ||||||
|  | CONFIG_LEDS_TRIGGER_MTD=y | ||||||
|  | CONFIG_LEDS_TRIGGER_PATTERN=y | ||||||
|  | CONFIG_LIBFDT=y | ||||||
|  | CONFIG_LOCK_DEBUGGING_SUPPORT=y | ||||||
|  | CONFIG_LOWMEM_SIZE=0x30000000 | ||||||
|  | CONFIG_LZO_COMPRESS=y | ||||||
|  | CONFIG_LZO_DECOMPRESS=y | ||||||
|  | # CONFIG_MATH_EMULATION is not set | ||||||
|  | CONFIG_MDIO_BUS=y | ||||||
|  | CONFIG_MDIO_DEVICE=y | ||||||
|  | CONFIG_MEMFD_CREATE=y | ||||||
|  | CONFIG_MIGRATION=y | ||||||
|  | CONFIG_MMU_GATHER_PAGE_SIZE=y | ||||||
|  | CONFIG_MODULES_USE_ELF_RELA=y | ||||||
|  | CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=y | ||||||
|  | CONFIG_MTD_CFI_ADV_OPTIONS=y | ||||||
|  | # CONFIG_MTD_CFI_GEOMETRY is not set | ||||||
|  | # CONFIG_MTD_SPLIT_SQUASHFS_ROOT is not set | ||||||
|  | CONFIG_NEED_DMA_MAP_STATE=y | ||||||
|  | CONFIG_NEED_PER_CPU_KM=y | ||||||
|  | CONFIG_NEED_SG_DMA_LENGTH=y | ||||||
|  | CONFIG_NOT_COHERENT_CACHE=y | ||||||
|  | CONFIG_NO_HZ=y | ||||||
|  | CONFIG_NO_HZ_COMMON=y | ||||||
|  | CONFIG_NO_HZ_IDLE=y | ||||||
|  | CONFIG_NR_IRQS=512 | ||||||
|  | CONFIG_NVMEM=y | ||||||
|  | CONFIG_NVMEM_SYSFS=y | ||||||
|  | CONFIG_OF=y | ||||||
|  | CONFIG_OF_ADDRESS=y | ||||||
|  | CONFIG_OF_EARLY_FLATTREE=y | ||||||
|  | CONFIG_OF_FLATTREE=y | ||||||
|  | CONFIG_OF_GPIO=y | ||||||
|  | CONFIG_OF_IRQ=y | ||||||
|  | CONFIG_OF_KOBJ=y | ||||||
|  | CONFIG_OF_MDIO=y | ||||||
|  | CONFIG_OF_NET=y | ||||||
|  | CONFIG_OLD_SIGACTION=y | ||||||
|  | CONFIG_OLD_SIGSUSPEND=y | ||||||
|  | CONFIG_PACKING=y | ||||||
|  | CONFIG_PAGE_OFFSET=0xc0000000 | ||||||
|  | CONFIG_PCI=y | ||||||
|  | CONFIG_PCIEAER=y | ||||||
|  | CONFIG_PCIEPORTBUS=y | ||||||
|  | CONFIG_PCIE_PME=y | ||||||
|  | CONFIG_PCI_DISABLE_COMMON_QUIRKS=y | ||||||
|  | CONFIG_PCI_DOMAINS=y | ||||||
|  | CONFIG_PCI_MSI=y | ||||||
|  | CONFIG_PCI_MSI_ARCH_FALLBACKS=y | ||||||
|  | CONFIG_PCI_MSI_IRQ_DOMAIN=y | ||||||
|  | CONFIG_PGTABLE_LEVELS=2 | ||||||
|  | CONFIG_PHYLIB=y | ||||||
|  | CONFIG_PHYSICAL_START=0x00000000 | ||||||
|  | CONFIG_PHYS_64BIT=y | ||||||
|  | CONFIG_PHYS_ADDR_T_64BIT=y | ||||||
|  | CONFIG_PM=y | ||||||
|  | # CONFIG_PMU_SYSFS is not set | ||||||
|  | CONFIG_PM_AUTOSLEEP=y | ||||||
|  | CONFIG_PM_CLK=y | ||||||
|  | CONFIG_PM_SLEEP=y | ||||||
|  | CONFIG_PM_WAKELOCKS=y | ||||||
|  | CONFIG_PM_WAKELOCKS_GC=y | ||||||
|  | CONFIG_PM_WAKELOCKS_LIMIT=100 | ||||||
|  | CONFIG_PPC=y | ||||||
|  | CONFIG_PPC32=y | ||||||
|  | CONFIG_PPC44x_SIMPLE=y | ||||||
|  | CONFIG_PPC4xx_CPM=y | ||||||
|  | CONFIG_PPC4xx_GPIO=y | ||||||
|  | CONFIG_PPC4xx_MSI=y | ||||||
|  | CONFIG_PPC4xx_PCI_EXPRESS=y | ||||||
|  | # CONFIG_PPC64 is not set | ||||||
|  | # CONFIG_PPC_47x is not set | ||||||
|  | # CONFIG_PPC_85xx is not set | ||||||
|  | # CONFIG_PPC_8xx is not set | ||||||
|  | CONFIG_PPC_ADV_DEBUG_DACS=2 | ||||||
|  | CONFIG_PPC_ADV_DEBUG_DAC_RANGE=y | ||||||
|  | CONFIG_PPC_ADV_DEBUG_DVCS=2 | ||||||
|  | CONFIG_PPC_ADV_DEBUG_IACS=4 | ||||||
|  | CONFIG_PPC_ADV_DEBUG_REGS=y | ||||||
|  | # CONFIG_PPC_BOOK3S_6xx is not set | ||||||
|  | CONFIG_PPC_DCR=y | ||||||
|  | CONFIG_PPC_DCR_NATIVE=y | ||||||
|  | # CONFIG_PPC_EARLY_DEBUG is not set | ||||||
|  | CONFIG_PPC_FPU=y | ||||||
|  | CONFIG_PPC_INDIRECT_PCI=y | ||||||
|  | # CONFIG_PPC_IRQ_SOFT_MASK_DEBUG is not set | ||||||
|  | CONFIG_PPC_MMU_NOHASH=y | ||||||
|  | CONFIG_PPC_MMU_NOHASH_32=y | ||||||
|  | CONFIG_PPC_MSI_BITMAP=y | ||||||
|  | CONFIG_PPC_PAGE_SHIFT=12 | ||||||
|  | # CONFIG_PPC_PTDUMP is not set | ||||||
|  | CONFIG_PPC_UDBG_16550=y | ||||||
|  | CONFIG_PPC_WERROR=y | ||||||
|  | CONFIG_PTE_64BIT=y | ||||||
|  | # CONFIG_RAINIER is not set | ||||||
|  | CONFIG_RAS=y | ||||||
|  | CONFIG_RATIONAL=y | ||||||
|  | CONFIG_RSEQ=y | ||||||
|  | # CONFIG_SAM440EP is not set | ||||||
|  | # CONFIG_SCOM_DEBUGFS is not set | ||||||
|  | # CONFIG_SEQUOIA is not set | ||||||
|  | CONFIG_SERIAL_8250_EXTENDED=y | ||||||
|  | CONFIG_SERIAL_8250_FSL=y | ||||||
|  | CONFIG_SERIAL_8250_SHARE_IRQ=y | ||||||
|  | CONFIG_SERIAL_MCTRL_GPIO=y | ||||||
|  | CONFIG_SERIAL_OF_PLATFORM=y | ||||||
|  | CONFIG_SGL_ALLOC=y | ||||||
|  | CONFIG_SPARSE_IRQ=y | ||||||
|  | CONFIG_SRCU=y | ||||||
|  | CONFIG_SUSPEND=y | ||||||
|  | CONFIG_SUSPEND_FREEZER=y | ||||||
|  | CONFIG_SWPHY=y | ||||||
|  | CONFIG_SYSCTL_EXCEPTION_TRACE=y | ||||||
|  | # CONFIG_TAISHAN is not set | ||||||
|  | CONFIG_TASK_SIZE=0xc0000000 | ||||||
|  | CONFIG_THREAD_INFO_IN_TASK=y | ||||||
|  | CONFIG_THREAD_SHIFT=13 | ||||||
|  | CONFIG_TICK_CPU_ACCOUNTING=y | ||||||
|  | CONFIG_TINY_SRCU=y | ||||||
|  | CONFIG_USB_SUPPORT=y | ||||||
|  | CONFIG_VDSO32=y | ||||||
|  | # CONFIG_VIRTIO_MENU is not set | ||||||
|  | # CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set | ||||||
|  | # CONFIG_WARP is not set | ||||||
|  | CONFIG_WATCHDOG_CORE=y | ||||||
|  | # CONFIG_XILINX_SYSACE is not set | ||||||
|  | CONFIG_XZ_DEC_BCJ=y | ||||||
|  | CONFIG_XZ_DEC_POWERPC=y | ||||||
|  | # CONFIG_YOSEMITE is not set | ||||||
|  | CONFIG_ZLIB_DEFLATE=y | ||||||
|  | CONFIG_ZLIB_INFLATE=y | ||||||
| @@ -233,7 +233,7 @@ | |||||||
| 					status = "disabled"; | 					status = "disabled"; | ||||||
| 				}; | 				}; | ||||||
|  |  | ||||||
| 				ndfc@1,0 { | 				ndfc: ndfc@1,0 { | ||||||
| 					compatible = "ibm,ndfc"; | 					compatible = "ibm,ndfc"; | ||||||
| 					reg = <00000003 00000000 00002000>; | 					reg = <00000003 00000000 00002000>; | ||||||
| 					ccr = <0x00001000>; | 					ccr = <0x00001000>; | ||||||
| @@ -241,6 +241,17 @@ | |||||||
| 					status = "disabled"; | 					status = "disabled"; | ||||||
|  |  | ||||||
| 					nand { | 					nand { | ||||||
|  | 						/* | ||||||
|  | 						 * These are the same fixed "MAGIC" values | ||||||
|  | 						 * settings as in the drivers code. | ||||||
|  | 						 * They are the same for all devices that | ||||||
|  | 						 * have NAND. | ||||||
|  | 						 */ | ||||||
|  | 						nand-ecc-engine = <&ndfc>; | ||||||
|  | 						nand-ecc-algo = "hamming"; | ||||||
|  | 						nand-ecc-step-size = <256>; | ||||||
|  | 						nand-ecc-strength = <1>; | ||||||
|  |  | ||||||
| 						#address-cells = <1>; | 						#address-cells = <1>; | ||||||
| 						#size-cells = <1>; | 						#size-cells = <1>; | ||||||
| 					}; | 					}; | ||||||
|   | |||||||
| @@ -47,6 +47,8 @@ | |||||||
| 		status = "okay"; | 		status = "okay"; | ||||||
| 		/* 32 MiB NAND Flash */ | 		/* 32 MiB NAND Flash */ | ||||||
| 		nand { | 		nand { | ||||||
|  | 			nand-is-boot-medium; | ||||||
|  |  | ||||||
| 			partition@0 { | 			partition@0 { | ||||||
| 				label = "u-boot"; | 				label = "u-boot"; | ||||||
| 				reg = <0x00000000 0x00150000>; | 				reg = <0x00000000 0x00150000>; | ||||||
|   | |||||||
| @@ -50,6 +50,8 @@ | |||||||
| 	ndfc@1,0 { | 	ndfc@1,0 { | ||||||
| 		status = "okay"; | 		status = "okay"; | ||||||
| 		nand { | 		nand { | ||||||
|  | 			nand-is-boot-medium; | ||||||
|  |  | ||||||
| 			partition@0 { | 			partition@0 { | ||||||
| 				label = "u-boot"; | 				label = "u-boot"; | ||||||
| 				reg = <0x00000000 0x00100000>; | 				reg = <0x00000000 0x00100000>; | ||||||
|   | |||||||
| @@ -36,6 +36,8 @@ | |||||||
| 		status = "okay"; | 		status = "okay"; | ||||||
| 		/* 32 MiB SLC NAND Flash */ | 		/* 32 MiB SLC NAND Flash */ | ||||||
| 		nand { | 		nand { | ||||||
|  | 			nand-is-boot-medium; | ||||||
|  |  | ||||||
| 			partition@0 { | 			partition@0 { | ||||||
| 				label = "u-boot"; | 				label = "u-boot"; | ||||||
| 				reg = <0x00000000 0x00100000>; | 				reg = <0x00000000 0x00100000>; | ||||||
|   | |||||||
| @@ -173,10 +173,13 @@ | |||||||
| }; | }; | ||||||
|  |  | ||||||
| &EBC0 { | &EBC0 { | ||||||
| 	ndfc@1,0 { | 	ndfc: ndfc@1,0 { | ||||||
|  |  | ||||||
| 		status = "okay"; | 		status = "okay"; | ||||||
| 		/* 128 MiB Nand Flash */ | 		/* 128 MiB Nand Flash */ | ||||||
| 		nand { | 		nand { | ||||||
|  | 			nand-is-boot-medium; | ||||||
|  |  | ||||||
| 			partition0,0@0 { | 			partition0,0@0 { | ||||||
| 				label = "NAND 128MiB 3,3V 8-bit"; | 				label = "NAND 128MiB 3,3V 8-bit"; | ||||||
| 				reg = <0x00000000 0x08000000>; | 				reg = <0x00000000 0x08000000>; | ||||||
|   | |||||||
| @@ -0,0 +1,30 @@ | |||||||
|  | --- a/arch/powerpc/platforms/44x/Kconfig | ||||||
|  | +++ b/arch/powerpc/platforms/44x/Kconfig | ||||||
|  | @@ -121,6 +121,17 @@ config CANYONLANDS | ||||||
|  |  	help | ||||||
|  |  	  This option enables support for the AMCC PPC460EX evaluation board. | ||||||
|  |   | ||||||
|  | +config APOLLO3G | ||||||
|  | +	bool "Apollo3G" | ||||||
|  | +	depends on 44x | ||||||
|  | +	default n | ||||||
|  | +	select PPC44x_SIMPLE | ||||||
|  | +	select APM821xx | ||||||
|  | +	select IBM_EMAC_RGMII | ||||||
|  | +	select 460EX | ||||||
|  | +	help | ||||||
|  | +	  This option enables support for the AMCC Apollo 3G board. | ||||||
|  | + | ||||||
|  |  config GLACIER | ||||||
|  |  	bool "Glacier" | ||||||
|  |  	depends on 44x | ||||||
|  | --- a/arch/powerpc/platforms/44x/ppc44x_simple.c | ||||||
|  | +++ b/arch/powerpc/platforms/44x/ppc44x_simple.c | ||||||
|  | @@ -47,6 +47,7 @@ machine_device_initcall(ppc44x_simple, p | ||||||
|  |   * board.c file for it rather than adding it to this list. | ||||||
|  |   */ | ||||||
|  |  static char *board[] __initdata = { | ||||||
|  | +	"amcc,apollo3g", | ||||||
|  |  	"amcc,arches", | ||||||
|  |  	"amcc,bamboo", | ||||||
|  |  	"apm,bluestone", | ||||||
| @@ -0,0 +1,51 @@ | |||||||
|  | --- a/arch/powerpc/platforms/4xx/pci.c | ||||||
|  | +++ b/arch/powerpc/platforms/4xx/pci.c | ||||||
|  | @@ -1060,15 +1060,24 @@ static int __init apm821xx_pciex_init_po | ||||||
|  |  	u32 val; | ||||||
|  |   | ||||||
|  |  	/* | ||||||
|  | -	 * Do a software reset on PCIe ports. | ||||||
|  | -	 * This code is to fix the issue that pci drivers doesn't re-assign | ||||||
|  | -	 * bus number for PCIE devices after Uboot | ||||||
|  | -	 * scanned and configured all the buses (eg. PCIE NIC IntelPro/1000 | ||||||
|  | -	 * PT quad port, SAS LSI 1064E) | ||||||
|  | +	 * Only reset the PHY when no link is currently established. | ||||||
|  | +	 * This is for the Atheros PCIe board which has problems to establish | ||||||
|  | +	 * the link (again) after this PHY reset. All other currently tested | ||||||
|  | +	 * PCIe boards don't show this problem. | ||||||
|  |  	 */ | ||||||
|  | - | ||||||
|  | -	mtdcri(SDR0, PESDR0_460EX_PHY_CTL_RST, 0x0); | ||||||
|  | -	mdelay(10); | ||||||
|  | +	val = mfdcri(SDR0, port->sdr_base + PESDRn_LOOP); | ||||||
|  | +	if (!(val & 0x00001000)) { | ||||||
|  | +		/* | ||||||
|  | +		 * Do a software reset on PCIe ports. | ||||||
|  | +		 * This code is to fix the issue that pci drivers doesn't re-assign | ||||||
|  | +		 * bus number for PCIE devices after Uboot | ||||||
|  | +		 * scanned and configured all the buses (eg. PCIE NIC IntelPro/1000 | ||||||
|  | +		 * PT quad port, SAS LSI 1064E) | ||||||
|  | +		 */ | ||||||
|  | + | ||||||
|  | +		mtdcri(SDR0, PESDR0_460EX_PHY_CTL_RST, 0x0); | ||||||
|  | +		mdelay(10); | ||||||
|  | +	} | ||||||
|  |   | ||||||
|  |  	if (port->endpoint) | ||||||
|  |  		val = PTYPE_LEGACY_ENDPOINT << 20; | ||||||
|  | @@ -1085,9 +1094,12 @@ static int __init apm821xx_pciex_init_po | ||||||
|  |  	mtdcri(SDR0, PESDR0_460EX_L0DRV, 0x00000130); | ||||||
|  |  	mtdcri(SDR0, PESDR0_460EX_L0CLK, 0x00000006); | ||||||
|  |   | ||||||
|  | -	mtdcri(SDR0, PESDR0_460EX_PHY_CTL_RST, 0x10000000); | ||||||
|  | -	mdelay(50); | ||||||
|  | -	mtdcri(SDR0, PESDR0_460EX_PHY_CTL_RST, 0x30000000); | ||||||
|  | +	val = mfdcri(SDR0, port->sdr_base + PESDRn_LOOP); | ||||||
|  | +	if (!(val & 0x00001000)) { | ||||||
|  | +		mtdcri(SDR0, PESDR0_460EX_PHY_CTL_RST, 0x10000000); | ||||||
|  | +		mdelay(50); | ||||||
|  | +		mtdcri(SDR0, PESDR0_460EX_PHY_CTL_RST, 0x30000000); | ||||||
|  | +	} | ||||||
|  |   | ||||||
|  |  	mtdcri(SDR0, port->sdr_base + PESDRn_RCSSET, | ||||||
|  |  		mfdcri(SDR0, port->sdr_base + PESDRn_RCSSET) | | ||||||
| @@ -0,0 +1,14 @@ | |||||||
|  | --- a/arch/powerpc/platforms/4xx/pci.c | ||||||
|  | +++ b/arch/powerpc/platforms/4xx/pci.c | ||||||
|  | @@ -1902,9 +1902,9 @@ static void __init ppc4xx_configure_pcie | ||||||
|  |  		 * if it works | ||||||
|  |  		 */ | ||||||
|  |  		out_le32(mbase + PECFG_PIM0LAL, 0x00000000); | ||||||
|  | -		out_le32(mbase + PECFG_PIM0LAH, 0x00000000); | ||||||
|  | +		out_le32(mbase + PECFG_PIM0LAH, 0x00000008); | ||||||
|  |  		out_le32(mbase + PECFG_PIM1LAL, 0x00000000); | ||||||
|  | -		out_le32(mbase + PECFG_PIM1LAH, 0x00000000); | ||||||
|  | +		out_le32(mbase + PECFG_PIM1LAH, 0x0000000c); | ||||||
|  |  		out_le32(mbase + PECFG_PIM01SAH, 0xffff0000); | ||||||
|  |  		out_le32(mbase + PECFG_PIM01SAL, 0x00000000); | ||||||
|  |   | ||||||
| @@ -0,0 +1,53 @@ | |||||||
|  | From a0dc613140bab907a3d5787a7ae7b0638bf674d0 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Christian Lamparter <chunkeey@gmail.com> | ||||||
|  | Date: Thu, 23 Jun 2016 20:28:20 +0200 | ||||||
|  | Subject: [PATCH] usb: xhci: force MSI for uPD720201 and | ||||||
|  |  uPD720202 | ||||||
|  |  | ||||||
|  | The APM82181 does not support MSI-X. When probed, it will | ||||||
|  | produce a noisy warning. | ||||||
|  |  | ||||||
|  | --- | ||||||
|  |  drivers/usb/host/pci-quirks.c | 362 ++++++++++++++++++++++++++++++++++++++++++ | ||||||
|  |  1 file changed, 362 insertions(+) | ||||||
|  |  | ||||||
|  | --- a/drivers/usb/host/xhci-pci.c | ||||||
|  | +++ b/drivers/usb/host/xhci-pci.c | ||||||
|  | @@ -260,6 +260,7 @@ static void xhci_pci_quirks(struct devic | ||||||
|  |  	    pdev->device == 0x0015) { | ||||||
|  |  		xhci->quirks |= XHCI_RESET_ON_RESUME; | ||||||
|  |  		xhci->quirks |= XHCI_ZERO_64B_REGS; | ||||||
|  | +		xhci->quirks |= XHCI_FORCE_MSI; | ||||||
|  |  	} | ||||||
|  |  	if (pdev->vendor == PCI_VENDOR_ID_VIA) | ||||||
|  |  		xhci->quirks |= XHCI_RESET_ON_RESUME; | ||||||
|  | --- a/drivers/usb/host/xhci.c | ||||||
|  | +++ b/drivers/usb/host/xhci.c | ||||||
|  | @@ -423,10 +423,14 @@ static int xhci_try_enable_msi(struct us | ||||||
|  |  		free_irq(hcd->irq, hcd); | ||||||
|  |  	hcd->irq = 0; | ||||||
|  |   | ||||||
|  | -	ret = xhci_setup_msix(xhci); | ||||||
|  | -	if (ret) | ||||||
|  | -		/* fall back to msi*/ | ||||||
|  | +	if (xhci->quirks & XHCI_FORCE_MSI) { | ||||||
|  |  		ret = xhci_setup_msi(xhci); | ||||||
|  | +	} else { | ||||||
|  | +		ret = xhci_setup_msix(xhci); | ||||||
|  | +		if (ret) | ||||||
|  | +			/* fall back to msi*/ | ||||||
|  | +			ret = xhci_setup_msi(xhci); | ||||||
|  | +	} | ||||||
|  |   | ||||||
|  |  	if (!ret) { | ||||||
|  |  		hcd->msi_enabled = 1; | ||||||
|  | --- a/drivers/usb/host/xhci.h | ||||||
|  | +++ b/drivers/usb/host/xhci.h | ||||||
|  | @@ -1886,6 +1886,7 @@ struct xhci_hcd { | ||||||
|  |  	struct xhci_hub		usb2_rhub; | ||||||
|  |  	struct xhci_hub		usb3_rhub; | ||||||
|  |  	/* support xHCI 1.0 spec USB2 hardware LPM */ | ||||||
|  | +#define XHCI_FORCE_MSI		(1 << 24) | ||||||
|  |  	unsigned		hw_lpm_support:1; | ||||||
|  |  	/* Broken Suspend flag for SNPS Suspend resume issue */ | ||||||
|  |  	unsigned		broken_suspend:1; | ||||||
| @@ -0,0 +1,65 @@ | |||||||
|  | From 694f9bfb8efaef8a33e8992015ff9d0866faf4a2 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Christian Lamparter <chunkeey@gmail.com> | ||||||
|  | Date: Sun, 17 Dec 2017 17:27:15 +0100 | ||||||
|  | Subject: [PATCH 1/2] hwmon: tc654 add detection routine | ||||||
|  |  | ||||||
|  | This patch adds a detection routine for the TC654/TC655 | ||||||
|  | chips.  Both IDs are listed in the Datasheet. | ||||||
|  |  | ||||||
|  | Signed-off-by: Christian Lamparter <chunkeey@gmail.com> | ||||||
|  | --- | ||||||
|  |  drivers/hwmon/tc654.c | 29 +++++++++++++++++++++++++++++ | ||||||
|  |  1 file changed, 29 insertions(+) | ||||||
|  |  | ||||||
|  | --- a/drivers/hwmon/tc654.c | ||||||
|  | +++ b/drivers/hwmon/tc654.c | ||||||
|  | @@ -55,6 +55,11 @@ enum tc654_regs { | ||||||
|  |  /* Register data is read (and cached) at most once per second. */ | ||||||
|  |  #define TC654_UPDATE_INTERVAL		HZ | ||||||
|  |   | ||||||
|  | +/* Manufacturer and Version Identification Register Values */ | ||||||
|  | +#define TC654_MFR_ID_MICROCHIP		0x84 | ||||||
|  | +#define TC654_VER_ID			0x00 | ||||||
|  | +#define TC655_VER_ID			0x01 | ||||||
|  | + | ||||||
|  |  struct tc654_data { | ||||||
|  |  	struct i2c_client *client; | ||||||
|  |   | ||||||
|  | @@ -481,6 +486,29 @@ static const struct i2c_device_id tc654_ | ||||||
|  |  	{} | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  | +static int | ||||||
|  | +tc654_detect(struct i2c_client *new_client, struct i2c_board_info *info) | ||||||
|  | +{ | ||||||
|  | +	struct i2c_adapter *adapter = new_client->adapter; | ||||||
|  | +	int manufacturer, product; | ||||||
|  | + | ||||||
|  | +	if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_BYTE_DATA)) | ||||||
|  | +		return -ENODEV; | ||||||
|  | + | ||||||
|  | +	manufacturer = i2c_smbus_read_byte_data(new_client, TC654_REG_MFR_ID); | ||||||
|  | +	if (manufacturer != TC654_MFR_ID_MICROCHIP) | ||||||
|  | +		return -ENODEV; | ||||||
|  | + | ||||||
|  | +	product = i2c_smbus_read_byte_data(new_client, TC654_REG_VER_ID); | ||||||
|  | +	if (!((product == TC654_VER_ID) || (product == TC655_VER_ID))) | ||||||
|  | +		return -ENODEV; | ||||||
|  | + | ||||||
|  | +	strlcpy(info->type, product == TC654_VER_ID ? "tc654" : "tc655", | ||||||
|  | +		I2C_NAME_SIZE); | ||||||
|  | +	return 0; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | + | ||||||
|  |  MODULE_DEVICE_TABLE(i2c, tc654_id); | ||||||
|  |   | ||||||
|  |  static struct i2c_driver tc654_driver = { | ||||||
|  | @@ -489,6 +517,7 @@ static struct i2c_driver tc654_driver = | ||||||
|  |  		   }, | ||||||
|  |  	.probe_new = tc654_probe, | ||||||
|  |  	.id_table = tc654_id, | ||||||
|  | +	.detect = tc654_detect, | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  |  module_i2c_driver(tc654_driver); | ||||||
| @@ -0,0 +1,174 @@ | |||||||
|  | From 9cb27801b5cbad2e1aaf45aac428cb2fac5e1372 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Christian Lamparter <chunkeey@gmail.com> | ||||||
|  | Date: Sun, 17 Dec 2017 17:29:13 +0100 | ||||||
|  | Subject: [PATCH] hwmon: tc654: add thermal_cooling device | ||||||
|  |  | ||||||
|  | This patch adds a thermaL_cooling device to the tc654 driver. | ||||||
|  | This allows the chip to be used for DT-based cooling. | ||||||
|  |  | ||||||
|  | Signed-off-by: Christian Lamparter <chunkeey@gmail.com> | ||||||
|  | --- | ||||||
|  |  drivers/hwmon/tc654.c | 103 +++++++++++++++++++++++++++++++++++------- | ||||||
|  |  1 file changed, 86 insertions(+), 17 deletions(-) | ||||||
|  |  | ||||||
|  | --- a/drivers/hwmon/tc654.c | ||||||
|  | +++ b/drivers/hwmon/tc654.c | ||||||
|  | @@ -15,6 +15,7 @@ | ||||||
|  |  #include <linux/module.h> | ||||||
|  |  #include <linux/mutex.h> | ||||||
|  |  #include <linux/slab.h> | ||||||
|  | +#include <linux/thermal.h> | ||||||
|  |  #include <linux/util_macros.h> | ||||||
|  |   | ||||||
|  |  enum tc654_regs { | ||||||
|  | @@ -132,6 +133,9 @@ struct tc654_data { | ||||||
|  |  			 * writable register used to control the duty | ||||||
|  |  			 * cycle of the V OUT output. | ||||||
|  |  			 */ | ||||||
|  | + | ||||||
|  | +	/* optional cooling device */ | ||||||
|  | +	struct thermal_cooling_device *cdev; | ||||||
|  |  }; | ||||||
|  |   | ||||||
|  |  /* helper to grab and cache data, at most one time per second */ | ||||||
|  | @@ -367,36 +371,30 @@ static ssize_t pwm_mode_store(struct dev | ||||||
|  |  static const int tc654_pwm_map[16] = { 77,  88, 102, 112, 124, 136, 148, 160, | ||||||
|  |  				      172, 184, 196, 207, 219, 231, 243, 255}; | ||||||
|  |   | ||||||
|  | +static int get_pwm(struct tc654_data *data) | ||||||
|  | +{ | ||||||
|  | +	if (data->config & TC654_REG_CONFIG_SDM) | ||||||
|  | +		return 0; | ||||||
|  | +	else | ||||||
|  | +		return tc654_pwm_map[data->duty_cycle]; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  |  static ssize_t pwm_show(struct device *dev, struct device_attribute *da, | ||||||
|  |  			char *buf) | ||||||
|  |  { | ||||||
|  |  	struct tc654_data *data = tc654_update_client(dev); | ||||||
|  | -	int pwm; | ||||||
|  |   | ||||||
|  |  	if (IS_ERR(data)) | ||||||
|  |  		return PTR_ERR(data); | ||||||
|  |   | ||||||
|  | -	if (data->config & TC654_REG_CONFIG_SDM) | ||||||
|  | -		pwm = 0; | ||||||
|  | -	else | ||||||
|  | -		pwm = tc654_pwm_map[data->duty_cycle]; | ||||||
|  | - | ||||||
|  | -	return sprintf(buf, "%d\n", pwm); | ||||||
|  | +	return sprintf(buf, "%d\n", get_pwm(data)); | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | -static ssize_t pwm_store(struct device *dev, struct device_attribute *da, | ||||||
|  | -			 const char *buf, size_t count) | ||||||
|  | +static int _set_pwm(struct tc654_data *data, unsigned long val) | ||||||
|  |  { | ||||||
|  | -	struct tc654_data *data = dev_get_drvdata(dev); | ||||||
|  |  	struct i2c_client *client = data->client; | ||||||
|  | -	unsigned long val; | ||||||
|  |  	int ret; | ||||||
|  |   | ||||||
|  | -	if (kstrtoul(buf, 10, &val)) | ||||||
|  | -		return -EINVAL; | ||||||
|  | -	if (val > 255) | ||||||
|  | -		return -EINVAL; | ||||||
|  | - | ||||||
|  |  	mutex_lock(&data->update_lock); | ||||||
|  |   | ||||||
|  |  	if (val == 0) | ||||||
|  | @@ -416,6 +414,22 @@ static ssize_t pwm_store(struct device * | ||||||
|  |   | ||||||
|  |  out: | ||||||
|  |  	mutex_unlock(&data->update_lock); | ||||||
|  | +	return ret; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +static ssize_t pwm_store(struct device *dev, struct device_attribute *da, | ||||||
|  | +		       const char *buf, size_t count) | ||||||
|  | +{ | ||||||
|  | +	struct tc654_data *data = dev_get_drvdata(dev); | ||||||
|  | +	unsigned long val; | ||||||
|  | +	int ret; | ||||||
|  | + | ||||||
|  | +	if (kstrtoul(buf, 10, &val)) | ||||||
|  | +		return -EINVAL; | ||||||
|  | +	if (val > 255) | ||||||
|  | +		return -EINVAL; | ||||||
|  | + | ||||||
|  | +	ret = _set_pwm(data, val); | ||||||
|  |  	return ret < 0 ? ret : count; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | @@ -447,6 +461,47 @@ static struct attribute *tc654_attrs[] = | ||||||
|  |   | ||||||
|  |  ATTRIBUTE_GROUPS(tc654); | ||||||
|  |   | ||||||
|  | +/* cooling device */ | ||||||
|  | + | ||||||
|  | +static int tc654_get_max_state(struct thermal_cooling_device *cdev, | ||||||
|  | +			       unsigned long *state) | ||||||
|  | +{ | ||||||
|  | +	*state = 255; | ||||||
|  | +	return 0; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +static int tc654_get_cur_state(struct thermal_cooling_device *cdev, | ||||||
|  | +                              unsigned long *state) | ||||||
|  | +{ | ||||||
|  | +	struct tc654_data *data = tc654_update_client(cdev->devdata); | ||||||
|  | + | ||||||
|  | +	if (IS_ERR(data)) | ||||||
|  | +		return PTR_ERR(data); | ||||||
|  | + | ||||||
|  | +	*state = get_pwm(data); | ||||||
|  | +	return 0; | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +static int tc654_set_cur_state(struct thermal_cooling_device *cdev, | ||||||
|  | +			       unsigned long state) | ||||||
|  | +{ | ||||||
|  | +	struct tc654_data *data = tc654_update_client(cdev->devdata); | ||||||
|  | + | ||||||
|  | +	if (IS_ERR(data)) | ||||||
|  | +		return PTR_ERR(data); | ||||||
|  | + | ||||||
|  | +	if (state > 255) | ||||||
|  | +		return -EINVAL; | ||||||
|  | + | ||||||
|  | +	return _set_pwm(data, state); | ||||||
|  | +} | ||||||
|  | + | ||||||
|  | +static const struct thermal_cooling_device_ops tc654_fan_cool_ops = { | ||||||
|  | +	.get_max_state = tc654_get_max_state, | ||||||
|  | +	.get_cur_state = tc654_get_cur_state, | ||||||
|  | +	.set_cur_state = tc654_set_cur_state, | ||||||
|  | +}; | ||||||
|  | + | ||||||
|  |  /* | ||||||
|  |   * device probe and removal | ||||||
|  |   */ | ||||||
|  | @@ -477,7 +532,21 @@ static int tc654_probe(struct i2c_client | ||||||
|  |  	hwmon_dev = | ||||||
|  |  	    devm_hwmon_device_register_with_groups(dev, client->name, data, | ||||||
|  |  						   tc654_groups); | ||||||
|  | -	return PTR_ERR_OR_ZERO(hwmon_dev); | ||||||
|  | +	if (IS_ERR(hwmon_dev)) | ||||||
|  | +		return PTR_ERR(hwmon_dev); | ||||||
|  | + | ||||||
|  | +#if IS_ENABLED(CONFIG_OF) | ||||||
|  | +	/* Optional cooling device register for Device tree platforms */ | ||||||
|  | +	data->cdev = thermal_of_cooling_device_register(client->dev.of_node, | ||||||
|  | +							"tc654", hwmon_dev, | ||||||
|  | +							&tc654_fan_cool_ops); | ||||||
|  | +#else /* CONFIG_OF */ | ||||||
|  | +	/* Optional cooling device register for non Device tree platforms */ | ||||||
|  | +	data->cdev = thermal_cooling_device_register("tc654", hwmon_dev, | ||||||
|  | +						     &tc654_fan_cool_ops); | ||||||
|  | +#endif /* CONFIG_OF */ | ||||||
|  | + | ||||||
|  | +	return PTR_ERR_OR_ZERO(data->cdev); | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  static const struct i2c_device_id tc654_id[] = { | ||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | From c9395ad54e2cabb87d408becc37566f3d8248933 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Christian Lamparter <chunkeey@gmail.com> | ||||||
|  | Date: Sun, 1 Dec 2019 02:08:23 +0100 | ||||||
|  | Subject: [PATCH] powerpc: bootwrapper: force gzip as mkimage's compression | ||||||
|  |  method | ||||||
|  |  | ||||||
|  | Due to CONFIG_KERNEL_XZ symbol, the bootwrapper code tries to | ||||||
|  | instruct the mkimage to use the xz compression, which isn't | ||||||
|  | supported. This patch forces the gzip compression, which is | ||||||
|  | supported and doesn't matter because the generated uImage for | ||||||
|  | the apm821xx target gets ignored as the OpenWrt toolchain will | ||||||
|  | do separate U-Boot kernel images for each device individually. | ||||||
|  |  | ||||||
|  | Signed-off-by: Christian Lamparter <chunkeey@gmail.com> | ||||||
|  | --- | ||||||
|  |  arch/powerpc/boot/Makefile | 2 +- | ||||||
|  |  1 file changed, 1 insertion(+), 1 deletion(-) | ||||||
|  |  | ||||||
|  | --- a/arch/powerpc/boot/Makefile | ||||||
|  | +++ b/arch/powerpc/boot/Makefile | ||||||
|  | @@ -250,7 +250,7 @@ compressor-$(CONFIG_KERNEL_LZO) := lzo | ||||||
|  |   | ||||||
|  |  # args (to if_changed): 1 = (this rule), 2 = platform, 3 = dts 4=dtb 5=initrd | ||||||
|  |  quiet_cmd_wrap	= WRAP    $@ | ||||||
|  | -      cmd_wrap	=$(CONFIG_SHELL) $(wrapper) -Z $(compressor-y) -c -o $@ -p $2 \ | ||||||
|  | +      cmd_wrap	=$(CONFIG_SHELL) $(wrapper) -Z gzip -c -o $@ -p $2 \ | ||||||
|  |  		$(CROSSWRAP) $(if $3, -s $3)$(if $4, -d $4)$(if $5, -i $5) \ | ||||||
|  |  		vmlinux | ||||||
|  |   | ||||||
		Reference in New Issue
	
	Block a user
	 Christian Lamparter
					Christian Lamparter