From: Samuel Ortiz <sameo@linux.intel.com>
To: Robert Dolca <robert.dolca@gmail.com>
Cc: Robert Dolca <robert.dolca@intel.com>,
linux-nfc@lists.01.org, netdev@vger.kernel.org,
linux-wireless@vger.kernel.org,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"David S. Miller" <davem@davemloft.net>
Subject: Re: [linux-nfc] [PATCH 8/8] NFC: Add Intel FieldsPeak NFC solution driver
Date: Sun, 24 May 2015 19:08:29 +0200 [thread overview]
Message-ID: <20150524170829.GD15886@ribalta.ccr.corp.intel.com> (raw)
In-Reply-To: <CAFPB+Yf1jWX=tv+feZRonZEprjXwHdD8mMXAupdm5XrDaYvWMA@mail.gmail.com>
Hi Robert,
On Wed, Apr 01, 2015 at 06:35:31PM +0300, Robert Dolca wrote:
> On Thu, Mar 26, 2015 at 2:30 AM, Samuel Ortiz <sameo@linux.intel.com> wrote:
> >> + /* If a patch was applied the new version is checked */
> >> + if (patched) {
> >> + r = nci_init(ndev);
> >> + if (r)
> >> + goto error;
> >> +
> >> + r = fdp_nci_get_versions(ndev);
> >> + if (r)
> >> + goto error;
> >> +
> >> + if (info->otp_version != info->otp_patch_version ||
> >> + info->ram_version != info->ram_patch_version) {
> >> + pr_err("FRP firmware update failed");
> >> + r = -EINVAL;
> >> + }
> >> + }
> >> +
> >> + /* Check if the device has VSC */
> >> + if (fdp_post_fw_vsc_cfg[0]) {
> >> + /* Set the vendor specific configuration */
> >> + r = fdp_nci_set_production_data(ndev, fdp_post_fw_vsc_cfg[3],
> >> + &fdp_post_fw_vsc_cfg[4]);
> >> + if (r)
> >> + goto error;
> >> + }
> >> +
> >> + /* Set clock type and frequency */
> >> + r = fdp_nci_set_clock(ndev, 0, 26000);
> >> + if (r)
> >> + goto error;
> > The version checking, production data setting and clock setting should
> > be part of a post setup notification call. Please add an nci_dev
> > notify() ops that could get called on certain events, for example when
> > NCI is up. Bluetooth's HCI does something along those lines already.
> > From this notification hook you could implement this post setup stage.
> >
> > The idea is for your setup routine to only do firmware update and
> > nothing else. It will make it shorter, and thus easier to read as well.
> If the RAM patch wasn't applied successfully the device can't be used
> so the setup function should fail.
> If the production data (specifically the clock frequency) is not set
> the device can not be used. If the user space tries to start polling
> before the notification is sent the polling will fail. Having it
> called later would mean introducing a race condition.
Sure. Then I'd rather have an additional NCI hook (e.g.
ndev->ops->open()) called synchronously after the setup stage that
could fail and make open fail as well. The idea here is to separate the
2 parts of your logic and make the code more readable.
Cheers,
Samuel.
next prev parent reply other threads:[~2015-05-24 17:08 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-24 10:01 [PATCH 0/8] Adds Intel FieldsPeak NFC solution driver Robert Dolca
2015-02-24 10:01 ` [PATCH 1/8] NFC: NCI: Allow connection close with dev down Robert Dolca
2015-03-26 0:29 ` Samuel Ortiz
2015-03-31 14:03 ` [linux-nfc] " Robert Dolca
2015-05-24 17:07 ` Samuel Ortiz
2015-08-28 14:05 ` Robert Dolca
2015-02-24 10:01 ` [PATCH 2/8] NFC: NCI: Exporting NFC command and data send API Robert Dolca
2015-02-24 10:01 ` [PATCH 3/8] NFC: NCI: Adds NCI init and reset API for drivers Robert Dolca
2015-03-26 0:29 ` Samuel Ortiz
2015-03-31 14:05 ` [linux-nfc] " Robert Dolca
2015-05-24 17:07 ` Samuel Ortiz
2015-02-24 10:01 ` [PATCH 4/8] NFC: NCI: Add a special nci_request for driver Robert Dolca
2015-03-26 0:29 ` Samuel Ortiz
2015-03-31 14:07 ` [linux-nfc] " Robert Dolca
2015-02-24 10:01 ` [PATCH 5/8] NFC: NCI: Don't call setup if previous NCI request failed Robert Dolca
2015-03-26 0:29 ` Samuel Ortiz
2015-02-24 10:01 ` [PATCH 6/8] NFC: NCI: Add function to get max packet size for conn Robert Dolca
2015-02-24 10:01 ` [PATCH 7/8] NFC: NCI: Adds a way to get the new connection ID Robert Dolca
2015-02-24 10:01 ` [PATCH 8/8] NFC: Add Intel FieldsPeak NFC solution driver Robert Dolca
2015-02-24 10:33 ` Johannes Berg
2015-02-24 10:46 ` Robert Dolca
2015-03-26 0:30 ` Samuel Ortiz
2015-04-01 15:35 ` [linux-nfc] " Robert Dolca
2015-05-24 17:08 ` Samuel Ortiz [this message]
2015-03-26 11:20 ` Samuel Ortiz
2015-03-26 13:45 ` Mika Westerberg
2015-02-24 16:14 ` [PATCH 0/8] Adds " Greg Rose
2015-02-24 16:25 ` Daniel Baluta
2015-02-24 16:27 ` Greg Rose
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=20150524170829.GD15886@ribalta.ccr.corp.intel.com \
--to=sameo@linux.intel.com \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfc@lists.01.org \
--cc=linux-wireless@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=robert.dolca@gmail.com \
--cc=robert.dolca@intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).