mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-03 17:40:04 +00:00
iommu/apple-dart: Write to all DART_T8020_STREAM_SELECT
We're about to add support for a DART variant that use more than 16 streams and requires writing to two separate stream select registers when issuing TLB flushes. Acked-by: Hector Martin <marcan@marcan.st> Signed-off-by: Sven Peter <sven@svenpeter.dev> Link: https://lore.kernel.org/r/20231126151701.16534-3-sven@svenpeter.dev Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
a08bd8df97
commit
c58a17a997
1 changed files with 4 additions and 2 deletions
|
@ -368,12 +368,14 @@ apple_dart_t8020_hw_stream_command(struct apple_dart_stream_map *stream_map,
|
|||
u32 command)
|
||||
{
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
int ret, i;
|
||||
u32 command_reg;
|
||||
|
||||
spin_lock_irqsave(&stream_map->dart->lock, flags);
|
||||
|
||||
writel(stream_map->sidmap[0], stream_map->dart->regs + DART_T8020_STREAM_SELECT);
|
||||
for (i = 0; i < BITS_TO_U32(stream_map->dart->num_streams); i++)
|
||||
writel(stream_map->sidmap[i],
|
||||
stream_map->dart->regs + DART_T8020_STREAM_SELECT + 4 * i);
|
||||
writel(command, stream_map->dart->regs + DART_T8020_STREAM_COMMAND);
|
||||
|
||||
ret = readl_poll_timeout_atomic(
|
||||
|
|
Loading…
Reference in a new issue