[PATCH] drm/msm: Change nested function to static function
Rob Clark
robdclark at gmail.com
Fri Aug 29 17:09:13 PDT 2014
On Fri, Aug 29, 2014 at 2:05 PM, Mark Charlebois <charlebm at gmail.com> 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 at gmail.com>
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
>
More information about the dri-devel
mailing list