Update source to Armbian-dev-202610.A311Y3
This commit is contained in:
@@ -26,8 +26,12 @@ u32 writeback_fmts[TVIN_PIXEL_FORMAT_NUM];
|
||||
|
||||
static int meson_writeback_connector_get_modes(struct drm_connector *connector)
|
||||
{
|
||||
struct drm_device *dev = connector->dev;
|
||||
struct drm_device *dev;
|
||||
|
||||
if (!connector || !connector->dev)
|
||||
return 0;
|
||||
|
||||
dev = connector->dev;
|
||||
return drm_add_modes_noedid(connector, dev->mode_config.max_width,
|
||||
dev->mode_config.max_height);
|
||||
}
|
||||
@@ -36,9 +40,17 @@ enum drm_mode_status
|
||||
meson_writeback_connector_check_mode(struct drm_connector *connector,
|
||||
struct drm_display_mode *mode)
|
||||
{
|
||||
struct drm_device *dev = connector->dev;
|
||||
struct drm_mode_config *mode_config = &dev->mode_config;
|
||||
int w = mode->hdisplay, h = mode->vdisplay;
|
||||
struct drm_device *dev;
|
||||
struct drm_mode_config *mode_config;
|
||||
int w, h;
|
||||
|
||||
if (!connector || !connector->dev || !mode)
|
||||
return MODE_ERROR;
|
||||
|
||||
dev = connector->dev;
|
||||
mode_config = &dev->mode_config;
|
||||
w = mode->hdisplay;
|
||||
h = mode->vdisplay;
|
||||
|
||||
if (w < mode_config->min_width || w > mode_config->max_width)
|
||||
return MODE_BAD_HVALUE;
|
||||
@@ -60,13 +72,20 @@ static int meson_writeback_connector_atomic_check(struct drm_connector *conn,
|
||||
DRM_DEBUG("am_drm_writeback: %d\n", __LINE__);
|
||||
|
||||
conn_state = drm_atomic_get_new_connector_state(state, conn);
|
||||
if (!conn_state || !conn_state->crtc)
|
||||
return -EINVAL;
|
||||
|
||||
if (!conn_state->writeback_job)
|
||||
return 0;
|
||||
|
||||
if (!conn_state->crtc)
|
||||
return -EINVAL;
|
||||
crtc_state = drm_atomic_get_new_crtc_state(state, conn_state->crtc);
|
||||
if (!crtc_state)
|
||||
return -EINVAL;
|
||||
fb = conn_state->writeback_job->fb;
|
||||
if (!fb || !fb->format)
|
||||
return -EINVAL;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(writeback_fmts); i++) {
|
||||
if (fb->format->format == writeback_fmts[i])
|
||||
@@ -151,6 +170,9 @@ int meson_writeback_capture_picture(struct drm_framebuffer *fb, u32 port,
|
||||
u32 format;
|
||||
int ret = 0;
|
||||
|
||||
if (!fb || !fb->format)
|
||||
return -EINVAL;
|
||||
|
||||
meson_fb = container_of(fb, struct am_meson_fb, base);
|
||||
if (!meson_fb || !meson_fb->bufp[0])
|
||||
return -EINVAL;
|
||||
@@ -222,7 +244,7 @@ static void meson_writeback_connector_atomic_commit(struct drm_connector *conn,
|
||||
DRM_DEBUG("am_drm_writeback: %d\n", __LINE__);
|
||||
|
||||
conn_state = drm_atomic_get_new_connector_state(old_atomic_state, conn);
|
||||
if (WARN_ON(!conn_state))
|
||||
if (!conn_state || !conn_state->crtc)
|
||||
return;
|
||||
|
||||
if (WARN_ON(!conn_state->writeback_job))
|
||||
@@ -236,6 +258,8 @@ static void meson_writeback_connector_atomic_commit(struct drm_connector *conn,
|
||||
drm_writeback->hdisplay = crtc_state->mode.hdisplay;
|
||||
drm_writeback->vdisplay = crtc_state->mode.vdisplay;
|
||||
fb = conn_state->writeback_job->fb;
|
||||
if (!fb || !fb->format)
|
||||
return;
|
||||
drm_writeback->fb = fb;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(writeback_fmts); i++) {
|
||||
@@ -405,7 +429,7 @@ static int meson_writeback_port_property(struct drm_device *drm_dev,
|
||||
|
||||
int meson_writeback_get_format(u32 *writeback_fmts)
|
||||
{
|
||||
struct support_pixel_format pixel_format;
|
||||
struct support_pixel_format pixel_format = {};
|
||||
int i;
|
||||
|
||||
#ifdef CONFIG_AMLOGIC_MEDIA_VDIN
|
||||
|
||||
Reference in New Issue
Block a user