diff --git a/drivers/pwm/pwm-imx.c b/drivers/pwm/pwm-imx.c
index d69275f..24384cb 100644
--- a/drivers/pwm/pwm-imx.c
+++ b/drivers/pwm/pwm-imx.c
@@ -201,7 +201,7 @@ static int __devinit imx_pwm_probe(struct platform_device *pdev)
 	}
 
 	ret = pwmchip_add(&imx->chip);
-	if (ret)
+	if (ret < 0)
 		goto err_iounmap;
 
 	platform_set_drvdata(pdev, imx);
diff --git a/drivers/pwm/pwm-samsung.c b/drivers/pwm/pwm-samsung.c
index 631edf0..c40c37e 100644
--- a/drivers/pwm/pwm-samsung.c
+++ b/drivers/pwm/pwm-samsung.c
@@ -253,7 +253,7 @@ static int s3c_pwm_probe(struct platform_device *pdev)
 	local_irq_restore(flags);
 
 	ret = pwmchip_add(&s3c->chip);
-	if (ret) {
+	if (ret < 0) {
 		dev_err(dev, "failed to register pwm\n");
 		goto err_clk_tdiv;
 	}
