Example #1
0
static void buzzer_pwm_remove(struct device_t * dev)
{
	struct buzzer_t * buzzer = (struct buzzer_t *)dev->priv;
	struct buzzer_pwm_pdata_t * pdat = (struct buzzer_pwm_pdata_t *)buzzer->priv;

	if(buzzer && unregister_buzzer(buzzer))
	{
		timer_cancel(&pdat->timer);
		queue_free(pdat->queue, iter_queue_node);

		free_device_name(buzzer->name);
		free(buzzer->priv);
		free(buzzer);
	}
}
Example #2
0
static bool_t buzzer_gpio_unregister_buzzer(struct resource_t * res)
{
	struct buzzer_gpio_pdata_t * pdat;
	struct buzzer_t * buzzer;
	char name[64];

	snprintf(name, sizeof(name), "%s.%d", res->name, res->id);

	buzzer = search_buzzer(name);
	if(!buzzer)
		return FALSE;
	pdat = (struct buzzer_gpio_pdata_t *)buzzer->priv;

	if(!unregister_buzzer(buzzer))
		return FALSE;

	timer_cancel(&pdat->timer);
	queue_free(pdat->beep, iteration_beep_param);
	free(buzzer->priv);
	free(buzzer->name);
	free(buzzer);
	return TRUE;
}