diff options
| -rw-r--r-- | drivers/of/unittest-data/Makefile | 19 | ||||
| -rw-r--r-- | drivers/of/unittest-data/overlay.dts | 25 | ||||
| -rw-r--r-- | drivers/of/unittest-data/overlay_bad_symbol.dts | 22 | ||||
| -rw-r--r-- | drivers/of/unittest-data/overlay_base.dts | 11 | ||||
| -rw-r--r-- | drivers/of/unittest.c | 10 |
5 files changed, 79 insertions, 8 deletions
diff --git a/drivers/of/unittest-data/Makefile b/drivers/of/unittest-data/Makefile index 6e00a9c69e58..2d135fba94c1 100644 --- a/drivers/of/unittest-data/Makefile +++ b/drivers/of/unittest-data/Makefile | |||
| @@ -1,18 +1,27 @@ | |||
| 1 | obj-y += testcases.dtb.o | 1 | obj-y += testcases.dtb.o |
| 2 | |||
| 3 | targets += testcases.dtb testcases.dtb.S | ||
| 4 | |||
| 5 | ifdef CONFIG_OF_OVERLAY | ||
| 6 | |||
| 2 | obj-y += overlay.dtb.o | 7 | obj-y += overlay.dtb.o |
| 3 | obj-y += overlay_bad_phandle.dtb.o | 8 | obj-y += overlay_bad_phandle.dtb.o |
| 9 | obj-y += overlay_bad_symbol.dtb.o | ||
| 4 | obj-y += overlay_base.dtb.o | 10 | obj-y += overlay_base.dtb.o |
| 5 | 11 | ||
| 6 | targets += testcases.dtb testcases.dtb.S | ||
| 7 | targets += overlay.dtb overlay.dtb.S | 12 | targets += overlay.dtb overlay.dtb.S |
| 8 | targets += overlay_bad_phandle.dtb overlay_bad_phandle.dtb.S | 13 | targets += overlay_bad_phandle.dtb overlay_bad_phandle.dtb.S |
| 14 | targets += overlay_bad_symbol.dtb overlay_bad_symbol.dtb.S | ||
| 9 | targets += overlay_base.dtb overlay_base.dtb.S | 15 | targets += overlay_base.dtb overlay_base.dtb.S |
| 10 | 16 | ||
| 11 | .PRECIOUS: \ | ||
| 12 | $(obj)/%.dtb.S \ | ||
| 13 | $(obj)/%.dtb | ||
| 14 | |||
| 15 | # enable creation of __symbols__ node | 17 | # enable creation of __symbols__ node |
| 16 | DTC_FLAGS_overlay := -@ | 18 | DTC_FLAGS_overlay := -@ |
| 17 | DTC_FLAGS_overlay_bad_phandle := -@ | 19 | DTC_FLAGS_overlay_bad_phandle := -@ |
| 20 | DTC_FLAGS_overlay_bad_symbol := -@ | ||
| 18 | DTC_FLAGS_overlay_base := -@ | 21 | DTC_FLAGS_overlay_base := -@ |
| 22 | |||
| 23 | endif | ||
| 24 | |||
| 25 | .PRECIOUS: \ | ||
| 26 | $(obj)/%.dtb.S \ | ||
| 27 | $(obj)/%.dtb | ||
diff --git a/drivers/of/unittest-data/overlay.dts b/drivers/of/unittest-data/overlay.dts index 6cd7e6a0c13e..60abf5b55cae 100644 --- a/drivers/of/unittest-data/overlay.dts +++ b/drivers/of/unittest-data/overlay.dts | |||
| @@ -25,7 +25,22 @@ | |||
| 25 | #size-cells = <1>; | 25 | #size-cells = <1>; |
| 26 | status = "ok"; | 26 | status = "ok"; |
| 27 | 27 | ||
| 28 | ride@200 { | 28 | ride@100 { |
| 29 | #address-cells = <1>; | ||
| 30 | #size-cells = <1>; | ||
| 31 | |||
| 32 | track@30 { | ||
| 33 | incline-up = < 48 32 16 >; | ||
| 34 | }; | ||
| 35 | |||
| 36 | track@40 { | ||
| 37 | incline-up = < 47 31 15 >; | ||
| 38 | }; | ||
| 39 | }; | ||
| 40 | |||
| 41 | ride_200: ride@200 { | ||
| 42 | #address-cells = <1>; | ||
| 43 | #size-cells = <1>; | ||
| 29 | compatible = "ot,ferris-wheel"; | 44 | compatible = "ot,ferris-wheel"; |
| 30 | reg = < 0x00000200 0x100 >; | 45 | reg = < 0x00000200 0x100 >; |
| 31 | hvac-provider = < &hvac_2 >; | 46 | hvac-provider = < &hvac_2 >; |
| @@ -36,6 +51,14 @@ | |||
| 36 | spin-rph = < 30 >; | 51 | spin-rph = < 30 >; |
| 37 | gondolas = < 16 >; | 52 | gondolas = < 16 >; |
| 38 | gondola-capacity = < 6 >; | 53 | gondola-capacity = < 6 >; |
| 54 | |||
| 55 | ride_200_left: track@10 { | ||
| 56 | reg = < 0x00000010 0x10 >; | ||
| 57 | }; | ||
| 58 | |||
| 59 | ride_200_right: track@20 { | ||
| 60 | reg = < 0x00000020 0x10 >; | ||
| 61 | }; | ||
| 39 | }; | 62 | }; |
| 40 | }; | 63 | }; |
| 41 | }; | 64 | }; |
diff --git a/drivers/of/unittest-data/overlay_bad_symbol.dts b/drivers/of/unittest-data/overlay_bad_symbol.dts new file mode 100644 index 000000000000..09261cb9a67e --- /dev/null +++ b/drivers/of/unittest-data/overlay_bad_symbol.dts | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | /dts-v1/; | ||
| 2 | /plugin/; | ||
| 3 | |||
| 4 | / { | ||
| 5 | |||
| 6 | fragment@0 { | ||
| 7 | target = <&electric_1>; | ||
| 8 | |||
| 9 | __overlay__ { | ||
| 10 | |||
| 11 | // This label should cause an error when the overlay | ||
| 12 | // is applied. There is already a symbol hvac_1 | ||
| 13 | // in the base tree | ||
| 14 | hvac_1: hvac-medium-2 { | ||
| 15 | compatible = "ot,hvac-medium"; | ||
| 16 | heat-range = < 50 75 >; | ||
| 17 | cool-range = < 60 80 >; | ||
| 18 | }; | ||
| 19 | |||
| 20 | }; | ||
| 21 | }; | ||
| 22 | }; | ||
diff --git a/drivers/of/unittest-data/overlay_base.dts b/drivers/of/unittest-data/overlay_base.dts index 5566b27fb61a..453d0bd83320 100644 --- a/drivers/of/unittest-data/overlay_base.dts +++ b/drivers/of/unittest-data/overlay_base.dts | |||
| @@ -44,6 +44,8 @@ | |||
| 44 | orientation = < 127 >; | 44 | orientation = < 127 >; |
| 45 | 45 | ||
| 46 | ride@100 { | 46 | ride@100 { |
| 47 | #address-cells = <1>; | ||
| 48 | #size-cells = <1>; | ||
| 47 | compatible = "ot,roller-coaster"; | 49 | compatible = "ot,roller-coaster"; |
| 48 | reg = < 0x00000100 0x100 >; | 50 | reg = < 0x00000100 0x100 >; |
| 49 | hvac-provider = < &hvac_1 >; | 51 | hvac-provider = < &hvac_1 >; |
| @@ -53,6 +55,15 @@ | |||
| 53 | spin-controller = < &spin_ctrl_2 5 &spin_ctrl_2 7 >; | 55 | spin-controller = < &spin_ctrl_2 5 &spin_ctrl_2 7 >; |
| 54 | spin-controller-names = "track_1", "track_2"; | 56 | spin-controller-names = "track_1", "track_2"; |
| 55 | queues = < 2 >; | 57 | queues = < 2 >; |
| 58 | |||
| 59 | track@30 { | ||
| 60 | reg = < 0x00000030 0x10 >; | ||
| 61 | }; | ||
| 62 | |||
| 63 | track@40 { | ||
| 64 | reg = < 0x00000040 0x10 >; | ||
| 65 | }; | ||
| 66 | |||
| 56 | }; | 67 | }; |
| 57 | }; | 68 | }; |
| 58 | 69 | ||
diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c index 0959e8cc8814..29a35cb1da64 100644 --- a/drivers/of/unittest.c +++ b/drivers/of/unittest.c | |||
| @@ -1994,6 +1994,8 @@ out: | |||
| 1994 | static inline void __init of_unittest_overlay(void) { } | 1994 | static inline void __init of_unittest_overlay(void) { } |
| 1995 | #endif | 1995 | #endif |
| 1996 | 1996 | ||
| 1997 | #ifdef CONFIG_OF_OVERLAY | ||
| 1998 | |||
| 1997 | /* | 1999 | /* |
| 1998 | * __dtb_ot_begin[] and __dtb_ot_end[] are created by cmd_dt_S_dtb | 2000 | * __dtb_ot_begin[] and __dtb_ot_end[] are created by cmd_dt_S_dtb |
| 1999 | * in scripts/Makefile.lib | 2001 | * in scripts/Makefile.lib |
| @@ -2021,14 +2023,14 @@ struct overlay_info { | |||
| 2021 | OVERLAY_INFO_EXTERN(overlay_base); | 2023 | OVERLAY_INFO_EXTERN(overlay_base); |
| 2022 | OVERLAY_INFO_EXTERN(overlay); | 2024 | OVERLAY_INFO_EXTERN(overlay); |
| 2023 | OVERLAY_INFO_EXTERN(overlay_bad_phandle); | 2025 | OVERLAY_INFO_EXTERN(overlay_bad_phandle); |
| 2024 | 2026 | OVERLAY_INFO_EXTERN(overlay_bad_symbol); | |
| 2025 | #ifdef CONFIG_OF_OVERLAY | ||
| 2026 | 2027 | ||
| 2027 | /* order of entries is hard-coded into users of overlays[] */ | 2028 | /* order of entries is hard-coded into users of overlays[] */ |
| 2028 | static struct overlay_info overlays[] = { | 2029 | static struct overlay_info overlays[] = { |
| 2029 | OVERLAY_INFO(overlay_base, -9999), | 2030 | OVERLAY_INFO(overlay_base, -9999), |
| 2030 | OVERLAY_INFO(overlay, 0), | 2031 | OVERLAY_INFO(overlay, 0), |
| 2031 | OVERLAY_INFO(overlay_bad_phandle, -EINVAL), | 2032 | OVERLAY_INFO(overlay_bad_phandle, -EINVAL), |
| 2033 | OVERLAY_INFO(overlay_bad_symbol, -EINVAL), | ||
| 2032 | {} | 2034 | {} |
| 2033 | }; | 2035 | }; |
| 2034 | 2036 | ||
| @@ -2300,6 +2302,10 @@ static __init void of_unittest_overlay_high_level(void) | |||
| 2300 | 2302 | ||
| 2301 | unittest(overlay_data_add(2), | 2303 | unittest(overlay_data_add(2), |
| 2302 | "Adding overlay 'overlay_bad_phandle' failed\n"); | 2304 | "Adding overlay 'overlay_bad_phandle' failed\n"); |
| 2305 | |||
| 2306 | unittest(overlay_data_add(3), | ||
| 2307 | "Adding overlay 'overlay_bad_symbol' failed\n"); | ||
| 2308 | |||
| 2303 | return; | 2309 | return; |
| 2304 | 2310 | ||
| 2305 | err_unlock: | 2311 | err_unlock: |
