gc_writel
gc_writel(priv, REG_GCIECR, 0);
gc_writel(priv, REG_GCCR, GCCR_ABORT);
gc_writel(priv, REG_GCCR, 0);
gc_writel(priv, REG_GCRBLR, 0);
gc_writel(priv, REG_GCRBBR, priv->shared_phys);
gc_writel(priv, REG_GCRBTR, priv->shared_phys);
gc_writel(priv, REG_GCIECR, IE_ALL & ~IE_EOB);
gc_writel(priv, REG_GCRBLR, 0);
gc_writel(priv, REG_GCRBBR, shared->buffer_phys);
gc_writel(priv, REG_GCRBTR, shared->buffer_phys + num * 4);
gc_writel(priv, REG_GCRBLR, ((num + 63) & ~63) * 4);
gc_writel(priv, REG_GCRBLR, 0);
gc_writel(priv, REG_GCISCR, status);