Lines Matching defs:xfer
52 struct ata_xfer *xfer)
65 memset(xfer, 0, sizeof(*xfer));
66 xfer->c_ata_c.r_command = PMPC_READ_PORT;
67 xfer->c_ata_c.r_features = reg;
68 xfer->c_ata_c.r_device = port;
69 xfer->c_ata_c.timeout = 3000; /* 3s */
70 xfer->c_ata_c.r_st_bmask = 0;
71 xfer->c_ata_c.r_st_pmask = WDCS_DRDY;
72 xfer->c_ata_c.flags = AT_LBA48 | AT_READREG | AT_WAIT;
76 (*atac->atac_bustype_ata->ata_exec_command)(drvp, xfer);
77 ata_wait_cmd(chp, xfer);
79 if (xfer->c_ata_c.flags & (AT_TIMEOU | AT_DF)) {
82 port, reg, xfer->c_ata_c.flags);
86 if (xfer->c_ata_c.flags & AT_ERROR) {
89 port, reg, xfer->c_ata_c.r_error);
94 *value = ((uint64_t)((xfer->c_ata_c.r_lba >> 24) & 0xffffff) << 40) |
95 ((uint64_t)((xfer->c_ata_c.r_count >> 8) & 0xff) << 32) |
96 ((uint64_t)((xfer->c_ata_c.r_lba >> 0) & 0xffffff) << 8) |
97 ((uint64_t)((xfer->c_ata_c.r_count >> 0) & 0xff) << 0);
106 struct ata_xfer *xfer)
111 ret = satapmp_read_8(chp, port, reg, &value64, xfer);
121 struct ata_xfer *xfer)
134 memset(xfer, 0, sizeof(*xfer));
135 xfer->c_ata_c.r_command = PMPC_WRITE_PORT;
136 xfer->c_ata_c.r_features = reg;
137 xfer->c_ata_c.r_device = port;
138 xfer->c_ata_c.r_lba = (((value >> 40) & 0xffffff) << 24) |
140 xfer->c_ata_c.r_count = (((value >> 32) & 0xff) << 8) |
142 xfer->c_ata_c.timeout = 3000; /* 3s */
143 xfer->c_ata_c.r_st_bmask = 0;
144 xfer->c_ata_c.r_st_pmask = WDCS_DRDY;
145 xfer->c_ata_c.flags = AT_LBA48 | AT_WAIT;
149 (*atac->atac_bustype_ata->ata_exec_command)(drvp, xfer);
150 ata_wait_cmd(chp, xfer);
152 if (xfer->c_ata_c.flags & (AT_TIMEOU | AT_DF)) {
155 port, reg, xfer->c_ata_c.flags);
159 if (xfer->c_ata_c.flags & AT_ERROR) {
162 port, reg, xfer->c_ata_c.r_error);
174 struct ata_xfer *xfer)
176 return satapmp_write_8(chp, port, reg, value, xfer);
185 struct ata_xfer *xfer)
194 if (satapmp_write(chp, port, PMP_PSCR_SControl, scontrol, xfer) != 0)
199 if (satapmp_write(chp, port, PMP_PSCR_SControl, scontrol, xfer) != 0)
207 xfer) != 0)
239 satapmp_rescan(struct ata_channel *chp, struct ata_xfer *xfer)
250 satapmp_reset_device_port(chp, i, xfer)
254 if (satapmp_write(chp, i, PMP_PSCR_SError, 0xffffffff, xfer)
273 struct ata_xfer *xfer;
275 xfer = ata_get_xfer(chp, false);
276 if (xfer == NULL) {
277 aprint_normal_dev(chp->atabus, "no available xfer\n");
283 if (satapmp_read(chp, PMP_PORT_CTL, PMP_GSCR_ID, &id, xfer) != 0 ||
284 satapmp_read(chp, PMP_PORT_CTL, PMP_GSCR_REV, &rev, xfer) != 0 ||
285 satapmp_read(chp, PMP_PORT_CTL, PMP_GSCR_INF, &inf, xfer) != 0) {
309 satapmp_rescan(chp, xfer);
313 ata_free_xfer(chp, xfer);