@@ -815,7 +815,7 @@ static int scpi_init_versions(struct scpi_drvinfo *info)
815815 info -> firmware_version = le32_to_cpu (caps .platform_version );
816816 }
817817 /* Ignore error if not implemented */
818- if (scpi_info -> is_legacy && ret == - EOPNOTSUPP )
818+ if (info -> is_legacy && ret == - EOPNOTSUPP )
819819 return 0 ;
820820
821821 return ret ;
@@ -913,33 +913,34 @@ static int scpi_probe(struct platform_device *pdev)
913913 struct resource res ;
914914 struct device * dev = & pdev -> dev ;
915915 struct device_node * np = dev -> of_node ;
916+ struct scpi_drvinfo * scpi_drvinfo ;
916917
917- scpi_info = devm_kzalloc (dev , sizeof (* scpi_info ), GFP_KERNEL );
918- if (!scpi_info )
918+ scpi_drvinfo = devm_kzalloc (dev , sizeof (* scpi_drvinfo ), GFP_KERNEL );
919+ if (!scpi_drvinfo )
919920 return - ENOMEM ;
920921
921922 if (of_match_device (legacy_scpi_of_match , & pdev -> dev ))
922- scpi_info -> is_legacy = true;
923+ scpi_drvinfo -> is_legacy = true;
923924
924925 count = of_count_phandle_with_args (np , "mboxes" , "#mbox-cells" );
925926 if (count < 0 ) {
926927 dev_err (dev , "no mboxes property in '%pOF'\n" , np );
927928 return - ENODEV ;
928929 }
929930
930- scpi_info -> channels = devm_kcalloc ( dev , count , sizeof ( struct scpi_chan ),
931- GFP_KERNEL );
932- if (!scpi_info -> channels )
931+ scpi_drvinfo -> channels =
932+ devm_kcalloc ( dev , count , sizeof ( struct scpi_chan ), GFP_KERNEL );
933+ if (!scpi_drvinfo -> channels )
933934 return - ENOMEM ;
934935
935- ret = devm_add_action (dev , scpi_free_channels , scpi_info );
936+ ret = devm_add_action (dev , scpi_free_channels , scpi_drvinfo );
936937 if (ret )
937938 return ret ;
938939
939- for (; scpi_info -> num_chans < count ; scpi_info -> num_chans ++ ) {
940+ for (; scpi_drvinfo -> num_chans < count ; scpi_drvinfo -> num_chans ++ ) {
940941 resource_size_t size ;
941- int idx = scpi_info -> num_chans ;
942- struct scpi_chan * pchan = scpi_info -> channels + idx ;
942+ int idx = scpi_drvinfo -> num_chans ;
943+ struct scpi_chan * pchan = scpi_drvinfo -> channels + idx ;
943944 struct mbox_client * cl = & pchan -> cl ;
944945 struct device_node * shmem = of_parse_phandle (np , "shmem" , idx );
945946
@@ -986,45 +987,53 @@ static int scpi_probe(struct platform_device *pdev)
986987 return ret ;
987988 }
988989
989- scpi_info -> commands = scpi_std_commands ;
990+ scpi_drvinfo -> commands = scpi_std_commands ;
990991
991- platform_set_drvdata (pdev , scpi_info );
992+ platform_set_drvdata (pdev , scpi_drvinfo );
992993
993- if (scpi_info -> is_legacy ) {
994+ if (scpi_drvinfo -> is_legacy ) {
994995 /* Replace with legacy variants */
995996 scpi_ops .clk_set_val = legacy_scpi_clk_set_val ;
996- scpi_info -> commands = scpi_legacy_commands ;
997+ scpi_drvinfo -> commands = scpi_legacy_commands ;
997998
998999 /* Fill priority bitmap */
9991000 for (idx = 0 ; idx < ARRAY_SIZE (legacy_hpriority_cmds ); idx ++ )
10001001 set_bit (legacy_hpriority_cmds [idx ],
1001- scpi_info -> cmd_priority );
1002+ scpi_drvinfo -> cmd_priority );
10021003 }
10031004
1004- ret = scpi_init_versions (scpi_info );
1005+ scpi_info = scpi_drvinfo ;
1006+
1007+ ret = scpi_init_versions (scpi_drvinfo );
10051008 if (ret ) {
10061009 dev_err (dev , "incorrect or no SCP firmware found\n" );
1010+ scpi_info = NULL ;
10071011 return ret ;
10081012 }
10091013
1010- if (scpi_info -> is_legacy && !scpi_info -> protocol_version &&
1011- !scpi_info -> firmware_version )
1014+ if (scpi_drvinfo -> is_legacy && !scpi_drvinfo -> protocol_version &&
1015+ !scpi_drvinfo -> firmware_version )
10121016 dev_info (dev , "SCP Protocol legacy pre-1.0 firmware\n" );
10131017 else
10141018 dev_info (dev , "SCP Protocol %lu.%lu Firmware %lu.%lu.%lu version\n" ,
10151019 FIELD_GET (PROTO_REV_MAJOR_MASK ,
1016- scpi_info -> protocol_version ),
1020+ scpi_drvinfo -> protocol_version ),
10171021 FIELD_GET (PROTO_REV_MINOR_MASK ,
1018- scpi_info -> protocol_version ),
1022+ scpi_drvinfo -> protocol_version ),
10191023 FIELD_GET (FW_REV_MAJOR_MASK ,
1020- scpi_info -> firmware_version ),
1024+ scpi_drvinfo -> firmware_version ),
10211025 FIELD_GET (FW_REV_MINOR_MASK ,
1022- scpi_info -> firmware_version ),
1026+ scpi_drvinfo -> firmware_version ),
10231027 FIELD_GET (FW_REV_PATCH_MASK ,
1024- scpi_info -> firmware_version ));
1025- scpi_info -> scpi_ops = & scpi_ops ;
1028+ scpi_drvinfo -> firmware_version ));
1029+
1030+ scpi_drvinfo -> scpi_ops = & scpi_ops ;
10261031
1027- return devm_of_platform_populate (dev );
1032+ ret = devm_of_platform_populate (dev );
1033+ if (ret )
1034+ scpi_info = NULL ;
1035+
1036+ return ret ;
10281037}
10291038
10301039static const struct of_device_id scpi_of_match [] = {
0 commit comments