diff options
Diffstat (limited to 'drivers/misc/cxl/api.c')
| -rw-r--r-- | drivers/misc/cxl/api.c | 28 | 
1 files changed, 19 insertions, 9 deletions
diff --git a/drivers/misc/cxl/api.c b/drivers/misc/cxl/api.c index 2107c948406d..6d228ccd884d 100644 --- a/drivers/misc/cxl/api.c +++ b/drivers/misc/cxl/api.c @@ -68,15 +68,6 @@ struct cxl_context *cxl_get_context(struct pci_dev *dev)  }  EXPORT_SYMBOL_GPL(cxl_get_context); -struct device *cxl_get_phys_dev(struct pci_dev *dev) -{ -	struct cxl_afu *afu; - -	afu = cxl_pci_to_afu(dev); - -	return afu->adapter->dev.parent; -} -  int cxl_release_context(struct cxl_context *ctx)  {  	if (ctx->status >= STARTED) @@ -192,6 +183,7 @@ int cxl_start_context(struct cxl_context *ctx, u64 wed,  		ctx->pid = get_task_pid(task, PIDTYPE_PID);  		ctx->glpid = get_task_pid(task->group_leader, PIDTYPE_PID);  		kernel = false; +		ctx->real_mode = false;  	}  	cxl_ctx_get(); @@ -228,6 +220,24 @@ void cxl_set_master(struct cxl_context *ctx)  }  EXPORT_SYMBOL_GPL(cxl_set_master); +int cxl_set_translation_mode(struct cxl_context *ctx, bool real_mode) +{ +	if (ctx->status == STARTED) { +		/* +		 * We could potentially update the PE and issue an update LLCMD +		 * to support this, but it doesn't seem to have a good use case +		 * since it's trivial to just create a second kernel context +		 * with different translation modes, so until someone convinces +		 * me otherwise: +		 */ +		return -EBUSY; +	} + +	ctx->real_mode = real_mode; +	return 0; +} +EXPORT_SYMBOL_GPL(cxl_set_translation_mode); +  /* wrappers around afu_* file ops which are EXPORTED */  int cxl_fd_open(struct inode *inode, struct file *file)  {  |