Lines Matching defs:ch

68     struct ata_channel *ch = device_get_softc(dev);
71 if (ch->dma.alloc == NULL)
72 ch->dma.alloc = ata_dmaalloc;
73 if (ch->dma.free == NULL)
74 ch->dma.free = ata_dmafree;
75 if (ch->dma.setprd == NULL)
76 ch->dma.setprd = ata_dmasetprd;
77 if (ch->dma.load == NULL)
78 ch->dma.load = ata_dmaload;
79 if (ch->dma.unload == NULL)
80 ch->dma.unload = ata_dmaunload;
81 if (ch->dma.alignment == 0)
82 ch->dma.alignment = 2;
83 if (ch->dma.boundary == 0)
84 ch->dma.boundary = 65536;
85 if (ch->dma.segsize == 0)
86 ch->dma.segsize = 65536;
87 if (ch->dma.max_iosize == 0)
88 ch->dma.max_iosize = MIN((ATA_DMA_ENTRIES - 1) * PAGE_SIZE, MAXPHYS);
89 if (ch->dma.max_address == 0)
90 ch->dma.max_address = BUS_SPACE_MAXADDR_32BIT;
91 if (ch->dma.dma_slots == 0)
92 ch->dma.dma_slots = 1;
94 if (bus_dma_tag_create(bus_get_dma_tag(dev), ch->dma.alignment, 0,
95 ch->dma.max_address, BUS_SPACE_MAXADDR,
96 NULL, NULL, ch->dma.max_iosize,
97 ATA_DMA_ENTRIES, ch->dma.segsize,
98 0, NULL, NULL, &ch->dma.dmatag))
101 if (bus_dma_tag_create(ch->dma.dmatag, PAGE_SIZE, 64 * 1024,
102 ch->dma.max_address, BUS_SPACE_MAXADDR,
104 0, NULL, NULL, &ch->dma.work_tag))
107 if (bus_dmamem_alloc(ch->dma.work_tag, (void **)&ch->dma.work,
109 &ch->dma.work_map))
112 if (bus_dmamap_load(ch->dma.work_tag, ch->dma.work_map, ch->dma.work,
115 bus_dmamem_free(ch->dma.work_tag, ch->dma.work, ch->dma.work_map);
118 ch->dma.work_bus = dcba.maddr;
129 struct ata_channel *ch = device_get_softc(dev);
131 if (ch->dma.work_bus) {
132 bus_dmamap_unload(ch->dma.work_tag, ch->dma.work_map);
133 bus_dmamem_free(ch->dma.work_tag, ch->dma.work, ch->dma.work_map);
134 ch->dma.work_bus = 0;
135 ch->dma.work = NULL;
137 if (ch->dma.work_tag) {
138 bus_dma_tag_destroy(ch->dma.work_tag);
139 ch->dma.work_tag = NULL;
141 if (ch->dma.dmatag) {
142 bus_dma_tag_destroy(ch->dma.dmatag);
143 ch->dma.dmatag = NULL;
159 struct ata_channel *ch = device_get_softc(dev);
164 bzero(ch->dma.slot, sizeof(struct ata_dmaslot) * ATA_DMA_SLOTS);
165 for (i = 0; i < ch->dma.dma_slots; i++) {
166 struct ata_dmaslot *slot = &ch->dma.slot[i];
168 if (bus_dma_tag_create(ch->dma.dmatag, PAGE_SIZE, PAGE_SIZE,
169 ch->dma.max_address, BUS_SPACE_MAXADDR,
172 device_printf(ch->dev, "FAILURE - create sg_tag\n");
178 device_printf(ch->dev, "FAILURE - alloc sg_map\n");
184 device_printf(ch->dev, "FAILURE - load sg\n");
189 if (bus_dma_tag_create(ch->dma.dmatag,
190 ch->dma.alignment, ch->dma.boundary,
191 ch->dma.max_address, BUS_SPACE_MAXADDR,
192 NULL, NULL, ch->dma.max_iosize,
193 ATA_DMA_ENTRIES, ch->dma.segsize,
195 device_printf(ch->dev, "FAILURE - create data_tag\n");
200 device_printf(ch->dev, "FAILURE - create data_map\n");
215 struct ata_channel *ch = device_get_softc(dev);
220 struct ata_dmaslot *slot = &ch->dma.slot[i];
267 struct ata_channel *ch = device_get_softc(request->parent);
283 if (request->bytecount & (ch->dma.alignment - 1)) {
286 request->bytecount, ch->dma.alignment);
289 if (request->bytecount > ch->dma.max_iosize) {
292 request->bytecount, ch->dma.max_iosize);
297 request->dma = &ch->dma.slot[0];
307 ch->dma.setprd, &dspa, BUS_DMA_NOWAIT);
311 ch->dma.setprd, &dspa, BUS_DMA_NOWAIT);