• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/dev/aic7xxx/

Lines Matching defs:scb_data

5610 	for (i = 0; i < ahd->scb_data.maxhscbs; i++) {
5624 struct scb_data *scb_data;
5627 scb_data = &ahd->scb_data;
5628 TAILQ_INIT(&scb_data->free_scbs);
5630 LIST_INIT(&scb_data->free_scb_lists[i]);
5631 LIST_INIT(&scb_data->any_dev_free_scb_list);
5632 SLIST_INIT(&scb_data->hscb_maps);
5633 SLIST_INIT(&scb_data->sg_maps);
5634 SLIST_INIT(&scb_data->sense_maps);
5637 scb_data->maxhscbs = ahd_probe_scbs(ahd);
5638 if (scb_data->maxhscbs == 0) {
5664 /*flags*/0, &scb_data->hscb_dmat) != 0) {
5668 scb_data->init_level++;
5678 /*flags*/0, &scb_data->sg_dmat) != 0) {
5687 scb_data->init_level++;
5697 /*flags*/0, &scb_data->sense_dmat) != 0) {
5701 scb_data->init_level++;
5707 if (scb_data->numscbs == 0) {
5740 TAILQ_FOREACH(scb, &ahd->scb_data.free_scbs, links.tqe) {
5754 LIST_FOREACH(scb, &ahd->scb_data.any_dev_free_scb_list, links.le) {
5765 struct scb_data *scb_data;
5767 scb_data = &ahd->scb_data;
5768 if (scb_data == NULL)
5771 switch (scb_data->init_level) {
5777 while ((sns_map = SLIST_FIRST(&scb_data->sense_maps)) != NULL) {
5778 SLIST_REMOVE_HEAD(&scb_data->sense_maps, links);
5779 aic_dmamap_unload(ahd, scb_data->sense_dmat,
5781 aic_dmamem_free(ahd, scb_data->sense_dmat,
5785 aic_dma_tag_destroy(ahd, scb_data->sense_dmat);
5792 while ((sg_map = SLIST_FIRST(&scb_data->sg_maps)) != NULL) {
5793 SLIST_REMOVE_HEAD(&scb_data->sg_maps, links);
5794 aic_dmamap_unload(ahd, scb_data->sg_dmat,
5796 aic_dmamem_free(ahd, scb_data->sg_dmat,
5800 aic_dma_tag_destroy(ahd, scb_data->sg_dmat);
5807 while ((hscb_map = SLIST_FIRST(&scb_data->hscb_maps)) != NULL) {
5808 SLIST_REMOVE_HEAD(&scb_data->hscb_maps, links);
5809 aic_dmamap_unload(ahd, scb_data->hscb_dmat,
5811 aic_dmamem_free(ahd, scb_data->hscb_dmat,
5815 aic_dma_tag_destroy(ahd, scb_data->hscb_dmat);
5889 free_list = &ahd->scb_data.free_scb_lists[col_idx];
5890 free_tailq = &ahd->scb_data.free_scbs;
5910 free_list = &ahd->scb_data.free_scb_lists[col_idx];
5911 free_tailq = &ahd->scb_data.free_scbs;
5942 TAILQ_FOREACH(scb, &ahd->scb_data.free_scbs, links.tqe) {
5948 if ((scb = LIST_FIRST(&ahd->scb_data.any_dev_free_scb_list)) == NULL) {
5977 ahd->scb_data.scbindex[SCB_GET_TAG(scb)] = NULL;
5983 LIST_INSERT_HEAD(&ahd->scb_data.any_dev_free_scb_list,
5992 LIST_INSERT_HEAD(&ahd->scb_data.any_dev_free_scb_list,
5994 LIST_INSERT_HEAD(&ahd->scb_data.any_dev_free_scb_list,
6013 LIST_INSERT_HEAD(&ahd->scb_data.any_dev_free_scb_list,
6023 struct scb_data *scb_data;
6037 scb_data = &ahd->scb_data;
6038 if (scb_data->numscbs >= AHD_SCB_MAX_ALLOC)
6042 if (scb_data->scbs_left != 0) {
6045 offset = (PAGE_SIZE / sizeof(*hscb)) - scb_data->scbs_left;
6046 hscb_map = SLIST_FIRST(&scb_data->hscb_maps);
6056 if (aic_dmamem_alloc(ahd, scb_data->hscb_dmat,
6064 SLIST_INSERT_HEAD(&scb_data->hscb_maps, hscb_map, links);
6066 aic_dmamap_load(ahd, scb_data->hscb_dmat, hscb_map->dmamap,
6072 scb_data->scbs_left = PAGE_SIZE / sizeof(*hscb);
6075 if (scb_data->sgs_left != 0) {
6079 - scb_data->sgs_left) * ahd_sglist_size(ahd);
6080 sg_map = SLIST_FIRST(&scb_data->sg_maps);
6090 if (aic_dmamem_alloc(ahd, scb_data->sg_dmat,
6098 SLIST_INSERT_HEAD(&scb_data->sg_maps, sg_map, links);
6100 aic_dmamap_load(ahd, scb_data->sg_dmat, sg_map->dmamap,
6106 scb_data->sgs_left =
6114 if (scb_data->sense_left != 0) {
6117 offset = PAGE_SIZE - (AHD_SENSE_BUFSIZE * scb_data->sense_left);
6118 sense_map = SLIST_FIRST(&scb_data->sense_maps);
6128 if (aic_dmamem_alloc(ahd, scb_data->sense_dmat,
6135 SLIST_INSERT_HEAD(&scb_data->sense_maps, sense_map, links);
6137 aic_dmamap_load(ahd, scb_data->sense_dmat, sense_map->dmamap,
6143 scb_data->sense_left = PAGE_SIZE / AHD_SENSE_BUFSIZE;
6150 newcount = MIN(scb_data->sense_left, scb_data->scbs_left);
6151 newcount = MIN(newcount, scb_data->sgs_left);
6152 newcount = MIN(newcount, (AHD_SCB_MAX_ALLOC - scb_data->numscbs));
6153 scb_data->sense_left -= newcount;
6154 scb_data->scbs_left -= newcount;
6155 scb_data->sgs_left -= newcount;
6206 next_scb->hscb->tag = aic_htole16(scb_data->numscbs);
6207 col_tag = scb_data->numscbs ^ 0x100;
6219 scb_data->numscbs++;
6245 ahd->scb_data.maxhscbs);
7514 if (scbid >= ahd->scb_data.numscbs) {
7517 ahd_name(ahd), scbid, ahd->scb_data.numscbs);
7638 if (scbid >= ahd->scb_data.numscbs) {
7641 ahd_name(ahd), scbid, ahd->scb_data.numscbs);
8336 if (ahd->scb_data.recovery_scbs == 0
9028 ahd->scb_data.numscbs, ahd_inw(ahd, CMDS_PENDING),
9054 TAILQ_FOREACH(scb, &ahd->scb_data.free_scbs, links.tqe) {
9066 LIST_FOREACH(scb, &ahd->scb_data.any_dev_free_scb_list, links.le) {