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 tag 'devicetree-fixes-for-6.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux

Pull devicetree fixes from Rob Herring:

- Add bindings for QCom QCS8300 clocks, QCom SAR2130P qfprom, and
powertip,{st7272|hx8238a} displays

- Fix compatible for TI am62a7 dss

- Add a kunit test for __of_address_resource_bounds()

* tag 'devicetree-fixes-for-6.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
dt-bindings: display: Add powertip,{st7272|hx8238a} as DT Schema description
dt-bindings: nvmem: qcom,qfprom: Add SAR2130P compatible
dt-bindings: display: ti: Fix compatible for am62a7 dss
of: address: Add kunit test for __of_address_resource_bounds()
dt-bindings: clock: qcom: Add QCS8300 video clock controller
dt-bindings: clock: qcom: Add CAMCC clocks for QCS8300
dt-bindings: clock: qcom: Add GPU clocks for QCS8300

+228 -4
+3
Documentation/devicetree/bindings/clock/qcom,gpucc.yaml
··· 8 8 9 9 maintainers: 10 10 - Taniya Das <quic_tdas@quicinc.com> 11 + - Imran Shaik <quic_imrashai@quicinc.com> 11 12 12 13 description: | 13 14 Qualcomm graphics clock control module provides the clocks, resets and power ··· 24 23 include/dt-bindings/clock/qcom,gpucc-sm8150.h 25 24 include/dt-bindings/clock/qcom,gpucc-sm8250.h 26 25 include/dt-bindings/clock/qcom,gpucc-sm8350.h 26 + include/dt-bindings/clock/qcom,qcs8300-gpucc.h 27 27 28 28 properties: 29 29 compatible: 30 30 enum: 31 + - qcom,qcs8300-gpucc 31 32 - qcom,sdm845-gpucc 32 33 - qcom,sa8775p-gpucc 33 34 - qcom,sc7180-gpucc
+5 -1
Documentation/devicetree/bindings/clock/qcom,sa8775p-camcc.yaml
··· 8 8 9 9 maintainers: 10 10 - Taniya Das <quic_tdas@quicinc.com> 11 + - Imran Shaik <quic_imrashai@quicinc.com> 11 12 12 13 description: | 13 14 Qualcomm camera clock control module provides the clocks, resets and power 14 15 domains on SA8775p. 15 16 16 - See also: include/dt-bindings/clock/qcom,sa8775p-camcc.h 17 + See also: 18 + include/dt-bindings/clock/qcom,qcs8300-camcc.h 19 + include/dt-bindings/clock/qcom,sa8775p-camcc.h 17 20 18 21 properties: 19 22 compatible: 20 23 enum: 24 + - qcom,qcs8300-camcc 21 25 - qcom,sa8775p-camcc 22 26 23 27 clocks:
+1
Documentation/devicetree/bindings/clock/qcom,sa8775p-videocc.yaml
··· 18 18 properties: 19 19 compatible: 20 20 enum: 21 + - qcom,qcs8300-videocc 21 22 - qcom,sa8775p-videocc 22 23 23 24 clocks:
+29
Documentation/devicetree/bindings/display/panel/powertip,hx8238a.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/display/panel/powertip,hx8238a.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Powertip Electronic Technology Co. 320 x 240 LCD panel 8 + 9 + maintainers: 10 + - Lukasz Majewski <lukma@denx.de> 11 + 12 + allOf: 13 + - $ref: panel-dpi.yaml# 14 + 15 + properties: 16 + compatible: 17 + items: 18 + - const: powertip,hx8238a 19 + - {} # panel-dpi, but not listed here to avoid false select 20 + 21 + height-mm: true 22 + panel-timing: true 23 + port: true 24 + power-supply: true 25 + width-mm: true 26 + 27 + additionalProperties: false 28 + 29 + ...
+29
Documentation/devicetree/bindings/display/panel/powertip,st7272.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/display/panel/powertip,st7272.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Powertip Electronic Technology Co. 320 x 240 LCD panel 8 + 9 + maintainers: 10 + - Lukasz Majewski <lukma@denx.de> 11 + 12 + allOf: 13 + - $ref: panel-dpi.yaml# 14 + 15 + properties: 16 + compatible: 17 + items: 18 + - const: powertip,st7272 19 + - {} # panel-dpi, but not listed here to avoid false select 20 + 21 + height-mm: true 22 + panel-timing: true 23 + port: true 24 + power-supply: true 25 + width-mm: true 26 + 27 + additionalProperties: false 28 + 29 + ...
+1 -1
Documentation/devicetree/bindings/display/ti/ti,am65x-dss.yaml
··· 23 23 compatible: 24 24 enum: 25 25 - ti,am625-dss 26 - - ti,am62a7,dss 26 + - ti,am62a7-dss 27 27 - ti,am65x-dss 28 28 29 29 reg:
+1
Documentation/devicetree/bindings/nvmem/qcom,qfprom.yaml
··· 36 36 - qcom,qcs404-qfprom 37 37 - qcom,qcs615-qfprom 38 38 - qcom,qcs8300-qfprom 39 + - qcom,sar2130p-qfprom 39 40 - qcom,sc7180-qfprom 40 41 - qcom,sc7280-qfprom 41 42 - qcom,sc8280xp-qfprom
+4 -1
drivers/of/address.c
··· 16 16 #include <linux/string.h> 17 17 #include <linux/dma-direct.h> /* for bus_dma_region */ 18 18 19 + #include <kunit/visibility.h> 20 + 19 21 /* Uncomment me to enable of_dump_addr() debugging output */ 20 22 // #define DEBUG 21 23 ··· 185 183 186 184 #endif /* CONFIG_PCI */ 187 185 188 - static int __of_address_resource_bounds(struct resource *r, u64 start, u64 size) 186 + VISIBLE_IF_KUNIT int __of_address_resource_bounds(struct resource *r, u64 start, u64 size) 189 187 { 190 188 if (overflows_type(start, r->start)) 191 189 return -EOVERFLOW; ··· 199 197 200 198 return 0; 201 199 } 200 + EXPORT_SYMBOL_IF_KUNIT(__of_address_resource_bounds); 202 201 203 202 /* 204 203 * of_pci_range_to_resource - Create a resource from an of_pci_range
+4
drivers/of/of_private.h
··· 208 208 static void __maybe_unused of_dump_addr(const char *s, const __be32 *addr, int na) { } 209 209 #endif 210 210 211 + #if IS_ENABLED(CONFIG_KUNIT) 212 + int __of_address_resource_bounds(struct resource *r, u64 start, u64 size); 213 + #endif 214 + 211 215 #endif /* _LINUX_OF_PRIVATE_H */
+118 -1
drivers/of/of_test.c
··· 2 2 /* 3 3 * KUnit tests for OF APIs 4 4 */ 5 + #include <linux/ioport.h> 5 6 #include <linux/module.h> 6 7 #include <linux/of.h> 7 8 ··· 55 54 .init = of_dtb_test_init, 56 55 }; 57 56 57 + struct of_address_resource_bounds_case { 58 + u64 start; 59 + u64 size; 60 + int ret; 61 + 62 + u64 res_start; 63 + u64 res_end; 64 + }; 65 + 66 + static void of_address_resource_bounds_case_desc(const struct of_address_resource_bounds_case *p, 67 + char *name) 68 + { 69 + snprintf(name, KUNIT_PARAM_DESC_SIZE, "start=0x%016llx,size=0x%016llx", p->start, p->size); 70 + } 71 + 72 + static const struct of_address_resource_bounds_case of_address_resource_bounds_cases[] = { 73 + { 74 + .start = 0, 75 + .size = 0, 76 + .ret = 0, 77 + .res_start = 0, 78 + .res_end = -1, 79 + }, 80 + { 81 + .start = 0, 82 + .size = 0x1000, 83 + .ret = 0, 84 + .res_start = 0, 85 + .res_end = 0xfff, 86 + }, 87 + { 88 + .start = 0x1000, 89 + .size = 0, 90 + .ret = 0, 91 + .res_start = 0x1000, 92 + .res_end = 0xfff, 93 + }, 94 + { 95 + .start = 0x1000, 96 + .size = 0x1000, 97 + .ret = 0, 98 + .res_start = 0x1000, 99 + .res_end = 0x1fff, 100 + }, 101 + { 102 + .start = 1, 103 + .size = RESOURCE_SIZE_MAX, 104 + .ret = 0, 105 + .res_start = 1, 106 + .res_end = RESOURCE_SIZE_MAX, 107 + }, 108 + { 109 + .start = RESOURCE_SIZE_MAX, 110 + .size = 1, 111 + .ret = 0, 112 + .res_start = RESOURCE_SIZE_MAX, 113 + .res_end = RESOURCE_SIZE_MAX, 114 + }, 115 + { 116 + .start = 2, 117 + .size = RESOURCE_SIZE_MAX, 118 + .ret = -EOVERFLOW, 119 + }, 120 + { 121 + .start = RESOURCE_SIZE_MAX, 122 + .size = 2, 123 + .ret = -EOVERFLOW, 124 + }, 125 + { 126 + .start = ULL(0x100000000), 127 + .size = 1, 128 + .ret = sizeof(resource_size_t) > sizeof(u32) ? 0 : -EOVERFLOW, 129 + .res_start = ULL(0x100000000), 130 + .res_end = ULL(0x100000000), 131 + }, 132 + { 133 + .start = 0x1000, 134 + .size = 0xffffffff, 135 + .ret = sizeof(resource_size_t) > sizeof(u32) ? 0 : -EOVERFLOW, 136 + .res_start = 0x1000, 137 + .res_end = ULL(0x100000ffe), 138 + }, 139 + }; 140 + 141 + KUNIT_ARRAY_PARAM(of_address_resource_bounds, 142 + of_address_resource_bounds_cases, of_address_resource_bounds_case_desc); 143 + 144 + static void of_address_resource_bounds(struct kunit *test) 145 + { 146 + const struct of_address_resource_bounds_case *param = test->param_value; 147 + struct resource r; /* Intentionally uninitialized */ 148 + int ret; 149 + 150 + if (!IS_ENABLED(CONFIG_OF_ADDRESS)) 151 + kunit_skip(test, "CONFIG_OF_ADDRESS not enabled\n"); 152 + 153 + ret = __of_address_resource_bounds(&r, param->start, param->size); 154 + KUNIT_EXPECT_EQ(test, param->ret, ret); 155 + if (ret == 0) { 156 + KUNIT_EXPECT_EQ(test, (resource_size_t)param->res_start, r.start); 157 + KUNIT_EXPECT_EQ(test, (resource_size_t)param->res_end, r.end); 158 + KUNIT_EXPECT_EQ(test, param->size, resource_size(&r)); 159 + } 160 + } 161 + 162 + static struct kunit_case of_address_test_cases[] = { 163 + KUNIT_CASE_PARAM(of_address_resource_bounds, of_address_resource_bounds_gen_params), 164 + {} 165 + }; 166 + 167 + static struct kunit_suite of_address_suite = { 168 + .name = "of_address", 169 + .test_cases = of_address_test_cases, 170 + }; 171 + 58 172 kunit_test_suites( 59 - &of_dtb_suite, 173 + &of_dtb_suite, &of_address_suite, 60 174 ); 61 175 MODULE_DESCRIPTION("KUnit tests for OF APIs"); 176 + MODULE_IMPORT_NS("EXPORTED_FOR_KUNIT_TESTING"); 62 177 MODULE_LICENSE("GPL");
+16
include/dt-bindings/clock/qcom,qcs8300-camcc.h
··· 1 + /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ 2 + /* 3 + * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved. 4 + */ 5 + 6 + #ifndef _DT_BINDINGS_CLK_QCOM_QCS8300_CAM_CC_H 7 + #define _DT_BINDINGS_CLK_QCOM_QCS8300_CAM_CC_H 8 + 9 + #include "qcom,sa8775p-camcc.h" 10 + 11 + /* QCS8300 introduces below new clocks compared to SA8775P */ 12 + 13 + /* CAM_CC clocks */ 14 + #define CAM_CC_TITAN_TOP_ACCU_SHIFT_CLK 86 15 + 16 + #endif
+17
include/dt-bindings/clock/qcom,qcs8300-gpucc.h
··· 1 + /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ 2 + /* 3 + * Copyright (c) 2024, Qualcomm Innovation Center, Inc. All rights reserved. 4 + */ 5 + 6 + #ifndef _DT_BINDINGS_CLK_QCOM_GPUCC_QCS8300_H 7 + #define _DT_BINDINGS_CLK_QCOM_GPUCC_QCS8300_H 8 + 9 + #include "qcom,sa8775p-gpucc.h" 10 + 11 + /* QCS8300 introduces below new clocks compared to SA8775P */ 12 + 13 + /* GPU_CC clocks */ 14 + #define GPU_CC_CX_ACCU_SHIFT_CLK 23 15 + #define GPU_CC_GX_ACCU_SHIFT_CLK 24 16 + 17 + #endif