1
0
Fork 0

drm/omap: Remove shadow lut usage

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>
hifive-unleashed-5.1
Andy Gross 2012-10-11 23:06:43 -05:00 committed by Greg Kroah-Hartman
parent b1a4fddea0
commit 0f562d1646
2 changed files with 1 additions and 29 deletions

View 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;
};

View 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];