diff options
Diffstat (limited to 'drivers/cdx/controller/cdx_controller.c')
| -rw-r--r-- | drivers/cdx/controller/cdx_controller.c | 18 | 
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/cdx/controller/cdx_controller.c b/drivers/cdx/controller/cdx_controller.c index 0d1826980935..dc52f95f8978 100644 --- a/drivers/cdx/controller/cdx_controller.c +++ b/drivers/cdx/controller/cdx_controller.c @@ -45,6 +45,23 @@ void cdx_rpmsg_pre_remove(struct cdx_controller *cdx)  	cdx_mcdi_wait_for_quiescence(cdx->priv, MCDI_RPC_TIMEOUT);  } +static int cdx_configure_device(struct cdx_controller *cdx, +				u8 bus_num, u8 dev_num, +				struct cdx_device_config *dev_config) +{ +	int ret = 0; + +	switch (dev_config->type) { +	case CDX_DEV_RESET_CONF: +		ret = cdx_mcdi_reset_device(cdx->priv, bus_num, dev_num); +		break; +	default: +		ret = -EINVAL; +	} + +	return ret; +} +  static int cdx_scan_devices(struct cdx_controller *cdx)  {  	struct cdx_mcdi *cdx_mcdi = cdx->priv; @@ -104,6 +121,7 @@ static int cdx_scan_devices(struct cdx_controller *cdx)  static struct cdx_ops cdx_ops = {  	.scan		= cdx_scan_devices, +	.dev_configure	= cdx_configure_device,  };  static int xlnx_cdx_probe(struct platform_device *pdev)  | 
