File tree Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Expand file tree Collapse file tree 1 file changed +6
-0
lines changed Original file line number Diff line number Diff line change @@ -230,6 +230,7 @@ int snd_tscm_transaction_register(struct snd_tscm *tscm)
230
230
return err ;
231
231
error :
232
232
fw_core_remove_address_handler (& tscm -> async_handler );
233
+ tscm -> async_handler .callback_data = NULL ;
233
234
return err ;
234
235
}
235
236
@@ -276,6 +277,9 @@ void snd_tscm_transaction_unregister(struct snd_tscm *tscm)
276
277
__be32 reg ;
277
278
unsigned int i ;
278
279
280
+ if (tscm -> async_handler .callback_data == NULL )
281
+ return ;
282
+
279
283
/* Turn off FireWire LED. */
280
284
reg = cpu_to_be32 (0x0000008e );
281
285
snd_fw_transaction (tscm -> unit , TCODE_WRITE_QUADLET_REQUEST ,
@@ -297,6 +301,8 @@ void snd_tscm_transaction_unregister(struct snd_tscm *tscm)
297
301
& reg , sizeof (reg ), 0 );
298
302
299
303
fw_core_remove_address_handler (& tscm -> async_handler );
304
+ tscm -> async_handler .callback_data = NULL ;
305
+
300
306
for (i = 0 ; i < TSCM_MIDI_OUT_PORT_MAX ; i ++ )
301
307
snd_fw_async_midi_port_destroy (& tscm -> out_ports [i ]);
302
308
}
You can’t perform that action at this time.
0 commit comments