Merge tag 'drm-misc-next-2019-04-18' of git://anongit.freedesktop.org/drm/drm-misc into drm-next
drm-misc-next for v5.2: UAPI Changes: - Document which feature flags belong to which command in virtio_gpu.h - Make the FB_DAMAGE_CLIPS available for atomic userspace only, it's useless for legacy. Cross-subsystem Changes: - Add device tree bindings for lg,acx467akm-7 panel and ST-Ericsson Multi Channel Display Engine MCDE - Add parameters to the device tree bindings for tfp410 - iommu/io-pgtable: Add ARM Mali midgard MMU page table format - dma-buf: Only do a 64-bits seqno compare when driver explicitly asks for it, else wraparound. - Use the 64-bits compare for dma-fence-chains Core Changes: - Make the fb conversion functions use __iomem dst. - Rename drm_client_add to drm_client_register - Move intel_fb_initial_config to core. - Add a drm_gem_objects_lookup helper - Add drm_gem_fence_array helpers, and use it in lima. - Add drm_format_helper.c to kerneldoc. Driver Changes: - Add panfrost driver for mali midgard/bitfrost. - Converts bochs to use the simple display type. - Small fixes to sun4i, tinydrm, ti-fp410. - Fid aspeed's Kconfig options. - Make some symbols/functions static in lima, sun4i and meson. - Add a driver for the lg,acx467akm-7 panel. Signed-off-by: Dave Airlie <airlied@redhat.com> From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/737ad994-213d-45b5-207a-b99d795acd21@linux.intel.com
This commit is contained in:
@@ -361,13 +361,6 @@ int sun4i_backend_update_layer_buffer(struct sun4i_backend *backend,
|
||||
paddr = drm_fb_cma_get_gem_addr(fb, state, 0);
|
||||
DRM_DEBUG_DRIVER("Setting buffer address to %pad\n", &paddr);
|
||||
|
||||
/*
|
||||
* backend DMA accesses DRAM directly, bypassing the system
|
||||
* bus. As such, the address range is different and the buffer
|
||||
* address needs to be corrected.
|
||||
*/
|
||||
paddr -= PHYS_OFFSET;
|
||||
|
||||
if (fb->format->is_yuv)
|
||||
return sun4i_backend_update_yuv_buffer(backend, fb, paddr);
|
||||
|
||||
@@ -803,6 +796,27 @@ static int sun4i_backend_bind(struct device *dev, struct device *master,
|
||||
dev_set_drvdata(dev, backend);
|
||||
spin_lock_init(&backend->frontend_lock);
|
||||
|
||||
if (of_find_property(dev->of_node, "interconnects", NULL)) {
|
||||
/*
|
||||
* This assume we have the same DMA constraints for all our the
|
||||
* devices in our pipeline (all the backends, but also the
|
||||
* frontends). This sounds bad, but it has always been the case
|
||||
* for us, and DRM doesn't do per-device allocation either, so
|
||||
* we would need to fix DRM first...
|
||||
*/
|
||||
ret = of_dma_configure(drm->dev, dev->of_node, true);
|
||||
if (ret)
|
||||
return ret;
|
||||
} else {
|
||||
/*
|
||||
* If we don't have the interconnect property, most likely
|
||||
* because of an old DT, we need to set the DMA offset by hand
|
||||
* on our device since the RAM mapping is at 0 for the DMA bus,
|
||||
* unlike the CPU.
|
||||
*/
|
||||
drm->dev->dma_pfn_offset = PHYS_PFN_OFFSET;
|
||||
}
|
||||
|
||||
backend->engine.node = dev->of_node;
|
||||
backend->engine.ops = &sun4i_backend_engine_ops;
|
||||
backend->engine.id = sun4i_backend_of_get_id(dev->of_node);
|
||||
|
@@ -236,8 +236,8 @@ static struct sun4i_tcon *sun4i_get_tcon0(struct drm_device *drm)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void sun4i_tcon_set_mux(struct sun4i_tcon *tcon, int channel,
|
||||
const struct drm_encoder *encoder)
|
||||
static void sun4i_tcon_set_mux(struct sun4i_tcon *tcon, int channel,
|
||||
const struct drm_encoder *encoder)
|
||||
{
|
||||
int ret = -ENOTSUPP;
|
||||
|
||||
|
@@ -269,12 +269,12 @@ static int sun8i_tcon_top_remove(struct platform_device *pdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
const struct sun8i_tcon_top_quirks sun8i_r40_tcon_top_quirks = {
|
||||
static const struct sun8i_tcon_top_quirks sun8i_r40_tcon_top_quirks = {
|
||||
.has_tcon_tv1 = true,
|
||||
.has_dsi = true,
|
||||
};
|
||||
|
||||
const struct sun8i_tcon_top_quirks sun50i_h6_tcon_top_quirks = {
|
||||
static const struct sun8i_tcon_top_quirks sun50i_h6_tcon_top_quirks = {
|
||||
/* Nothing special */
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user