lkml.org 
[lkml]   [2019]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 095/132] pinctrl: zynq: Use define directive for PIN_CONFIG_IO_STANDARD
    Date
    From: Nathan Chancellor <natechancellor@gmail.com>

    [ Upstream commit cd8a145a066a1a3beb0ae615c7cb2ee4217418d7 ]

    Clang warns when one enumerated type is implicitly converted to another:

    drivers/pinctrl/pinctrl-zynq.c:985:18: warning: implicit conversion from
    enumeration type 'enum zynq_pin_config_param' to different enumeration
    type 'enum pin_config_param' [-Wenum-conversion]
    {"io-standard", PIN_CONFIG_IOSTANDARD, zynq_iostd_lvcmos18},
    ~ ^~~~~~~~~~~~~~~~~~~~~
    drivers/pinctrl/pinctrl-zynq.c:990:16: warning: implicit conversion from
    enumeration type 'enum zynq_pin_config_param' to different enumeration
    type 'enum pin_config_param' [-Wenum-conversion]
    = { PCONFDUMP(PIN_CONFIG_IOSTANDARD, "IO-standard", NULL, true),
    ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ./include/linux/pinctrl/pinconf-generic.h:163:11: note: expanded from
    macro 'PCONFDUMP'
    .param = a, .display = b, .format = c, .has_arg = d \
    ^
    2 warnings generated.

    It is expected that pinctrl drivers can extend pin_config_param because
    of the gap between PIN_CONFIG_END and PIN_CONFIG_MAX so this conversion
    isn't an issue. Most drivers that take advantage of this define the
    PIN_CONFIG variables as constants, rather than enumerated values. Do the
    same thing here so that Clang no longer warns.

    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Acked-by: Michal Simek <michal.simek@xilinx.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/pinctrl/pinctrl-zynq.c | 9 +++------
    1 file changed, 3 insertions(+), 6 deletions(-)

    diff --git a/drivers/pinctrl/pinctrl-zynq.c b/drivers/pinctrl/pinctrl-zynq.c
    index d57b5eca7b983..ad12205dd7962 100644
    --- a/drivers/pinctrl/pinctrl-zynq.c
    +++ b/drivers/pinctrl/pinctrl-zynq.c
    @@ -967,15 +967,12 @@ enum zynq_io_standards {
    zynq_iostd_max
    };

    -/**
    - * enum zynq_pin_config_param - possible pin configuration parameters
    - * @PIN_CONFIG_IOSTANDARD: if the pin can select an IO standard, the argument to
    +/*
    + * PIN_CONFIG_IOSTANDARD: if the pin can select an IO standard, the argument to
    * this parameter (on a custom format) tells the driver which alternative
    * IO standard to use.
    */
    -enum zynq_pin_config_param {
    - PIN_CONFIG_IOSTANDARD = PIN_CONFIG_END + 1,
    -};
    +#define PIN_CONFIG_IOSTANDARD (PIN_CONFIG_END + 1)

    static const struct pinconf_generic_params zynq_dt_params[] = {
    {"io-standard", PIN_CONFIG_IOSTANDARD, zynq_iostd_lvcmos18},
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-11-27 22:44    [W:4.053 / U:0.668 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site