Update source to Armbian-dev-202610.A311Y3

This commit is contained in:
2026-11-11 08:50:43 +08:00
parent 3428a94f6b
commit f459ef6a9e
12514 changed files with 2264376 additions and 468481 deletions
@@ -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