示例#1
0
static void keynote_release(void)
{
	spk_stop_serial_interrupt();
	if (synth_port)
		synth_release_region(synth_port, SYNTH_IO_EXTENT);
	synth_port = 0;
}
示例#2
0
static void dtpc_release(void)
{
	spk_stop_serial_interrupt();
	if (speakup_info.port_tts)
		synth_release_region(speakup_info.port_tts, SYNTH_IO_EXTENT);
	speakup_info.port_tts = 0;
}
示例#3
0
文件: synth.c 项目: 19Dan01/linux
void synth_release(void)
{
	struct var_t *var;
	unsigned long flags;

	if (synth == NULL)
		return;
	spin_lock_irqsave(&speakup_info.spinlock, flags);
	pr_info("releasing synth %s\n", synth->name);
	synth->alive = 0;
	del_timer(&thread_timer);
	spin_unlock_irqrestore(&speakup_info.spinlock, flags);
	if (synth->attributes.name)
		sysfs_remove_group(speakup_kobj, &(synth->attributes));
	for (var = synth->vars; var->var_id != MAXVARS; var++)
		speakup_unregister_var(var->var_id);
	spk_stop_serial_interrupt();
	synth->release();
	synth = NULL;
}