Lines Matching refs:dice

73 static int check_clock_caps(struct snd_dice *dice)  in check_clock_caps()  argument
79 if (dice->clock_caps > 0) { in check_clock_caps()
80 err = snd_dice_transaction_read_global(dice, in check_clock_caps()
85 dice->clock_caps = be32_to_cpu(value); in check_clock_caps()
88 dice->clock_caps = CLOCK_CAP_RATE_44100 | in check_clock_caps()
97 static void dice_card_strings(struct snd_dice *dice) in dice_card_strings() argument
99 struct snd_card *card = dice->card; in dice_card_strings()
100 struct fw_device *dev = fw_parent_device(dice->unit); in dice_card_strings()
109 err = snd_dice_transaction_read_global(dice, GLOBAL_NICK_NAME, in dice_card_strings()
123 fw_csr_string(dice->unit->directory, CSR_MODEL, model, sizeof(model)); in dice_card_strings()
127 dev_name(&dice->unit->device), 100 << dev->max_speed); in dice_card_strings()
134 struct snd_dice *dice = card->private_data; in dice_card_free() local
136 snd_dice_stream_destroy_duplex(dice); in dice_card_free()
137 snd_dice_transaction_destroy(dice); in dice_card_free()
139 mutex_destroy(&dice->mutex); in dice_card_free()
140 fw_unit_put(dice->unit); in dice_card_free()
146 struct snd_dice *dice; in dice_probe() local
156 err = snd_card_new(&unit->device, -1, NULL, THIS_MODULE, sizeof(*dice), &card); in dice_probe()
161 dice = card->private_data; in dice_probe()
162 dice->unit = fw_unit_get(unit); in dice_probe()
163 dev_set_drvdata(&unit->device, dice); in dice_probe()
164 dice->card = card; in dice_probe()
177 dice->disable_double_pcm_frames = true; in dice_probe()
179 spin_lock_init(&dice->lock); in dice_probe()
180 mutex_init(&dice->mutex); in dice_probe()
181 init_completion(&dice->clock_accepted); in dice_probe()
182 init_waitqueue_head(&dice->hwdep_wait); in dice_probe()
184 err = snd_dice_transaction_init(dice); in dice_probe()
188 err = check_clock_caps(dice); in dice_probe()
192 dice_card_strings(dice); in dice_probe()
194 err = detect_formats(dice); in dice_probe()
198 err = snd_dice_stream_init_duplex(dice); in dice_probe()
202 snd_dice_create_proc(dice); in dice_probe()
204 err = snd_dice_create_pcm(dice); in dice_probe()
208 err = snd_dice_create_midi(dice); in dice_probe()
212 err = snd_dice_create_hwdep(dice); in dice_probe()
228 struct snd_dice *dice = dev_get_drvdata(&unit->device); in dice_remove() local
231 snd_card_free(dice->card); in dice_remove()
236 struct snd_dice *dice = dev_get_drvdata(&unit->device); in dice_bus_reset() local
239 snd_dice_transaction_reinit(dice); in dice_bus_reset()
241 mutex_lock(&dice->mutex); in dice_bus_reset()
242 snd_dice_stream_update_duplex(dice); in dice_bus_reset()
243 mutex_unlock(&dice->mutex); in dice_bus_reset()