smmu_v3_slaveifc.cc (14063:fc05dc40f6d1) smmu_v3_slaveifc.cc (14064:870553bad072)
1/*
2 * Copyright (c) 2019 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 239 unchanged lines hidden (view full) ---

248{
249 if (deviceNeedsRetry && !sendDeviceRetryEvent.scheduled()) {
250 DPRINTF(SMMUv3, "sched slave retry\n");
251 deviceNeedsRetry = false;
252 schedule(sendDeviceRetryEvent, nextCycle());
253 }
254}
255
1/*
2 * Copyright (c) 2019 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 239 unchanged lines hidden (view full) ---

248{
249 if (deviceNeedsRetry && !sendDeviceRetryEvent.scheduled()) {
250 DPRINTF(SMMUv3, "sched slave retry\n");
251 deviceNeedsRetry = false;
252 schedule(sendDeviceRetryEvent, nextCycle());
253 }
254}
255
256DrainState
257SMMUv3SlaveInterface::drain()
258{
259 // Wait until all SMMU translations are completed
260 if (xlateSlotsRemaining < params()->xlate_slots) {
261 return DrainState::Draining;
262 }
263 return DrainState::Drained;
264}
265
256SMMUv3SlaveInterface*
257SMMUv3SlaveInterfaceParams::create()
258{
259 return new SMMUv3SlaveInterface(this);
260}
266SMMUv3SlaveInterface*
267SMMUv3SlaveInterfaceParams::create()
268{
269 return new SMMUv3SlaveInterface(this);
270}