drm/omap: Remove shadow lut usage
authorAndy Gross <andy.gross@ti.com>
Fri, 12 Oct 2012 04:06:43 +0000 (23:06 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 22 Oct 2012 22:46:37 +0000 (15:46 -0700)
Removing extraneous shadow lut maintenance.  There is no need for
this to be in place until power management is added to the driver,
and this extra copy degrades performance for no gain.

Signed-off-by: Andy Gross <andy.gross@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/omapdrm/omap_dmm_priv.h
drivers/staging/omapdrm/omap_dmm_tiler.c

index 08b22e9f0ed7e855cbe18920ef180034d03f2bcc..09ebc50784d085ce97fa4dc2e825ed14f8c3403b 100644 (file)
@@ -141,9 +141,6 @@ struct refill_engine {
        /* only one trans per engine for now */
        struct dmm_txn txn;
 
-       /* offset to lut associated with container */
-       u32 *lut_offset;
-
        wait_queue_head_t wait_for_refill;
 
        struct list_head idle_node;
@@ -176,9 +173,6 @@ struct dmm {
        /* array of LUT - TCM containers */
        struct tcm **tcm;
 
-       /* LUT table storage */
-       u32 *lut;
-
        /* allocation list and lock */
        struct list_head alloc_head;
 };
index 3ae39554df1874662ff7f032186d966e51c7d8d2..fda9efc7bd05b5ee2cc368c972271c53dee10725 100644 (file)
@@ -184,9 +184,6 @@ static int dmm_txn_append(struct dmm_txn *txn, struct pat_area *area,
        int columns = (1 + area->x1 - area->x0);
        int rows = (1 + area->y1 - area->y0);
        int i = columns*rows;
-       u32 *lut = omap_dmm->lut + (engine->tcm->lut_id * omap_dmm->lut_width *
-                       omap_dmm->lut_height) +
-                       (area->y0 * omap_dmm->lut_width) + area->x0;
 
        pat = alloc_dma(txn, sizeof(struct pat), &pat_pa);
 
@@ -209,10 +206,6 @@ static int dmm_txn_append(struct dmm_txn *txn, struct pat_area *area,
                        page_to_phys(pages[n]) : engine->dmm->dummy_pa;
        }
 
-       /* fill in lut with new addresses */
-       for (i = 0; i < rows; i++, lut += omap_dmm->lut_width)
-               memcpy(lut, &data[i*columns], columns * sizeof(u32));
-
        txn->last_pat = pat;
 
        return 0;
@@ -539,8 +532,6 @@ static int omap_dmm_remove(struct platform_device *dev)
                if (omap_dmm->dummy_page)
                        __free_page(omap_dmm->dummy_page);
 
-               vfree(omap_dmm->lut);
-
                if (omap_dmm->irq > 0)
                        free_irq(omap_dmm->irq, omap_dmm);
 
@@ -556,7 +547,7 @@ static int omap_dmm_probe(struct platform_device *dev)
 {
        int ret = -EFAULT, i;
        struct tcm_area area = {0};
-       u32 hwinfo, pat_geom, lut_table_size;
+       u32 hwinfo, pat_geom;
        struct resource *mem;
 
        omap_dmm = kzalloc(sizeof(*omap_dmm), GFP_KERNEL);
@@ -628,16 +619,6 @@ static int omap_dmm_probe(struct platform_device *dev)
         */
        writel(0x7e7e7e7e, omap_dmm->base + DMM_PAT_IRQENABLE_SET);
 
-       lut_table_size = omap_dmm->lut_width * omap_dmm->lut_height *
-                       omap_dmm->num_lut;
-
-       omap_dmm->lut = vmalloc(lut_table_size * sizeof(*omap_dmm->lut));
-       if (!omap_dmm->lut) {
-               dev_err(&dev->dev, "could not allocate lut table\n");
-               ret = -ENOMEM;
-               goto fail;
-       }
-
        omap_dmm->dummy_page = alloc_page(GFP_KERNEL | __GFP_DMA32);
        if (!omap_dmm->dummy_page) {
                dev_err(&dev->dev, "could not allocate dummy page\n");
@@ -720,9 +701,6 @@ static int omap_dmm_probe(struct platform_device *dev)
                .p1.y = omap_dmm->container_height - 1,
        };
 
-       for (i = 0; i < lut_table_size; i++)
-               omap_dmm->lut[i] = omap_dmm->dummy_pa;
-
        /* initialize all LUTs to dummy page entries */
        for (i = 0; i < omap_dmm->num_lut; i++) {
                area.tcm = omap_dmm->tcm[i];