|
@@ -425,6 +425,7 @@ static int perf_set_mw(struct perf_ctx *perf, resource_size_t size)
|
|
|
{
|
|
|
struct perf_mw *mw = &perf->mw;
|
|
|
size_t xlat_size, buf_size;
|
|
|
+ int rc;
|
|
|
|
|
|
if (!size)
|
|
|
return -EINVAL;
|
|
@@ -448,6 +449,13 @@ static int perf_set_mw(struct perf_ctx *perf, resource_size_t size)
|
|
|
mw->buf_size = 0;
|
|
|
}
|
|
|
|
|
|
+ rc = ntb_mw_set_trans(perf->ntb, 0, mw->dma_addr, mw->xlat_size);
|
|
|
+ if (rc) {
|
|
|
+ dev_err(&perf->ntb->dev, "Unable to set mw0 translation\n");
|
|
|
+ perf_free_mw(perf);
|
|
|
+ return -EIO;
|
|
|
+ }
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|