Commit de9b485d authored by Dave Airlie's avatar Dave Airlie

Merge tag 'drm-misc-fixes-2020-12-03' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes

One bridge fix for OMAP, one for a race condition in a panel, two for
uninitialized variables in rockchip and nouveau, and two fixes for mxsfb
to fix a regression with modifiers and a fix for a fence synchronization
issue.
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20201203125943.h2ft2xoywunt5orl@gilmour
parents 5353219f fd4e788e
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <drm/drm_fb_cma_helper.h> #include <drm/drm_fb_cma_helper.h>
#include <drm/drm_fourcc.h> #include <drm/drm_fourcc.h>
#include <drm/drm_gem_cma_helper.h> #include <drm/drm_gem_cma_helper.h>
#include <drm/drm_gem_framebuffer_helper.h>
#include <drm/drm_plane.h> #include <drm/drm_plane.h>
#include <drm/drm_plane_helper.h> #include <drm/drm_plane_helper.h>
#include <drm/drm_vblank.h> #include <drm/drm_vblank.h>
...@@ -484,17 +485,27 @@ static void mxsfb_plane_overlay_atomic_update(struct drm_plane *plane, ...@@ -484,17 +485,27 @@ static void mxsfb_plane_overlay_atomic_update(struct drm_plane *plane,
writel(ctrl, mxsfb->base + LCDC_AS_CTRL); writel(ctrl, mxsfb->base + LCDC_AS_CTRL);
} }
static bool mxsfb_format_mod_supported(struct drm_plane *plane,
uint32_t format,
uint64_t modifier)
{
return modifier == DRM_FORMAT_MOD_LINEAR;
}
static const struct drm_plane_helper_funcs mxsfb_plane_primary_helper_funcs = { static const struct drm_plane_helper_funcs mxsfb_plane_primary_helper_funcs = {
.prepare_fb = drm_gem_fb_prepare_fb,
.atomic_check = mxsfb_plane_atomic_check, .atomic_check = mxsfb_plane_atomic_check,
.atomic_update = mxsfb_plane_primary_atomic_update, .atomic_update = mxsfb_plane_primary_atomic_update,
}; };
static const struct drm_plane_helper_funcs mxsfb_plane_overlay_helper_funcs = { static const struct drm_plane_helper_funcs mxsfb_plane_overlay_helper_funcs = {
.prepare_fb = drm_gem_fb_prepare_fb,
.atomic_check = mxsfb_plane_atomic_check, .atomic_check = mxsfb_plane_atomic_check,
.atomic_update = mxsfb_plane_overlay_atomic_update, .atomic_update = mxsfb_plane_overlay_atomic_update,
}; };
static const struct drm_plane_funcs mxsfb_plane_funcs = { static const struct drm_plane_funcs mxsfb_plane_funcs = {
.format_mod_supported = mxsfb_format_mod_supported,
.update_plane = drm_atomic_helper_update_plane, .update_plane = drm_atomic_helper_update_plane,
.disable_plane = drm_atomic_helper_disable_plane, .disable_plane = drm_atomic_helper_disable_plane,
.destroy = drm_plane_cleanup, .destroy = drm_plane_cleanup,
......
...@@ -1214,8 +1214,8 @@ nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_resource *reg) ...@@ -1214,8 +1214,8 @@ nouveau_ttm_io_mem_reserve(struct ttm_bo_device *bdev, struct ttm_resource *reg)
} }
reg->bus.offset = handle; reg->bus.offset = handle;
ret = 0;
} }
ret = 0;
break; break;
default: default:
ret = -EINVAL; ret = -EINVAL;
......
...@@ -195,8 +195,7 @@ static void sdi_bridge_mode_set(struct drm_bridge *bridge, ...@@ -195,8 +195,7 @@ static void sdi_bridge_mode_set(struct drm_bridge *bridge,
sdi->pixelclock = adjusted_mode->clock * 1000; sdi->pixelclock = adjusted_mode->clock * 1000;
} }
static void sdi_bridge_enable(struct drm_bridge *bridge, static void sdi_bridge_enable(struct drm_bridge *bridge)
struct drm_bridge_state *bridge_state)
{ {
struct sdi_device *sdi = drm_bridge_to_sdi(bridge); struct sdi_device *sdi = drm_bridge_to_sdi(bridge);
struct dispc_clock_info dispc_cinfo; struct dispc_clock_info dispc_cinfo;
...@@ -259,8 +258,7 @@ static void sdi_bridge_enable(struct drm_bridge *bridge, ...@@ -259,8 +258,7 @@ static void sdi_bridge_enable(struct drm_bridge *bridge,
regulator_disable(sdi->vdds_sdi_reg); regulator_disable(sdi->vdds_sdi_reg);
} }
static void sdi_bridge_disable(struct drm_bridge *bridge, static void sdi_bridge_disable(struct drm_bridge *bridge)
struct drm_bridge_state *bridge_state)
{ {
struct sdi_device *sdi = drm_bridge_to_sdi(bridge); struct sdi_device *sdi = drm_bridge_to_sdi(bridge);
...@@ -278,8 +276,8 @@ static const struct drm_bridge_funcs sdi_bridge_funcs = { ...@@ -278,8 +276,8 @@ static const struct drm_bridge_funcs sdi_bridge_funcs = {
.mode_valid = sdi_bridge_mode_valid, .mode_valid = sdi_bridge_mode_valid,
.mode_fixup = sdi_bridge_mode_fixup, .mode_fixup = sdi_bridge_mode_fixup,
.mode_set = sdi_bridge_mode_set, .mode_set = sdi_bridge_mode_set,
.atomic_enable = sdi_bridge_enable, .enable = sdi_bridge_enable,
.atomic_disable = sdi_bridge_disable, .disable = sdi_bridge_disable,
}; };
static void sdi_bridge_init(struct sdi_device *sdi) static void sdi_bridge_init(struct sdi_device *sdi)
......
...@@ -629,7 +629,7 @@ static int acx565akm_probe(struct spi_device *spi) ...@@ -629,7 +629,7 @@ static int acx565akm_probe(struct spi_device *spi)
lcd->spi = spi; lcd->spi = spi;
mutex_init(&lcd->mutex); mutex_init(&lcd->mutex);
lcd->reset_gpio = devm_gpiod_get(&spi->dev, "reset", GPIOD_OUT_LOW); lcd->reset_gpio = devm_gpiod_get(&spi->dev, "reset", GPIOD_OUT_HIGH);
if (IS_ERR(lcd->reset_gpio)) { if (IS_ERR(lcd->reset_gpio)) {
dev_err(&spi->dev, "failed to get reset GPIO\n"); dev_err(&spi->dev, "failed to get reset GPIO\n");
return PTR_ERR(lcd->reset_gpio); return PTR_ERR(lcd->reset_gpio);
......
...@@ -544,7 +544,7 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master, ...@@ -544,7 +544,7 @@ static int rockchip_lvds_bind(struct device *dev, struct device *master,
struct device_node *port, *endpoint; struct device_node *port, *endpoint;
int ret = 0, child_count = 0; int ret = 0, child_count = 0;
const char *name; const char *name;
u32 endpoint_id; u32 endpoint_id = 0;
lvds->drm_dev = drm_dev; lvds->drm_dev = drm_dev;
port = of_graph_get_port_by_id(dev->of_node, 1); port = of_graph_get_port_by_id(dev->of_node, 1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment