Lines Matching defs:stream_map

161 	int (*invalidate_tlb)(struct apple_dart_stream_map *stream_map);
292 #define for_each_stream_map(i, base, stream_map) \
293 for (i = 0, stream_map = &(base)->stream_maps[0]; \
294 i < MAX_DARTS_PER_DEVICE && stream_map->dart; \
295 stream_map = &(base)->stream_maps[++i])
306 apple_dart_hw_enable_translation(struct apple_dart_stream_map *stream_map)
308 struct apple_dart *dart = stream_map->dart;
311 for_each_set_bit(sid, stream_map->sidmap, dart->num_streams)
315 static void apple_dart_hw_disable_dma(struct apple_dart_stream_map *stream_map)
317 struct apple_dart *dart = stream_map->dart;
320 for_each_set_bit(sid, stream_map->sidmap, dart->num_streams)
325 apple_dart_hw_enable_bypass(struct apple_dart_stream_map *stream_map)
327 struct apple_dart *dart = stream_map->dart;
330 WARN_ON(!stream_map->dart->supports_bypass);
331 for_each_set_bit(sid, stream_map->sidmap, dart->num_streams)
336 static void apple_dart_hw_set_ttbr(struct apple_dart_stream_map *stream_map,
339 struct apple_dart *dart = stream_map->dart;
343 for_each_set_bit(sid, stream_map->sidmap, dart->num_streams)
349 static void apple_dart_hw_clear_ttbr(struct apple_dart_stream_map *stream_map,
352 struct apple_dart *dart = stream_map->dart;
355 for_each_set_bit(sid, stream_map->sidmap, dart->num_streams)
360 apple_dart_hw_clear_all_ttbrs(struct apple_dart_stream_map *stream_map)
364 for (i = 0; i < stream_map->dart->hw->ttbr_count; ++i)
365 apple_dart_hw_clear_ttbr(stream_map, i);
369 apple_dart_t8020_hw_stream_command(struct apple_dart_stream_map *stream_map,
376 spin_lock_irqsave(&stream_map->dart->lock, flags);
378 writel(stream_map->sidmap[0], stream_map->dart->regs + DART_T8020_STREAM_SELECT);
379 writel(command, stream_map->dart->regs + DART_T8020_STREAM_COMMAND);
382 stream_map->dart->regs + DART_T8020_STREAM_COMMAND, command_reg,
386 spin_unlock_irqrestore(&stream_map->dart->lock, flags);
389 dev_err(stream_map->dart->dev,
391 command, stream_map->sidmap[0]);
399 apple_dart_t8110_hw_tlb_command(struct apple_dart_stream_map *stream_map,
402 struct apple_dart *dart = stream_map->dart;
409 for_each_set_bit(sid, stream_map->sidmap, dart->num_streams) {
427 dev_err(stream_map->dart->dev,
437 apple_dart_t8020_hw_invalidate_tlb(struct apple_dart_stream_map *stream_map)
440 stream_map, DART_T8020_STREAM_COMMAND_INVALIDATE);
444 apple_dart_t8110_hw_invalidate_tlb(struct apple_dart_stream_map *stream_map)
447 stream_map, DART_T8110_TLB_CMD_OP_FLUSH_SID);
453 struct apple_dart_stream_map stream_map;
463 stream_map.dart = dart;
464 bitmap_zero(stream_map.sidmap, DART_MAX_STREAMS);
465 bitmap_set(stream_map.sidmap, 0, dart->num_streams);
466 apple_dart_hw_disable_dma(&stream_map);
467 apple_dart_hw_clear_all_ttbrs(&stream_map);
479 return dart->hw->invalidate_tlb(&stream_map);
486 struct apple_dart_stream_map stream_map;
489 stream_map.dart = domain_stream_map->dart;
491 for (j = 0; j < BITS_TO_LONGS(stream_map.dart->num_streams); j++)
492 stream_map.sidmap[j] = atomic_long_read(&domain_stream_map->sidmap[j]);
494 stream_map.dart->hw->invalidate_tlb(&stream_map);
555 struct apple_dart_stream_map *stream_map)
562 apple_dart_hw_set_ttbr(stream_map, i,
564 for (; i < stream_map->dart->hw->ttbr_count; ++i)
565 apple_dart_hw_clear_ttbr(stream_map, i);
567 apple_dart_hw_enable_translation(stream_map);
568 stream_map->dart->hw->invalidate_tlb(stream_map);
658 struct apple_dart_stream_map *stream_map;
679 for_each_stream_map(i, cfg, stream_map)
680 apple_dart_setup_translation(dart_domain, stream_map);
683 for_each_stream_map(i, cfg, stream_map)
684 apple_dart_hw_disable_dma(stream_map);
687 for_each_stream_map(i, cfg, stream_map)
688 apple_dart_hw_enable_bypass(stream_map);
698 struct apple_dart_stream_map *stream_map;
704 for_each_stream_map(i, cfg, stream_map)
706 dev, stream_map->dart->dev,
801 struct apple_dart_stream_map *stream_map;
806 for_each_stream_map(i, group_master_cfg, stream_map)
807 for_each_set_bit(sid, stream_map->sidmap, stream_map->dart->num_streams)
808 stream_map->dart->sid2group[sid] = NULL;
841 struct apple_dart_stream_map *stream_map;
848 for_each_stream_map(i, cfg, stream_map) {
849 for_each_set_bit(sid, stream_map->sidmap, stream_map->dart->num_streams) {
851 stream_map->dart->sid2group[sid];
901 for_each_stream_map(i, cfg, stream_map)
902 for_each_set_bit(sid, stream_map->sidmap, stream_map->dart->num_streams)
903 stream_map->dart->sid2group[sid] = group;