Re: [PATCH] drm/msm: Change nested function to static function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Aug 29, 2014 at 2:05 PM, Mark Charlebois <charlebm@xxxxxxxxx> wrote:
> There is currently a nested function in Russel King's tree
> for the msm HDMI driver.
>
> The last nested function was removed from the Linux kernel
> when the Thinkpad driver was fixed.
>
> I believe nested functions are not desired upstream, and it
> also breaks compilation with clang so here is a patch to
> change the nested function into static function. The patch
> works with both clang and gcc.
>
> Signed-off-by: Mark Charlebois <charlebm@xxxxxxxxx>

Thanks, I've got it queued up for 3.18

BR,
-R


> ---
>  drivers/gpu/drm/msm/hdmi/hdmi.c | 46 +++++++++++++++++++++--------------------
>  1 file changed, 24 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/hdmi/hdmi.c b/drivers/gpu/drm/msm/hdmi/hdmi.c
> index a125a7e..c6c9b02e 100644
> --- a/drivers/gpu/drm/msm/hdmi/hdmi.c
> +++ b/drivers/gpu/drm/msm/hdmi/hdmi.c
> @@ -258,28 +258,30 @@ static void set_hdmi_pdev(struct drm_device *dev,
>         priv->hdmi_pdev = pdev;
>  }
>
> +#ifdef CONFIG_OF
> +static int get_gpio(struct device *dev, struct device_node *of_node, const char *name)
> +{
> +       int gpio = of_get_named_gpio(of_node, name, 0);
> +       if (gpio < 0) {
> +               char name2[32];
> +               snprintf(name2, sizeof(name2), "%s-gpio", name);
> +               gpio = of_get_named_gpio(of_node, name2, 0);
> +               if (gpio < 0) {
> +                       dev_err(dev, "failed to get gpio: %s (%d)\n",
> +                                       name, gpio);
> +                       gpio = -1;
> +               }
> +       }
> +       return gpio;
> +}
> +#endif
> +
>  static int hdmi_bind(struct device *dev, struct device *master, void *data)
>  {
>         static struct hdmi_platform_config config = {};
>  #ifdef CONFIG_OF
>         struct device_node *of_node = dev->of_node;
>
> -       int get_gpio(const char *name)
> -       {
> -               int gpio = of_get_named_gpio(of_node, name, 0);
> -               if (gpio < 0) {
> -                       char name2[32];
> -                       snprintf(name2, sizeof(name2), "%s-gpio", name);
> -                       gpio = of_get_named_gpio(of_node, name2, 0);
> -                       if (gpio < 0) {
> -                               dev_err(dev, "failed to get gpio: %s (%d)\n",
> -                                               name, gpio);
> -                               gpio = -1;
> -                       }
> -               }
> -               return gpio;
> -       }
> -
>         if (of_device_is_compatible(of_node, "qcom,hdmi-tx-8074")) {
>                 static const char *hpd_reg_names[] = {"hpd-gdsc", "hpd-5v"};
>                 static const char *pwr_reg_names[] = {"core-vdda", "core-vcc"};
> @@ -312,12 +314,12 @@ static int hdmi_bind(struct device *dev, struct device *master, void *data)
>         }
>
>         config.mmio_name     = "core_physical";
> -       config.ddc_clk_gpio  = get_gpio("qcom,hdmi-tx-ddc-clk");
> -       config.ddc_data_gpio = get_gpio("qcom,hdmi-tx-ddc-data");
> -       config.hpd_gpio      = get_gpio("qcom,hdmi-tx-hpd");
> -       config.mux_en_gpio   = get_gpio("qcom,hdmi-tx-mux-en");
> -       config.mux_sel_gpio  = get_gpio("qcom,hdmi-tx-mux-sel");
> -       config.mux_lpm_gpio  = get_gpio("qcom,hdmi-tx-mux-lpm");
> +       config.ddc_clk_gpio  = get_gpio(dev, of_node, "qcom,hdmi-tx-ddc-clk");
> +       config.ddc_data_gpio = get_gpio(dev, of_node, "qcom,hdmi-tx-ddc-data");
> +       config.hpd_gpio      = get_gpio(dev, of_node, "qcom,hdmi-tx-hpd");
> +       config.mux_en_gpio   = get_gpio(dev, of_node, "qcom,hdmi-tx-mux-en");
> +       config.mux_sel_gpio  = get_gpio(dev, of_node, "qcom,hdmi-tx-mux-sel");
> +       config.mux_lpm_gpio  = get_gpio(dev, of_node, "qcom,hdmi-tx-mux-lpm");
>
>  #else
>         static const char *hpd_clk_names[] = {
> --
> 1.9.1
>
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux