[PATCH] drm/i915:Remove unused parameter in marco.

2024-08-31 Thread He Lugang
The parameter dev_priv is actually not used in macro PORT_ALPM_CTL
and PORT_ALPM_LFPS_CTL,so remove it to simplify the code.

Signed-off-by: He Lugang 
---
 drivers/gpu/drm/i915/display/intel_alpm.c | 4 ++--
 drivers/gpu/drm/i915/display/intel_psr.c  | 2 +-
 drivers/gpu/drm/i915/display/intel_psr_regs.h | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c 
b/drivers/gpu/drm/i915/display/intel_alpm.c
index 82ee778b2efe..7a93ba627aa6 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -330,7 +330,7 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,

ALPM_CTL_AUX_LESS_WAKE_TIME(intel_dp->alpm_parameters.aux_less_wake_lines);
 
intel_de_write(display,
-  PORT_ALPM_CTL(display, port),
+  PORT_ALPM_CTL(port),
   PORT_ALPM_CTL_ALPM_AUX_LESS_ENABLE |
   PORT_ALPM_CTL_MAX_PHY_SWING_SETUP(15) |
   PORT_ALPM_CTL_MAX_PHY_SWING_HOLD(0) |
@@ -338,7 +338,7 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,
   
intel_dp->alpm_parameters.silence_period_sym_clocks));
 
intel_de_write(display,
-  PORT_ALPM_LFPS_CTL(display, port),
+  PORT_ALPM_LFPS_CTL(port),
   PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT(10) |
   PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION(
   
intel_dp->alpm_parameters.lfps_half_cycle_num_of_syms) |
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
b/drivers/gpu/drm/i915/display/intel_psr.c
index 257526362b39..d66dbb529e1d 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -2076,7 +2076,7 @@ static void intel_psr_disable_locked(struct intel_dp 
*intel_dp)
 ALPM_CTL_ALPM_AUX_LESS_ENABLE, 0);
 
intel_de_rmw(dev_priv,
-PORT_ALPM_CTL(dev_priv, cpu_transcoder),
+PORT_ALPM_CTL(cpu_transcoder),
 PORT_ALPM_CTL_ALPM_AUX_LESS_ENABLE, 0);
}
 
diff --git a/drivers/gpu/drm/i915/display/intel_psr_regs.h 
b/drivers/gpu/drm/i915/display/intel_psr_regs.h
index 642bb15fb547..b4984e589d7e 100644
--- a/drivers/gpu/drm/i915/display/intel_psr_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_psr_regs.h
@@ -295,7 +295,7 @@
 
 #define _PORT_ALPM_CTL_A   0x16fa2c
 #define _PORT_ALPM_CTL_B   0x16fc2c
-#define PORT_ALPM_CTL(dev_priv, port)  _MMIO_PORT(port, 
_PORT_ALPM_CTL_A, _PORT_ALPM_CTL_B)
+#define PORT_ALPM_CTL(port)_MMIO_PORT(port, 
_PORT_ALPM_CTL_A, _PORT_ALPM_CTL_B)
 #define  PORT_ALPM_CTL_ALPM_AUX_LESS_ENABLEREG_BIT(31)
 #define  PORT_ALPM_CTL_MAX_PHY_SWING_SETUP_MASKREG_GENMASK(23, 20)
 #define  PORT_ALPM_CTL_MAX_PHY_SWING_SETUP(val)
REG_FIELD_PREP(PORT_ALPM_CTL_MAX_PHY_SWING_SETUP_MASK, val)
@@ -306,7 +306,7 @@
 
 #define _PORT_ALPM_LFPS_CTL_A  0x16fa30
 #define _PORT_ALPM_LFPS_CTL_B  0x16fc30
-#define PORT_ALPM_LFPS_CTL(dev_priv, port) 
_MMIO_PORT(port, _PORT_ALPM_LFPS_CTL_A, _PORT_ALPM_LFPS_CTL_B)
+#define PORT_ALPM_LFPS_CTL(port)   
_MMIO_PORT(port, _PORT_ALPM_LFPS_CTL_A, _PORT_ALPM_LFPS_CTL_B)
 #define  PORT_ALPM_LFPS_CTL_LFPS_START_POLARITY
REG_BIT(31)
 #define  PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MASK  REG_GENMASK(27, 
24)
 #define  PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MIN   7
-- 
2.45.2



[PATCH] [PATCH RESEND] drm/i915:Remove unused parameter in marco.

2024-09-06 Thread He Lugang
The parameter dev_priv is actually not used in macro PORT_ALPM_CTL
and PORT_ALPM_LFPS_CTL,so remove it to simplify the code.

Reviewed-by: Jani Nikula 
Signed-off-by: He Lugang 
---
 drivers/gpu/drm/i915/display/intel_alpm.c | 4 ++--
 drivers/gpu/drm/i915/display/intel_psr.c  | 2 +-
 drivers/gpu/drm/i915/display/intel_psr_regs.h | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c 
b/drivers/gpu/drm/i915/display/intel_alpm.c
index 31c068f393b7..55f3ae1e68c9 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -332,7 +332,7 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,

ALPM_CTL_AUX_LESS_WAKE_TIME(intel_dp->alpm_parameters.aux_less_wake_lines);
 
intel_de_write(display,
-  PORT_ALPM_CTL(display, port),
+  PORT_ALPM_CTL(port),
   PORT_ALPM_CTL_ALPM_AUX_LESS_ENABLE |
   PORT_ALPM_CTL_MAX_PHY_SWING_SETUP(15) |
   PORT_ALPM_CTL_MAX_PHY_SWING_HOLD(0) |
@@ -340,7 +340,7 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,
   
intel_dp->alpm_parameters.silence_period_sym_clocks));
 
intel_de_write(display,
-  PORT_ALPM_LFPS_CTL(display, port),
+  PORT_ALPM_LFPS_CTL(port),
   PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT(10) |
   PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION(
   
intel_dp->alpm_parameters.lfps_half_cycle_num_of_syms) |
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
b/drivers/gpu/drm/i915/display/intel_psr.c
index b30fa067ce6e..55ccdd6171e6 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -2097,7 +2097,7 @@ static void intel_psr_disable_locked(struct intel_dp 
*intel_dp)
 ALPM_CTL_ALPM_AUX_LESS_ENABLE, 0);
 
intel_de_rmw(display,
-PORT_ALPM_CTL(display, cpu_transcoder),
+PORT_ALPM_CTL(cpu_transcoder),
 PORT_ALPM_CTL_ALPM_AUX_LESS_ENABLE, 0);
}
 
diff --git a/drivers/gpu/drm/i915/display/intel_psr_regs.h 
b/drivers/gpu/drm/i915/display/intel_psr_regs.h
index 642bb15fb547..41f7211d4f45 100644
--- a/drivers/gpu/drm/i915/display/intel_psr_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_psr_regs.h
@@ -295,7 +295,7 @@
 
 #define _PORT_ALPM_CTL_A   0x16fa2c
 #define _PORT_ALPM_CTL_B   0x16fc2c
-#define PORT_ALPM_CTL(dev_priv, port)  _MMIO_PORT(port, 
_PORT_ALPM_CTL_A, _PORT_ALPM_CTL_B)
+#define PORT_ALPM_CTL(port)_MMIO_PORT(port, _PORT_ALPM_CTL_A, 
_PORT_ALPM_CTL_B)
 #define  PORT_ALPM_CTL_ALPM_AUX_LESS_ENABLEREG_BIT(31)
 #define  PORT_ALPM_CTL_MAX_PHY_SWING_SETUP_MASKREG_GENMASK(23, 20)
 #define  PORT_ALPM_CTL_MAX_PHY_SWING_SETUP(val)
REG_FIELD_PREP(PORT_ALPM_CTL_MAX_PHY_SWING_SETUP_MASK, val)
@@ -306,7 +306,7 @@
 
 #define _PORT_ALPM_LFPS_CTL_A  0x16fa30
 #define _PORT_ALPM_LFPS_CTL_B  0x16fc30
-#define PORT_ALPM_LFPS_CTL(dev_priv, port) 
_MMIO_PORT(port, _PORT_ALPM_LFPS_CTL_A, _PORT_ALPM_LFPS_CTL_B)
+#define PORT_ALPM_LFPS_CTL(port)   _MMIO_PORT(port, 
_PORT_ALPM_LFPS_CTL_A, _PORT_ALPM_LFPS_CTL_B)
 #define  PORT_ALPM_LFPS_CTL_LFPS_START_POLARITY
REG_BIT(31)
 #define  PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MASK  REG_GENMASK(27, 
24)
 #define  PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MIN   7
-- 
2.45.2



[PATCH 1/3] drm/xe: use devm_add_action_or_reset() helper

2024-09-06 Thread He Lugang
Use devm_add_action_or_reset() to release resources in case of failure,
because the cleanup function will be automatically called.

Signed-off-by: He Lugang 
---
 drivers/gpu/drm/xe/xe_gt_freq.c  | 2 +-
 drivers/gpu/drm/xe/xe_gt_sysfs.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_gt_freq.c b/drivers/gpu/drm/xe/xe_gt_freq.c
index 68a5778b4319..71bcd60d0866 100644
--- a/drivers/gpu/drm/xe/xe_gt_freq.c
+++ b/drivers/gpu/drm/xe/xe_gt_freq.c
@@ -237,7 +237,7 @@ int xe_gt_freq_init(struct xe_gt *gt)
if (!gt->freq)
return -ENOMEM;
 
-   err = devm_add_action(xe->drm.dev, freq_fini, gt->freq);
+   err = devm_add_action_or_reset(xe->drm.dev, freq_fini, gt->freq);
if (err)
return err;
 
diff --git a/drivers/gpu/drm/xe/xe_gt_sysfs.c b/drivers/gpu/drm/xe/xe_gt_sysfs.c
index a05c3699e8b9..ec2b8246204b 100644
--- a/drivers/gpu/drm/xe/xe_gt_sysfs.c
+++ b/drivers/gpu/drm/xe/xe_gt_sysfs.c
@@ -51,5 +51,5 @@ int xe_gt_sysfs_init(struct xe_gt *gt)
 
gt->sysfs = &kg->base;
 
-   return devm_add_action(xe->drm.dev, gt_sysfs_fini, gt);
+   return devm_add_action_or_reset(xe->drm.dev, gt_sysfs_fini, gt);
 }
-- 
2.45.2



[PATCH 1/3] drm/xe: use devm_add_action_or_reset() helper

2024-09-06 Thread He Lugang
Use devm_add_action_or_reset() to release resources in case of failure,
because the cleanup function will be automatically called.

Signed-off-by: He Lugang 
---
 drivers/gpu/drm/xe/xe_gt_freq.c  | 2 +-
 drivers/gpu/drm/xe/xe_gt_sysfs.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_gt_freq.c b/drivers/gpu/drm/xe/xe_gt_freq.c
index 68a5778b4319..71bcd60d0866 100644
--- a/drivers/gpu/drm/xe/xe_gt_freq.c
+++ b/drivers/gpu/drm/xe/xe_gt_freq.c
@@ -237,7 +237,7 @@ int xe_gt_freq_init(struct xe_gt *gt)
if (!gt->freq)
return -ENOMEM;
 
-   err = devm_add_action(xe->drm.dev, freq_fini, gt->freq);
+   err = devm_add_action_or_reset(xe->drm.dev, freq_fini, gt->freq);
if (err)
return err;
 
diff --git a/drivers/gpu/drm/xe/xe_gt_sysfs.c b/drivers/gpu/drm/xe/xe_gt_sysfs.c
index a05c3699e8b9..ec2b8246204b 100644
--- a/drivers/gpu/drm/xe/xe_gt_sysfs.c
+++ b/drivers/gpu/drm/xe/xe_gt_sysfs.c
@@ -51,5 +51,5 @@ int xe_gt_sysfs_init(struct xe_gt *gt)
 
gt->sysfs = &kg->base;
 
-   return devm_add_action(xe->drm.dev, gt_sysfs_fini, gt);
+   return devm_add_action_or_reset(xe->drm.dev, gt_sysfs_fini, gt);
 }
-- 
2.45.2



[PATCH 2/3] drm/gud: use devm_add_action_or_reset() helper

2024-09-07 Thread He Lugang
Use devm_add_action_or_reset() to release resources in case of failure,
because the cleanup function will be automatically called.

Signed-off-by: He Lugang 
---
 drivers/gpu/drm/gud/gud_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/gud/gud_drv.c b/drivers/gpu/drm/gud/gud_drv.c
index ac6bbf920c72..f121f6deb268 100644
--- a/drivers/gpu/drm/gud/gud_drv.c
+++ b/drivers/gpu/drm/gud/gud_drv.c
@@ -473,7 +473,7 @@ static int gud_probe(struct usb_interface *intf, const 
struct usb_device_id *id)
INIT_WORK(&gdrm->work, gud_flush_work);
gud_clear_damage(gdrm);
 
-   ret = devm_add_action(dev, gud_free_buffers_and_mutex, gdrm);
+   ret = devm_add_action_or_reset(dev, gud_free_buffers_and_mutex, gdrm);
if (ret)
return ret;
 
-- 
2.45.2



[PATCH 3/3] drm/i2c/tda9950: use devm_add_action_or_reset() helper

2024-09-07 Thread He Lugang
Use devm_add_action_or_reset() to release resources in case of failure,
because the cleanup function will be automatically called.

Signed-off-by: He Lugang 
---
 drivers/gpu/drm/i2c/tda9950.c | 12 +++-
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i2c/tda9950.c b/drivers/gpu/drm/i2c/tda9950.c
index 82d618c40dce..e9dae19d7acd 100644
--- a/drivers/gpu/drm/i2c/tda9950.c
+++ b/drivers/gpu/drm/i2c/tda9950.c
@@ -361,11 +361,7 @@ static int tda9950_devm_glue_init(struct device *dev, 
struct tda9950_glue *glue)
return ret;
}
 
-   ret = devm_add_action(dev, tda9950_devm_glue_exit, glue);
-   if (ret)
-   tda9950_devm_glue_exit(glue);
-
-   return ret;
+   return devm_add_action_or_reset(dev, tda9950_devm_glue_exit, glue);
 }
 
 static void tda9950_cec_del(void *data)
@@ -425,11 +421,9 @@ static int tda9950_probe(struct i2c_client *client)
if (IS_ERR(priv->adap))
return PTR_ERR(priv->adap);
 
-   ret = devm_add_action(dev, tda9950_cec_del, priv);
-   if (ret) {
-   cec_delete_adapter(priv->adap);
+   ret = devm_add_action_or_reset(dev, tda9950_cec_del, priv);
+   if (ret)
return ret;
-   }
 
ret = tda9950_devm_glue_init(dev, glue);
if (ret)
-- 
2.45.2



[PATCH v2] drm/xe: use devm_add_action_or_reset() helper

2024-09-11 Thread He Lugang
Use devm_add_action_or_reset() to release resources in case of failure,
because the cleanup function will be automatically called.

Reviewed-by: Rodrigo Vivi 
Signed-off-by: He Lugang 
---
v2:move devm_add_action_or_reset after sysfs_create_files to avoid removing
the sysfs files that hadn't been created.
---
 drivers/gpu/drm/xe/xe_gt_freq.c  | 4 ++--
 drivers/gpu/drm/xe/xe_gt_sysfs.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_gt_freq.c b/drivers/gpu/drm/xe/xe_gt_freq.c
index 68a5778b4319..ab76973f3e1e 100644
--- a/drivers/gpu/drm/xe/xe_gt_freq.c
+++ b/drivers/gpu/drm/xe/xe_gt_freq.c
@@ -237,11 +237,11 @@ int xe_gt_freq_init(struct xe_gt *gt)
if (!gt->freq)
return -ENOMEM;
 
-   err = devm_add_action(xe->drm.dev, freq_fini, gt->freq);
+   err = sysfs_create_files(gt->freq, freq_attrs);
if (err)
return err;
 
-   err = sysfs_create_files(gt->freq, freq_attrs);
+   err = devm_add_action_or_reset(xe->drm.dev, freq_fini, gt->freq);
if (err)
return err;
 
diff --git a/drivers/gpu/drm/xe/xe_gt_sysfs.c b/drivers/gpu/drm/xe/xe_gt_sysfs.c
index a05c3699e8b9..ec2b8246204b 100644
--- a/drivers/gpu/drm/xe/xe_gt_sysfs.c
+++ b/drivers/gpu/drm/xe/xe_gt_sysfs.c
@@ -51,5 +51,5 @@ int xe_gt_sysfs_init(struct xe_gt *gt)
 
gt->sysfs = &kg->base;
 
-   return devm_add_action(xe->drm.dev, gt_sysfs_fini, gt);
+   return devm_add_action_or_reset(xe->drm.dev, gt_sysfs_fini, gt);
 }
-- 
2.45.2



[RESEND PATCH] drm/i915:Remove unused parameter in marco

2024-09-24 Thread He Lugang
The parameter dev_priv is actually not used in macro PORT_ALPM_CTL
and PORT_ALPM_LFPS_CTL,so remove it to simplify the code.

Reviewed-by: Jani Nikula 
Signed-off-by: He Lugang 
---
 drivers/gpu/drm/i915/display/intel_alpm.c | 4 ++--
 drivers/gpu/drm/i915/display/intel_psr.c  | 2 +-
 drivers/gpu/drm/i915/display/intel_psr_regs.h | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_alpm.c 
b/drivers/gpu/drm/i915/display/intel_alpm.c
index 186cf4833f71..57afb25191bd 100644
--- a/drivers/gpu/drm/i915/display/intel_alpm.c
+++ b/drivers/gpu/drm/i915/display/intel_alpm.c
@@ -330,7 +330,7 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,

ALPM_CTL_AUX_LESS_WAKE_TIME(intel_dp->alpm_parameters.aux_less_wake_lines);
 
intel_de_write(display,
-  PORT_ALPM_CTL(display, port),
+  PORT_ALPM_CTL(port),
   PORT_ALPM_CTL_ALPM_AUX_LESS_ENABLE |
   PORT_ALPM_CTL_MAX_PHY_SWING_SETUP(15) |
   PORT_ALPM_CTL_MAX_PHY_SWING_HOLD(0) |
@@ -338,7 +338,7 @@ static void lnl_alpm_configure(struct intel_dp *intel_dp,
   
intel_dp->alpm_parameters.silence_period_sym_clocks));
 
intel_de_write(display,
-  PORT_ALPM_LFPS_CTL(display, port),
+  PORT_ALPM_LFPS_CTL(port),
   PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT(10) |
   PORT_ALPM_LFPS_CTL_LFPS_HALF_CYCLE_DURATION(
   
intel_dp->alpm_parameters.lfps_half_cycle_num_of_syms) |
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
b/drivers/gpu/drm/i915/display/intel_psr.c
index 136a0d6ca970..3468a8b55e2b 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -2114,7 +2114,7 @@ static void intel_psr_disable_locked(struct intel_dp 
*intel_dp)
 ALPM_CTL_ALPM_AUX_LESS_ENABLE, 0);
 
intel_de_rmw(display,
-PORT_ALPM_CTL(display, cpu_transcoder),
+PORT_ALPM_CTL(cpu_transcoder),
 PORT_ALPM_CTL_ALPM_AUX_LESS_ENABLE, 0);
}
 
diff --git a/drivers/gpu/drm/i915/display/intel_psr_regs.h 
b/drivers/gpu/drm/i915/display/intel_psr_regs.h
index 642bb15fb547..98814868d26c 100644
--- a/drivers/gpu/drm/i915/display/intel_psr_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_psr_regs.h
@@ -295,7 +295,7 @@
 
 #define _PORT_ALPM_CTL_A   0x16fa2c
 #define _PORT_ALPM_CTL_B   0x16fc2c
-#define PORT_ALPM_CTL(dev_priv, port)  _MMIO_PORT(port, 
_PORT_ALPM_CTL_A, _PORT_ALPM_CTL_B)
+#define  PORT_ALPM_CTL(port)   _MMIO_PORT(port, _PORT_ALPM_CTL_A, 
_PORT_ALPM_CTL_B)
 #define  PORT_ALPM_CTL_ALPM_AUX_LESS_ENABLEREG_BIT(31)
 #define  PORT_ALPM_CTL_MAX_PHY_SWING_SETUP_MASKREG_GENMASK(23, 20)
 #define  PORT_ALPM_CTL_MAX_PHY_SWING_SETUP(val)
REG_FIELD_PREP(PORT_ALPM_CTL_MAX_PHY_SWING_SETUP_MASK, val)
@@ -306,7 +306,7 @@
 
 #define _PORT_ALPM_LFPS_CTL_A  0x16fa30
 #define _PORT_ALPM_LFPS_CTL_B  0x16fc30
-#define PORT_ALPM_LFPS_CTL(dev_priv, port) 
_MMIO_PORT(port, _PORT_ALPM_LFPS_CTL_A, _PORT_ALPM_LFPS_CTL_B)
+#define  PORT_ALPM_LFPS_CTL(port) _MMIO_PORT(port, _PORT_ALPM_LFPS_CTL_A, 
_PORT_ALPM_LFPS_CTL_B)
 #define  PORT_ALPM_LFPS_CTL_LFPS_START_POLARITY
REG_BIT(31)
 #define  PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MASK  REG_GENMASK(27, 
24)
 #define  PORT_ALPM_LFPS_CTL_LFPS_CYCLE_COUNT_MIN   7
-- 
2.45.2



[RESEND PATCH] drm/i2c/tda9950: use devm_add_action_or_reset() helper

2024-09-24 Thread He Lugang
Use devm_add_action_or_reset() to release resources in case of failure,
because the cleanup function will be automatically called.

Reviewed-by: Dmitry Baryshkov 
Signed-off-by: He Lugang 
---
 drivers/gpu/drm/i2c/tda9950.c | 12 +++-
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i2c/tda9950.c b/drivers/gpu/drm/i2c/tda9950.c
index 82d618c40dce..e9dae19d7acd 100644
--- a/drivers/gpu/drm/i2c/tda9950.c
+++ b/drivers/gpu/drm/i2c/tda9950.c
@@ -361,11 +361,7 @@ static int tda9950_devm_glue_init(struct device *dev, 
struct tda9950_glue *glue)
return ret;
}
 
-   ret = devm_add_action(dev, tda9950_devm_glue_exit, glue);
-   if (ret)
-   tda9950_devm_glue_exit(glue);
-
-   return ret;
+   return devm_add_action_or_reset(dev, tda9950_devm_glue_exit, glue);
 }
 
 static void tda9950_cec_del(void *data)
@@ -425,11 +421,9 @@ static int tda9950_probe(struct i2c_client *client)
if (IS_ERR(priv->adap))
return PTR_ERR(priv->adap);
 
-   ret = devm_add_action(dev, tda9950_cec_del, priv);
-   if (ret) {
-   cec_delete_adapter(priv->adap);
+   ret = devm_add_action_or_reset(dev, tda9950_cec_del, priv);
+   if (ret)
return ret;
-   }
 
ret = tda9950_devm_glue_init(dev, glue);
if (ret)
-- 
2.45.2