Home | History | Annotate | Download | only in dev

Lines Matching defs:csc

154 	struct cbiisc_softc *csc = device_private(self);
155 struct ncr53c9x_softc *sc = &csc->sc_ncr53c9x;
171 csc->sc_reg = &((volatile uint8_t *)zap->va)[0x1ff03];
172 csc->sc_dmabase = &csc->sc_reg[0x80];
176 aprint_normal(": address %p", csc->sc_reg);
225 csc->sc_isr.isr_intr = ncr53c9x_intr;
226 csc->sc_isr.isr_arg = sc;
227 csc->sc_isr.isr_ipl = 2;
228 add_isr(&csc->sc_isr);
245 struct cbiisc_softc *csc = (struct cbiisc_softc *)sc;
247 return csc->sc_reg[reg * 4];
253 struct cbiisc_softc *csc = (struct cbiisc_softc *)sc;
256 csc->sc_reg[reg * 4] = v;
259 reg == NCR_CMD/* && csc->sc_active*/) {
269 struct cbiisc_softc *csc = (struct cbiisc_softc *)sc;
271 if ((csc->sc_reg[NCR_STAT * 4] & NCRSTAT_INT) == 0)
275 csc->sc_reg[0x40] = CBIISC_PB_LED;
277 csc->sc_reg[0x40] = 0;
281 cbiisc_trace[cbiisc_trace_ptr].status = csc->sc_reg[NCR_STAT * 4];
282 cbiisc_trace[cbiisc_trace_ptr].xx = csc->sc_reg[NCR_CMD * 4];
283 cbiisc_trace[cbiisc_trace_ptr].yy = csc->sc_active;
293 struct cbiisc_softc *csc = (struct cbiisc_softc *)sc;
295 csc->sc_active = 0;
301 register struct cbiisc_softc *csc = (struct cbiisc_softc *)sc;
305 csc->sc_dmasize, sc->sc_espintr, sc->sc_espstat,
306 csc->sc_reg[NCR_FFLAG * 4] & NCRFIFO_FF));
307 if (csc->sc_active == 0) {
313 cnt = csc->sc_reg[NCR_TCL * 4];
314 cnt += csc->sc_reg[NCR_TCM * 4] << 8;
315 cnt += csc->sc_reg[NCR_TCH * 4] << 16;
316 if (!csc->sc_datain) {
317 cnt += csc->sc_reg[NCR_FFLAG * 4] & NCRFIFO_FF;
318 csc->sc_reg[NCR_CMD * 4] = NCRCMD_FLUSH;
320 cnt = csc->sc_dmasize - cnt; /* number of bytes transferred */
322 if (csc->sc_xfr_align) {
323 memcpy(*csc->sc_dmaaddr, csc->sc_alignbuf, cnt);
324 csc->sc_xfr_align = 0;
326 *csc->sc_dmaaddr += cnt;
327 *csc->sc_pdmalen -= cnt;
328 csc->sc_active = 0;
336 struct cbiisc_softc *csc = (struct cbiisc_softc *)sc;
341 csc->sc_dmaaddr = addr;
342 csc->sc_pdmalen = len;
343 csc->sc_datain = datain;
344 csc->sc_dmasize = *dmasize;
353 csc->sc_dmasize > cbiisc_max_dma)
354 csc->sc_dmasize = cbiisc_max_dma;
357 xfer = uimin(csc->sc_dmasize, PAGE_SIZE - (pa & (PAGE_SIZE - 1)));
358 csc->sc_xfr_align = 0;
366 csc->sc_reg[NCR_FIFO * 4] = *ptr++;
372 pa = kvtop((void *)&csc->sc_alignbuf);
373 xfer = csc->sc_dmasize = uimin(xfer, sizeof(csc->sc_alignbuf));
375 csc->sc_xfr_align = 1;
379 while (xfer < csc->sc_dmasize) {
382 if ((csc->sc_dmasize - xfer) < PAGE_SIZE)
383 xfer = csc->sc_dmasize;
391 csc->sc_dmasize = xfer;
392 *dmasize = csc->sc_dmasize;
393 csc->sc_pa = pa;
396 if (csc->sc_xfr_align) {
397 dma_cachectl(csc->sc_alignbuf,
398 sizeof(csc->sc_alignbuf));
401 dma_cachectl(*csc->sc_dmaaddr, csc->sc_dmasize);
405 if (csc->sc_datain)
409 csc->sc_dmabase[0] = (uint8_t)(pa >> 24);
410 csc->sc_dmabase[4] = (uint8_t)(pa >> 16);
411 csc->sc_dmabase[8] = (uint8_t)(pa >> 8);
412 csc->sc_dmabase[12] = (uint8_t)(pa);
413 csc->sc_active = 1;
430 struct cbiisc_softc *csc = (struct cbiisc_softc *)sc;
432 return csc->sc_active;