Message ID | 20180423161639.14420-1-tcallawa@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Den 23.04.2018 18.16, skrev Tom Callaway: > The PiTFT (ili9340) has a hardware reset circuit that resets only > on power-on and not on each reboot through a gpio like the > rpi-display does. As a result, we need to always apply the > rotation value regardless of the display "on/off" state. > Moved the rotation setting code below out_enable:. > > Signed-off-by: Tom Callaway <tcallawa@redhat.com> > --- > drivers/gpu/drm/tinydrm/mi0283qt.c | 41 +++++++++++++++++++++----------------- > 1 file changed, 23 insertions(+), 18 deletions(-) > > diff --git a/drivers/gpu/drm/tinydrm/mi0283qt.c b/drivers/gpu/drm/tinydrm/mi0283qt.c > index 4e6d2ee94e55..2bb9e3ce4823 100644 > --- a/drivers/gpu/drm/tinydrm/mi0283qt.c > +++ b/drivers/gpu/drm/tinydrm/mi0283qt.c > @@ -84,24 +84,6 @@ static void mi0283qt_enable(struct drm_simple_display_pipe *pipe, > /* Memory Access Control */ > mipi_dbi_command(mipi, MIPI_DCS_SET_PIXEL_FORMAT, MIPI_DCS_PIXEL_FMT_16BIT); > > - switch (mipi->rotation) { > - default: > - addr_mode = ILI9341_MADCTL_MV | ILI9341_MADCTL_MY | > - ILI9341_MADCTL_MX; > - break; > - case 90: > - addr_mode = ILI9341_MADCTL_MY; > - break; > - case 180: > - addr_mode = ILI9341_MADCTL_MV; > - break; > - case 270: > - addr_mode = ILI9341_MADCTL_MX; > - break; > - } > - addr_mode |= ILI9341_MADCTL_BGR; > - mipi_dbi_command(mipi, MIPI_DCS_SET_ADDRESS_MODE, addr_mode); > - > /* Frame Rate */ > mipi_dbi_command(mipi, ILI9341_FRMCTR1, 0x00, 0x1b); > > @@ -127,6 +109,29 @@ static void mi0283qt_enable(struct drm_simple_display_pipe *pipe, > msleep(100); > > out_enable: > + /* The PiTFT (ili9340) has a hardware reset circuit that > + * resets only on power-on and not on each reboot through > + * a gpio like the rpi-display does. > + * As a result, we need to always apply the rotation value > + * regardless of the display "on/off" state. > + */ > + switch (mipi->rotation) { > + default: > + addr_mode = ILI9341_MADCTL_MV | ILI9341_MADCTL_MY | > + ILI9341_MADCTL_MX; > + break; > + case 90: > + addr_mode = ILI9341_MADCTL_MY; > + break; > + case 180: > + addr_mode = ILI9341_MADCTL_MV; > + break; > + case 270: > + addr_mode = ILI9341_MADCTL_MX; > + break; > + } > + addr_mode |= ILI9341_MADCTL_BGR; > + mipi_dbi_command(mipi, MIPI_DCS_SET_ADDRESS_MODE, addr_mode); > mipi_dbi_enable_flush(mipi, crtc_state, plane_state); > } > Thanks for fixing this. Reviewed-by: Noralf Trønnes <noralf@tronnes.org>
On Tue, Apr 24, 2018 at 6:52 PM, Noralf Trønnes <noralf@tronnes.org> wrote: > > Den 23.04.2018 18.16, skrev Tom Callaway: >> >> The PiTFT (ili9340) has a hardware reset circuit that resets only >> on power-on and not on each reboot through a gpio like the >> rpi-display does. As a result, we need to always apply the >> rotation value regardless of the display "on/off" state. >> Moved the rotation setting code below out_enable:. >> >> Signed-off-by: Tom Callaway <tcallawa@redhat.com> >> --- >> drivers/gpu/drm/tinydrm/mi0283qt.c | 41 >> +++++++++++++++++++++----------------- >> 1 file changed, 23 insertions(+), 18 deletions(-) >> >> diff --git a/drivers/gpu/drm/tinydrm/mi0283qt.c >> b/drivers/gpu/drm/tinydrm/mi0283qt.c >> index 4e6d2ee94e55..2bb9e3ce4823 100644 >> --- a/drivers/gpu/drm/tinydrm/mi0283qt.c >> +++ b/drivers/gpu/drm/tinydrm/mi0283qt.c >> @@ -84,24 +84,6 @@ static void mi0283qt_enable(struct >> drm_simple_display_pipe *pipe, >> /* Memory Access Control */ >> mipi_dbi_command(mipi, MIPI_DCS_SET_PIXEL_FORMAT, >> MIPI_DCS_PIXEL_FMT_16BIT); >> - switch (mipi->rotation) { >> - default: >> - addr_mode = ILI9341_MADCTL_MV | ILI9341_MADCTL_MY | >> - ILI9341_MADCTL_MX; >> - break; >> - case 90: >> - addr_mode = ILI9341_MADCTL_MY; >> - break; >> - case 180: >> - addr_mode = ILI9341_MADCTL_MV; >> - break; >> - case 270: >> - addr_mode = ILI9341_MADCTL_MX; >> - break; >> - } >> - addr_mode |= ILI9341_MADCTL_BGR; >> - mipi_dbi_command(mipi, MIPI_DCS_SET_ADDRESS_MODE, addr_mode); >> - >> /* Frame Rate */ >> mipi_dbi_command(mipi, ILI9341_FRMCTR1, 0x00, 0x1b); >> @@ -127,6 +109,29 @@ static void mi0283qt_enable(struct >> drm_simple_display_pipe *pipe, >> msleep(100); >> out_enable: >> + /* The PiTFT (ili9340) has a hardware reset circuit that >> + * resets only on power-on and not on each reboot through >> + * a gpio like the rpi-display does. >> + * As a result, we need to always apply the rotation value >> + * regardless of the display "on/off" state. >> + */ >> + switch (mipi->rotation) { >> + default: >> + addr_mode = ILI9341_MADCTL_MV | ILI9341_MADCTL_MY | >> + ILI9341_MADCTL_MX; >> + break; >> + case 90: >> + addr_mode = ILI9341_MADCTL_MY; >> + break; >> + case 180: >> + addr_mode = ILI9341_MADCTL_MV; >> + break; >> + case 270: >> + addr_mode = ILI9341_MADCTL_MX; >> + break; >> + } >> + addr_mode |= ILI9341_MADCTL_BGR; >> + mipi_dbi_command(mipi, MIPI_DCS_SET_ADDRESS_MODE, addr_mode); >> mipi_dbi_enable_flush(mipi, crtc_state, plane_state); >> } >> > > > Thanks for fixing this. > > Reviewed-by: Noralf Trønnes <noralf@tronnes.org> Tom doesn't have commit rights, so would be on you to get this merged. -Daniel
Den 24.04.2018 21.16, skrev Daniel Vetter: > On Tue, Apr 24, 2018 at 6:52 PM, Noralf Trønnes <noralf@tronnes.org> wrote: >> Den 23.04.2018 18.16, skrev Tom Callaway: >>> The PiTFT (ili9340) has a hardware reset circuit that resets only >>> on power-on and not on each reboot through a gpio like the >>> rpi-display does. As a result, we need to always apply the >>> rotation value regardless of the display "on/off" state. >>> Moved the rotation setting code below out_enable:. >>> >>> Signed-off-by: Tom Callaway <tcallawa@redhat.com> >>> --- >>> drivers/gpu/drm/tinydrm/mi0283qt.c | 41 >>> +++++++++++++++++++++----------------- >>> 1 file changed, 23 insertions(+), 18 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/tinydrm/mi0283qt.c >>> b/drivers/gpu/drm/tinydrm/mi0283qt.c >>> index 4e6d2ee94e55..2bb9e3ce4823 100644 >>> --- a/drivers/gpu/drm/tinydrm/mi0283qt.c >>> +++ b/drivers/gpu/drm/tinydrm/mi0283qt.c >>> @@ -84,24 +84,6 @@ static void mi0283qt_enable(struct >>> drm_simple_display_pipe *pipe, >>> /* Memory Access Control */ >>> mipi_dbi_command(mipi, MIPI_DCS_SET_PIXEL_FORMAT, >>> MIPI_DCS_PIXEL_FMT_16BIT); >>> - switch (mipi->rotation) { >>> - default: >>> - addr_mode = ILI9341_MADCTL_MV | ILI9341_MADCTL_MY | >>> - ILI9341_MADCTL_MX; >>> - break; >>> - case 90: >>> - addr_mode = ILI9341_MADCTL_MY; >>> - break; >>> - case 180: >>> - addr_mode = ILI9341_MADCTL_MV; >>> - break; >>> - case 270: >>> - addr_mode = ILI9341_MADCTL_MX; >>> - break; >>> - } >>> - addr_mode |= ILI9341_MADCTL_BGR; >>> - mipi_dbi_command(mipi, MIPI_DCS_SET_ADDRESS_MODE, addr_mode); >>> - >>> /* Frame Rate */ >>> mipi_dbi_command(mipi, ILI9341_FRMCTR1, 0x00, 0x1b); >>> @@ -127,6 +109,29 @@ static void mi0283qt_enable(struct >>> drm_simple_display_pipe *pipe, >>> msleep(100); >>> out_enable: >>> + /* The PiTFT (ili9340) has a hardware reset circuit that >>> + * resets only on power-on and not on each reboot through >>> + * a gpio like the rpi-display does. >>> + * As a result, we need to always apply the rotation value >>> + * regardless of the display "on/off" state. >>> + */ >>> + switch (mipi->rotation) { >>> + default: >>> + addr_mode = ILI9341_MADCTL_MV | ILI9341_MADCTL_MY | >>> + ILI9341_MADCTL_MX; >>> + break; >>> + case 90: >>> + addr_mode = ILI9341_MADCTL_MY; >>> + break; >>> + case 180: >>> + addr_mode = ILI9341_MADCTL_MV; >>> + break; >>> + case 270: >>> + addr_mode = ILI9341_MADCTL_MX; >>> + break; >>> + } >>> + addr_mode |= ILI9341_MADCTL_BGR; >>> + mipi_dbi_command(mipi, MIPI_DCS_SET_ADDRESS_MODE, addr_mode); >>> mipi_dbi_enable_flush(mipi, crtc_state, plane_state); >>> } >>> >> >> Thanks for fixing this. >> >> Reviewed-by: Noralf Trønnes <noralf@tronnes.org> > Tom doesn't have commit rights, so would be on you to get this merged. > -Daniel Sure, that was my intention, should have mentioned it. Noralf.
Den 24.04.2018 18.52, skrev Noralf Trønnes: > > Den 23.04.2018 18.16, skrev Tom Callaway: >> The PiTFT (ili9340) has a hardware reset circuit that resets only >> on power-on and not on each reboot through a gpio like the >> rpi-display does. As a result, we need to always apply the >> rotation value regardless of the display "on/off" state. >> Moved the rotation setting code below out_enable:. >> >> Signed-off-by: Tom Callaway <tcallawa@redhat.com> >> --- >> drivers/gpu/drm/tinydrm/mi0283qt.c | 41 >> +++++++++++++++++++++----------------- >> 1 file changed, 23 insertions(+), 18 deletions(-) >> >> diff --git a/drivers/gpu/drm/tinydrm/mi0283qt.c >> b/drivers/gpu/drm/tinydrm/mi0283qt.c >> index 4e6d2ee94e55..2bb9e3ce4823 100644 >> --- a/drivers/gpu/drm/tinydrm/mi0283qt.c >> +++ b/drivers/gpu/drm/tinydrm/mi0283qt.c >> @@ -84,24 +84,6 @@ static void mi0283qt_enable(struct >> drm_simple_display_pipe *pipe, >> /* Memory Access Control */ >> mipi_dbi_command(mipi, MIPI_DCS_SET_PIXEL_FORMAT, >> MIPI_DCS_PIXEL_FMT_16BIT); >> - switch (mipi->rotation) { >> - default: >> - addr_mode = ILI9341_MADCTL_MV | ILI9341_MADCTL_MY | >> - ILI9341_MADCTL_MX; >> - break; >> - case 90: >> - addr_mode = ILI9341_MADCTL_MY; >> - break; >> - case 180: >> - addr_mode = ILI9341_MADCTL_MV; >> - break; >> - case 270: >> - addr_mode = ILI9341_MADCTL_MX; >> - break; >> - } >> - addr_mode |= ILI9341_MADCTL_BGR; >> - mipi_dbi_command(mipi, MIPI_DCS_SET_ADDRESS_MODE, addr_mode); >> - >> /* Frame Rate */ >> mipi_dbi_command(mipi, ILI9341_FRMCTR1, 0x00, 0x1b); >> @@ -127,6 +109,29 @@ static void mi0283qt_enable(struct >> drm_simple_display_pipe *pipe, >> msleep(100); >> out_enable: >> + /* The PiTFT (ili9340) has a hardware reset circuit that >> + * resets only on power-on and not on each reboot through >> + * a gpio like the rpi-display does. >> + * As a result, we need to always apply the rotation value >> + * regardless of the display "on/off" state. >> + */ >> + switch (mipi->rotation) { >> + default: >> + addr_mode = ILI9341_MADCTL_MV | ILI9341_MADCTL_MY | >> + ILI9341_MADCTL_MX; >> + break; >> + case 90: >> + addr_mode = ILI9341_MADCTL_MY; >> + break; >> + case 180: >> + addr_mode = ILI9341_MADCTL_MV; >> + break; >> + case 270: >> + addr_mode = ILI9341_MADCTL_MX; >> + break; >> + } >> + addr_mode |= ILI9341_MADCTL_BGR; >> + mipi_dbi_command(mipi, MIPI_DCS_SET_ADDRESS_MODE, addr_mode); >> mipi_dbi_enable_flush(mipi, crtc_state, plane_state); >> } > > Thanks for fixing this. > > Reviewed-by: Noralf Trønnes <noralf@tronnes.org> > Applied to drm-misc. Noralf.
diff --git a/drivers/gpu/drm/tinydrm/mi0283qt.c b/drivers/gpu/drm/tinydrm/mi0283qt.c index 4e6d2ee94e55..2bb9e3ce4823 100644 --- a/drivers/gpu/drm/tinydrm/mi0283qt.c +++ b/drivers/gpu/drm/tinydrm/mi0283qt.c @@ -84,24 +84,6 @@ static void mi0283qt_enable(struct drm_simple_display_pipe *pipe, /* Memory Access Control */ mipi_dbi_command(mipi, MIPI_DCS_SET_PIXEL_FORMAT, MIPI_DCS_PIXEL_FMT_16BIT); - switch (mipi->rotation) { - default: - addr_mode = ILI9341_MADCTL_MV | ILI9341_MADCTL_MY | - ILI9341_MADCTL_MX; - break; - case 90: - addr_mode = ILI9341_MADCTL_MY; - break; - case 180: - addr_mode = ILI9341_MADCTL_MV; - break; - case 270: - addr_mode = ILI9341_MADCTL_MX; - break; - } - addr_mode |= ILI9341_MADCTL_BGR; - mipi_dbi_command(mipi, MIPI_DCS_SET_ADDRESS_MODE, addr_mode); - /* Frame Rate */ mipi_dbi_command(mipi, ILI9341_FRMCTR1, 0x00, 0x1b); @@ -127,6 +109,29 @@ static void mi0283qt_enable(struct drm_simple_display_pipe *pipe, msleep(100); out_enable: + /* The PiTFT (ili9340) has a hardware reset circuit that + * resets only on power-on and not on each reboot through + * a gpio like the rpi-display does. + * As a result, we need to always apply the rotation value + * regardless of the display "on/off" state. + */ + switch (mipi->rotation) { + default: + addr_mode = ILI9341_MADCTL_MV | ILI9341_MADCTL_MY | + ILI9341_MADCTL_MX; + break; + case 90: + addr_mode = ILI9341_MADCTL_MY; + break; + case 180: + addr_mode = ILI9341_MADCTL_MV; + break; + case 270: + addr_mode = ILI9341_MADCTL_MX; + break; + } + addr_mode |= ILI9341_MADCTL_BGR; + mipi_dbi_command(mipi, MIPI_DCS_SET_ADDRESS_MODE, addr_mode); mipi_dbi_enable_flush(mipi, crtc_state, plane_state); }
The PiTFT (ili9340) has a hardware reset circuit that resets only on power-on and not on each reboot through a gpio like the rpi-display does. As a result, we need to always apply the rotation value regardless of the display "on/off" state. Moved the rotation setting code below out_enable:. Signed-off-by: Tom Callaway <tcallawa@redhat.com> --- drivers/gpu/drm/tinydrm/mi0283qt.c | 41 +++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 18 deletions(-)