Lines Matching refs:ec
85 /* Prototype: icside_irqenable_arcin_v5 (struct expansion_card *ec, int irqnr)
88 static void icside_irqenable_arcin_v5 (struct expansion_card *ec, int irqnr)
90 struct icside_state *state = ec->irq_data;
95 /* Prototype: icside_irqdisable_arcin_v5 (struct expansion_card *ec, int irqnr)
98 static void icside_irqdisable_arcin_v5 (struct expansion_card *ec, int irqnr)
100 struct icside_state *state = ec->irq_data;
112 /* Prototype: icside_irqenable_arcin_v6 (struct expansion_card *ec, int irqnr)
115 static void icside_irqenable_arcin_v6 (struct expansion_card *ec, int irqnr)
117 struct icside_state *state = ec->irq_data;
134 /* Prototype: icside_irqdisable_arcin_v6 (struct expansion_card *ec, int irqnr)
137 static void icside_irqdisable_arcin_v6 (struct expansion_card *ec, int irqnr)
139 struct icside_state *state = ec->irq_data;
147 /* Prototype: icside_irqprobe(struct expansion_card *ec)
150 static int icside_irqpending_arcin_v6(struct expansion_card *ec)
152 struct icside_state *state = ec->irq_data;
171 struct expansion_card *ec = ECARD_DEV(hwif->dev);
172 struct icside_state *state = ecard_get_drvdata(ec);
292 struct expansion_card *ec = ECARD_DEV(hwif->dev);
294 disable_dma(ec->dma);
296 return get_dma_residue(ec->dma) != 0;
302 struct expansion_card *ec = ECARD_DEV(hwif->dev);
305 BUG_ON(dma_channel_active(ec->dma));
306 enable_dma(ec->dma);
312 struct expansion_card *ec = ECARD_DEV(hwif->dev);
313 struct icside_state *state = ecard_get_drvdata(ec);
324 BUG_ON(dma_channel_active(ec->dma));
339 set_dma_speed(ec->dma, (unsigned long)ide_get_drivedata(drive));
345 set_dma_sg(ec->dma, hwif->sg_table, cmd->sg_nents);
346 set_dma_mode(ec->dma, dma_mode);
354 struct expansion_card *ec = ECARD_DEV(hwif->dev);
355 struct icside_state *state = ecard_get_drvdata(ec);
387 struct cardinfo *info, struct expansion_card *ec)
401 hw->irq = ec->irq;
402 hw->dev = &ec->dev;
411 struct expansion_card *ec)
418 base = ecardm_iomap(ec, ECARD_RES_MEMC, 0, 0);
424 ec->irqaddr = base + ICS_ARCIN_V5_INTRSTAT;
425 ec->irqmask = 1;
427 ecard_setirq(ec, &icside_ops_arcin_v5, state);
432 icside_irqdisable_arcin_v5(ec, 0);
434 icside_setup_ports(&hw, base, &icside_cardinfo_v5, ec);
442 ecard_set_drvdata(ec, state);
451 ecard_set_drvdata(ec, NULL);
465 struct expansion_card *ec)
474 ioc_base = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0);
482 if (ecard_resource_flags(ec, ECARD_RES_EASI)) {
483 easi_base = ecardm_iomap(ec, ECARD_RES_EASI, 0, 0);
497 ecard_setirq(ec, &icside_ops_arcin_v6, state);
506 icside_irqdisable_arcin_v6(ec, 0);
508 icside_setup_ports(&hw[0], easi_base, &icside_cardinfo_v6_1, ec);
509 icside_setup_ports(&hw[1], easi_base, &icside_cardinfo_v6_2, ec);
517 ecard_set_drvdata(ec, state);
520 if (ec->dma != NO_DMA && !request_dma(ec->dma, DRV_NAME)) {
535 free_dma(ec->dma);
536 ecard_set_drvdata(ec, NULL);
541 static int icside_probe(struct expansion_card *ec, const struct ecard_id *id)
547 ret = ecard_request_resources(ec);
559 idmem = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0);
567 ecardm_iounmap(ec, idmem);
574 dev_warn(&ec->dev, "A3IN unsupported\n");
579 dev_warn(&ec->dev, "A3USER unsupported\n");
584 ret = icside_register_v5(state, ec);
588 ret = icside_register_v6(state, ec);
592 dev_warn(&ec->dev, "unknown interface type\n");
602 ecard_release_resources(ec);
607 static void icside_remove(struct expansion_card *ec)
609 struct icside_state *state = ecard_get_drvdata(ec);
616 icside_irqdisable_arcin_v5(ec, 0);
621 if (ec->dma != NO_DMA)
622 free_dma(ec->dma);
625 icside_irqdisable_arcin_v6(ec, 0);
632 ecard_set_drvdata(ec, NULL);
635 ecard_release_resources(ec);
638 static void icside_shutdown(struct expansion_card *ec)
640 struct icside_state *state = ecard_get_drvdata(ec);
649 ec->ops->irqdisable(ec, 0);