ibmvtpm           106 drivers/char/tpm/tpm_ibmvtpm.c 	struct ibmvtpm_dev *ibmvtpm = dev_get_drvdata(&chip->dev);
ibmvtpm           110 drivers/char/tpm/tpm_ibmvtpm.c 	if (!ibmvtpm->rtce_buf) {
ibmvtpm           111 drivers/char/tpm/tpm_ibmvtpm.c 		dev_err(ibmvtpm->dev, "ibmvtpm device is not ready\n");
ibmvtpm           115 drivers/char/tpm/tpm_ibmvtpm.c 	sig = wait_event_interruptible(ibmvtpm->wq, !ibmvtpm->tpm_processing_cmd);
ibmvtpm           119 drivers/char/tpm/tpm_ibmvtpm.c 	len = ibmvtpm->res_len;
ibmvtpm           122 drivers/char/tpm/tpm_ibmvtpm.c 		dev_err(ibmvtpm->dev,
ibmvtpm           128 drivers/char/tpm/tpm_ibmvtpm.c 	spin_lock(&ibmvtpm->rtce_lock);
ibmvtpm           129 drivers/char/tpm/tpm_ibmvtpm.c 	memcpy((void *)buf, (void *)ibmvtpm->rtce_buf, len);
ibmvtpm           130 drivers/char/tpm/tpm_ibmvtpm.c 	memset(ibmvtpm->rtce_buf, 0, len);
ibmvtpm           131 drivers/char/tpm/tpm_ibmvtpm.c 	ibmvtpm->res_len = 0;
ibmvtpm           132 drivers/char/tpm/tpm_ibmvtpm.c 	spin_unlock(&ibmvtpm->rtce_lock);
ibmvtpm           144 drivers/char/tpm/tpm_ibmvtpm.c static int ibmvtpm_crq_send_init(struct ibmvtpm_dev *ibmvtpm)
ibmvtpm           148 drivers/char/tpm/tpm_ibmvtpm.c 	rc = ibmvtpm_send_crq_word(ibmvtpm->vdev, INIT_CRQ_CMD);
ibmvtpm           150 drivers/char/tpm/tpm_ibmvtpm.c 		dev_err(ibmvtpm->dev,
ibmvtpm           166 drivers/char/tpm/tpm_ibmvtpm.c 	struct ibmvtpm_dev *ibmvtpm = dev_get_drvdata(&chip->dev);
ibmvtpm           173 drivers/char/tpm/tpm_ibmvtpm.c 					ibmvtpm->vdev->unit_address);
ibmvtpm           181 drivers/char/tpm/tpm_ibmvtpm.c 	rc = vio_enable_interrupts(ibmvtpm->vdev);
ibmvtpm           187 drivers/char/tpm/tpm_ibmvtpm.c 	rc = ibmvtpm_crq_send_init(ibmvtpm);
ibmvtpm           206 drivers/char/tpm/tpm_ibmvtpm.c 	struct ibmvtpm_dev *ibmvtpm = dev_get_drvdata(&chip->dev);
ibmvtpm           210 drivers/char/tpm/tpm_ibmvtpm.c 	if (!ibmvtpm->rtce_buf) {
ibmvtpm           211 drivers/char/tpm/tpm_ibmvtpm.c 		dev_err(ibmvtpm->dev, "ibmvtpm device is not ready\n");
ibmvtpm           215 drivers/char/tpm/tpm_ibmvtpm.c 	if (count > ibmvtpm->rtce_size) {
ibmvtpm           216 drivers/char/tpm/tpm_ibmvtpm.c 		dev_err(ibmvtpm->dev,
ibmvtpm           218 drivers/char/tpm/tpm_ibmvtpm.c 			count, ibmvtpm->rtce_size);
ibmvtpm           222 drivers/char/tpm/tpm_ibmvtpm.c 	if (ibmvtpm->tpm_processing_cmd) {
ibmvtpm           223 drivers/char/tpm/tpm_ibmvtpm.c 		dev_info(ibmvtpm->dev,
ibmvtpm           226 drivers/char/tpm/tpm_ibmvtpm.c 		sig = wait_event_interruptible(ibmvtpm->wq, !ibmvtpm->tpm_processing_cmd);
ibmvtpm           231 drivers/char/tpm/tpm_ibmvtpm.c 	spin_lock(&ibmvtpm->rtce_lock);
ibmvtpm           232 drivers/char/tpm/tpm_ibmvtpm.c 	ibmvtpm->res_len = 0;
ibmvtpm           233 drivers/char/tpm/tpm_ibmvtpm.c 	memcpy((void *)ibmvtpm->rtce_buf, (void *)buf, count);
ibmvtpm           239 drivers/char/tpm/tpm_ibmvtpm.c 	ibmvtpm->tpm_processing_cmd = true;
ibmvtpm           242 drivers/char/tpm/tpm_ibmvtpm.c 	rc = ibmvtpm_send_crq(ibmvtpm->vdev,
ibmvtpm           244 drivers/char/tpm/tpm_ibmvtpm.c 			count, ibmvtpm->rtce_dma_handle);
ibmvtpm           252 drivers/char/tpm/tpm_ibmvtpm.c 			tpm_ibmvtpm_resume(ibmvtpm->dev);
ibmvtpm           256 drivers/char/tpm/tpm_ibmvtpm.c 		dev_err(ibmvtpm->dev, "tpm_ibmvtpm_send failed rc=%d\n", rc);
ibmvtpm           257 drivers/char/tpm/tpm_ibmvtpm.c 		ibmvtpm->tpm_processing_cmd = false;
ibmvtpm           260 drivers/char/tpm/tpm_ibmvtpm.c 	spin_unlock(&ibmvtpm->rtce_lock);
ibmvtpm           283 drivers/char/tpm/tpm_ibmvtpm.c static int ibmvtpm_crq_get_rtce_size(struct ibmvtpm_dev *ibmvtpm)
ibmvtpm           287 drivers/char/tpm/tpm_ibmvtpm.c 	rc = ibmvtpm_send_crq(ibmvtpm->vdev,
ibmvtpm           290 drivers/char/tpm/tpm_ibmvtpm.c 		dev_err(ibmvtpm->dev,
ibmvtpm           306 drivers/char/tpm/tpm_ibmvtpm.c static int ibmvtpm_crq_get_version(struct ibmvtpm_dev *ibmvtpm)
ibmvtpm           310 drivers/char/tpm/tpm_ibmvtpm.c 	rc = ibmvtpm_send_crq(ibmvtpm->vdev,
ibmvtpm           313 drivers/char/tpm/tpm_ibmvtpm.c 		dev_err(ibmvtpm->dev,
ibmvtpm           327 drivers/char/tpm/tpm_ibmvtpm.c static int ibmvtpm_crq_send_init_complete(struct ibmvtpm_dev *ibmvtpm)
ibmvtpm           331 drivers/char/tpm/tpm_ibmvtpm.c 	rc = ibmvtpm_send_crq_word(ibmvtpm->vdev, INIT_CRQ_COMP_CMD);
ibmvtpm           333 drivers/char/tpm/tpm_ibmvtpm.c 		dev_err(ibmvtpm->dev,
ibmvtpm           348 drivers/char/tpm/tpm_ibmvtpm.c 	struct ibmvtpm_dev *ibmvtpm = dev_get_drvdata(&chip->dev);
ibmvtpm           353 drivers/char/tpm/tpm_ibmvtpm.c 	free_irq(vdev->irq, ibmvtpm);
ibmvtpm           361 drivers/char/tpm/tpm_ibmvtpm.c 	dma_unmap_single(ibmvtpm->dev, ibmvtpm->crq_dma_handle,
ibmvtpm           363 drivers/char/tpm/tpm_ibmvtpm.c 	free_page((unsigned long)ibmvtpm->crq_queue.crq_addr);
ibmvtpm           365 drivers/char/tpm/tpm_ibmvtpm.c 	if (ibmvtpm->rtce_buf) {
ibmvtpm           366 drivers/char/tpm/tpm_ibmvtpm.c 		dma_unmap_single(ibmvtpm->dev, ibmvtpm->rtce_dma_handle,
ibmvtpm           367 drivers/char/tpm/tpm_ibmvtpm.c 				 ibmvtpm->rtce_size, DMA_BIDIRECTIONAL);
ibmvtpm           368 drivers/char/tpm/tpm_ibmvtpm.c 		kfree(ibmvtpm->rtce_buf);
ibmvtpm           371 drivers/char/tpm/tpm_ibmvtpm.c 	kfree(ibmvtpm);
ibmvtpm           388 drivers/char/tpm/tpm_ibmvtpm.c 	struct ibmvtpm_dev *ibmvtpm;
ibmvtpm           396 drivers/char/tpm/tpm_ibmvtpm.c 		ibmvtpm = dev_get_drvdata(&chip->dev);
ibmvtpm           400 drivers/char/tpm/tpm_ibmvtpm.c 	return CRQ_RES_BUF_SIZE + ibmvtpm->rtce_size;
ibmvtpm           412 drivers/char/tpm/tpm_ibmvtpm.c 	struct ibmvtpm_dev *ibmvtpm = dev_get_drvdata(&chip->dev);
ibmvtpm           415 drivers/char/tpm/tpm_ibmvtpm.c 	rc = ibmvtpm_send_crq(ibmvtpm->vdev,
ibmvtpm           418 drivers/char/tpm/tpm_ibmvtpm.c 		dev_err(ibmvtpm->dev,
ibmvtpm           433 drivers/char/tpm/tpm_ibmvtpm.c static int ibmvtpm_reset_crq(struct ibmvtpm_dev *ibmvtpm)
ibmvtpm           441 drivers/char/tpm/tpm_ibmvtpm.c 					ibmvtpm->vdev->unit_address);
ibmvtpm           444 drivers/char/tpm/tpm_ibmvtpm.c 	memset(ibmvtpm->crq_queue.crq_addr, 0, CRQ_RES_BUF_SIZE);
ibmvtpm           445 drivers/char/tpm/tpm_ibmvtpm.c 	ibmvtpm->crq_queue.index = 0;
ibmvtpm           447 drivers/char/tpm/tpm_ibmvtpm.c 	return plpar_hcall_norets(H_REG_CRQ, ibmvtpm->vdev->unit_address,
ibmvtpm           448 drivers/char/tpm/tpm_ibmvtpm.c 				  ibmvtpm->crq_dma_handle, CRQ_RES_BUF_SIZE);
ibmvtpm           478 drivers/char/tpm/tpm_ibmvtpm.c static struct ibmvtpm_crq *ibmvtpm_crq_get_next(struct ibmvtpm_dev *ibmvtpm)
ibmvtpm           480 drivers/char/tpm/tpm_ibmvtpm.c 	struct ibmvtpm_crq_queue *crq_q = &ibmvtpm->crq_queue;
ibmvtpm           500 drivers/char/tpm/tpm_ibmvtpm.c 				struct ibmvtpm_dev *ibmvtpm)
ibmvtpm           508 drivers/char/tpm/tpm_ibmvtpm.c 			dev_info(ibmvtpm->dev, "CRQ initialized\n");
ibmvtpm           509 drivers/char/tpm/tpm_ibmvtpm.c 			rc = ibmvtpm_crq_send_init_complete(ibmvtpm);
ibmvtpm           511 drivers/char/tpm/tpm_ibmvtpm.c 				dev_err(ibmvtpm->dev, "Unable to send CRQ init complete rc=%d\n", rc);
ibmvtpm           514 drivers/char/tpm/tpm_ibmvtpm.c 			dev_info(ibmvtpm->dev,
ibmvtpm           518 drivers/char/tpm/tpm_ibmvtpm.c 			dev_err(ibmvtpm->dev, "Unknown crq message type: %d\n", crq->msg);
ibmvtpm           525 drivers/char/tpm/tpm_ibmvtpm.c 				dev_err(ibmvtpm->dev, "Invalid rtce size\n");
ibmvtpm           528 drivers/char/tpm/tpm_ibmvtpm.c 			ibmvtpm->rtce_size = be16_to_cpu(crq->len);
ibmvtpm           529 drivers/char/tpm/tpm_ibmvtpm.c 			ibmvtpm->rtce_buf = kmalloc(ibmvtpm->rtce_size,
ibmvtpm           531 drivers/char/tpm/tpm_ibmvtpm.c 			if (!ibmvtpm->rtce_buf) {
ibmvtpm           532 drivers/char/tpm/tpm_ibmvtpm.c 				dev_err(ibmvtpm->dev, "Failed to allocate memory for rtce buffer\n");
ibmvtpm           536 drivers/char/tpm/tpm_ibmvtpm.c 			ibmvtpm->rtce_dma_handle = dma_map_single(ibmvtpm->dev,
ibmvtpm           537 drivers/char/tpm/tpm_ibmvtpm.c 				ibmvtpm->rtce_buf, ibmvtpm->rtce_size,
ibmvtpm           540 drivers/char/tpm/tpm_ibmvtpm.c 			if (dma_mapping_error(ibmvtpm->dev,
ibmvtpm           541 drivers/char/tpm/tpm_ibmvtpm.c 					      ibmvtpm->rtce_dma_handle)) {
ibmvtpm           542 drivers/char/tpm/tpm_ibmvtpm.c 				kfree(ibmvtpm->rtce_buf);
ibmvtpm           543 drivers/char/tpm/tpm_ibmvtpm.c 				ibmvtpm->rtce_buf = NULL;
ibmvtpm           544 drivers/char/tpm/tpm_ibmvtpm.c 				dev_err(ibmvtpm->dev, "Failed to dma map rtce buffer\n");
ibmvtpm           549 drivers/char/tpm/tpm_ibmvtpm.c 			ibmvtpm->vtpm_version = be32_to_cpu(crq->data);
ibmvtpm           553 drivers/char/tpm/tpm_ibmvtpm.c 			ibmvtpm->res_len = be16_to_cpu(crq->len);
ibmvtpm           554 drivers/char/tpm/tpm_ibmvtpm.c 			ibmvtpm->tpm_processing_cmd = false;
ibmvtpm           555 drivers/char/tpm/tpm_ibmvtpm.c 			wake_up_interruptible(&ibmvtpm->wq);
ibmvtpm           575 drivers/char/tpm/tpm_ibmvtpm.c 	struct ibmvtpm_dev *ibmvtpm = (struct ibmvtpm_dev *) vtpm_instance;
ibmvtpm           582 drivers/char/tpm/tpm_ibmvtpm.c 	while ((crq = ibmvtpm_crq_get_next(ibmvtpm)) != NULL) {
ibmvtpm           583 drivers/char/tpm/tpm_ibmvtpm.c 		ibmvtpm_crq_process(crq, ibmvtpm);
ibmvtpm           604 drivers/char/tpm/tpm_ibmvtpm.c 	struct ibmvtpm_dev *ibmvtpm;
ibmvtpm           614 drivers/char/tpm/tpm_ibmvtpm.c 	ibmvtpm = kzalloc(sizeof(struct ibmvtpm_dev), GFP_KERNEL);
ibmvtpm           615 drivers/char/tpm/tpm_ibmvtpm.c 	if (!ibmvtpm) {
ibmvtpm           620 drivers/char/tpm/tpm_ibmvtpm.c 	ibmvtpm->dev = dev;
ibmvtpm           621 drivers/char/tpm/tpm_ibmvtpm.c 	ibmvtpm->vdev = vio_dev;
ibmvtpm           623 drivers/char/tpm/tpm_ibmvtpm.c 	crq_q = &ibmvtpm->crq_queue;
ibmvtpm           631 drivers/char/tpm/tpm_ibmvtpm.c 	ibmvtpm->crq_dma_handle = dma_map_single(dev, crq_q->crq_addr,
ibmvtpm           635 drivers/char/tpm/tpm_ibmvtpm.c 	if (dma_mapping_error(dev, ibmvtpm->crq_dma_handle)) {
ibmvtpm           641 drivers/char/tpm/tpm_ibmvtpm.c 				ibmvtpm->crq_dma_handle, CRQ_RES_BUF_SIZE);
ibmvtpm           643 drivers/char/tpm/tpm_ibmvtpm.c 		rc = ibmvtpm_reset_crq(ibmvtpm);
ibmvtpm           651 drivers/char/tpm/tpm_ibmvtpm.c 			 tpm_ibmvtpm_driver_name, ibmvtpm);
ibmvtpm           663 drivers/char/tpm/tpm_ibmvtpm.c 	init_waitqueue_head(&ibmvtpm->wq);
ibmvtpm           667 drivers/char/tpm/tpm_ibmvtpm.c 	dev_set_drvdata(&chip->dev, ibmvtpm);
ibmvtpm           669 drivers/char/tpm/tpm_ibmvtpm.c 	spin_lock_init(&ibmvtpm->rtce_lock);
ibmvtpm           671 drivers/char/tpm/tpm_ibmvtpm.c 	rc = ibmvtpm_crq_send_init(ibmvtpm);
ibmvtpm           675 drivers/char/tpm/tpm_ibmvtpm.c 	rc = ibmvtpm_crq_get_version(ibmvtpm);
ibmvtpm           679 drivers/char/tpm/tpm_ibmvtpm.c 	rc = ibmvtpm_crq_get_rtce_size(ibmvtpm);
ibmvtpm           689 drivers/char/tpm/tpm_ibmvtpm.c 	dma_unmap_single(dev, ibmvtpm->crq_dma_handle, CRQ_RES_BUF_SIZE,
ibmvtpm           692 drivers/char/tpm/tpm_ibmvtpm.c 	if (ibmvtpm) {
ibmvtpm           695 drivers/char/tpm/tpm_ibmvtpm.c 		kfree(ibmvtpm);