io_device.cc (8949:3fa1ee293096) io_device.cc (8975:7f36d4436074)
1/*
2 * Copyright (c) 2012 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

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

126 masterId(s->getMasterId(dev->name())),
127 pendingCount(0), actionInProgress(0), drainEvent(NULL),
128 backoffTime(0), minBackoffDelay(min_backoff),
129 maxBackoffDelay(max_backoff), inRetry(false), recvSnoops(recv_snoops),
130 backoffEvent(this)
131{ }
132
133bool
1/*
2 * Copyright (c) 2012 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

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

126 masterId(s->getMasterId(dev->name())),
127 pendingCount(0), actionInProgress(0), drainEvent(NULL),
128 backoffTime(0), minBackoffDelay(min_backoff),
129 maxBackoffDelay(max_backoff), inRetry(false), recvSnoops(recv_snoops),
130 backoffEvent(this)
131{ }
132
133bool
134DmaPort::recvTiming(PacketPtr pkt)
134DmaPort::recvTimingResp(PacketPtr pkt)
135{
135{
136 assert(pkt->isResponse());
137 if (pkt->wasNacked()) {
138 DPRINTF(DMA, "Received nacked %s addr %#x\n",
139 pkt->cmdString(), pkt->getAddr());
140
141 if (backoffTime < minBackoffDelay)
142 backoffTime = minBackoffDelay;
143 else if (backoffTime < maxBackoffDelay)
144 backoffTime <<= 1;

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

229DmaPort::recvRetry()
230{
231 assert(transmitList.size());
232 bool result = true;
233 do {
234 PacketPtr pkt = transmitList.front();
235 DPRINTF(DMA, "Retry on %s addr %#x\n",
236 pkt->cmdString(), pkt->getAddr());
136 if (pkt->wasNacked()) {
137 DPRINTF(DMA, "Received nacked %s addr %#x\n",
138 pkt->cmdString(), pkt->getAddr());
139
140 if (backoffTime < minBackoffDelay)
141 backoffTime = minBackoffDelay;
142 else if (backoffTime < maxBackoffDelay)
143 backoffTime <<= 1;

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

228DmaPort::recvRetry()
229{
230 assert(transmitList.size());
231 bool result = true;
232 do {
233 PacketPtr pkt = transmitList.front();
234 DPRINTF(DMA, "Retry on %s addr %#x\n",
235 pkt->cmdString(), pkt->getAddr());
237 result = sendTiming(pkt);
236 result = sendTimingReq(pkt);
238 if (result) {
239 DPRINTF(DMA, "-- Done\n");
240 transmitList.pop_front();
241 inRetry = false;
242 } else {
243 inRetry = true;
244 DPRINTF(DMA, "-- Failed, queued\n");
245 }

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

315 return;
316 }
317
318 DPRINTF(DMA, "Attempting to send %s addr %#x\n",
319 pkt->cmdString(), pkt->getAddr());
320
321 bool result;
322 do {
237 if (result) {
238 DPRINTF(DMA, "-- Done\n");
239 transmitList.pop_front();
240 inRetry = false;
241 } else {
242 inRetry = true;
243 DPRINTF(DMA, "-- Failed, queued\n");
244 }

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

314 return;
315 }
316
317 DPRINTF(DMA, "Attempting to send %s addr %#x\n",
318 pkt->cmdString(), pkt->getAddr());
319
320 bool result;
321 do {
323 result = sendTiming(pkt);
322 result = sendTimingReq(pkt);
324 if (result) {
325 transmitList.pop_front();
326 DPRINTF(DMA, "-- Done\n");
327 } else {
328 inRetry = true;
329 DPRINTF(DMA, "-- Failed: queued\n");
330 }
331 } while (result && !backoffTime && transmitList.size());

--- 60 unchanged lines hidden ---
323 if (result) {
324 transmitList.pop_front();
325 DPRINTF(DMA, "-- Done\n");
326 } else {
327 inRetry = true;
328 DPRINTF(DMA, "-- Failed: queued\n");
329 }
330 } while (result && !backoffTime && transmitList.size());

--- 60 unchanged lines hidden ---