Lines Matching defs:chp

61 __wdcwait_reset(struct wdc_channel *chp, int drv_mask)
68 WDC_WRITE_REG(chp, wd_sdh, WDSD_IBM); /* master */
70 st0 = WDC_READ_REG(chp, wd_status);
71 WDC_WRITE_REG(chp, wd_sdh, WDSD_IBM | 0x10); /* slave */
73 st1 = WDC_READ_REG(chp, wd_status);
148 wdcprobe(struct wdc_channel *chp)
158 WDC_WRITE_REG(chp, wd_sdh, WDSD_IBM);
160 st0 = WDC_READ_REG(chp, wd_status);
161 WDC_WRITE_REG(chp, wd_sdh, WDSD_IBM | 0x10);
163 st1 = WDC_READ_REG(chp, wd_status);
180 WDC_WRITE_REG(chp, wd_sdh, WDSD_IBM);
182 WDC_WRITE_CTLREG(chp, wd_aux_ctlr, WDCTL_RST | WDCTL_IDS);
184 WDC_WRITE_CTLREG(chp, wd_aux_ctlr, WDCTL_IDS);
186 (void) WDC_READ_REG(chp, wd_error);
187 WDC_WRITE_CTLREG(chp, wd_aux_ctlr, WDCTL_4BIT);
190 drives = __wdcwait_reset(chp, drives);
209 WDC_WRITE_REG(chp, wd_sdh, WDSD_IBM | (drive << 4));
210 cl = WDC_READ_REG(chp, wd_cyl_lo);
211 ch = WDC_READ_REG(chp, wd_cyl_hi);
217 if (_wdc_exec_identify(chp, drive, ident) == 0) {
236 wdc_wait_for_ready(struct wdc_channel *chp)
241 if ((WDC_READ_REG(chp, wd_status) & (WDCS_BSY | WDCS_DRDY))
252 wdc_read_block(struct wdc_channel *chp, struct wdc_command *wd_c)
262 *ptr++ = WDC_READ_DATA(chp);
265 *ptr++ = WDC_READ_DATA_STREAM(chp);
274 wdccommand(struct wdc_channel *chp, struct wdc_command *wd_c)
283 WDC_WRITE_REG(chp, wd_features, wd_c->r_features);
284 WDC_WRITE_REG(chp, wd_seccnt, wd_c->r_count);
285 WDC_WRITE_REG(chp, wd_sector, wd_c->r_sector);
286 WDC_WRITE_REG(chp, wd_cyl_lo, wd_c->r_cyl);
287 WDC_WRITE_REG(chp, wd_cyl_hi, wd_c->r_cyl >> 8);
288 WDC_WRITE_REG(chp, wd_sdh,
290 WDC_WRITE_REG(chp, wd_command, wd_c->r_command);
292 if (wdc_wait_for_ready(chp) != 0)
295 if (WDC_READ_REG(chp, wd_status) & WDCS_ERR) {
298 WDC_READ_REG(chp, wd_error));
309 wdccommandext(struct wdc_channel *chp, struct wdc_command *wd_c)
319 WDC_WRITE_REG(chp, wd_sdh, (wd_c->drive << 4) | WDSD_LBA);
322 WDC_WRITE_REG(chp, wd_features, 0);
323 WDC_WRITE_REG(chp, wd_seccnt, wd_c->r_count >> 8);
324 WDC_WRITE_REG(chp, wd_lba_hi, wd_c->r_blkno >> 40);
325 WDC_WRITE_REG(chp, wd_lba_mi, wd_c->r_blkno >> 32);
326 WDC_WRITE_REG(chp, wd_lba_lo, wd_c->r_blkno >> 24);
329 WDC_WRITE_REG(chp, wd_features, 0);
330 WDC_WRITE_REG(chp, wd_seccnt, wd_c->r_count);
331 WDC_WRITE_REG(chp, wd_lba_hi, wd_c->r_blkno >> 16);
332 WDC_WRITE_REG(chp, wd_lba_mi, wd_c->r_blkno >> 8);
333 WDC_WRITE_REG(chp, wd_lba_lo, wd_c->r_blkno);
336 WDC_WRITE_REG(chp, wd_command, wd_c->r_command);
338 if (wdc_wait_for_ready(chp) != 0)
341 if (WDC_READ_REG(chp, wd_status) & WDCS_ERR) {
344 WDC_READ_REG(chp, wd_error));
352 _wdc_exec_identify(struct wdc_channel *chp, int drive, void *data)
364 if ((error = wdccommand(chp, &wd_c)) != 0)
367 return wdc_read_block(chp, &wd_c);
404 struct wdc_channel *chp;
410 chp = &ch;
412 return _wdc_exec_identify(chp, wd->sc_unit, data);
422 struct wdc_channel *chp;
430 chp = &ch;
471 error = wdccommandext(chp, &wd_c);
473 error = wdccommand(chp, &wd_c);
478 return wdc_read_block(chp, &wd_c);