提交 52aadf8c 编写于 作者: G GongJunjie 提交者: Xie XiuQi

gpu: drm: fix the support of 16bpp,1711BMC

driver inclusion
category: Bugfix
bugzilla: NA
CVE: NA

The resolution of line offset without 128 byte alignment under 16bpp
is adjusted to make it 128 byte aligned, so as to ensure GPU to access
its display memory space normally. At the same time, the initialization
color depth is 32bpp.
Signed-off-by: NGongJunjie <gongjunjie2@huawei.com>
Reviewed-by: NXin Yin <yinxin.yinxin@huawei.com>
Reviewed-by: NWeiwei Deng <dengweiwei@huawei.com>
Reviewed-by: NLiang Liu <liuliang39@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 5c35db0c
......@@ -123,11 +123,9 @@ static void hibmc_plane_atomic_update(struct drm_plane *plane,
writel(gpu_addr, priv->mmio + HIBMC_CRT_FB_ADDRESS);
reg = state->fb->width * (state->fb->format->cpp[0]);
/* now line_pad is 16 */
reg = PADDING(16, reg);
line_l = state->fb->width * state->fb->format->cpp[0];
line_l = PADDING(16, line_l);
line_l = PADDING(128, line_l);
writel(HIBMC_FIELD(HIBMC_CRT_FB_WIDTH_WIDTH, reg) |
HIBMC_FIELD(HIBMC_CRT_FB_WIDTH_OFFS, line_l),
priv->mmio + HIBMC_CRT_FB_WIDTH);
......
......@@ -77,7 +77,7 @@ static int hibmc_drm_fb_create(struct drm_fb_helper *helper,
mode_cmd.width = sizes->surface_width;
mode_cmd.height = sizes->surface_height;
mode_cmd.pitches[0] = mode_cmd.width * bytes_per_pixel;
mode_cmd.pitches[0] = ALIGN(mode_cmd.width * bytes_per_pixel, 128);
mode_cmd.pixel_format = drm_mode_legacy_fb_format(sizes->surface_bpp,
sizes->surface_depth);
......@@ -210,7 +210,7 @@ int hibmc_fbdev_init(struct hibmc_drm_private *priv)
goto fini;
}
ret = drm_fb_helper_initial_config(&hifbdev->helper, 16);
ret = drm_fb_helper_initial_config(&hifbdev->helper, 32);
if (ret) {
DRM_ERROR("failed to setup initial conn config: %d\n", ret);
goto fini;
......
......@@ -421,7 +421,7 @@ int hibmc_dumb_create(struct drm_file *file, struct drm_device *dev,
u32 handle;
int ret;
args->pitch = ALIGN(args->width * DIV_ROUND_UP(args->bpp, 8), 16);
args->pitch = ALIGN(args->width * DIV_ROUND_UP(args->bpp, 8), 128);
args->size = args->pitch * args->height;
ret = hibmc_gem_create(dev, args->size, false,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册