/* Insert W at the top of the stacking list */ void insert_in_stacking_list_above_all (Lisp_Window *w) { return_if_fail (!WINDOW_IS_GONE_P (w)); return_if_fail (!window_in_stacking_list_p (w)); w->above = 0; w->below = highest_window; if (highest_window != 0) highest_window->above = w; highest_window = w; if (lowest_window == 0) lowest_window = w; assert_constraints (w); }
/* Insert W immediately below X */ void insert_in_stacking_list_below (Lisp_Window *w, Lisp_Window *x) { return_if_fail (!WINDOW_IS_GONE_P (w) && !WINDOW_IS_GONE_P (x)); return_if_fail (!window_in_stacking_list_p (w)); return_if_fail (window_in_stacking_list_p (x)); if (x->below != 0) x->below->above = w; w->below = x->below; x->below = w; w->above = x; if (lowest_window == x) lowest_window = w; assert_constraints (w); }
/* Remove window W from the stacking list */ void remove_from_stacking_list (Lisp_Window *w) { return_if_fail (!WINDOW_IS_GONE_P (w)); return_if_fail (window_in_stacking_list_p (w)); /* divert the links around W */ if (w->above != 0) w->above->below = w->below; if (w->below != 0) w->below->above = w->above; /* Fix the end points */ if (lowest_window == w) lowest_window = w->above; if (highest_window == w) highest_window = w->below; w->above = w->below = 0; assert_constraints (w); }
static int pxa2xx_ac97_probe(struct device *dev) { snd_card_t *card; ac97_bus_t *ac97_bus; ac97_template_t ac97_template; int ret; struct platform_device *pdev = to_platform_device(dev); ret = -ENOMEM; card = snd_card_new(SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1, THIS_MODULE, 0); if (!card) goto err; card->dev = dev; strncpy(card->driver, dev->driver->name, sizeof(card->driver)); ret = pxa2xx_pcm_new(card, &pxa2xx_ac97_pcm_client, &pxa2xx_ac97_pcm); if (ret) goto err; ret = request_irq(IRQ_AC97, pxa2xx_ac97_irq, 0, "AC97", NULL); if (ret < 0) goto err; pxa_gpio_mode(GPIO31_SYNC_AC97_MD); pxa_gpio_mode(GPIO30_SDATA_OUT_AC97_MD); pxa_gpio_mode(GPIO28_BITCLK_AC97_MD); pxa_gpio_mode(GPIO29_SDATA_IN_AC97_MD); #ifdef CONFIG_PXA27x /* Use GPIO 113 as AC97 Reset on Bulverde */ pxa_gpio_mode(113 | GPIO_ALT_FN_2_OUT); #endif pxa_set_cken(CKEN2_AC97, 1); ret = snd_ac97_bus(card, 0, &pxa2xx_ac97_ops, NULL, &ac97_bus); if (ret) goto err; memset(&ac97_template, 0, sizeof(ac97_template)); ret = snd_ac97_mixer(ac97_bus, &ac97_template, &pxa2xx_ac97_ac97); if (ret) goto err; snprintf(card->shortname, sizeof(card->shortname), "%s", snd_ac97_get_short_name(pxa2xx_ac97_ac97)); snprintf(card->longname, sizeof(card->longname), "%s (%s)", dev->driver->name, card->mixername); snd_card_set_pm_callback(card, pxa2xx_ac97_do_suspend, pxa2xx_ac97_do_resume, NULL); ret = snd_card_register(card); #if defined(CONFIG_MACH_MAINSTONE) && defined(CONFIG_DPM) pdev->dev.constraints = &pxa_ac97_constraints; assert_constraints(pdev->dev.constraints); #endif /* CONFIG_MACH_MAINSTONE && CONFIG_DPM */ if (ret == 0) { dev_set_drvdata(dev, card); return 0; } err: if (card) snd_card_free(card); if (CKEN & CKEN2_AC97) { GCR |= GCR_ACLINK_OFF; free_irq(IRQ_AC97, NULL); pxa_set_cken(CKEN2_AC97, 0); } return ret; }