pwm: Return -ENODEV if no PWM lookup match is found
authorThierry Reding <thierry.reding@gmail.com>
Mon, 5 Oct 2015 12:38:32 +0000 (14:38 +0200)
committerThierry Reding <thierry.reding@gmail.com>
Tue, 10 Nov 2015 12:06:42 +0000 (13:06 +0100)
When looking up a PWM using the lookup table, assume that all entries
will have been added already, so failure to find a match means that no
corresponding entry has been registered.

This fixes an issue where -EPROBE_DEFER would be returned if the PWM
lookup table is empty. After this fix, -EPROBE_DEFER is reserved for
situations where no provider has yet registered for a matching entry.

Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
drivers/pwm/core.c

index b8f6c309c160ace262e50ea5f2513a3673ce69fc..d24ca5f281b4bbd98e5ce86e8f454c270d86fe10 100644 (file)
@@ -738,8 +738,10 @@ struct pwm_device *pwm_get(struct device *dev, const char *con_id)
                }
        }
 
-       if (!chosen)
+       if (!chosen) {
+               pwm = ERR_PTR(-ENODEV);
                goto out;
+       }
 
        chip = pwmchip_find_by_name(chosen->provider);
        if (!chip)