Skip to content

Commit f1fbab4

Browse files
alyssarosenzweigjannau
authored andcommitted
iommu/dart: Allow locked DARTs to probe
Instead of bailing from reset() if the DART is locked, simply skip the reset for locked DARTs. Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
1 parent 1625c0a commit f1fbab4

1 file changed

Lines changed: 5 additions & 11 deletions

File tree

drivers/iommu/apple-dart.c

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -452,17 +452,9 @@ apple_dart_t8110_hw_invalidate_tlb(struct apple_dart_stream_map *stream_map)
452452

453453
static int apple_dart_hw_reset(struct apple_dart *dart)
454454
{
455-
u32 config;
456455
struct apple_dart_stream_map stream_map;
457456
int i;
458457

459-
config = readl(dart->regs + dart->hw->lock);
460-
if (config & dart->hw->lock_bit) {
461-
dev_err(dart->dev, "DART is locked down until reboot: %08x\n",
462-
config);
463-
return -EINVAL;
464-
}
465-
466458
stream_map.dart = dart;
467459
bitmap_zero(stream_map.sidmap, DART_MAX_STREAMS);
468460
bitmap_set(stream_map.sidmap, 0, dart->num_streams);
@@ -1151,9 +1143,11 @@ static int apple_dart_probe(struct platform_device *pdev)
11511143
}
11521144

11531145
dart->locked = apple_dart_is_locked(dart);
1154-
ret = apple_dart_hw_reset(dart);
1155-
if (ret)
1156-
goto err_clk_disable;
1146+
if (!dart->locked) {
1147+
ret = apple_dart_hw_reset(dart);
1148+
if (ret)
1149+
goto err_clk_disable;
1150+
}
11571151

11581152
ret = request_irq(dart->irq, dart->hw->irq_handler, IRQF_SHARED,
11591153
"apple-dart fault handler", dart);

0 commit comments

Comments
 (0)