@@ -1153,6 +1153,10 @@ static int rp1_pio_probe(struct platform_device *pdev)
1153
1153
return - EINVAL ;
1154
1154
}
1155
1155
1156
+ pdev -> id = of_alias_get_id (pdev -> dev .of_node , "pio" );
1157
+ if (pdev -> id < 0 )
1158
+ return dev_err_probe (dev , pdev -> id , "alias is missing\n" );
1159
+
1156
1160
fw = devm_rp1_firmware_get (dev , dev -> of_node );
1157
1161
if (IS_ERR (fw ))
1158
1162
return PTR_ERR (fw );
@@ -1185,44 +1189,39 @@ static int rp1_pio_probe(struct platform_device *pdev)
1185
1189
goto out_err ;
1186
1190
}
1187
1191
1188
- cdev_init (& pio -> cdev , & rp1_pio_fops );
1189
- ret = cdev_add (& pio -> cdev , pio -> dev_num , 1 );
1190
- if (ret ) {
1191
- dev_err (dev , "cdev_add failed (err %d)\n" , ret );
1192
- goto out_unregister ;
1193
- }
1194
-
1195
1192
pio -> dev_class = class_create (DRIVER_NAME );
1196
1193
if (IS_ERR (pio -> dev_class )) {
1197
1194
ret = PTR_ERR (pio -> dev_class );
1198
1195
dev_err (dev , "class_create failed (err %d)\n" , ret );
1199
- goto out_cdev_del ;
1196
+ goto out_unregister ;
1200
1197
}
1201
- pdev -> id = of_alias_get_id (pdev -> dev .of_node , "pio" );
1202
- if (pdev -> id < 0 ) {
1203
- dev_err (dev , "alias is missing\n" );
1204
- return - EINVAL ;
1198
+
1199
+ cdev_init (& pio -> cdev , & rp1_pio_fops );
1200
+ ret = cdev_add (& pio -> cdev , pio -> dev_num , 1 );
1201
+ if (ret ) {
1202
+ dev_err (dev , "cdev_add failed (err %d)\n" , ret );
1205
1203
goto out_class_destroy ;
1206
1204
}
1205
+
1207
1206
sprintf (dev_name , "pio%d" , pdev -> id );
1208
1207
cdev = device_create (pio -> dev_class , NULL , pio -> dev_num , NULL , dev_name );
1209
1208
if (IS_ERR (cdev )) {
1210
1209
ret = PTR_ERR (cdev );
1211
1210
dev_err (dev , "%s: device_create failed (err %d)\n" , __func__ , ret );
1212
- goto out_class_destroy ;
1211
+ goto out_cdev_del ;
1213
1212
}
1214
1213
1215
1214
g_pio = pio ;
1216
1215
1217
1216
dev_info (dev , "Created instance as %s\n" , dev_name );
1218
1217
return 0 ;
1219
1218
1220
- out_class_destroy :
1221
- class_destroy (pio -> dev_class );
1222
-
1223
1219
out_cdev_del :
1224
1220
cdev_del (& pio -> cdev );
1225
1221
1222
+ out_class_destroy :
1223
+ class_destroy (pio -> dev_class );
1224
+
1226
1225
out_unregister :
1227
1226
unregister_chrdev_region (pio -> dev_num , 1 );
1228
1227
0 commit comments