On Mon, Sep 16, 2013 at 2:28 AM, Archit Taneja archit@ti.com wrote:
On Friday 13 September 2013 07:44 PM, Rob Clark wrote:
On Fri, Sep 13, 2013 at 5:14 AM, Archit Taneja archit@ti.com wrote:
Enable use of DT for DMM/Tiler.
Originally worked on by Andy Gross.
looks good.. but do we want to get information about # of LUT's, etc, from DT? Or did we decide that we can reliably get this from the hw? I lost track of that discussion (I guess Andy would remember)..
I am not aware of the discussion either. But looks like we get the LUT info from the HW registers in omap_dmm_probe:
right.. I'm possibly mis-remembering, but I thought I remember Andy worried that this was not reliable for some reason or another, but I can't really remember the details. The issue may have only been related to a pre-Si simulation environment, so it could be nothing.
I suppose if it becomes an issue in the future we could always add DT bindings to override what we would read from the hw, so I guess if this works on all the current devices, maybe it isn't worth worrying about right now.
BR, -R
hwinfo = readl(omap_dmm->base + DMM_PAT_HWINFO); omap_dmm->num_engines = (hwinfo >> 24) & 0x1F; omap_dmm->num_lut = (hwinfo >> 16) & 0x1F; omap_dmm->container_width = 256; omap_dmm->container_height = 128; atomic_set(&omap_dmm->engine_counter, omap_dmm->num_engines); /* read out actual LUT width and height */ pat_geom = readl(omap_dmm->base + DMM_PAT_GEOMETRY); omap_dmm->lut_width = ((pat_geom >> 16) & 0xF) << 5; omap_dmm->lut_height = ((pat_geom >> 24) & 0xF) << 5; /* increment LUT by one if on OMAP5 */ /* LUT has twice the height, and is split into a separate container
*/ if (omap_dmm->lut_height != omap_dmm->container_height) omap_dmm->num_lut++;
Archit