public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: s.nawrocki@samsung•com (Sylwester Nawrocki)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH 2/4] rtc-s3c: make room for more variants in devicetree block
Date: Wed, 04 Jan 2012 11:43:45 +0100	[thread overview]
Message-ID: <4F042D61.2070309@samsung.com> (raw)
In-Reply-To: <201112211016.51956.heiko@sntech.de>

Hello,

On 12/21/2011 10:16 AM, Heiko St?bner wrote:
> Use the data field of of_device_id to hold the type for
> s3c_cpu_type.
> 
> Signed-off-by: Heiko Stuebner <heiko@sntech•de>
> Reviewed-by: Thomas Abraham <thomas.abraham@linaro•org>
> ---
>  drivers/rtc/rtc-s3c.c |   31 ++++++++++++++++++++++---------
>  1 files changed, 22 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
> index 175067a..2885b25 100644
> --- a/drivers/rtc/rtc-s3c.c
> +++ b/drivers/rtc/rtc-s3c.c
> @@ -428,6 +428,20 @@ static int __devexit s3c_rtc_remove(struct platform_device *dev)
>  	return 0;
>  }
>  
> +static const struct of_device_id s3c_rtc_dt_match[];
> +
> +static inline int s3c_rtc_get_driver_data(struct platform_device *pdev)
> +{
> +#ifdef CONFIG_OF
> +	if (pdev->dev.of_node) {
> +		const struct of_device_id *match;
> +		match = of_match_node(s3c_rtc_dt_match, pdev->dev.of_node);
> +		return match->data;
> +	}
> +#endif
> +	return platform_get_device_id(pdev)->driver_data;
> +}
> +
>  static int __devinit s3c_rtc_probe(struct platform_device *pdev)
>  {
>  	struct rtc_device *rtc;
> @@ -508,13 +522,7 @@ static int __devinit s3c_rtc_probe(struct platform_device *pdev)
>  		goto err_nortc;
>  	}
>  
> -#ifdef CONFIG_OF
> -	if (pdev->dev.of_node)
> -		s3c_rtc_cpu_type = of_device_is_compatible(pdev->dev.of_node,
> -			"samsung,s3c6410-rtc") ? TYPE_S3C64XX : TYPE_S3C2410;
> -	else
> -#endif
> -		s3c_rtc_cpu_type = platform_get_device_id(pdev)->driver_data;
> +	s3c_rtc_cpu_type = s3c_rtc_get_driver_data(pdev);
>  
>  	/* Check RTC Time */
>  
> @@ -638,8 +646,13 @@ static int s3c_rtc_resume(struct platform_device *pdev)
>  
>  #ifdef CONFIG_OF
>  static const struct of_device_id s3c_rtc_dt_match[] = {
> -	{ .compatible = "samsung,s3c2410-rtc" },
> -	{ .compatible = "samsung,s3c6410-rtc" },
> +	{
> +		.compatible = "samsung,s3c2410-rtc"
> +		.data = TYPE_S3C2410,
> +	}, {
> +		.compatible = "samsung,s3c6410-rtc"
> +		.data = TYPE_S3C64XX,
> +	},
>  	{},
>  };
>  MODULE_DEVICE_TABLE(of, s3c_rtc_dt_match);

This patch makes compilation with CONFIG_OF enabled fail with errors
and warnings:

drivers/rtc/rtc-s3c.c: In function ?s3c_rtc_get_driver_data?:
drivers/rtc/rtc-s3c.c:454: warning: return makes integer from pointer without a
cast
drivers/rtc/rtc-s3c.c: At top level:
drivers/rtc/rtc-s3c.c:674: error: request for member ?data? in something not a
structure or union
drivers/rtc/rtc-s3c.c:677: error: request for member ?data? in something not a
structure or union
drivers/rtc/rtc-s3c.c:680: error: request for member ?data? in something not a
structure or union
drivers/rtc/rtc-s3c.c:683: error: request for member ?data? in something not a
structure or union
make[2]: *** [drivers/rtc/rtc-s3c.o] Error 1

And the following patch fixes this:

8<------------

diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
index 4498053..9a0d388 100644
--- a/drivers/rtc/rtc-s3c.c
+++ b/drivers/rtc/rtc-s3c.c
@@ -451,7 +451,7 @@ static inline int s3c_rtc_get_driver_data(struct
platform_device *pdev)
        if (pdev->dev.of_node) {
                const struct of_device_id *match;
                match = of_match_node(s3c_rtc_dt_match, pdev->dev.of_node);
-               return match->data;
+               return (int)match->data;
        }
 #endif
        return platform_get_device_id(pdev)->driver_data;
@@ -670,17 +670,17 @@ static int s3c_rtc_resume(struct platform_device *pdev)
 #ifdef CONFIG_OF
 static const struct of_device_id s3c_rtc_dt_match[] = {
        {
-               .compatible = "samsung,s3c2410-rtc"
-               .data = TYPE_S3C2410,
+               .compatible = "samsung,s3c2410-rtc",
+               .data = (void*)TYPE_S3C2410,
        }, {
-               .compatible = "samsung,s3c2443-rtc"
-               .data = TYPE_S3C2443,
+               .compatible = "samsung,s3c2443-rtc",
+               .data = (void*)TYPE_S3C2443,
        }, {
-               .compatible = "samsung,s3c2416-rtc"
-               .data = TYPE_S3C2416,
+               .compatible = "samsung,s3c2416-rtc",
+               .data = (void*)TYPE_S3C2416,
        }, {
-               .compatible = "samsung,s3c6410-rtc"
-               .data = TYPE_S3C64XX,
+               .compatible = "samsung,s3c6410-rtc",
+               .data = (void*)TYPE_S3C64XX,
        },
        {},
 };

8<-----------------

--

Regards,
Sylwester

  reply	other threads:[~2012-01-04 10:43 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-21  9:14 [PATCH v3 0/4] Implement RTC support for S3C2443/S3C2416/S3C2450 Heiko Stübner
2011-12-21  9:16 ` [PATCH 1/4] ARM: SAMSUNG: cleanup of rtc register definitions Heiko Stübner
2011-12-21  9:16 ` [PATCH 2/4] rtc-s3c: make room for more variants in devicetree block Heiko Stübner
2012-01-04 10:43   ` Sylwester Nawrocki [this message]
2012-01-04 11:51     ` Heiko Stübner
2012-01-04 14:12       ` Heiko Stübner
2012-01-04 14:14         ` [PATCH] rtc-s3c: Fix breakage introduced by S3C2443/S3C2416 support Heiko Stübner
2012-01-05  2:32           ` Kukjin Kim
2012-01-04 14:14         ` [PATCH v4 0/4] Implement RTC support for S3C2443/S3C2416/S3C2450 Heiko Stübner
2012-01-04 14:15           ` [PATCH 1/4] ARM: SAMSUNG: cleanup of rtc register definitions Heiko Stübner
2012-01-04 22:14             ` Russell King - ARM Linux
2012-01-04 14:16           ` [PATCH 2/4] rtc-s3c: make room for more variants in devicetree block Heiko Stübner
2012-01-04 14:16           ` [PATCH 3/4] rtc-s3c: add variants for S3C2443 and S3C2416 Heiko Stübner
2012-01-04 14:17           ` [PATCH 4/4] ARM: S3C2443/S3C2416: add s3c_rtc_setname and rename rtc devices Heiko Stübner
2012-01-05  2:32         ` [PATCH 2/4] rtc-s3c: make room for more variants in devicetree block Kukjin Kim
2011-12-21  9:17 ` [PATCH 3/4] rtc-s3c: add variants for S3C2443 and S3C2416 Heiko Stübner
2011-12-21  9:18 ` [PATCH 4/4] ARM: S3C2443/S3C2416: add s3c_rtc_setname and rename rtc devices Heiko Stübner
  -- strict thread matches above, loose matches on Subject: below --
2011-12-12 14:43 [PATCH v2 0/4] Implement RTC support for S3C2443/S3C2416/S3C2450 Heiko Stübner
2011-12-12 14:46 ` [PATCH 2/4] rtc-s3c: make room for more variants in devicetree block Heiko Stübner
2011-12-09  9:46 [PATCH 0/4] Implement RTC support for S3C2443/S3C2416/S3C2450 Heiko Stübner
2011-12-09  9:50 ` [PATCH 2/4] rtc-s3c: make room for more variants in devicetree block Heiko Stübner
2011-12-11  5:47   ` Thomas Abraham
2011-12-12 12:51     ` Heiko Stübner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F042D61.2070309@samsung.com \
    --to=s.nawrocki@samsung$(echo .)com \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox