Lines Matching defs:chp
46 static int wdcprobe(struct wdc_channel *chp);
47 static int wdc_wait_for_ready(struct wdc_channel *chp);
49 static int __wdcwait_reset(struct wdc_channel *chp, int drv_mask);
55 __wdcwait_reset(struct wdc_channel *chp, int drv_mask)
62 WDC_WRITE_REG(chp, wd_sdh, WDSD_IBM); /* master */
64 st0 = WDC_READ_REG(chp, wd_status);
65 WDC_WRITE_REG(chp, wd_sdh, WDSD_IBM | 0x10); /* slave */
67 st1 = WDC_READ_REG(chp, wd_status);
113 wdcprobe(struct wdc_channel *chp)
122 WDC_WRITE_REG(chp, wd_sdh, WDSD_IBM);
124 st0 = WDC_READ_REG(chp, wd_status);
125 WDC_WRITE_REG(chp, wd_sdh, WDSD_IBM | 0x10);
127 st1 = WDC_READ_REG(chp, wd_status);
137 WDC_WRITE_REG(chp, wd_sdh, WDSD_IBM);
139 WDC_WRITE_CTLREG(chp, wd_aux_ctlr, WDCTL_RST | WDCTL_IDS);
141 WDC_WRITE_CTLREG(chp, wd_aux_ctlr, WDCTL_IDS);
143 (void) WDC_READ_REG(chp, wd_error);
144 WDC_WRITE_CTLREG(chp, wd_aux_ctlr, WDCTL_4BIT);
147 ret_value = __wdcwait_reset(chp, ret_value);
185 wdc_wait_for_ready(struct wdc_channel *chp)
190 if ((WDC_READ_REG(chp, wd_status) & (WDCS_BSY | WDCS_DRDY))
204 struct wdc_channel *chp = &sc->sc_channel;
211 *ptr++ = WDC_READ_DATA(chp);
222 struct wdc_channel *chp = &sc->sc_channel;
231 WDC_WRITE_REG(chp, wd_features, wd_c->r_features);
232 WDC_WRITE_REG(chp, wd_seccnt, wd_c->r_count);
233 WDC_WRITE_REG(chp, wd_sector, wd_c->r_sector);
234 WDC_WRITE_REG(chp, wd_cyl_lo, wd_c->r_cyl);
235 WDC_WRITE_REG(chp, wd_cyl_hi, wd_c->r_cyl >> 8);
236 WDC_WRITE_REG(chp, wd_sdh,
238 WDC_WRITE_REG(chp, wd_command, wd_c->r_command);
240 if (wdc_wait_for_ready(chp) != 0)
243 if (WDC_READ_REG(chp, wd_status) & WDCS_ERR) {
244 printf("wd%d: error %x\n", chp->compatchan,
245 WDC_READ_REG(chp, wd_error));
258 struct wdc_channel *chp = &wd->sc_channel;
267 WDC_WRITE_REG(chp, wd_sdh, (wd_c->drive << 4) | WDSD_LBA);
270 WDC_WRITE_REG(chp, wd_features, 0);
271 WDC_WRITE_REG(chp, wd_seccnt, wd_c->r_count >> 8);
272 WDC_WRITE_REG(chp, wd_lba_hi, wd_c->r_blkno >> 40);
273 WDC_WRITE_REG(chp, wd_lba_mi, wd_c->r_blkno >> 32);
274 WDC_WRITE_REG(chp, wd_lba_lo, wd_c->r_blkno >> 24);
277 WDC_WRITE_REG(chp, wd_features, 0);
278 WDC_WRITE_REG(chp, wd_seccnt, wd_c->r_count);
279 WDC_WRITE_REG(chp, wd_lba_hi, wd_c->r_blkno >> 16);
280 WDC_WRITE_REG(chp, wd_lba_mi, wd_c->r_blkno >> 8);
281 WDC_WRITE_REG(chp, wd_lba_lo, wd_c->r_blkno);
284 WDC_WRITE_REG(chp, wd_command, wd_c->r_command);
286 if (wdc_wait_for_ready(chp) != 0)
289 if (WDC_READ_REG(chp, wd_status) & WDCS_ERR) {
290 printf("wd%d: error %x\n", chp->compatchan,
291 WDC_READ_REG(chp, wd_error));