All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: Ming Yu <a0282524688@gmail.com>
Cc: tmyu0@nuvoton.com, lee@kernel.org, linus.walleij@linaro.org,
	brgl@bgdev.pl, andi.shyti@kernel.org, mkl@pengutronix.de,
	mailhol.vincent@wanadoo.fr, andrew+netdev@lunn.ch,
	davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
	pabeni@redhat.com, wim@linux-watchdog.org, linux@roeck-us.net,
	jdelvare@suse.com, linux-kernel@vger.kernel.org,
	linux-gpio@vger.kernel.org, linux-i2c@vger.kernel.org,
	linux-can@vger.kernel.org, netdev@vger.kernel.org,
	linux-watchdog@vger.kernel.org, linux-hwmon@vger.kernel.org,
	linux-rtc@vger.kernel.org
Subject: Re: [PATCH v3 7/7] rtc: Add Nuvoton NCT6694 RTC support
Date: Mon, 16 Dec 2024 11:41:58 +0100	[thread overview]
Message-ID: <202412161041586ed7c0ff@mail.local> (raw)
In-Reply-To: <20241210104524.2466586-8-tmyu0@nuvoton.com>

On 10/12/2024 18:45:24+0800, Ming Yu wrote:
> +static int nct6694_rtc_probe(struct platform_device *pdev)
> +{
> +	struct nct6694_rtc_data *data;
> +	struct nct6694 *nct6694 = dev_get_drvdata(pdev->dev.parent);
> +	int ret, irq;
> +
> +	irq = irq_create_mapping(nct6694->domain, NCT6694_IRQ_RTC);
> +	if (!irq)
> +		return -EINVAL;
> +
> +	data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
> +	if (!data)
> +		return -ENOMEM;
> +
> +	data->xmit_buf = devm_kcalloc(&pdev->dev, NCT6694_MAX_PACKET_SZ,
> +				      sizeof(unsigned char), GFP_KERNEL);
> +	if (!data->xmit_buf)
> +		return -ENOMEM;
> +
> +	data->rtc = devm_rtc_allocate_device(&pdev->dev);
> +	if (IS_ERR(data->rtc))
> +		return PTR_ERR(data->rtc);
> +
> +	data->nct6694 = nct6694;
> +	data->rtc->ops = &nct6694_rtc_ops;
> +	data->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000;
> +	data->rtc->range_max = RTC_TIMESTAMP_END_2099;
> +
> +	mutex_init(&data->lock);

You should use rtc_lock/rtc_unlock instead of having your own lock. The
core will take and release the lock appropriately before calling the
rtc_ops so you only have to do it in the irq handler.

> +
> +	device_set_wakeup_capable(&pdev->dev, 1);

This will cause a memory leak later on, see the discussion here:

https://lore.kernel.org/linux-rtc/a88475b6-08bf-4c7c-ad63-efd1f29307e3@pf.is.s.u-tokyo.ac.jp/T/#mf51fdce6036efa3ea12fe75bd5126d4ac0c6813e

> +
> +	platform_set_drvdata(pdev, data);
> +
> +	ret = devm_request_threaded_irq(&pdev->dev, irq, NULL,
> +					nct6694_irq, IRQF_ONESHOT,
> +					"nct6694-rtc", data);
> +	if (ret < 0)
> +		return dev_err_probe(&pdev->dev, ret, "Failed to request irq\n");
> +
> +	/* Register rtc device to RTC framework */
> +	return devm_rtc_register_device(data->rtc);
> +}
> +
> +static struct platform_driver nct6694_rtc_driver = {
> +	.driver = {
> +		.name	= "nct6694-rtc",
> +	},
> +	.probe		= nct6694_rtc_probe,
> +};
> +
> +module_platform_driver(nct6694_rtc_driver);
> +
> +MODULE_DESCRIPTION("USB-RTC driver for NCT6694");
> +MODULE_AUTHOR("Ming Yu <tmyu0@nuvoton.com>");
> +MODULE_LICENSE("GPL");
> +MODULE_ALIAS("platform:nct6694-rtc");
> -- 
> 2.34.1
> 

-- 
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

  reply	other threads:[~2024-12-16 10:42 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-10 10:45 [PATCH v3 0/7] Add Nuvoton NCT6694 MFD drivers Ming Yu
2024-12-10 10:45 ` [PATCH v3 1/7] mfd: Add core driver for Nuvoton NCT6694 Ming Yu
2024-12-10 10:57   ` Mateusz Polchlopek
2024-12-11  1:56     ` Jakub Kicinski
2024-12-11  7:16       ` Mateusz Polchlopek
2024-12-10 14:38   ` Krzysztof Kozlowski
2024-12-12  5:27     ` Ming Yu
2024-12-11 16:44   ` Christophe JAILLET
2024-12-12  7:01     ` Ming Yu
2024-12-12  7:13       ` Christophe JAILLET
2024-12-20 12:45   ` Linus Walleij
2024-12-23  2:04     ` Ming Yu
2024-12-10 10:45 ` [PATCH v3 2/7] gpio: Add Nuvoton NCT6694 GPIO support Ming Yu
2024-12-10 12:46   ` Bartosz Golaszewski
2024-12-12  6:58     ` Ming Yu
2024-12-20 12:41   ` Linus Walleij
2024-12-23  2:02     ` Ming Yu
2024-12-10 10:45 ` [PATCH v3 3/7] i2c: Add Nuvoton NCT6694 I2C support Ming Yu
2024-12-26  0:43   ` Andi Shyti
2024-12-26  2:06     ` Ming Yu
2024-12-26  9:25       ` Andi Shyti
2024-12-10 10:45 ` [PATCH v3 4/7] can: Add Nuvoton NCT6694 CAN support Ming Yu
2024-12-11  9:59   ` Marc Kleine-Budde
2024-12-11 15:25     ` Vincent Mailhol
2024-12-16  6:58       ` Ming Yu
2024-12-16 17:14         ` Vincent Mailhol
2024-12-16  6:21     ` Ming Yu
2024-12-23  9:03       ` Ming Yu
2024-12-10 10:45 ` [PATCH v3 5/7] watchdog: Add Nuvoton NCT6694 WDT support Ming Yu
2024-12-10 15:22   ` Guenter Roeck
2024-12-12  6:26     ` Ming Yu
2024-12-10 10:45 ` [PATCH v3 6/7] hwmon: Add Nuvoton NCT6694 HWMON support Ming Yu
2024-12-10 15:58   ` Guenter Roeck
2024-12-12  7:09     ` Ming Yu
2024-12-12 16:10   ` Vincent Mailhol
2024-12-16  7:04     ` Ming Yu
2024-12-10 10:45 ` [PATCH v3 7/7] rtc: Add Nuvoton NCT6694 RTC support Ming Yu
2024-12-16 10:41   ` Alexandre Belloni [this message]
2024-12-23  1:50     ` Ming Yu

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=202412161041586ed7c0ff@mail.local \
    --to=alexandre.belloni@bootlin.com \
    --cc=a0282524688@gmail.com \
    --cc=andi.shyti@kernel.org \
    --cc=andrew+netdev@lunn.ch \
    --cc=brgl@bgdev.pl \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=jdelvare@suse.com \
    --cc=kuba@kernel.org \
    --cc=lee@kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-can@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rtc@vger.kernel.org \
    --cc=linux-watchdog@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=mailhol.vincent@wanadoo.fr \
    --cc=mkl@pengutronix.de \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=tmyu0@nuvoton.com \
    --cc=wim@linux-watchdog.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.