| Message ID | 20260427100049.29034-1-pakmyeonghun@bagmyeonghun-ui-MacBookPro.local (mailing list archive) |
|---|---|
| State | New |
| Headers |
Return-Path: <linux-sunxi+bounces-22971-sunxi=pue.re@lists.linux.dev>
X-Original-To: noreply@patchwork.local
Delivered-To: noreply@patchwork.local
Received: from sea.lore.kernel.org (sea.lore.kernel.org [172.234.253.10])
by mxe881.netcup.net (Postfix) with ESMTPS id E83DB1C00A4
for <noreply@patchwork.local>; Mon, 27 Apr 2026 12:08:52 +0200 (CEST)
Authentication-Results: mxe881;
dkim=pass header.d=gmail.com;
spf=pass (sender IP is 172.234.253.10)
smtp.mailfrom=linux-sunxi+bounces-22971-noreply=patchwork.local@lists.linux.dev
smtp.helo=sea.lore.kernel.org
Received-SPF: pass (mxe881: domain of lists.linux.dev designates
172.234.253.10 as permitted sender) client-ip=172.234.253.10;
envelope-from=linux-sunxi+bounces-22971-noreply=patchwork.local@lists.linux.dev;
helo=sea.lore.kernel.org;
Received: from smtp.subspace.kernel.org (conduit.subspace.kernel.org
[100.90.174.1])
by sea.lore.kernel.org (Postfix) with ESMTP id 2B8AB30F0F80
for <noreply@patchwork.local>; Mon, 27 Apr 2026 10:01:37 +0000 (UTC)
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
by smtp.subspace.kernel.org (Postfix) with ESMTP id 6BD013B27CE;
Mon, 27 Apr 2026 10:00:59 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org;
dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
header.b="gql2NRY3"
X-Original-To: linux-sunxi@lists.linux.dev
Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com
[209.85.214.170])
(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
(No client certificate requested)
by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F0A33B27D7
for <linux-sunxi@lists.linux.dev>; Mon, 27 Apr 2026 10:00:57 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org;
arc=none smtp.client-ip=209.85.214.170
ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
t=1777284059; cv=none;
b=Smldhpge+PNpttEV1o6kfzGojjVCEVZtqtlQfAOLWr9rFGUAVBpv+XJQiIQKlT633JRxngqFNq/Pfe98ncARwIoP4SSE9qac7PXAts7L7nUSTBsDQtdx8Vmze2phE6t+oO3Pa5XhigGH0q5bArT+nb/8riKStgkb3y/974n06/Q=
ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org;
s=arc-20240116; t=1777284059; c=relaxed/simple;
bh=ZI6ZwXlG1e5ACFzhDMQRxll59Q4E3kZhbdsX1UNQ54c=;
h=From:To:Cc:Subject:Date:Message-ID:MIME-Version;
b=NH6wQsLFb2FbW9OQtN32N/6YHiLop0UET0x5XV0o3y9Vn+nl2dYO1coP+GU4ZP98EtZ4fT4XNPBAbot61tISwUF1lzxhI3s9xFMfGBereI7BAA3h2VodyUwvzg4aNFzxN7zgZROl0+zyYoxkXopc0Ci8sL339lNsHC5NmeO625M=
ARC-Authentication-Results: i=1; smtp.subspace.kernel.org;
dmarc=pass (p=none dis=none) header.from=gmail.com;
spf=pass smtp.mailfrom=gmail.com;
dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com
header.b=gql2NRY3; arc=none smtp.client-ip=209.85.214.170
Authentication-Results: smtp.subspace.kernel.org;
dmarc=pass (p=none dis=none) header.from=gmail.com
Authentication-Results: smtp.subspace.kernel.org;
spf=pass smtp.mailfrom=gmail.com
Received: by mail-pl1-f170.google.com with SMTP id
d9443c01a7336-2b23fcf90b2so95104945ad.3
for <linux-sunxi@lists.linux.dev>;
Mon, 27 Apr 2026 03:00:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20251104; t=1777284057; x=1777888857;
darn=lists.linux.dev;
h=content-transfer-encoding:mime-version:message-id:date:subject:cc
:to:from:from:to:cc:subject:date:message-id:reply-to;
bh=0EvvvHNzTOaXmxdzFUeL0y2A0j/j9spluGpaFZP3FMU=;
b=gql2NRY30OJLLeOobf4hSGkCc5WqR6XXXPbGgg6JsyyKl6eVta6fyE1+vX5So30UlO
sEePuHQM+OFebI43KFZcGmnivO8+HsCnJIFgJqct6n6aUWJK/91LthqUJ67sb1Tvjn42
ZzxixEWh6az1IxRwBMl7GqEA/6xdhF5acJdMiQbH4zAv2wskfXgoEmzgutt15QKi1pOf
aWMqlXxo6n49YM55cHFa3+r9DKQA+ffW0gZBUbKDZM4efgRQE0bAbzaYyID67DbtAVz+
+i3dYCuN2pRKiTnpAOdAowt3oZppKtgZCh7PdhMRXKyT6k0ML2bte4zoCHLEkYiKP/Bt
OhyQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20251104; t=1777284057; x=1777888857;
h=content-transfer-encoding:mime-version:message-id:date:subject:cc
:to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
:message-id:reply-to;
bh=0EvvvHNzTOaXmxdzFUeL0y2A0j/j9spluGpaFZP3FMU=;
b=dx/ErRAe2GEMie5SKtEKqVpQXGUjHlk0AF9c5B9wOX5XTJyX4zaFyCWLB8jawVgAih
C+dE4RjYeMB/KqKbhru3ZrvhzX+wHKPsP7xPmVti6ucuMlctM0kHTGMzqv9nSO7sLvK/
+g5UXxmh/NR/WBIpQXAunA5OsrZiFEaLoiox2kBPSNXrwdkQYX2pgBVfwumeb8ORiSVg
VbwESKdAei6iR+EFPid3/z13kZk/AD/MRHBLyS4wLP8LdEuE5SQ/QwLeEB8rHWRqh2U9
8wM3M7uPIzEl5VQQ46wd6EgzBqOrs6/+czK/pQjWzXaPASL+HxdC/eYVPiBjOLunW+RU
N0DA==
X-Forwarded-Encrypted: i=1;
AFNElJ8smx9xlqFjAiM4Drv/NxwNwHWH1Z4aIHouIT4tusJ/kQdSkdSWpcCBQEEi1WxKgTizKGJ3AW2PwgMpWg==@lists.linux.dev
X-Gm-Message-State: AOJu0Yy/Vi5zMewwU1F+O6pcVNjiGRshPica8Shi1kUeEcKRUpUcQ684
oMM+ykEzYrtZ9RjlPtNFUVwSTZqQSd2G+IXID9RL0H0N7t/mIa50XBk=
X-Gm-Gg: AeBDies4J0i5ehyB1xJ4nKavoAxAZ5Yzd+QxyRhxYGVX3YoLiI72T0jzeD7xwXFYqI4
O18yYPK0kZ2LgLi+/J8LNGdwD8bdE6ypUbTDTDNx1vda3J/bn/pPoeJYo+2TtTjRv1zZ7/Cw8gc
u+coQqwVaMSPtqwoNaJW0Whgn6Jy3zzzEc2IYM6aL3WAoohSjbpE9DUoe8JbaVGoMWGYymYNAoO
bxegXO98I4sm19qxA339FIbbMh0npkZxaGBObkBFd0AVqxIOALZCbpLJ62RTYrnKYL4hOhX20rp
Oe/5YlNCqwk98ljuvG0/lymP4f3D6cA8YvuMVTZH8ygVNFxduDBIEkKIXaHHqQ0oWhVA6pBYHOv
oDkFRCHZ47irCI4Sb6GGa3EsyV9U1yWkftLowUMFVKK5mabojsWGbg9iyOsAD3PxRvXliOFOBW2
mMzwZCaCrONBvRdwEuy8tEOTvjfhX5uwqUnrkWJTt57LR0M6/aMThqBi27XtFeb+iJu0zPFa7OF
hRQNCag6m7h0I24wAoayf3+k8e4SOcX1949cfHNDIAPXpA=
X-Received: by 2002:a17:902:e54e:b0:2ae:ce35:2686 with SMTP id
d9443c01a7336-2b5f9e64c77mr424633395ad.5.1777284057141;
Mon, 27 Apr 2026 03:00:57 -0700 (PDT)
Received: from localhost.localdomain ([1.226.165.54])
by smtp.gmail.com with ESMTPSA id
d9443c01a7336-2b5fa9ff713sm304240245ad.5.2026.04.27.03.00.53
(version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
Mon, 27 Apr 2026 03:00:56 -0700 (PDT)
From: " =?utf-8?b?67CV66qF7ZuI?= " <mhun512@gmail.com>
X-Google-Original-From: =?utf-8?b?67CV66qF7ZuI?=
<pakmyeonghun@bagmyeonghun-ui-MacBookPro.local>
To: Maxime Ripard <mripard@kernel.org>,
Paul Kocialkowski <paulk@sys-base.io>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Chen-Yu Tsai <wens@kernel.org>,
Jernej Skrabec <jernej.skrabec@gmail.com>,
Samuel Holland <samuel@sholland.org>
Cc: Myeonghun Pak <mhun512@gmail.com>,
linux-media@vger.kernel.org,
linux-staging@lists.linux.dev,
linux-arm-kernel@lists.infradead.org,
linux-sunxi@lists.linux.dev,
linux-kernel@vger.kernel.org,
stable@vger.kernel.org,
Ijae Kim <ae878000@gmail.com>
Subject: [PATCH] media: cedrus: clean up media device on probe failure
Date: Mon, 27 Apr 2026 19:00:10 +0900
Message-ID:
<20260427100049.29034-1-pakmyeonghun@bagmyeonghun-ui-MacBookPro.local>
X-Mailer: git-send-email 2.47.1
Precedence: bulk
X-Mailing-List: linux-sunxi@lists.linux.dev
List-Id: <linux-sunxi.lists.linux.dev>
List-Subscribe: <mailto:linux-sunxi+subscribe@lists.linux.dev>
List-Unsubscribe: <mailto:linux-sunxi+unsubscribe@lists.linux.dev>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Rspamd-Server: rspamd-worker-8404
X-Spamd-Result: default: False [-0.66 / 15.00];
BAYES_HAM(-5.50)[100.00%];
RBL_SENDERSCORE(2.00)[172.234.253.10:from];
SUSPICIOUS_RECIPS(1.50)[];
DMARC_POLICY_SOFTFAIL(1.00)[gmail.com : SPF not aligned (relaxed),
No valid DKIM,none];
R_MISSING_CHARSET(0.50)[];
MAILLIST(-0.15)[generic];
MIME_GOOD(-0.10)[text/plain];
BAD_REP_POLICIES(0.10)[];
HAS_LIST_UNSUB(-0.01)[];
PRECEDENCE_BULK(0.00)[];
TAGGED_RCPT(0.00)[];
DBL_BLOCKED_OPENRESOLVER(0.00)[sea.lore.kernel.org:rdns,sea.lore.kernel.org:helo];
FROM_HAS_DN(0.00)[];
FORGED_SENDER_MAILLIST(0.00)[];
RCPT_COUNT_TWELVE(0.00)[15];
FREEMAIL_CC(0.00)[gmail.com,vger.kernel.org,lists.linux.dev,lists.infradead.org];
FUZZY_BLOCKED(0.00)[rspamd.com];
RCVD_VIA_SMTP_AUTH(0.00)[];
FROM_NEQ_ENVFROM(0.00)[mhun512@gmail.com,linux-sunxi@lists.linux.dev];
ARC_ALLOW(0.00)[subspace.kernel.org:s=arc-20240116:i=1];
FREEMAIL_FROM(0.00)[gmail.com];
R_SPF_ALLOW(0.00)[+ip4:172.234.253.10];
TO_DN_SOME(0.00)[];
RECEIVED_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[100.90.174.1:received,209.85.214.170:received];
RCVD_COUNT_FIVE(0.00)[6];
FREEMAIL_TO(0.00)[kernel.org,sys-base.io,linuxfoundation.org,gmail.com,sholland.org];
MIME_TRACE(0.00)[0:+];
TAGGED_FROM(0.00)[bounces-22971-noreply=patchwork.local];
FORGED_RECIPIENTS_MAILLIST(0.00)[];
ASN(0.00)[asn:63949, ipnet:172.234.224.0/19, country:SG];
RCVD_TLS_LAST(0.00)[];
RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[172.234.253.10:from]
X-Rspamd-Queue-Id: E83DB1C00A4
X-MORS-Enabled: yes
X-MORS-DOMAIN: patchwork.local
X-MORS-HOSTING: hosting172546
X-MORS-USER: hosting172546
X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?=
|
| Series |
media: cedrus: clean up media device on probe failure
|
|
Commit Message
박명훈
April 27, 2026, 10 a.m. UTC
From: Myeonghun Pak <mhun512@gmail.com> cedrus_probe() initializes the media device before registering the video device, the media controller, and the media device. If any of those later steps fails, probe returns without calling media_device_cleanup(), so the media device internals initialized by media_device_init() are left behind. Add a media-device cleanup label to the probe unwind path and route video registration failures through it as well. Fixes: 50e761516f2b8c ("media: platform: Add Cedrus VPU decoder driver") Cc: stable@vger.kernel.org Co-developed-by: Ijae Kim <ae878000@gmail.com> Signed-off-by: Ijae Kim <ae878000@gmail.com> Signed-off-by: Myeonghun Pak <mhun512@gmail.com> --- drivers/staging/media/sunxi/cedrus/cedrus.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
Comments
Le lundi 27 avril 2026 à 19:00 +0900, 박명훈 a écrit : > From: Myeonghun Pak <mhun512@gmail.com> > > cedrus_probe() initializes the media device before registering the video > device, the media controller, and the media device. If any of those later > steps fails, probe returns without calling media_device_cleanup(), so the > media device internals initialized by media_device_init() are left behind. > > Add a media-device cleanup label to the probe unwind path and route video > registration failures through it as well. > > Fixes: 50e761516f2b8c ("media: platform: Add Cedrus VPU decoder driver") > Cc: stable@vger.kernel.org > Co-developed-by: Ijae Kim <ae878000@gmail.com> > Signed-off-by: Ijae Kim <ae878000@gmail.com> > Signed-off-by: Myeonghun Pak <mhun512@gmail.com> > --- > drivers/staging/media/sunxi/cedrus/cedrus.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c > index 6600245dff..2c25654640 100644 > --- a/drivers/staging/media/sunxi/cedrus/cedrus.c > +++ b/drivers/staging/media/sunxi/cedrus/cedrus.c > @@ -507,7 +507,7 @@ static int cedrus_probe(struct platform_device *pdev) > ret = video_register_device(vfd, VFL_TYPE_VIDEO, 0); > if (ret) { > v4l2_err(&dev->v4l2_dev, "Failed to register video device\n"); > - goto err_m2m; > + goto err_media_cleanup; > } > > v4l2_info(&dev->v4l2_dev, > @@ -533,6 +533,8 @@ static int cedrus_probe(struct platform_device *pdev) > v4l2_m2m_unregister_media_controller(dev->m2m_dev); > err_video: > video_unregister_device(&dev->vfd); > +err_media_cleanup: > + media_device_cleanup(&dev->mdev); > err_m2m: This label is left unused. Can you fix this warning please. Nicolas > v4l2_m2m_release(dev->m2m_dev); > err_v4l2:
Hi 박명훈,
kernel test robot noticed the following build warnings:
[auto build test WARNING on sunxi/sunxi/for-next]
[also build test WARNING on linus/master v7.1-rc1 next-20260429]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/media-cedrus-clean-up-media-device-on-probe-failure/20260427-235223
base: https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git sunxi/for-next
patch link: https://lore.kernel.org/r/20260427100049.29034-1-pakmyeonghun%40bagmyeonghun-ui-MacBookPro.local
patch subject: [PATCH] media: cedrus: clean up media device on probe failure
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20260430/202604301101.Nszhy0yB-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260430/202604301101.Nszhy0yB-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604301101.Nszhy0yB-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/staging/media/sunxi/cedrus/cedrus.c:538:1: warning: unused label 'err_m2m' [-Wunused-label]
538 | err_m2m:
| ^~~~~~~~
1 warning generated.
vim +/err_m2m +538 drivers/staging/media/sunxi/cedrus/cedrus.c
50e761516f2b8c Paul Kocialkowski 2018-09-13 449
50e761516f2b8c Paul Kocialkowski 2018-09-13 450 static int cedrus_probe(struct platform_device *pdev)
50e761516f2b8c Paul Kocialkowski 2018-09-13 451 {
50e761516f2b8c Paul Kocialkowski 2018-09-13 452 struct cedrus_dev *dev;
50e761516f2b8c Paul Kocialkowski 2018-09-13 453 struct video_device *vfd;
50e761516f2b8c Paul Kocialkowski 2018-09-13 454 int ret;
50e761516f2b8c Paul Kocialkowski 2018-09-13 455
50e761516f2b8c Paul Kocialkowski 2018-09-13 456 dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL);
50e761516f2b8c Paul Kocialkowski 2018-09-13 457 if (!dev)
50e761516f2b8c Paul Kocialkowski 2018-09-13 458 return -ENOMEM;
50e761516f2b8c Paul Kocialkowski 2018-09-13 459
708938f8495147 Dmitry Osipenko 2022-08-18 460 platform_set_drvdata(pdev, dev);
708938f8495147 Dmitry Osipenko 2022-08-18 461
50e761516f2b8c Paul Kocialkowski 2018-09-13 462 dev->vfd = cedrus_video_device;
50e761516f2b8c Paul Kocialkowski 2018-09-13 463 dev->dev = &pdev->dev;
50e761516f2b8c Paul Kocialkowski 2018-09-13 464 dev->pdev = pdev;
50e761516f2b8c Paul Kocialkowski 2018-09-13 465
50e761516f2b8c Paul Kocialkowski 2018-09-13 466 ret = cedrus_hw_probe(dev);
50e761516f2b8c Paul Kocialkowski 2018-09-13 467 if (ret) {
50e761516f2b8c Paul Kocialkowski 2018-09-13 468 dev_err(&pdev->dev, "Failed to probe hardware\n");
50e761516f2b8c Paul Kocialkowski 2018-09-13 469 return ret;
50e761516f2b8c Paul Kocialkowski 2018-09-13 470 }
50e761516f2b8c Paul Kocialkowski 2018-09-13 471
50e761516f2b8c Paul Kocialkowski 2018-09-13 472 mutex_init(&dev->dev_mutex);
50e761516f2b8c Paul Kocialkowski 2018-09-13 473
7c38a551bda1b7 Jernej Skrabec 2022-02-01 474 INIT_DELAYED_WORK(&dev->watchdog_work, cedrus_watchdog);
7c38a551bda1b7 Jernej Skrabec 2022-02-01 475
50e761516f2b8c Paul Kocialkowski 2018-09-13 476 ret = v4l2_device_register(&pdev->dev, &dev->v4l2_dev);
50e761516f2b8c Paul Kocialkowski 2018-09-13 477 if (ret) {
50e761516f2b8c Paul Kocialkowski 2018-09-13 478 dev_err(&pdev->dev, "Failed to register V4L2 device\n");
50e761516f2b8c Paul Kocialkowski 2018-09-13 479 return ret;
50e761516f2b8c Paul Kocialkowski 2018-09-13 480 }
50e761516f2b8c Paul Kocialkowski 2018-09-13 481
50e761516f2b8c Paul Kocialkowski 2018-09-13 482 vfd = &dev->vfd;
50e761516f2b8c Paul Kocialkowski 2018-09-13 483 vfd->lock = &dev->dev_mutex;
50e761516f2b8c Paul Kocialkowski 2018-09-13 484 vfd->v4l2_dev = &dev->v4l2_dev;
50e761516f2b8c Paul Kocialkowski 2018-09-13 485
50e761516f2b8c Paul Kocialkowski 2018-09-13 486 snprintf(vfd->name, sizeof(vfd->name), "%s", cedrus_video_device.name);
50e761516f2b8c Paul Kocialkowski 2018-09-13 487 video_set_drvdata(vfd, dev);
50e761516f2b8c Paul Kocialkowski 2018-09-13 488
50e761516f2b8c Paul Kocialkowski 2018-09-13 489 dev->m2m_dev = v4l2_m2m_init(&cedrus_m2m_ops);
50e761516f2b8c Paul Kocialkowski 2018-09-13 490 if (IS_ERR(dev->m2m_dev)) {
50e761516f2b8c Paul Kocialkowski 2018-09-13 491 v4l2_err(&dev->v4l2_dev,
50e761516f2b8c Paul Kocialkowski 2018-09-13 492 "Failed to initialize V4L2 M2M device\n");
50e761516f2b8c Paul Kocialkowski 2018-09-13 493 ret = PTR_ERR(dev->m2m_dev);
50e761516f2b8c Paul Kocialkowski 2018-09-13 494
bac875349f8525 Jernej Skrabec 2019-04-07 495 goto err_v4l2;
50e761516f2b8c Paul Kocialkowski 2018-09-13 496 }
50e761516f2b8c Paul Kocialkowski 2018-09-13 497
50e761516f2b8c Paul Kocialkowski 2018-09-13 498 dev->mdev.dev = &pdev->dev;
50e761516f2b8c Paul Kocialkowski 2018-09-13 499 strscpy(dev->mdev.model, CEDRUS_NAME, sizeof(dev->mdev.model));
ae0688f659adb1 Hans Verkuil 2019-08-30 500 strscpy(dev->mdev.bus_info, "platform:" CEDRUS_NAME,
ae0688f659adb1 Hans Verkuil 2019-08-30 501 sizeof(dev->mdev.bus_info));
50e761516f2b8c Paul Kocialkowski 2018-09-13 502
50e761516f2b8c Paul Kocialkowski 2018-09-13 503 media_device_init(&dev->mdev);
50e761516f2b8c Paul Kocialkowski 2018-09-13 504 dev->mdev.ops = &cedrus_m2m_media_ops;
50e761516f2b8c Paul Kocialkowski 2018-09-13 505 dev->v4l2_dev.mdev = &dev->mdev;
50e761516f2b8c Paul Kocialkowski 2018-09-13 506
0e17c50fcf6a9e Hans Verkuil 2020-02-03 507 ret = video_register_device(vfd, VFL_TYPE_VIDEO, 0);
50e761516f2b8c Paul Kocialkowski 2018-09-13 508 if (ret) {
50e761516f2b8c Paul Kocialkowski 2018-09-13 509 v4l2_err(&dev->v4l2_dev, "Failed to register video device\n");
e8660f15f165e6 Myeonghun Pak 2026-04-27 510 goto err_media_cleanup;
50e761516f2b8c Paul Kocialkowski 2018-09-13 511 }
50e761516f2b8c Paul Kocialkowski 2018-09-13 512
50e761516f2b8c Paul Kocialkowski 2018-09-13 513 v4l2_info(&dev->v4l2_dev,
50e761516f2b8c Paul Kocialkowski 2018-09-13 514 "Device registered as /dev/video%d\n", vfd->num);
50e761516f2b8c Paul Kocialkowski 2018-09-13 515
bac875349f8525 Jernej Skrabec 2019-04-07 516 ret = v4l2_m2m_register_media_controller(dev->m2m_dev, vfd,
bac875349f8525 Jernej Skrabec 2019-04-07 517 MEDIA_ENT_F_PROC_VIDEO_DECODER);
bac875349f8525 Jernej Skrabec 2019-04-07 518 if (ret) {
bac875349f8525 Jernej Skrabec 2019-04-07 519 v4l2_err(&dev->v4l2_dev,
bac875349f8525 Jernej Skrabec 2019-04-07 520 "Failed to initialize V4L2 M2M media controller\n");
bac875349f8525 Jernej Skrabec 2019-04-07 521 goto err_video;
bac875349f8525 Jernej Skrabec 2019-04-07 522 }
bac875349f8525 Jernej Skrabec 2019-04-07 523
50e761516f2b8c Paul Kocialkowski 2018-09-13 524 ret = media_device_register(&dev->mdev);
50e761516f2b8c Paul Kocialkowski 2018-09-13 525 if (ret) {
50e761516f2b8c Paul Kocialkowski 2018-09-13 526 v4l2_err(&dev->v4l2_dev, "Failed to register media device\n");
50e761516f2b8c Paul Kocialkowski 2018-09-13 527 goto err_m2m_mc;
50e761516f2b8c Paul Kocialkowski 2018-09-13 528 }
50e761516f2b8c Paul Kocialkowski 2018-09-13 529
50e761516f2b8c Paul Kocialkowski 2018-09-13 530 return 0;
50e761516f2b8c Paul Kocialkowski 2018-09-13 531
50e761516f2b8c Paul Kocialkowski 2018-09-13 532 err_m2m_mc:
50e761516f2b8c Paul Kocialkowski 2018-09-13 533 v4l2_m2m_unregister_media_controller(dev->m2m_dev);
50e761516f2b8c Paul Kocialkowski 2018-09-13 534 err_video:
50e761516f2b8c Paul Kocialkowski 2018-09-13 535 video_unregister_device(&dev->vfd);
e8660f15f165e6 Myeonghun Pak 2026-04-27 536 err_media_cleanup:
e8660f15f165e6 Myeonghun Pak 2026-04-27 537 media_device_cleanup(&dev->mdev);
bac875349f8525 Jernej Skrabec 2019-04-07 @538 err_m2m:
bac875349f8525 Jernej Skrabec 2019-04-07 539 v4l2_m2m_release(dev->m2m_dev);
50e761516f2b8c Paul Kocialkowski 2018-09-13 540 err_v4l2:
50e761516f2b8c Paul Kocialkowski 2018-09-13 541 v4l2_device_unregister(&dev->v4l2_dev);
50e761516f2b8c Paul Kocialkowski 2018-09-13 542
50e761516f2b8c Paul Kocialkowski 2018-09-13 543 return ret;
50e761516f2b8c Paul Kocialkowski 2018-09-13 544 }
50e761516f2b8c Paul Kocialkowski 2018-09-13 545
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c index 6600245dff..2c25654640 100644 --- a/drivers/staging/media/sunxi/cedrus/cedrus.c +++ b/drivers/staging/media/sunxi/cedrus/cedrus.c @@ -507,7 +507,7 @@ static int cedrus_probe(struct platform_device *pdev) ret = video_register_device(vfd, VFL_TYPE_VIDEO, 0); if (ret) { v4l2_err(&dev->v4l2_dev, "Failed to register video device\n"); - goto err_m2m; + goto err_media_cleanup; } v4l2_info(&dev->v4l2_dev, @@ -533,6 +533,8 @@ static int cedrus_probe(struct platform_device *pdev) v4l2_m2m_unregister_media_controller(dev->m2m_dev); err_video: video_unregister_device(&dev->vfd); +err_media_cleanup: + media_device_cleanup(&dev->mdev); err_m2m: v4l2_m2m_release(dev->m2m_dev); err_v4l2: