diff mbox series

drm/nouveau/bios: Use HWSQ entry 1 for PowerBook6,1

Message ID 20220214155518.2980270-1-icenowy@aosc.io (mailing list archive)
State New, archived
Headers show
Series drm/nouveau/bios: Use HWSQ entry 1 for PowerBook6,1 | expand

Commit Message

Icenowy Zheng Feb. 14, 2022, 3:55 p.m. UTC
On PowerBook6,1 (PowerBook G4 867 12") HWSQ entry 0 (which is currently
always used by nouveau) fails, but the BIOS declares 2 HWSQ entries and
entry 1 works.

Add a quirk to use HWSQ entry 1.

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
---
 drivers/gpu/drm/nouveau/nouveau_bios.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Ilia Mirkin Feb. 14, 2022, 4:07 p.m. UTC | #1
I'm not saying this is wrong, but could you file a bug at
gitlab.freedesktop.org/drm/nouveau/-/issues and include the VBIOS
(/sys/kernel/debug/dri/0/vbios.rom)? That would make it easier to
review the full situation.

On Mon, Feb 14, 2022 at 11:03 AM Icenowy Zheng <icenowy@aosc.io> wrote:
>
> On PowerBook6,1 (PowerBook G4 867 12") HWSQ entry 0 (which is currently
> always used by nouveau) fails, but the BIOS declares 2 HWSQ entries and
> entry 1 works.
>
> Add a quirk to use HWSQ entry 1.
>
> Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> ---
>  drivers/gpu/drm/nouveau/nouveau_bios.c | 7 +++++++
>  1 file changed, 7 insertions(+)
>
> diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
> index e8c445eb11004..2691d0e0cf9f1 100644
> --- a/drivers/gpu/drm/nouveau/nouveau_bios.c
> +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
> @@ -1977,6 +1977,13 @@ static int load_nv17_hw_sequencer_ucode(struct drm_device *dev,
>         if (!hwsq_offset)
>                 return 0;
>
> +#ifdef __powerpc__
> +       /* HWSQ entry 0 fails on PowerBook G4 867 12" (Al) */
> +       if (of_machine_is_compatible("PowerBook6,1"))
> +               return load_nv17_hwsq_ucode_entry(dev, bios,
> +                                                 hwsq_offset + sz, 1);
> +#endif
> +
>         /* always use entry 0? */
>         return load_nv17_hwsq_ucode_entry(dev, bios, hwsq_offset + sz, 0);
>  }
> --
> 2.30.2
>
Icenowy Zheng Feb. 14, 2022, 4:31 p.m. UTC | #2
在 2022-02-14星期一的 11:07 -0500,Ilia Mirkin写道:
> I'm not saying this is wrong, but could you file a bug at
> gitlab.freedesktop.org/drm/nouveau/-/issues and include the VBIOS
> (/sys/kernel/debug/dri/0/vbios.rom)? That would make it easier to
> review the full situation.

Created at https://gitlab.freedesktop.org/drm/nouveau/-/issues/158 .

> 
> On Mon, Feb 14, 2022 at 11:03 AM Icenowy Zheng <icenowy@aosc.io> wrote:
> > 
> > On PowerBook6,1 (PowerBook G4 867 12") HWSQ entry 0 (which is
> > currently
> > always used by nouveau) fails, but the BIOS declares 2 HWSQ entries
> > and
> > entry 1 works.
> > 
> > Add a quirk to use HWSQ entry 1.
> > 
> > Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
> > ---
> >  drivers/gpu/drm/nouveau/nouveau_bios.c | 7 +++++++
> >  1 file changed, 7 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c
> > b/drivers/gpu/drm/nouveau/nouveau_bios.c
> > index e8c445eb11004..2691d0e0cf9f1 100644
> > --- a/drivers/gpu/drm/nouveau/nouveau_bios.c
> > +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
> > @@ -1977,6 +1977,13 @@ static int load_nv17_hw_sequencer_ucode(struct
> > drm_device *dev,
> >         if (!hwsq_offset)
> >                 return 0;
> > 
> > +#ifdef __powerpc__
> > +       /* HWSQ entry 0 fails on PowerBook G4 867 12" (Al) */
> > +       if (of_machine_is_compatible("PowerBook6,1"))
> > +               return load_nv17_hwsq_ucode_entry(dev, bios,
> > +                                                 hwsq_offset + sz,
> > 1);
> > +#endif
> > +
> >         /* always use entry 0? */
> >         return load_nv17_hwsq_ucode_entry(dev, bios, hwsq_offset +
> > sz, 0);
> >  }
> > --
> > 2.30.2
> >
diff mbox series

Patch

diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
index e8c445eb11004..2691d0e0cf9f1 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bios.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
@@ -1977,6 +1977,13 @@  static int load_nv17_hw_sequencer_ucode(struct drm_device *dev,
 	if (!hwsq_offset)
 		return 0;
 
+#ifdef __powerpc__
+	/* HWSQ entry 0 fails on PowerBook G4 867 12" (Al) */
+	if (of_machine_is_compatible("PowerBook6,1"))
+		return load_nv17_hwsq_ucode_entry(dev, bios,
+						  hwsq_offset + sz, 1);
+#endif
+
 	/* always use entry 0? */
 	return load_nv17_hwsq_ucode_entry(dev, bios, hwsq_offset + sz, 0);
 }