Lines Matching refs:ec

84 /* Prototype: icside_irqenable_arcin_v5 (struct expansion_card *ec, int irqnr)
87 static void icside_irqenable_arcin_v5 (struct expansion_card *ec, int irqnr)
89 struct icside_state *state = ec->irq_data;
94 /* Prototype: icside_irqdisable_arcin_v5 (struct expansion_card *ec, int irqnr)
97 static void icside_irqdisable_arcin_v5 (struct expansion_card *ec, int irqnr)
99 struct icside_state *state = ec->irq_data;
111 /* Prototype: icside_irqenable_arcin_v6 (struct expansion_card *ec, int irqnr)
114 static void icside_irqenable_arcin_v6 (struct expansion_card *ec, int irqnr)
116 struct icside_state *state = ec->irq_data;
133 /* Prototype: icside_irqdisable_arcin_v6 (struct expansion_card *ec, int irqnr)
136 static void icside_irqdisable_arcin_v6 (struct expansion_card *ec, int irqnr)
138 struct icside_state *state = ec->irq_data;
146 /* Prototype: icside_irqprobe(struct expansion_card *ec)
149 static int icside_irqpending_arcin_v6(struct expansion_card *ec)
151 struct icside_state *state = ec->irq_data;
170 struct expansion_card *ec = ECARD_DEV(hwif->dev);
171 struct icside_state *state = ecard_get_drvdata(ec);
291 struct expansion_card *ec = ECARD_DEV(hwif->dev);
293 disable_dma(ec->dma);
295 return get_dma_residue(ec->dma) != 0;
301 struct expansion_card *ec = ECARD_DEV(hwif->dev);
304 BUG_ON(dma_channel_active(ec->dma));
305 enable_dma(ec->dma);
311 struct expansion_card *ec = ECARD_DEV(hwif->dev);
312 struct icside_state *state = ecard_get_drvdata(ec);
323 BUG_ON(dma_channel_active(ec->dma));
338 set_dma_speed(ec->dma, (unsigned long)ide_get_drivedata(drive));
344 set_dma_sg(ec->dma, hwif->sg_table, cmd->sg_nents);
345 set_dma_mode(ec->dma, dma_mode);
353 struct expansion_card *ec = ECARD_DEV(hwif->dev);
354 struct icside_state *state = ecard_get_drvdata(ec);
388 struct cardinfo *info, struct expansion_card *ec)
402 hw->irq = ec->irq;
403 hw->dev = &ec->dev;
412 icside_register_v5(struct icside_state *state, struct expansion_card *ec)
419 base = ecardm_iomap(ec, ECARD_RES_MEMC, 0, 0);
425 ec->irqaddr = base + ICS_ARCIN_V5_INTRSTAT;
426 ec->irqmask = 1;
428 ecard_setirq(ec, &icside_ops_arcin_v5, state);
433 icside_irqdisable_arcin_v5(ec, 0);
435 icside_setup_ports(&hw, base, &icside_cardinfo_v5, ec);
443 ecard_set_drvdata(ec, state);
452 ecard_set_drvdata(ec, NULL);
467 icside_register_v6(struct icside_state *state, struct expansion_card *ec)
476 ioc_base = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0);
484 if (ecard_resource_flags(ec, ECARD_RES_EASI)) {
485 easi_base = ecardm_iomap(ec, ECARD_RES_EASI, 0, 0);
499 ecard_setirq(ec, &icside_ops_arcin_v6, state);
508 icside_irqdisable_arcin_v6(ec, 0);
510 icside_setup_ports(&hw[0], easi_base, &icside_cardinfo_v6_1, ec);
511 icside_setup_ports(&hw[1], easi_base, &icside_cardinfo_v6_2, ec);
519 ecard_set_drvdata(ec, state);
521 if (ec->dma != NO_DMA && !request_dma(ec->dma, DRV_NAME)) {
535 free_dma(ec->dma);
536 ecard_set_drvdata(ec, NULL);
542 icside_probe(struct expansion_card *ec, const struct ecard_id *id)
548 ret = ecard_request_resources(ec);
560 idmem = ecardm_iomap(ec, ECARD_RES_IOCFAST, 0, 0);
568 ecardm_iounmap(ec, idmem);
575 dev_warn(&ec->dev, "A3IN unsupported\n");
580 dev_warn(&ec->dev, "A3USER unsupported\n");
585 ret = icside_register_v5(state, ec);
589 ret = icside_register_v6(state, ec);
593 dev_warn(&ec->dev, "unknown interface type\n");
603 ecard_release_resources(ec);
608 static void __devexit icside_remove(struct expansion_card *ec)
610 struct icside_state *state = ecard_get_drvdata(ec);
617 icside_irqdisable_arcin_v5(ec, 0);
622 if (ec->dma != NO_DMA)
623 free_dma(ec->dma);
626 icside_irqdisable_arcin_v6(ec, 0);
633 ecard_set_drvdata(ec, NULL);
636 ecard_release_resources(ec);
639 static void icside_shutdown(struct expansion_card *ec)
641 struct icside_state *state = ecard_get_drvdata(ec);
650 ec->ops->irqdisable(ec, 0);