platform/surface: aggregator: Make SSAM_DEFINE_SYNC_REQUEST_x define static functions
authorMaximilian Luz <luzmaximilian@gmail.com>
Thu, 4 Mar 2021 19:05:24 +0000 (20:05 +0100)
committerHans de Goede <hdegoede@redhat.com>
Mon, 8 Mar 2021 10:33:28 +0000 (11:33 +0100)
commit03ee318391707e822eb915f4f30fe42c78b9d89b
tree28689a8102495ba39b94ad486c2ad6c63bfb7f71
parentb78b4982d7637ededbc40b5f4aa59394acee8a60
platform/surface: aggregator: Make SSAM_DEFINE_SYNC_REQUEST_x define static functions

The SSAM_DEFINE_SYNC_REQUEST_x() macros are intended to reduce
boiler-plate code for SSAM request definitions by defining a wrapper
function for the specified request. The client device variants of those
macros, i.e. SSAM_DEFINE_SYNC_REQUEST_CL_x() in particular rely on the
multi-device (MD) variants, e.g.:

    #define SSAM_DEFINE_SYNC_REQUEST_CL_R(name, rtype, spec...)   \
        SSAM_DEFINE_SYNC_REQUEST_MD_R(__raw_##name, rtype, spec)  \
        int name(struct ssam_device *sdev, rtype *ret)            \
        {                                                         \
            return __raw_##name(sdev->ctrl, sdev->uid.target,     \
                                sdev->uid.instance, ret);         \
        }

This now creates the problem that it is not possible to declare the
generated functions static via

    static SSAM_DEFINE_SYNC_REQUEST_CL_R(...)

as this will only apply to the function defined by the multi-device
macro, i.e. SSAM_DEFINE_SYNC_REQUEST_MD_R(). Thus compiling with
`-Wmissing-prototypes' rightfully complains that there is a 'static'
keyword missing.

To solve this, make all SSAM_DEFINE_SYNC_REQUEST_x() macros define
static functions. Non-client-device macros are also changed for
consistency. In general, we expect those functions to be only used
locally in the respective drivers for the corresponding interfaces, so
having to define a wrapper function to be able to export this should be
the odd case out.

Reported-by: kernel test robot <lkp@intel.com>
Fixes: b78b4982d763 ("platform/surface: Add platform profile driver")
Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
Link: https://lore.kernel.org/r/20210304190524.1172197-1-luzmaximilian@gmail.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Documentation/driver-api/surface_aggregator/client.rst
drivers/platform/surface/aggregator/controller.c
drivers/platform/surface/surface_aggregator_registry.c
drivers/platform/surface/surface_platform_profile.c
include/linux/surface_aggregator/controller.h
include/linux/surface_aggregator/device.h