mbox series

[v3,0/3] drm: Add ASPEED BMC 'GFX' driver

Message ID 20190403001909.31637-1-joel@jms.id.au
Headers show
Series drm: Add ASPEED BMC 'GFX' driver | expand

Message

Joel Stanley April 3, 2019, 12:19 a.m. UTC
v3: Fix up drmP and IRQ flag, thanks Sam
v2: Address review from Noralf and Daniel, add maintainers patch

This driver is for the ASPEED BMC SoC's GFX display hardware. This
driver runs on the ARM based BMC systems, unlike the ast driver which
runs on a host CPU and is is for a PCIe graphics device that happens to
live in the BMC's silicon, but is otherwise available for use by the
BMC.

Joel Stanley (3):
  dt-bindings: gpu: Add ASPEED GFX bindings document
  drm: Add ASPEED GFX driver
  MAINTAINERS: Add ASPEED BMC GFX DRM driver entry

 .../devicetree/bindings/gpu/aspeed-gfx.txt    |  41 +++
 MAINTAINERS                                   |   8 +
 drivers/gpu/drm/Kconfig                       |   2 +
 drivers/gpu/drm/Makefile                      |   1 +
 drivers/gpu/drm/aspeed/Kconfig                |  14 +
 drivers/gpu/drm/aspeed/Makefile               |   3 +
 drivers/gpu/drm/aspeed/aspeed_gfx.h           | 104 +++++++
 drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c      | 241 ++++++++++++++++
 drivers/gpu/drm/aspeed/aspeed_gfx_drv.c       | 269 ++++++++++++++++++
 drivers/gpu/drm/aspeed/aspeed_gfx_out.c       |  42 +++
 10 files changed, 725 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/gpu/aspeed-gfx.txt
 create mode 100644 drivers/gpu/drm/aspeed/Kconfig
 create mode 100644 drivers/gpu/drm/aspeed/Makefile
 create mode 100644 drivers/gpu/drm/aspeed/aspeed_gfx.h
 create mode 100644 drivers/gpu/drm/aspeed/aspeed_gfx_crtc.c
 create mode 100644 drivers/gpu/drm/aspeed/aspeed_gfx_drv.c
 create mode 100644 drivers/gpu/drm/aspeed/aspeed_gfx_out.c

Comments

Daniel Vetter April 3, 2019, 7:11 a.m. UTC | #1
On Wed, Apr 03, 2019 at 10:49:09AM +1030, Joel Stanley wrote:
> This hardware is found inside ASPEED Baseboard Management Controller
> (BMC) system on chips. It is called the 'SOC Display Controller' or 'GFX'.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>
> ---
>  MAINTAINERS | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index c18f5f10cf91..c3ad730e26f3 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -4909,6 +4909,14 @@ M:	Dave Airlie <airlied@redhat.com>
>  S:	Odd Fixes
>  F:	drivers/gpu/drm/ast/
>  
> +DRM DRIVER FOR ASPEED BMC GFX
> +M: 	Joel Stanley <joel@jms.id.au>
> +L:	linux-aspeed@lists.ozlabs.org
> +T:	git git://anongit.freedesktop.org/drm/drm-misc

Do you have the fdo account request for drm-misc already?
-Daniel

> +S:	Supported
> +F:	drivers/gpu/drm/aspeed/
> +F:	Documentation/devicetree/bindings/gpu/aspeed-gfx.txt
> +
>  DRM DRIVER FOR BOCHS VIRTUAL GPU
>  M:	Gerd Hoffmann <kraxel@redhat.com>
>  L:	virtualization@lists.linux-foundation.org
> -- 
> 2.20.1
>
Joel Stanley April 3, 2019, 7:30 a.m. UTC | #2
On Wed, 3 Apr 2019 at 07:11, Daniel Vetter <daniel@ffwll.ch> wrote:
>
> On Wed, Apr 03, 2019 at 10:49:09AM +1030, Joel Stanley wrote:
> > This hardware is found inside ASPEED Baseboard Management Controller
> > (BMC) system on chips. It is called the 'SOC Display Controller' or 'GFX'.
> >
> > Signed-off-by: Joel Stanley <joel@jms.id.au>
> > ---
> >  MAINTAINERS | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> >
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index c18f5f10cf91..c3ad730e26f3 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -4909,6 +4909,14 @@ M:     Dave Airlie <airlied@redhat.com>
> >  S:   Odd Fixes
> >  F:   drivers/gpu/drm/ast/
> >
> > +DRM DRIVER FOR ASPEED BMC GFX
> > +M:   Joel Stanley <joel@jms.id.au>
> > +L:   linux-aspeed@lists.ozlabs.org
> > +T:   git git://anongit.freedesktop.org/drm/drm-misc
>
> Do you have the fdo account request for drm-misc already?

I don't. How does the process work?

Cheers,

Joel
Joel Stanley April 3, 2019, 7:36 a.m. UTC | #3
On Wed, 3 Apr 2019 at 07:30, Joel Stanley <joel@jms.id.au> wrote:
>
> On Wed, 3 Apr 2019 at 07:11, Daniel Vetter <daniel@ffwll.ch> wrote:
> >
> > On Wed, Apr 03, 2019 at 10:49:09AM +1030, Joel Stanley wrote:
> > > This hardware is found inside ASPEED Baseboard Management Controller
> > > (BMC) system on chips. It is called the 'SOC Display Controller' or 'GFX'.
> > >
> > > Signed-off-by: Joel Stanley <joel@jms.id.au>
> > > ---
> > >  MAINTAINERS | 8 ++++++++
> > >  1 file changed, 8 insertions(+)
> > >
> > > diff --git a/MAINTAINERS b/MAINTAINERS
> > > index c18f5f10cf91..c3ad730e26f3 100644
> > > --- a/MAINTAINERS
> > > +++ b/MAINTAINERS
> > > @@ -4909,6 +4909,14 @@ M:     Dave Airlie <airlied@redhat.com>
> > >  S:   Odd Fixes
> > >  F:   drivers/gpu/drm/ast/
> > >
> > > +DRM DRIVER FOR ASPEED BMC GFX
> > > +M:   Joel Stanley <joel@jms.id.au>
> > > +L:   linux-aspeed@lists.ozlabs.org
> > > +T:   git git://anongit.freedesktop.org/drm/drm-misc
> >
> > Do you have the fdo account request for drm-misc already?
>
> I don't. How does the process work?

I found it. Here's my request:

 https://gitlab.freedesktop.org/freedesktop/freedesktop/issues/141
Andrew Jeffery April 4, 2019, 1:04 a.m. UTC | #4
On Wed, 3 Apr 2019, at 10:49, Joel Stanley wrote:
> This hardware is found inside ASPEED Baseboard Management Controller
> (BMC) system on chips. It is called the 'SOC Display Controller' or 'GFX'.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>

Acked-by: Andrew Jeffery <andrew@aj.id.au>

> ---
>  MAINTAINERS | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index c18f5f10cf91..c3ad730e26f3 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -4909,6 +4909,14 @@ M:	Dave Airlie <airlied@redhat.com>
>  S:	Odd Fixes
>  F:	drivers/gpu/drm/ast/
>  
> +DRM DRIVER FOR ASPEED BMC GFX
> +M: 	Joel Stanley <joel@jms.id.au>
> +L:	linux-aspeed@lists.ozlabs.org
> +T:	git git://anongit.freedesktop.org/drm/drm-misc
> +S:	Supported
> +F:	drivers/gpu/drm/aspeed/
> +F:	Documentation/devicetree/bindings/gpu/aspeed-gfx.txt
> +
>  DRM DRIVER FOR BOCHS VIRTUAL GPU
>  M:	Gerd Hoffmann <kraxel@redhat.com>
>  L:	virtualization@lists.linux-foundation.org
> -- 
> 2.20.1
> 
>
Rob Herring (Arm) April 6, 2019, 6:06 a.m. UTC | #5
On Wed, Apr 03, 2019 at 10:49:07AM +1030, Joel Stanley wrote:
> This describes the ASPEED BMC SoC's display controller.
> 
> Signed-off-by: Joel Stanley <joel@jms.id.au>
> Reviewed-by: Andrew Jeffery <andrew@aj.id.au>
> ---
> v3:
>  Add Andrew's reviewed-by
> 
>  .../devicetree/bindings/gpu/aspeed-gfx.txt    | 41 +++++++++++++++++++
>  1 file changed, 41 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/gpu/aspeed-gfx.txt
> 
> diff --git a/Documentation/devicetree/bindings/gpu/aspeed-gfx.txt b/Documentation/devicetree/bindings/gpu/aspeed-gfx.txt
> new file mode 100644
> index 000000000000..a74033332668
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/gpu/aspeed-gfx.txt
> @@ -0,0 +1,41 @@
> +Device tree configuration for the GFX display deivce on the AST2500 SoCs.
> +
> +Required properties:
> +  - compatible
> +    * Must be one of the following:
> +      + aspeed,ast2500-gfx
> +      + aspeed,ast2400-gfx
> +    * In addition, the ASPEED pinctrl bindings require the 'syscon' property to
> +      be present
> +
> +  - reg: Physical base address and length of the GFX registers
> +
> +  - interrupts: interrupt number for the GFX device
> +
> +  - clocks: clock number used to generate the pixel clock
> +
> +  - resets: reset line that must be released to use the GFX device
> +
> +  - memory-region:
> +    Phandle to a memory region to allocate from, as defined in
> +    Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt

If required, does that mean the h/w can only use certain memory? Why?

> +
> +
> +Example:
> +
> +gfx: display@1e6e6000 {
> +	compatible = "aspeed,ast2500-gfx", "syscon";
> +	reg = <0x1e6e6000 0x1000>;
> +	reg-io-width = <4>;

Not documented as used. This should be implied by the compatible though.

> +	clocks = <&syscon ASPEED_CLK_GATE_D1CLK>;
> +	resets = <&syscon ASPEED_RESET_CRT1>;
> +	interrupts = <0x19>;
> +	memory-region = <&gfx_memory>;
> +};
> +
> +gfx_memory: framebuffer {
> +	size = <0x01000000>;
> +	alignment = <0x01000000>;
> +	compatible = "shared-dma-pool";
> +	reusable;
> +};
> -- 
> 2.20.1
>