Changeset 63 for trunk/src/os2ahci/ctxhook.c
- Timestamp:
- Dec 18, 2010, 3:10:02 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/os2ahci/ctxhook.c
r13 r63 120 120 ccs = (int) ((readl(port_mmio + PORT_CMD) >> 8) & 0x0f); 121 121 122 122 for (iorb = ai->ports[p].iorb_queue.root; iorb != NULL; iorb = next) { 123 123 ADD_WORKSPACE _far *aws = add_workspace(iorb); 124 124 next = iorb->pNxtIORB; 125 125 126 126 if (aws->queued_hw) { 127 if (ai->ports[p].ncq_cmds != 0) {127 if (ai->ports[p].ncq_cmds & (1UL << aws->cmd_slot)) { 128 128 /* NCQ commands active; force non-NCQ mode and trigger port reset */ 129 ai->ports[p].ncq_cmds &= ~(1UL << aws->cmd_slot); 129 130 aws->no_ncq = 1; 130 131 need_reset = 1; 131 132 } else if (aws->cmd_slot == ccs) { 132 133 /* this is the non-NCQ comand that failed */ 134 ai->ports[p].reg_cmds &= ~(1UL << aws->cmd_slot); 133 135 problem_iorb = iorb; 134 136 } 135 137 iorb_requeue(iorb); 136 137 /* remove requeued command from the issued command bitmaps */138 ai->ports[p].ncq_cmds &= ~(1UL << p);139 ai->ports[p].reg_cmds &= ~(1UL << p);140 138 } 141 139 }
Note:
See TracChangeset
for help on using the changeset viewer.