repaper.c (d25654b3fad9906ca80912701fd4bd6e2419f54d) | repaper.c (216b9bbaeaea96b7f05c220f61855d174be972d8) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * DRM driver for Pervasive Displays RePaper branded e-ink panels 4 * 5 * Copyright 2013-2017 Pervasive Displays, Inc. 6 * Copyright 2017 Noralf Trønnes 7 * 8 * The driver supports: --- 607 unchanged lines hidden (view full) --- 616 repaper_spi_mosi_low(epd->spi); 617 618 /* Discharge pulse */ 619 gpiod_set_value_cansleep(epd->discharge, 1); 620 msleep(150); 621 gpiod_set_value_cansleep(epd->discharge, 0); 622} 623 | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * DRM driver for Pervasive Displays RePaper branded e-ink panels 4 * 5 * Copyright 2013-2017 Pervasive Displays, Inc. 6 * Copyright 2017 Noralf Trønnes 7 * 8 * The driver supports: --- 607 unchanged lines hidden (view full) --- 616 repaper_spi_mosi_low(epd->spi); 617 618 /* Discharge pulse */ 619 gpiod_set_value_cansleep(epd->discharge, 1); 620 msleep(150); 621 gpiod_set_value_cansleep(epd->discharge, 0); 622} 623 |
624static enum drm_mode_status repaper_pipe_mode_valid(struct drm_simple_display_pipe *pipe, 625 const struct drm_display_mode *mode) 626{ 627 struct drm_crtc *crtc = &pipe->crtc; 628 struct repaper_epd *epd = drm_to_epd(crtc->dev); 629 630 return drm_crtc_helper_mode_valid_fixed(crtc, mode, epd->mode); 631} 632 |
|
624static void repaper_pipe_enable(struct drm_simple_display_pipe *pipe, 625 struct drm_crtc_state *crtc_state, 626 struct drm_plane_state *plane_state) 627{ 628 struct repaper_epd *epd = drm_to_epd(pipe->crtc.dev); 629 struct spi_device *spi = epd->spi; 630 struct device *dev = &spi->dev; 631 bool dc_ok = false; --- 194 unchanged lines hidden (view full) --- 826 if (!pipe->crtc.state->active) 827 return; 828 829 if (drm_atomic_helper_damage_merged(old_state, state, &rect)) 830 repaper_fb_dirty(state->fb); 831} 832 833static const struct drm_simple_display_pipe_funcs repaper_pipe_funcs = { | 633static void repaper_pipe_enable(struct drm_simple_display_pipe *pipe, 634 struct drm_crtc_state *crtc_state, 635 struct drm_plane_state *plane_state) 636{ 637 struct repaper_epd *epd = drm_to_epd(pipe->crtc.dev); 638 struct spi_device *spi = epd->spi; 639 struct device *dev = &spi->dev; 640 bool dc_ok = false; --- 194 unchanged lines hidden (view full) --- 835 if (!pipe->crtc.state->active) 836 return; 837 838 if (drm_atomic_helper_damage_merged(old_state, state, &rect)) 839 repaper_fb_dirty(state->fb); 840} 841 842static const struct drm_simple_display_pipe_funcs repaper_pipe_funcs = { |
843 .mode_valid = repaper_pipe_mode_valid, |
|
834 .enable = repaper_pipe_enable, 835 .disable = repaper_pipe_disable, 836 .update = repaper_pipe_update, 837}; 838 839static int repaper_connector_get_modes(struct drm_connector *connector) 840{ 841 struct repaper_epd *epd = drm_to_epd(connector->dev); --- 298 unchanged lines hidden --- | 844 .enable = repaper_pipe_enable, 845 .disable = repaper_pipe_disable, 846 .update = repaper_pipe_update, 847}; 848 849static int repaper_connector_get_modes(struct drm_connector *connector) 850{ 851 struct repaper_epd *epd = drm_to_epd(connector->dev); --- 298 unchanged lines hidden --- |