Linux I2C development
 help / color / mirror / Atom feed
From: Aleksandar Ivanov <ivanov.aleks-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
Cc: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>,
	dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: at24 driver - a possible problem
Date: Fri, 6 Nov 2009 14:57:59 +0200	[thread overview]
Message-ID: <533f29860911060457m70a1adfcr2dd11f0785748014@mail.gmail.com> (raw)
In-Reply-To: <20091106124905.GA3980-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>

Here is what system-call behaviour I was expecting from the position
of a user space developer.
You can then say whether it is impossible, incorrect or inefficient.

When I found that the read() was failing I at once suspected that a
write() was not finished at the time of the call.
So I added the O_SYNC flag to the open() call. (The man says: O_SYNC
- The file is opened for synchronous I/O. Any write()s on the
resulting file descriptor will block the calling process until the
data has been physically written to the underlying hardware.)
But obviously this didn't fix the issue.

Correct me if I'm wrong but I would expect from a synchronous write()
call to NOT finish before the data has been "phisically written".
And in this case of course the read operation wouldn't need a waiting loop.
What do you think?

Regards,
Aleks

2009/11/6 Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>:
>
>> This makes a lot of sense. When a write operation is in progress, the
>> EEPROM is busy and may not ack its address. Whether the request is
>> another write or a read probably doesn't make a difference, a nack is a
>> nack. So the same waiting loop that we have for writes, is certainly
>> needed for reads as well. Shouldn't be too difficult. Any volunteer? I
>> can review the patch when it's done.
>
> If nobody is faster ;), I will do it this weekend.
>
> --
> Pengutronix e.K.                           | Wolfram Sang                |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
>
> iEYEARECAAYFAkr0G0EACgkQD27XaX1/VRsWPgCgr43owCqfBvtuQHtCz5bY9nZg
> rT0An26MIi9s6NobqIAeKgDKWvky9/pp
> =0Jrc
> -----END PGP SIGNATURE-----
>
>

  parent reply	other threads:[~2009-11-06 12:57 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <533f29860911050810w4d939b39x2ad11c189f13c977@mail.gmail.com>
     [not found] ` <533f29860911050810w4d939b39x2ad11c189f13c977-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-11-05 17:25   ` at24 driver - a possible problem Wolfram Sang
     [not found]     ` <20091105172537.GA3332-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2009-11-06 12:15       ` Jean Delvare
     [not found]         ` <20091106131524.76ae52b9-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-11-06 12:49           ` Wolfram Sang
     [not found]             ` <20091106124905.GA3980-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2009-11-06 12:57               ` Aleksandar Ivanov [this message]
     [not found]                 ` <533f29860911060457m70a1adfcr2dd11f0785748014-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-11-06 20:58                   ` David Brownell
     [not found]                     ` <200911061258.52179.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2009-11-08 20:23                       ` Wolfram Sang
     [not found]                         ` <20091108202331.GA6374-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2009-11-08 21:30                           ` David Brownell
2009-11-09  8:46                           ` Jean Delvare
     [not found]                             ` <20091109094638.2f05b29f-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-11-09  9:10                               ` Wolfram Sang
     [not found]                                 ` <20091109091045.GA3983-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2009-11-09 12:24                                   ` Aleksandar Ivanov
2009-11-08 20:14           ` [PATCH] at24: use timeout also for read Wolfram Sang
     [not found]             ` <1257711297-19927-1-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2009-11-16 18:50               ` Wolfram Sang
     [not found]                 ` <20091116185030.GB21491-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2009-11-16 18:56                   ` Jean Delvare
2009-11-22 20:08               ` Jean Delvare
     [not found]                 ` <20091122210846.14666e23-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-11-25  8:09                   ` Jean Delvare
     [not found]                     ` <20091125090907.3e4e9155-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2009-11-25  9:20                       ` Wolfram Sang
2009-11-25  9:37                   ` [PATCH V2] " Wolfram Sang
     [not found]                     ` <1259141876-15458-1-git-send-email-w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2009-11-25 10:24                       ` Jean Delvare

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=533f29860911060457m70a1adfcr2dd11f0785748014@mail.gmail.com \
    --to=ivanov.aleks-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=dbrownell-Rn4VEauK+AKRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox