Use connector helper
This commit is contained in:
parent
574dd02bc3
commit
489d5baa8a
21
sharp.c
21
sharp.c
@ -342,22 +342,8 @@ static const struct drm_simple_display_pipe_funcs sharp_memory_pipe_funcs = {
|
|||||||
static int sharp_memory_connector_get_modes(struct drm_connector *connector)
|
static int sharp_memory_connector_get_modes(struct drm_connector *connector)
|
||||||
{
|
{
|
||||||
struct sharp_memory_panel *panel = drm_to_panel(connector->dev);
|
struct sharp_memory_panel *panel = drm_to_panel(connector->dev);
|
||||||
struct drm_display_mode *mode;
|
|
||||||
|
|
||||||
mode = drm_mode_duplicate(connector->dev, panel->mode);
|
return drm_connector_helper_get_modes_fixed(connector, panel->mode);
|
||||||
if (!mode) {
|
|
||||||
DRM_ERROR("Failed to duplicate mode\n");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
drm_mode_set_name(mode);
|
|
||||||
mode->type |= DRM_MODE_TYPE_PREFERRED;
|
|
||||||
drm_mode_probed_add(connector, mode);
|
|
||||||
|
|
||||||
connector->display_info.width_mm = mode->width_mm;
|
|
||||||
connector->display_info.height_mm = mode->height_mm;
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct drm_connector_helper_funcs sharp_memory_connector_hfuncs = {
|
static const struct drm_connector_helper_funcs sharp_memory_connector_hfuncs = {
|
||||||
@ -457,12 +443,12 @@ static int sharp_memory_probe(struct spi_device *spi)
|
|||||||
drm->mode_config.max_height = mode->vdisplay;
|
drm->mode_config.max_height = mode->vdisplay;
|
||||||
|
|
||||||
// Configure DRM connector
|
// Configure DRM connector
|
||||||
drm_connector_helper_add(&panel->connector, &sharp_memory_connector_hfuncs);
|
|
||||||
ret = drm_connector_init(drm, &panel->connector, &sharp_memory_connector_funcs,
|
ret = drm_connector_init(drm, &panel->connector, &sharp_memory_connector_funcs,
|
||||||
DRM_MODE_CONNECTOR_SPI);
|
DRM_MODE_CONNECTOR_SPI);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
drm_connector_helper_add(&panel->connector, &sharp_memory_connector_hfuncs);
|
||||||
|
|
||||||
// Initialize DRM pipe
|
// Initialize DRM pipe
|
||||||
ret = drm_simple_display_pipe_init(drm, &panel->pipe, &sharp_memory_pipe_funcs,
|
ret = drm_simple_display_pipe_init(drm, &panel->pipe, &sharp_memory_pipe_funcs,
|
||||||
@ -472,6 +458,9 @@ static int sharp_memory_probe(struct spi_device *spi)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Enable damaged screen area clips
|
||||||
|
drm_plane_enable_fb_damage_clips(&panel->pipe.plane);
|
||||||
|
|
||||||
drm_mode_config_reset(drm);
|
drm_mode_config_reset(drm);
|
||||||
|
|
||||||
printk(KERN_INFO "sharp_memory: registering DRM device\n");
|
printk(KERN_INFO "sharp_memory: registering DRM device\n");
|
||||||
|
Loading…
Reference in New Issue
Block a user