]> Git Repo - linux.git/commitdiff
Merge tag 'drm/tegra/for-5.14-rc1' of ssh://git.freedesktop.org/git/tegra/linux into...
authorDave Airlie <[email protected]>
Wed, 23 Jun 2021 04:24:31 +0000 (14:24 +1000)
committerDave Airlie <[email protected]>
Wed, 23 Jun 2021 04:24:37 +0000 (14:24 +1000)
drm/tegra: Changes for v5.14-rc1

The two major changes here are fixed YUV support as well as scaling on
Tegra186 and later. This allows Tegra DRM to be used, for example, as a
video sink for the kmssink gstreamer plugin. The remainder of the
changes are minor fixes.

Signed-off-by: Dave Airlie <[email protected]>
From: Thierry Reding <[email protected]>
Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1  2 
drivers/gpu/drm/tegra/dc.c
drivers/gpu/drm/tegra/dpaux.c

index 074563ca586c319a3cca056af3cb4561a2fd481f,c5ea88a686d15fff83f0a1ca2a065037c7c89992..51bbbc42a144ff9c0cbec5c8c14fa1d8892cf29a
@@@ -348,7 -348,7 +348,7 @@@ static void tegra_dc_setup_window(struc
         * For YUV planar modes, the number of bytes per pixel takes into
         * account only the luma component and therefore is 1.
         */
-       yuv = tegra_plane_format_is_yuv(window->format, &planar);
+       yuv = tegra_plane_format_is_yuv(window->format, &planar, NULL);
        if (!yuv)
                bpp = window->bits_per_pixel / 8;
        else
@@@ -999,11 -999,6 +999,11 @@@ static const struct drm_plane_helper_fu
        .atomic_disable = tegra_cursor_atomic_disable,
  };
  
 +static const uint64_t linear_modifiers[] = {
 +      DRM_FORMAT_MOD_LINEAR,
 +      DRM_FORMAT_MOD_INVALID
 +};
 +
  static struct drm_plane *tegra_dc_cursor_plane_create(struct drm_device *drm,
                                                      struct tegra_dc *dc)
  {
  
        err = drm_universal_plane_init(drm, &plane->base, possible_crtcs,
                                       &tegra_plane_funcs, formats,
 -                                     num_formats, NULL,
 +                                     num_formats, linear_modifiers,
                                       DRM_PLANE_TYPE_CURSOR, NULL);
        if (err < 0) {
                kfree(plane);
@@@ -1156,8 -1151,7 +1156,8 @@@ static struct drm_plane *tegra_dc_overl
  
        err = drm_universal_plane_init(drm, &plane->base, possible_crtcs,
                                       &tegra_plane_funcs, formats,
 -                                     num_formats, NULL, type, NULL);
 +                                     num_formats, linear_modifiers,
 +                                     type, NULL);
        if (err < 0) {
                kfree(plane);
                return ERR_PTR(err);
index 7d7cc90b6fc94c561fe86de69bce208c8ab7e31b,0cbaececc18ac0b54fd7ee4f5151538d4da0df66..1f96e416fa0828a4fecb1530c03a93d6f3e4b7a6
@@@ -467,10 -467,8 +467,8 @@@ static int tegra_dpaux_probe(struct pla
                return PTR_ERR(dpaux->regs);
  
        dpaux->irq = platform_get_irq(pdev, 0);
-       if (dpaux->irq < 0) {
-               dev_err(&pdev->dev, "failed to get IRQ\n");
+       if (dpaux->irq < 0)
                return -ENXIO;
-       }
  
        if (!pdev->dev.pm_domain) {
                dpaux->rst = devm_reset_control_get(&pdev->dev, "dpaux");
@@@ -719,7 -717,6 +717,7 @@@ int drm_dp_aux_attach(struct drm_dp_au
        unsigned long timeout;
        int err;
  
 +      aux->drm_dev = output->connector.dev;
        err = drm_dp_aux_register(aux);
        if (err < 0)
                return err;
This page took 0.067565 seconds and 4 git commands to generate.