Commit 5ffe124a authored by Federico Vaga's avatar Federico Vaga

Merge remote-tracking branch 'origin/develop' into develop

parents bcbefabe f595f29e
...@@ -648,22 +648,26 @@ static int svec_fpga_app_init(struct svec_fpga *svec_fpga) ...@@ -648,22 +648,26 @@ static int svec_fpga_app_init(struct svec_fpga *svec_fpga)
#define SVEC_FPGA_APP_RES_N (32 - SVEC_FPGA_APP_IRQ_BASE + 1) #define SVEC_FPGA_APP_RES_N (32 - SVEC_FPGA_APP_IRQ_BASE + 1)
struct vme_dev *vdev = to_vme_dev(svec_fpga->dev.parent); struct vme_dev *vdev = to_vme_dev(svec_fpga->dev.parent);
unsigned int res_n = SVEC_FPGA_APP_RES_N; unsigned int res_n = SVEC_FPGA_APP_RES_N;
struct resource res[SVEC_FPGA_APP_RES_N] = { struct resource *res;
[0] = {
.name = "app-mem",
.flags = IORESOURCE_MEM,
},
};
struct platform_device *pdev; struct platform_device *pdev;
struct irq_domain *vic_domain; struct irq_domain *vic_domain;
char app_name[SVEC_FPGA_APP_NAME_MAX]; char app_name[SVEC_FPGA_APP_NAME_MAX];
unsigned long app_offset; unsigned long app_offset;
int err, fn = svec_fpga->function_nr; int err = 0, fn = svec_fpga->function_nr;
res = kzalloc(SVEC_FPGA_APP_RES_N * sizeof(struct resource), GFP_KERNEL);
if (!res) {
return -ENOMEM;
}
res[0].name = "app-mem";
res[0].flags = IORESOURCE_MEM;
app_offset = svec_fpga_csr_app_offset(svec_fpga); app_offset = svec_fpga_csr_app_offset(svec_fpga);
if (!app_offset) { if (!app_offset) {
dev_warn(&svec_fpga->dev, "Application not found\n"); dev_warn(&svec_fpga->dev, "Application not found\n");
return 0; err = 0;
goto err_free;
} }
svec_fpga_metadata_get(&svec_fpga->meta_app, svec_fpga_metadata_get(&svec_fpga->meta_app,
...@@ -695,18 +699,21 @@ static int svec_fpga_app_init(struct svec_fpga *svec_fpga) ...@@ -695,18 +699,21 @@ static int svec_fpga_app_init(struct svec_fpga *svec_fpga)
err = svec_fpga_app_id_build(svec_fpga, app_offset, err = svec_fpga_app_id_build(svec_fpga, app_offset,
app_name, SVEC_FPGA_APP_NAME_MAX); app_name, SVEC_FPGA_APP_NAME_MAX);
if (err) if (err)
return err; goto err_free;
svec_fpga_app_restart(svec_fpga); svec_fpga_app_restart(svec_fpga);
pdev = platform_device_register_resndata(&svec_fpga->dev, pdev = platform_device_register_resndata(&svec_fpga->dev,
app_name, PLATFORM_DEVID_AUTO, app_name, PLATFORM_DEVID_AUTO,
res, res_n, res, res_n,
NULL, 0); NULL, 0);
if (IS_ERR(pdev)) err = IS_ERR(pdev);
return PTR_ERR(pdev); if (err)
goto err_free;
svec_fpga->app_pdev = pdev; svec_fpga->app_pdev = pdev;
return 0; err_free:
kfree(res);
return err;
} }
static void svec_fpga_app_exit(struct svec_fpga *svec_fpga) static void svec_fpga_app_exit(struct svec_fpga *svec_fpga)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment