• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/scsi/aic7xxx/

Lines Matching defs:scb_data

527 	ahd_dmamap_sync(ahd, ahd->scb_data.hscb_dmat,
539 ahd_dmamap_sync(ahd, ahd->scb_data.sg_dmat,
548 ahd_dmamap_sync(ahd, ahd->scb_data.sense_dmat,
756 scb = ahd->scb_data.scbindex[tag];
796 ahd->scb_data.scbindex[SCB_GET_TAG(scb)] = scb;
6315 for (i = 0; i < ahd->scb_data.maxhscbs; i++) {
6329 struct scb_data *scb_data;
6332 scb_data = &ahd->scb_data;
6333 TAILQ_INIT(&scb_data->free_scbs);
6335 LIST_INIT(&scb_data->free_scb_lists[i]);
6336 LIST_INIT(&scb_data->any_dev_free_scb_list);
6337 SLIST_INIT(&scb_data->hscb_maps);
6338 SLIST_INIT(&scb_data->sg_maps);
6339 SLIST_INIT(&scb_data->sense_maps);
6342 scb_data->maxhscbs = ahd_probe_scbs(ahd);
6343 if (scb_data->maxhscbs == 0) {
6368 /*flags*/0, &scb_data->hscb_dmat) != 0) {
6372 scb_data->init_level++;
6382 /*flags*/0, &scb_data->sg_dmat) != 0) {
6391 scb_data->init_level++;
6401 /*flags*/0, &scb_data->sense_dmat) != 0) {
6405 scb_data->init_level++;
6410 if (scb_data->numscbs == 0) {
6443 TAILQ_FOREACH(scb, &ahd->scb_data.free_scbs, links.tqe) {
6457 LIST_FOREACH(scb, &ahd->scb_data.any_dev_free_scb_list, links.le) {
6468 struct scb_data *scb_data;
6470 scb_data = &ahd->scb_data;
6471 if (scb_data == NULL)
6474 switch (scb_data->init_level) {
6480 while ((sns_map = SLIST_FIRST(&scb_data->sense_maps)) != NULL) {
6481 SLIST_REMOVE_HEAD(&scb_data->sense_maps, links);
6482 ahd_dmamap_unload(ahd, scb_data->sense_dmat,
6484 ahd_dmamem_free(ahd, scb_data->sense_dmat,
6488 ahd_dma_tag_destroy(ahd, scb_data->sense_dmat);
6495 while ((sg_map = SLIST_FIRST(&scb_data->sg_maps)) != NULL) {
6496 SLIST_REMOVE_HEAD(&scb_data->sg_maps, links);
6497 ahd_dmamap_unload(ahd, scb_data->sg_dmat,
6499 ahd_dmamem_free(ahd, scb_data->sg_dmat,
6503 ahd_dma_tag_destroy(ahd, scb_data->sg_dmat);
6510 while ((hscb_map = SLIST_FIRST(&scb_data->hscb_maps)) != NULL) {
6511 SLIST_REMOVE_HEAD(&scb_data->hscb_maps, links);
6512 ahd_dmamap_unload(ahd, scb_data->hscb_dmat,
6514 ahd_dmamem_free(ahd, scb_data->hscb_dmat,
6518 ahd_dma_tag_destroy(ahd, scb_data->hscb_dmat);
6592 free_list = &ahd->scb_data.free_scb_lists[col_idx];
6593 free_tailq = &ahd->scb_data.free_scbs;
6613 free_list = &ahd->scb_data.free_scb_lists[col_idx];
6614 free_tailq = &ahd->scb_data.free_scbs;
6645 TAILQ_FOREACH(scb, &ahd->scb_data.free_scbs, links.tqe) {
6651 if ((scb = LIST_FIRST(&ahd->scb_data.any_dev_free_scb_list)) == NULL) {
6679 ahd->scb_data.scbindex[SCB_GET_TAG(scb)] = NULL;
6686 LIST_INSERT_HEAD(&ahd->scb_data.any_dev_free_scb_list,
6696 LIST_INSERT_HEAD(&ahd->scb_data.any_dev_free_scb_list,
6698 LIST_INSERT_HEAD(&ahd->scb_data.any_dev_free_scb_list,
6718 LIST_INSERT_HEAD(&ahd->scb_data.any_dev_free_scb_list,
6728 struct scb_data *scb_data;
6742 scb_data = &ahd->scb_data;
6743 if (scb_data->numscbs >= AHD_SCB_MAX_ALLOC)
6747 if (scb_data->scbs_left != 0) {
6750 offset = (PAGE_SIZE / sizeof(*hscb)) - scb_data->scbs_left;
6751 hscb_map = SLIST_FIRST(&scb_data->hscb_maps);
6761 if (ahd_dmamem_alloc(ahd, scb_data->hscb_dmat,
6768 SLIST_INSERT_HEAD(&scb_data->hscb_maps, hscb_map, links);
6770 ahd_dmamap_load(ahd, scb_data->hscb_dmat, hscb_map->dmamap,
6776 scb_data->scbs_left = PAGE_SIZE / sizeof(*hscb);
6779 if (scb_data->sgs_left != 0) {
6783 - scb_data->sgs_left) * ahd_sglist_size(ahd);
6784 sg_map = SLIST_FIRST(&scb_data->sg_maps);
6794 if (ahd_dmamem_alloc(ahd, scb_data->sg_dmat,
6801 SLIST_INSERT_HEAD(&scb_data->sg_maps, sg_map, links);
6803 ahd_dmamap_load(ahd, scb_data->sg_dmat, sg_map->dmamap,
6809 scb_data->sgs_left =
6817 if (scb_data->sense_left != 0) {
6820 offset = PAGE_SIZE - (AHD_SENSE_BUFSIZE * scb_data->sense_left);
6821 sense_map = SLIST_FIRST(&scb_data->sense_maps);
6831 if (ahd_dmamem_alloc(ahd, scb_data->sense_dmat,
6838 SLIST_INSERT_HEAD(&scb_data->sense_maps, sense_map, links);
6840 ahd_dmamap_load(ahd, scb_data->sense_dmat, sense_map->dmamap,
6846 scb_data->sense_left = PAGE_SIZE / AHD_SENSE_BUFSIZE;
6853 newcount = min(scb_data->sense_left, scb_data->scbs_left);
6854 newcount = min(newcount, scb_data->sgs_left);
6855 newcount = min(newcount, (AHD_SCB_MAX_ALLOC - scb_data->numscbs));
6904 next_scb->hscb->tag = ahd_htole16(scb_data->numscbs);
6905 col_tag = scb_data->numscbs ^ 0x100;
6916 scb_data->numscbs++;
6917 scb_data->sense_left--;
6918 scb_data->scbs_left--;
6919 scb_data->sgs_left--;
6944 ahd->scb_data.maxhscbs);
8238 if (scbid >= ahd->scb_data.numscbs) {
8241 ahd_name(ahd), scbid, ahd->scb_data.numscbs);
8364 if (scbid >= ahd->scb_data.numscbs) {
8367 ahd_name(ahd), scbid, ahd->scb_data.numscbs);
9722 ahd->scb_data.numscbs, ahd_inw(ahd, CMDS_PENDING),
9748 TAILQ_FOREACH(scb, &ahd->scb_data.free_scbs, links.tqe) {
9758 LIST_FOREACH(scb, &ahd->scb_data.any_dev_free_scb_list, links.le) {