[Freedreno] [PATCH] drm/msm: a4xx support for msm-drm
Rob Clark
robdclark at gmail.com
Thu Oct 30 17:12:39 PDT 2014
Hey Aravind,
Just a couple quick comments (inline below).. overall patchset looks
to be in reasonably good shape. It would be nice if you could resend
and CC dri-devel at lists.freedesktop.org.. and format-patch as a
patchset (so subject lines have the "[PATCH x/y]" since things don't
always show up in the inbox in FIFO order). I'll have a closer look
and may have a minor nit-pick or two, but the overall structure of
things in the patchset looks good.
On Thu, Oct 30, 2014 at 5:12 PM, Ganesan, Aravind
<aravindg at codeaurora.org> wrote:
> Added a4xx GPU support.
>
> Signed-off-by: Aravind Ganesan <aravindg at codeaurora.org>
> ---
> drivers/gpu/drm/msm/Makefile | 1 +
> drivers/gpu/drm/msm/adreno/a4xx_gpu.c | 619
> +++++++++++++++++++++++++++++
> drivers/gpu/drm/msm/adreno/a4xx_gpu.h | 34 ++
> drivers/gpu/drm/msm/adreno/adreno_device.c | 13 +
> drivers/gpu/drm/msm/adreno/adreno_gpu.c | 2 +-
> drivers/gpu/drm/msm/adreno/adreno_gpu.h | 14 +-
> 6 files changed, 680 insertions(+), 3 deletions(-)
> create mode 100644 drivers/gpu/drm/msm/adreno/a4xx_gpu.c
> create mode 100644 drivers/gpu/drm/msm/adreno/a4xx_gpu.h
> diff --git a/drivers/gpu/drm/msm/adreno/a4xx_gpu.c
> b/drivers/gpu/drm/msm/adreno/a4xx_gpu.c
> new file mode 100644
> index 0000000..f0edac0
> --- /dev/null
> +++ b/drivers/gpu/drm/msm/adreno/a4xx_gpu.c
[snip]
> +static irqreturn_t a4xx_irq(struct msm_gpu *gpu)
> +{
> + uint32_t status;
> +
> + status = gpu_read(gpu, REG_A4XX_RBBM_INT_0_STATUS);
> + DBG("%s: Int status %08x", gpu->name, status);
> +
> + gpu_write(gpu, REG_A4XX_RBBM_INT_CLEAR_CMD, status);
> +
> + msm_gpu_retire(gpu);
> +
> + return IRQ_HANDLED;
> +}
newline pls
> +const unsigned int a4xx_registers[] = {
> + /* RBBM */
> + 0x0000, 0x0002, 0x0004, 0x0021, 0x0023, 0x0024, 0x0026, 0x0026,
> + 0x0028, 0x002B, 0x002E, 0x0034, 0x0037, 0x0044, 0x0047, 0x0066,
> + 0x0068, 0x0095, 0x009C, 0x0170, 0x0174, 0x01AF,
> + /* CP */
> + 0x0200, 0x0233, 0x0240, 0x0250, 0x04C0, 0x04DD, 0x0500, 0x050B,
> + 0x0578, 0x058F,
> + /* VSC */
> + 0x0C00, 0x0C03, 0x0C08, 0x0C41, 0x0C50, 0x0C51,
> + /* GRAS */
> + 0x0C80, 0x0C81, 0x0C88, 0x0C8F,
> + /* RB */
> + 0x0CC0, 0x0CC0, 0x0CC4, 0x0CD2,
> + /* PC */
> + 0x0D00, 0x0D0C, 0x0D10, 0x0D17, 0x0D20, 0x0D23,
> + /* VFD */
> + 0x0E40, 0x0E4A,
> + /* VPC */
> + 0x0E60, 0x0E61, 0x0E63, 0x0E68,
> + /* UCHE */
> + 0x0E80, 0x0E84, 0x0E88, 0x0E95,
> + /* VMIDMT */
> + 0x1000, 0x1000, 0x1002, 0x1002, 0x1004, 0x1004, 0x1008, 0x100A,
> + 0x100C, 0x100D, 0x100F, 0x1010, 0x1012, 0x1016, 0x1024, 0x1024,
> + 0x1027, 0x1027, 0x1100, 0x1100, 0x1102, 0x1102, 0x1104, 0x1104,
> + 0x1110, 0x1110, 0x1112, 0x1116, 0x1124, 0x1124, 0x1300, 0x1300,
> + 0x1380, 0x1380,
> + /* GRAS CTX 0 */
> + 0x2000, 0x2004, 0x2008, 0x2067, 0x2070, 0x2078, 0x207B, 0x216E,
> + /* PC CTX 0 */
> + 0x21C0, 0x21C6, 0x21D0, 0x21D0, 0x21D9, 0x21D9, 0x21E5, 0x21E7,
> + /* VFD CTX 0 */
> + 0x2200, 0x2204, 0x2208, 0x22A9,
> + /* GRAS CTX 1 */
> + 0x2400, 0x2404, 0x2408, 0x2467, 0x2470, 0x2478, 0x247B, 0x256E,
> + /* PC CTX 1 */
> + 0x25C0, 0x25C6, 0x25D0, 0x25D0, 0x25D9, 0x25D9, 0x25E5, 0x25E7,
> + /* VFD CTX 1 */
> + 0x2600, 0x2604, 0x2608, 0x26A9,
> + /* XPU */
> + 0x2C00, 0x2C01, 0x2C10, 0x2C10, 0x2C12, 0x2C16, 0x2C1D, 0x2C20,
> + 0x2C28, 0x2C28, 0x2C30, 0x2C30, 0x2C32, 0x2C36, 0x2C40, 0x2C40,
> + 0x2C50, 0x2C50, 0x2C52, 0x2C56, 0x2C80, 0x2C80, 0x2C94, 0x2C95,
> + /* VBIF */
> + 0x3000, 0x3007, 0x300C, 0x3014, 0x3018, 0x301D, 0x3020, 0x3022,
> + 0x3024, 0x3026, 0x3028, 0x302A, 0x302C, 0x302D, 0x3030, 0x3031,
> + 0x3034, 0x3036, 0x3038, 0x3038, 0x303C, 0x303D, 0x3040, 0x3040,
> + 0x3049, 0x3049, 0x3058, 0x3058, 0x305B, 0x3061, 0x3064, 0x3068,
> + 0x306C, 0x306D, 0x3080, 0x3088, 0x308B, 0x308C, 0x3090, 0x3094,
> + 0x3098, 0x3098, 0x309C, 0x309C, 0x30C0, 0x30C0, 0x30C8, 0x30C8,
> + 0x30D0, 0x30D0, 0x30D8, 0x30D8, 0x30E0, 0x30E0, 0x3100, 0x3100,
> + 0x3108, 0x3108, 0x3110, 0x3110, 0x3118, 0x3118, 0x3120, 0x3120,
> + 0x3124, 0x3125, 0x3129, 0x3129, 0x3131, 0x3131, 0x330C, 0x330C,
> + 0x3310, 0x3310, 0x3400, 0x3401, 0x3410, 0x3410, 0x3412, 0x3416,
> + 0x341D, 0x3420, 0x3428, 0x3428, 0x3430, 0x3430, 0x3432, 0x3436,
> + 0x3440, 0x3440, 0x3450, 0x3450, 0x3452, 0x3456, 0x3480, 0x3480,
> + 0x3494, 0x3495, 0x4000, 0x4000, 0x4002, 0x4002, 0x4004, 0x4004,
> + 0x4008, 0x400A, 0x400C, 0x400D, 0x400F, 0x4012, 0x4014, 0x4016,
> + 0x401D, 0x401D, 0x4020, 0x4027, 0x4060, 0x4062, 0x4200, 0x4200,
> + 0x4300, 0x4300, 0x4400, 0x4400, 0x4500, 0x4500, 0x4800, 0x4802,
> + 0x480F, 0x480F, 0x4811, 0x4811, 0x4813, 0x4813, 0x4815, 0x4816,
> + 0x482B, 0x482B, 0x4857, 0x4857, 0x4883, 0x4883, 0x48AF, 0x48AF,
> + 0x48C5, 0x48C5, 0x48E5, 0x48E5, 0x4905, 0x4905, 0x4925, 0x4925,
> + 0x4945, 0x4945, 0x4950, 0x4950, 0x495B, 0x495B, 0x4980, 0x498E,
> + 0x4B00, 0x4B00, 0x4C00, 0x4C00, 0x4D00, 0x4D00, 0x4E00, 0x4E00,
> + 0x4E80, 0x4E80, 0x4F00, 0x4F00, 0x4F08, 0x4F08, 0x4F10, 0x4F10,
> + 0x4F18, 0x4F18, 0x4F20, 0x4F20, 0x4F30, 0x4F30, 0x4F60, 0x4F60,
> + 0x4F80, 0x4F81, 0x4F88, 0x4F89, 0x4FEE, 0x4FEE, 0x4FF3, 0x4FF3,
> + 0x6000, 0x6001, 0x6008, 0x600F, 0x6014, 0x6016, 0x6018, 0x601B,
> + 0x61FD, 0x61FD, 0x623C, 0x623C, 0x6380, 0x6380, 0x63A0, 0x63A0,
> + 0x63C0, 0x63C1, 0x63C8, 0x63C9, 0x63D0, 0x63D4, 0x63D6, 0x63D6,
> + 0x63EE, 0x63EE, 0x6400, 0x6401, 0x6408, 0x640F, 0x6414, 0x6416,
> + 0x6418, 0x641B, 0x65FD, 0x65FD, 0x663C, 0x663C, 0x6780, 0x6780,
> + 0x67A0, 0x67A0, 0x67C0, 0x67C1, 0x67C8, 0x67C9, 0x67D0, 0x67D4,
> + 0x67D6, 0x67D6, 0x67EE, 0x67EE, 0x6800, 0x6801, 0x6808, 0x680F,
> + 0x6814, 0x6816, 0x6818, 0x681B, 0x69FD, 0x69FD, 0x6A3C, 0x6A3C,
> + 0x6B80, 0x6B80, 0x6BA0, 0x6BA0, 0x6BC0, 0x6BC1, 0x6BC8, 0x6BC9,
> + 0x6BD0, 0x6BD4, 0x6BD6, 0x6BD6, 0x6BEE, 0x6BEE,
> +};
> +
you'll need a ~0 sentinel at the end of that.. which was something I
added recently.
BR,
-R
More information about the Freedreno
mailing list