Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'dt/linus' into dt/next

Pick a fix which didn't make it into v5.16.

+63 -28
+1 -1
Documentation/devicetree/bindings/iio/adc/samsung,exynos-adc.yaml
··· 136 136 samsung,syscon-phandle = <&pmu_system_controller>; 137 137 138 138 /* NTC thermistor is a hwmon device */ 139 - ncp15wb473 { 139 + thermistor { 140 140 compatible = "murata,ncp15wb473"; 141 141 pullup-uv = <1800000>; 142 142 pullup-ohm = <47000>;
+1 -1
Documentation/devicetree/bindings/input/gpio-keys.yaml
··· 142 142 down { 143 143 label = "GPIO Key DOWN"; 144 144 linux,code = <108>; 145 - interrupts = <1 IRQ_TYPE_LEVEL_HIGH 7>; 145 + interrupts = <1 IRQ_TYPE_EDGE_FALLING>; 146 146 }; 147 147 }; 148 148
+2 -12
Documentation/devicetree/bindings/media/nxp,imx7-mipi-csi2.yaml
··· 79 79 80 80 properties: 81 81 data-lanes: 82 + description: 83 + Note that 'fsl,imx7-mipi-csi2' only supports up to 2 data lines. 82 84 items: 83 85 minItems: 1 84 86 maxItems: 4 ··· 92 90 93 91 required: 94 92 - data-lanes 95 - 96 - allOf: 97 - - if: 98 - properties: 99 - compatible: 100 - contains: 101 - const: fsl,imx7-mipi-csi2 102 - then: 103 - properties: 104 - data-lanes: 105 - items: 106 - maxItems: 2 107 93 108 94 port@1: 109 95 $ref: /schemas/graph.yaml#/properties/port
+8
Documentation/devicetree/bindings/net/ethernet-phy.yaml
··· 91 91 compensate for the board being designed with the lanes 92 92 swapped. 93 93 94 + enet-phy-lane-no-swap: 95 + $ref: /schemas/types.yaml#/definitions/flag 96 + description: 97 + If set, indicates that PHY will disable swap of the 98 + TX/RX lanes. This property allows the PHY to work correcly after 99 + e.g. wrong bootstrap configuration caused by issues in PCB 100 + layout design. 101 + 94 102 eee-broken-100tx: 95 103 $ref: /schemas/types.yaml#/definitions/flag 96 104 description:
+1 -1
Documentation/devicetree/bindings/power/supply/bq25980.yaml
··· 105 105 reg = <0x65>; 106 106 interrupt-parent = <&gpio1>; 107 107 interrupts = <16 IRQ_TYPE_EDGE_FALLING>; 108 - ti,watchdog-timer = <0>; 108 + ti,watchdog-timeout-ms = <0>; 109 109 ti,sc-ocp-limit-microamp = <2000000>; 110 110 ti,sc-ovp-limit-microvolt = <17800000>; 111 111 monitored-battery = <&bat>;
+5 -5
Makefile
··· 1374 1374 1375 1375 ifneq ($(dtstree),) 1376 1376 1377 - %.dtb: dt_binding_check include/config/kernel.release scripts_dtc 1378 - $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ $(dtstree)/$*.dt.yaml 1377 + %.dtb: include/config/kernel.release scripts_dtc 1378 + $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ 1379 1379 1380 - %.dtbo: dt_binding_check include/config/kernel.release scripts_dtc 1381 - $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ $(dtstree)/$*.dt.yaml 1380 + %.dtbo: include/config/kernel.release scripts_dtc 1381 + $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ 1382 1382 1383 1383 PHONY += dtbs dtbs_install dtbs_check 1384 1384 dtbs: include/config/kernel.release scripts_dtc 1385 1385 $(Q)$(MAKE) $(build)=$(dtstree) 1386 1386 1387 - ifneq ($(filter dtbs_check %.dtb %.dtbo, $(MAKECMDGOALS)),) 1387 + ifneq ($(filter dtbs_check, $(MAKECMDGOALS)),) 1388 1388 export CHECK_DTBS=y 1389 1389 dtbs: dt_binding_check 1390 1390 endif
+5
drivers/firmware/efi/efi-init.c
··· 235 235 } 236 236 237 237 reserve_regions(); 238 + /* 239 + * For memblock manipulation, the cap should come after the memblock_add(). 240 + * And now, memblock is fully populated, it is time to do capping. 241 + */ 242 + early_init_dt_check_for_usable_mem_range(); 238 243 efi_esrt_init(); 239 244 efi_mokvar_table_init(); 240 245
+13 -6
drivers/of/fdt.c
··· 967 967 elfcorehdr_addr, elfcorehdr_size); 968 968 } 969 969 970 - static phys_addr_t cap_mem_addr; 971 - static phys_addr_t cap_mem_size; 970 + static unsigned long chosen_node_offset = -FDT_ERR_NOTFOUND; 972 971 973 972 /** 974 973 * early_init_dt_check_for_usable_mem_range - Decode usable memory range 975 974 * location from flat tree 976 - * @node: reference to node containing usable memory range location ('chosen') 977 975 */ 978 - static void __init early_init_dt_check_for_usable_mem_range(unsigned long node) 976 + void __init early_init_dt_check_for_usable_mem_range(void) 979 977 { 980 978 const __be32 *prop; 981 979 int len; 980 + phys_addr_t cap_mem_addr; 981 + phys_addr_t cap_mem_size; 982 + unsigned long node = chosen_node_offset; 983 + 984 + if ((long)node < 0) 985 + return; 982 986 983 987 pr_debug("Looking for usable-memory-range property... "); 984 988 ··· 995 991 996 992 pr_debug("cap_mem_start=%pa cap_mem_size=%pa\n", &cap_mem_addr, 997 993 &cap_mem_size); 994 + 995 + memblock_cap_memory_range(cap_mem_addr, cap_mem_size); 998 996 } 999 997 1000 998 #ifdef CONFIG_SERIAL_EARLYCON ··· 1149 1143 if (node < 0) 1150 1144 return -ENOENT; 1151 1145 1146 + chosen_node_offset = node; 1147 + 1152 1148 early_init_dt_check_for_initrd(node); 1153 1149 early_init_dt_check_for_elfcorehdr(node); 1154 - early_init_dt_check_for_usable_mem_range(node); 1155 1150 1156 1151 /* Retrieve command line */ 1157 1152 p = of_get_flat_dt_prop(node, "bootargs", &l); ··· 1287 1280 early_init_dt_scan_memory(); 1288 1281 1289 1282 /* Handle linux,usable-memory-range property */ 1290 - memblock_cap_memory_range(cap_mem_addr, cap_mem_size); 1283 + early_init_dt_check_for_usable_mem_range(); 1291 1284 } 1292 1285 1293 1286 bool __init early_init_dt_scan(void *params)
+25 -2
drivers/of/irq.c
··· 76 76 } 77 77 EXPORT_SYMBOL_GPL(of_irq_find_parent); 78 78 79 + /* 80 + * These interrupt controllers abuse interrupt-map for unspeakable 81 + * reasons and rely on the core code to *ignore* it (the drivers do 82 + * their own parsing of the property). 83 + * 84 + * If you think of adding to the list for something *new*, think 85 + * again. There is a high chance that you will be sent back to the 86 + * drawing board. 87 + */ 88 + static const char * const of_irq_imap_abusers[] = { 89 + "CBEA,platform-spider-pic", 90 + "sti,platform-spider-pic", 91 + "realtek,rtl-intc", 92 + "fsl,ls1021a-extirq", 93 + "fsl,ls1043a-extirq", 94 + "fsl,ls1088a-extirq", 95 + "renesas,rza1-irqc", 96 + NULL, 97 + }; 98 + 79 99 /** 80 100 * of_irq_parse_raw - Low level interrupt tree parsing 81 101 * @addr: address specifier (start of "reg" property of the device) in be32 format ··· 179 159 /* 180 160 * Now check if cursor is an interrupt-controller and 181 161 * if it is then we are done, unless there is an 182 - * interrupt-map which takes precedence. 162 + * interrupt-map which takes precedence except on one 163 + * of these broken platforms that want to parse 164 + * interrupt-map themselves for $reason. 183 165 */ 184 166 bool intc = of_property_read_bool(ipar, "interrupt-controller"); 185 167 186 168 imap = of_get_property(ipar, "interrupt-map", &imaplen); 187 - if (imap == NULL && intc) { 169 + if (intc && 170 + (!imap || of_device_compatible_match(ipar, of_irq_imap_abusers))) { 188 171 pr_debug(" -> got it !\n"); 189 172 return 0; 190 173 }
+2
include/linux/of_fdt.h
··· 60 60 61 61 extern int early_init_dt_scan_chosen(char *cmdline); 62 62 extern int early_init_dt_scan_memory(void); 63 + extern void early_init_dt_check_for_usable_mem_range(void); 63 64 extern int early_init_dt_scan_chosen_stdout(void); 64 65 extern void early_init_fdt_scan_reserved_mem(void); 65 66 extern void early_init_fdt_reserve_self(void); ··· 84 83 extern void early_init_devtree(void *); 85 84 extern void early_get_first_memblock_info(void *, phys_addr_t *); 86 85 #else /* CONFIG_OF_EARLY_FLATTREE */ 86 + static inline void early_init_dt_check_for_usable_mem_range(void) {} 87 87 static inline int early_init_dt_scan_chosen_stdout(void) { return -ENODEV; } 88 88 static inline void early_init_fdt_scan_reserved_mem(void) {} 89 89 static inline void early_init_fdt_reserve_self(void) {}