Lines Matching defs:stream_map

162 	int (*invalidate_tlb)(struct apple_dart_stream_map *stream_map);
291 #define for_each_stream_map(i, base, stream_map) \
292 for (i = 0, stream_map = &(base)->stream_maps[0]; \
293 i < MAX_DARTS_PER_DEVICE && stream_map->dart; \
294 stream_map = &(base)->stream_maps[++i])
305 apple_dart_hw_enable_translation(struct apple_dart_stream_map *stream_map)
307 struct apple_dart *dart = stream_map->dart;
310 for_each_set_bit(sid, stream_map->sidmap, dart->num_streams)
314 static void apple_dart_hw_disable_dma(struct apple_dart_stream_map *stream_map)
316 struct apple_dart *dart = stream_map->dart;
319 for_each_set_bit(sid, stream_map->sidmap, dart->num_streams)
324 apple_dart_hw_enable_bypass(struct apple_dart_stream_map *stream_map)
326 struct apple_dart *dart = stream_map->dart;
329 WARN_ON(!stream_map->dart->supports_bypass);
330 for_each_set_bit(sid, stream_map->sidmap, dart->num_streams)
335 static void apple_dart_hw_set_ttbr(struct apple_dart_stream_map *stream_map,
338 struct apple_dart *dart = stream_map->dart;
342 for_each_set_bit(sid, stream_map->sidmap, dart->num_streams)
348 static void apple_dart_hw_clear_ttbr(struct apple_dart_stream_map *stream_map,
351 struct apple_dart *dart = stream_map->dart;
354 for_each_set_bit(sid, stream_map->sidmap, dart->num_streams)
359 apple_dart_hw_clear_all_ttbrs(struct apple_dart_stream_map *stream_map)
363 for (i = 0; i < stream_map->dart->hw->ttbr_count; ++i)
364 apple_dart_hw_clear_ttbr(stream_map, i);
368 apple_dart_t8020_hw_stream_command(struct apple_dart_stream_map *stream_map,
375 spin_lock_irqsave(&stream_map->dart->lock, flags);
377 for (i = 0; i < BITS_TO_U32(stream_map->dart->num_streams); i++)
378 writel(stream_map->sidmap[i],
379 stream_map->dart->regs + DART_T8020_STREAM_SELECT + 4 * i);
380 writel(command, stream_map->dart->regs + DART_T8020_STREAM_COMMAND);
383 stream_map->dart->regs + DART_T8020_STREAM_COMMAND, command_reg,
387 spin_unlock_irqrestore(&stream_map->dart->lock, flags);
390 dev_err(stream_map->dart->dev,
392 command, stream_map->sidmap[0]);
400 apple_dart_t8110_hw_tlb_command(struct apple_dart_stream_map *stream_map,
403 struct apple_dart *dart = stream_map->dart;
410 for_each_set_bit(sid, stream_map->sidmap, dart->num_streams) {
428 dev_err(stream_map->dart->dev,
438 apple_dart_t8020_hw_invalidate_tlb(struct apple_dart_stream_map *stream_map)
441 stream_map, DART_T8020_STREAM_COMMAND_INVALIDATE);
445 apple_dart_t8110_hw_invalidate_tlb(struct apple_dart_stream_map *stream_map)
448 stream_map, DART_T8110_TLB_CMD_OP_FLUSH_SID);
454 struct apple_dart_stream_map stream_map;
464 stream_map.dart = dart;
465 bitmap_zero(stream_map.sidmap, DART_MAX_STREAMS);
466 bitmap_set(stream_map.sidmap, 0, dart->num_streams);
467 apple_dart_hw_disable_dma(&stream_map);
468 apple_dart_hw_clear_all_ttbrs(&stream_map);
480 return dart->hw->invalidate_tlb(&stream_map);
487 struct apple_dart_stream_map stream_map;
490 stream_map.dart = domain_stream_map->dart;
492 for (j = 0; j < BITS_TO_LONGS(stream_map.dart->num_streams); j++)
493 stream_map.sidmap[j] = atomic_long_read(&domain_stream_map->sidmap[j]);
495 stream_map.dart->hw->invalidate_tlb(&stream_map);
557 struct apple_dart_stream_map *stream_map)
564 apple_dart_hw_set_ttbr(stream_map, i,
566 for (; i < stream_map->dart->hw->ttbr_count; ++i)
567 apple_dart_hw_clear_ttbr(stream_map, i);
569 apple_dart_hw_enable_translation(stream_map);
570 stream_map->dart->hw->invalidate_tlb(stream_map);
663 struct apple_dart_stream_map *stream_map;
675 for_each_stream_map(i, cfg, stream_map)
676 apple_dart_setup_translation(dart_domain, stream_map);
684 struct apple_dart_stream_map *stream_map;
690 for_each_stream_map(i, cfg, stream_map)
691 apple_dart_hw_enable_bypass(stream_map);
708 struct apple_dart_stream_map *stream_map;
711 for_each_stream_map(i, cfg, stream_map)
712 apple_dart_hw_disable_dma(stream_map);
728 struct apple_dart_stream_map *stream_map;
734 for_each_stream_map(i, cfg, stream_map)
736 dev, stream_map->dart->dev,
831 struct apple_dart_stream_map *stream_map;
836 for_each_stream_map(i, group_master_cfg, stream_map)
837 for_each_set_bit(sid, stream_map->sidmap, stream_map->dart->num_streams)
838 stream_map->dart->sid2group[sid] = NULL;
871 struct apple_dart_stream_map *stream_map;
878 for_each_stream_map(i, cfg, stream_map) {
879 for_each_set_bit(sid, stream_map->sidmap, stream_map->dart->num_streams) {
881 stream_map->dart->sid2group[sid];
931 for_each_stream_map(i, cfg, stream_map)
932 for_each_set_bit(sid, stream_map->sidmap, stream_map->dart->num_streams)
933 stream_map->dart->sid2group[sid] = group;