From: Jiri Slaby stk11xx_check_device returns 0 for success of non-inited device, 1 for success of inited device and negative for error cases. bubble the negative value to the caller. Signed-off-by: Jiri Slaby Cc: Mauro Carvalho Chehab Signed-off-by: Andrew Morton --- drivers/media/video/stk1125.c | 2 +- drivers/media/video/stk1135.c | 2 +- drivers/media/video/stkdcnew.c | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff -puN drivers/media/video/stk1125.c~v4l-stk11xx-use-retval-from-stk11xx_check_device drivers/media/video/stk1125.c --- a/drivers/media/video/stk1125.c~v4l-stk11xx-use-retval-from-stk11xx_check_device +++ a/drivers/media/video/stk1125.c @@ -91,7 +91,7 @@ static int stk1125_load_microcode(struct retok = stk11xx_check_device(dev, 500); if (retok != 1) { dev_err(&dev->udev->dev, "load microcode fail\n"); - return -EIO; + return retok < 0 ? retok : -EIO; } stk11xx_write_reg(dev, 0x02ff, 0x00); diff -puN drivers/media/video/stk1135.c~v4l-stk11xx-use-retval-from-stk11xx_check_device drivers/media/video/stk1135.c --- a/drivers/media/video/stk1135.c~v4l-stk11xx-use-retval-from-stk11xx_check_device +++ a/drivers/media/video/stk1135.c @@ -64,7 +64,7 @@ static int stk1135_load_microcode(struct retok = stk11xx_check_device(dev, 500); if (retok != 1) { dev_err(&dev->udev->dev, "load microcode failed\n"); - return -EIO; + return retok < 0 ? retok : -EIO; } stk11xx_write_reg(dev, 0x02ff, 0x00); diff -puN drivers/media/video/stkdcnew.c~v4l-stk11xx-use-retval-from-stk11xx_check_device drivers/media/video/stkdcnew.c --- a/drivers/media/video/stkdcnew.c~v4l-stk11xx-use-retval-from-stk11xx_check_device +++ a/drivers/media/video/stkdcnew.c @@ -102,10 +102,9 @@ static int stkdcnew_load_microcode(struc stk11xx_write_reg(dev, 0x0200, 0x01); retok = stk11xx_check_device(dev, 500); - if (retok != 1) { dev_err(&dev->udev->dev, "load microcode fail!\n"); - return -EIO; + return retok < 0 ? retok : -EIO; } stk11xx_write_reg(dev, 0x02ff, 0x00); _