Merge tag 'drm-misc-next-2016-12-30' of git://anongit.freedesktop.org/git/drm-misc into drm-next
First -misc pull for 4.11: - drm_mm rework + lots of selftests (Chris Wilson) - new connector_list locking+iterators - plenty of kerneldoc updates - format handling rework from Ville - atomic helper changes from Maarten for better plane corner-case handling in drivers, plus the i915 legacy cursor patch that needs this - bridge cleanup from Laurent - plus plenty of small stuff all over - also contains a merge of the 4.10 docs tree so that we could apply the dma-buf kerneldoc patches It's a lot more than usual, but due to the merge window blackout it also covers about 4 weeks, so all in line again on a per-week basis. The more annoying part with no pull request for 4 weeks is managing cross-tree work. The -intel pull request I'll follow up with does conflict quite a bit with -misc here. Longer-term (if drm-misc keeps growing) a drm-next-queued to accept pull request for the next merge window during this time might be useful. I'd also like to backmerge -rc2+this into drm-intel next week, we have quite a pile of patches waiting for the stuff in here. * tag 'drm-misc-next-2016-12-30' of git://anongit.freedesktop.org/git/drm-misc: (126 commits) drm: Add kerneldoc markup for new @scan parameters in drm_mm drm/mm: Document locking rules drm: Use drm_mm_insert_node_in_range_generic() for everyone drm: Apply range restriction after color adjustment when allocation drm: Wrap drm_mm_node.hole_follows drm: Apply tight eviction scanning to color_adjust drm: Simplify drm_mm scan-list manipulation drm: Optimise power-of-two alignments in drm_mm_scan_add_block() drm: Compute tight evictions for drm_mm_scan drm: Fix application of color vs range restriction when scanning drm_mm drm: Unconditionally do the range check in drm_mm_scan_add_block() drm: Rename prev_node to hole in drm_mm_scan_add_block() drm: Fix O= out-of-tree builds for selftests drm: Extract struct drm_mm_scan from struct drm_mm drm: Add asserts to catch overflow in drm_mm_init() and drm_mm_init_scan() drm: Simplify drm_mm_clean() drm: Detect overflow in drm_mm_reserve_node() drm: Fix kerneldoc for drm_mm_scan_remove_block() drm: Promote drm_mm alignment to u64 drm: kselftest for drm_mm and restricted color eviction ...
This commit is contained in:
@@ -579,6 +579,7 @@ struct drm_bridge *msm_dsi_manager_bridge_init(u8 id)
|
||||
struct msm_dsi *msm_dsi = dsi_mgr_get_dsi(id);
|
||||
struct drm_bridge *bridge = NULL;
|
||||
struct dsi_bridge *dsi_bridge;
|
||||
struct drm_encoder *encoder;
|
||||
int ret;
|
||||
|
||||
dsi_bridge = devm_kzalloc(msm_dsi->dev->dev,
|
||||
@@ -590,10 +591,18 @@ struct drm_bridge *msm_dsi_manager_bridge_init(u8 id)
|
||||
|
||||
dsi_bridge->id = id;
|
||||
|
||||
/*
|
||||
* HACK: we may not know the external DSI bridge device's mode
|
||||
* flags here. We'll get to know them only when the device
|
||||
* attaches to the dsi host. For now, assume the bridge supports
|
||||
* DSI video mode
|
||||
*/
|
||||
encoder = msm_dsi->encoders[MSM_DSI_VIDEO_ENCODER_ID];
|
||||
|
||||
bridge = &dsi_bridge->base;
|
||||
bridge->funcs = &dsi_mgr_bridge_funcs;
|
||||
|
||||
ret = drm_bridge_attach(msm_dsi->dev, bridge);
|
||||
ret = drm_bridge_attach(encoder, bridge, NULL);
|
||||
if (ret)
|
||||
goto fail;
|
||||
|
||||
@@ -628,11 +637,7 @@ struct drm_connector *msm_dsi_manager_ext_bridge_init(u8 id)
|
||||
encoder = msm_dsi->encoders[MSM_DSI_VIDEO_ENCODER_ID];
|
||||
|
||||
/* link the internal dsi bridge to the external bridge */
|
||||
int_bridge->next = ext_bridge;
|
||||
/* set the external bridge's encoder as dsi's encoder */
|
||||
ext_bridge->encoder = encoder;
|
||||
|
||||
drm_bridge_attach(dev, ext_bridge);
|
||||
drm_bridge_attach(encoder, ext_bridge, int_bridge);
|
||||
|
||||
/*
|
||||
* we need the drm_connector created by the external bridge
|
||||
|
@@ -106,7 +106,7 @@ struct drm_bridge *msm_edp_bridge_init(struct msm_edp *edp)
|
||||
bridge = &edp_bridge->base;
|
||||
bridge->funcs = &edp_bridge_funcs;
|
||||
|
||||
ret = drm_bridge_attach(edp->dev, bridge);
|
||||
ret = drm_bridge_attach(edp->encoder, bridge, NULL);
|
||||
if (ret)
|
||||
goto fail;
|
||||
|
||||
|
@@ -227,7 +227,7 @@ struct drm_bridge *msm_hdmi_bridge_init(struct hdmi *hdmi)
|
||||
bridge = &hdmi_bridge->base;
|
||||
bridge->funcs = &msm_hdmi_bridge_funcs;
|
||||
|
||||
ret = drm_bridge_attach(hdmi->dev, bridge);
|
||||
ret = drm_bridge_attach(hdmi->encoder, bridge, NULL);
|
||||
if (ret)
|
||||
goto fail;
|
||||
|
||||
|
@@ -43,7 +43,7 @@ enum mdp4_frame_format mdp4_get_frame_format(struct drm_framebuffer *fb)
|
||||
if (fb->modifier == DRM_FORMAT_MOD_SAMSUNG_64_32_TILE)
|
||||
is_tile = true;
|
||||
|
||||
if (fb->pixel_format == DRM_FORMAT_NV12 && is_tile)
|
||||
if (fb->format->format == DRM_FORMAT_NV12 && is_tile)
|
||||
return FRAME_TILE_YCBCR_420;
|
||||
|
||||
return FRAME_LINEAR;
|
||||
|
@@ -699,7 +699,7 @@ static int mdp5_plane_mode_set(struct drm_plane *plane,
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
|
||||
nplanes = drm_format_num_planes(fb->pixel_format);
|
||||
nplanes = fb->format->num_planes;
|
||||
|
||||
/* bad formats should already be rejected: */
|
||||
if (WARN_ON(nplanes > pipe2nclients(pipe)))
|
||||
|
@@ -41,7 +41,7 @@ static int msm_framebuffer_create_handle(struct drm_framebuffer *fb,
|
||||
static void msm_framebuffer_destroy(struct drm_framebuffer *fb)
|
||||
{
|
||||
struct msm_framebuffer *msm_fb = to_msm_framebuffer(fb);
|
||||
int i, n = drm_format_num_planes(fb->pixel_format);
|
||||
int i, n = fb->format->num_planes;
|
||||
|
||||
DBG("destroy: FB ID: %d (%p)", fb->base.id, fb);
|
||||
|
||||
@@ -65,10 +65,10 @@ static const struct drm_framebuffer_funcs msm_framebuffer_funcs = {
|
||||
void msm_framebuffer_describe(struct drm_framebuffer *fb, struct seq_file *m)
|
||||
{
|
||||
struct msm_framebuffer *msm_fb = to_msm_framebuffer(fb);
|
||||
int i, n = drm_format_num_planes(fb->pixel_format);
|
||||
int i, n = fb->format->num_planes;
|
||||
|
||||
seq_printf(m, "fb: %dx%d@%4.4s (%2d, ID:%d)\n",
|
||||
fb->width, fb->height, (char *)&fb->pixel_format,
|
||||
fb->width, fb->height, (char *)&fb->format->format,
|
||||
drm_framebuffer_read_refcount(fb), fb->base.id);
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
@@ -87,7 +87,7 @@ void msm_framebuffer_describe(struct drm_framebuffer *fb, struct seq_file *m)
|
||||
int msm_framebuffer_prepare(struct drm_framebuffer *fb, int id)
|
||||
{
|
||||
struct msm_framebuffer *msm_fb = to_msm_framebuffer(fb);
|
||||
int ret, i, n = drm_format_num_planes(fb->pixel_format);
|
||||
int ret, i, n = fb->format->num_planes;
|
||||
uint64_t iova;
|
||||
|
||||
for (i = 0; i < n; i++) {
|
||||
@@ -103,7 +103,7 @@ int msm_framebuffer_prepare(struct drm_framebuffer *fb, int id)
|
||||
void msm_framebuffer_cleanup(struct drm_framebuffer *fb, int id)
|
||||
{
|
||||
struct msm_framebuffer *msm_fb = to_msm_framebuffer(fb);
|
||||
int i, n = drm_format_num_planes(fb->pixel_format);
|
||||
int i, n = fb->format->num_planes;
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
msm_gem_put_iova(msm_fb->planes[i], id);
|
||||
@@ -217,7 +217,7 @@ struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
|
||||
msm_fb->planes[i] = bos[i];
|
||||
}
|
||||
|
||||
drm_helper_mode_fill_fb_struct(fb, mode_cmd);
|
||||
drm_helper_mode_fill_fb_struct(dev, fb, mode_cmd);
|
||||
|
||||
ret = drm_framebuffer_init(dev, fb, &msm_framebuffer_funcs);
|
||||
if (ret) {
|
||||
|
@@ -148,7 +148,7 @@ static int msm_fbdev_create(struct drm_fb_helper *helper,
|
||||
|
||||
strcpy(fbi->fix.id, "msm");
|
||||
|
||||
drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->depth);
|
||||
drm_fb_helper_fill_fix(fbi, fb->pitches[0], fb->format->depth);
|
||||
drm_fb_helper_fill_var(fbi, helper, sizes->fb_width, sizes->fb_height);
|
||||
|
||||
dev->mode_config.fb_base = paddr;
|
||||
|
Reference in New Issue
Block a user