mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-24 03:24:55 +08:00
fd44aa9a25
The rcar_fcp_enable() function immediately returns successfully when the FCP device pointer is NULL to avoid forcing the users to check the FCP device manually before every call. However, the stub version of the function used when the FCP driver is disabled returns -ENOSYS unconditionally, resulting in a different API contract for the two versions of the function. As a user that requires FCP support will fail at probe time when calling rcar_fcp_get() if the FCP driver is disabled, the stub version of the rcar_fcp_enable() function will only be called with a NULL FCP device. We can thus return 0 unconditionally to align the behaviour with the normal version of the function. Reported-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
38 lines
1.2 KiB
C
38 lines
1.2 KiB
C
/*
|
|
* rcar-fcp.h -- R-Car Frame Compression Processor Driver
|
|
*
|
|
* Copyright (C) 2016 Renesas Electronics Corporation
|
|
*
|
|
* Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*/
|
|
#ifndef __MEDIA_RCAR_FCP_H__
|
|
#define __MEDIA_RCAR_FCP_H__
|
|
|
|
struct device_node;
|
|
struct rcar_fcp_device;
|
|
|
|
#if IS_ENABLED(CONFIG_VIDEO_RENESAS_FCP)
|
|
struct rcar_fcp_device *rcar_fcp_get(const struct device_node *np);
|
|
void rcar_fcp_put(struct rcar_fcp_device *fcp);
|
|
int rcar_fcp_enable(struct rcar_fcp_device *fcp);
|
|
void rcar_fcp_disable(struct rcar_fcp_device *fcp);
|
|
#else
|
|
static inline struct rcar_fcp_device *rcar_fcp_get(const struct device_node *np)
|
|
{
|
|
return ERR_PTR(-ENOENT);
|
|
}
|
|
static inline void rcar_fcp_put(struct rcar_fcp_device *fcp) { }
|
|
static inline int rcar_fcp_enable(struct rcar_fcp_device *fcp)
|
|
{
|
|
return 0;
|
|
}
|
|
static inline void rcar_fcp_disable(struct rcar_fcp_device *fcp) { }
|
|
#endif
|
|
|
|
#endif /* __MEDIA_RCAR_FCP_H__ */
|