diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index f5e68a7..b628498 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c @@ -4792,7 +4792,7 @@ static struct omap_hwmod_ocp_if *omap44xx_hwmod_ocp_ifs[] __initdata = { &omap44xx_l4_per__i2c4, &omap44xx_l3_main_2__ipu, &omap44xx_l3_main_2__iss, - /* &omap44xx_iva__sl2if, */ + &omap44xx_iva__sl2if, &omap44xx_l3_main_2__iva, &omap44xx_l4_wkup__kbd, &omap44xx_l4_cfg__mailbox, diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c index af11511..ad4eacf 100644 --- a/arch/arm/mach-omap2/pdata-quirks.c +++ b/arch/arm/mach-omap2/pdata-quirks.c @@ -14,9 +14,11 @@ #include #include #include +#include #include #include +#include #include "common.h" #include "common-board-devices.h" @@ -243,6 +245,55 @@ static void __init nokia_n900_legacy_init(void) } } +static struct platform_device omap4_ducati = { + .name = "omap-rproc", + .id = 1, +}; + +static struct omap_rproc_pdata omap4_rproc_data[] = { + { + .name = "ipu_c0", + .firmware = "ducati-m3-core0.xem3", + .mbox_name = "mbox_ipu", + .oh_name = "ipu", + .oh_name_opt = "iss", + .set_bootaddr = omap_ctrl_write_dsp_boot_addr, + .device_enable = omap_device_enable, + }, +}; + +static struct omap_iommu_arch_data omap4_ipu_iommu = { + .name = "55082000.mmu", +}; + +static void __init custboard_legacy_init(void) +{ + omap4_ducati.dev.archdata.iommu = &omap4_ipu_iommu; + platform_device_register(&omap4_ducati); + + platform_device_add_data(&omap4_ducati, + &omap4_rproc_data, + sizeof(struct omap_rproc_pdata)); + +} + static void __init omap3_tao3530_legacy_init(void) { hsmmc2_internal_input_clk(); @@ -361,6 +412,9 @@ static struct pdata_init pdata_quirks[] __initdata = { { "technexion,omap3-tao3530", omap3_tao3530_legacy_init, }, #endif #ifdef CONFIG_SOC_OMAP5 + { "company,board", custboard_legacy_init, }, +#endif +#ifdef CONFIG_SOC_OMAP5 { "ti,omap5-uevm", omap5_uevm_legacy_init, }, #endif { /* sentinel */ }, diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c index a3d6138..1e445c5 100644 --- a/drivers/remoteproc/remoteproc_core.c +++ b/drivers/remoteproc/remoteproc_core.c @@ -276,10 +276,10 @@ rproc_parse_vring(struct rproc_vdev *rvdev, struct fw_rsc_vdev *rsc, int i) i, vring->da, vring->num, vring->align); /* make sure reserved bytes are zeroes */ - if (vring->reserved) { +/* if (vring->reserved) { dev_err(dev, "vring rsc has non zero reserved bytes\n"); return -EINVAL; - } + }*/ /* verify queue size and vring alignment are sane */ if (!vring->num || !vring->align) { @@ -514,10 +514,10 @@ static int rproc_handle_devmem(struct rproc *rproc, struct fw_rsc_devmem *rsc, } /* make sure reserved bytes are zeroes */ - if (rsc->reserved) { +/* if (rsc->reserved) { dev_err(dev, "devmem rsc has non zero reserved bytes\n"); return -EINVAL; - } + }*/ mapping = kzalloc(sizeof(*mapping), GFP_KERNEL); if (!mapping) { @@ -587,10 +587,10 @@ static int rproc_handle_carveout(struct rproc *rproc, } /* make sure reserved bytes are zeroes */ - if (rsc->reserved) { +/* if (rsc->reserved) { dev_err(dev, "carveout rsc has non zero reserved bytes\n"); return -EINVAL; - } + }*/ dev_dbg(dev, "carveout rsc: da %x, pa %x, len %x, flags %x\n", rsc->da, rsc->pa, rsc->len, rsc->flags);