From: Greg KH <greg@kroah.com>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: Justin Forbes <jmforbes@linuxtx.org>,
Zwane Mwaikambo <zwane@arm.linux.org.uk>,
"Theodore Ts'o" <tytso@mit.edu>,
Randy Dunlap <rdunlap@xenotime.net>,
Dave Jones <davej@redhat.com>,
Chuck Wolber <chuckw@quantumlinux.com>,
Chris Wedgwood <reviews@ml.cw.f00f.org>,
Michael Krufky <mkrufky@linuxtv.org>,
torvalds@linux-foundation.org, akpm@linux-foundation.org,
alan@lxorguk.ukuu.org.uk, Dirk Eibach <eibach@gdsys.de>,
Adrian Bunk <bunk@stusta.de>, Dirk Stieler <stieler@gdsys.de>,
Jean Delvare <khali@linux-fr.org>,
Chris Wright <chrisw@sous-sol.org>
Subject: [patch 06/18] i2c: fix broken ds1337 initialization
Date: Tue, 20 Feb 2007 17:50:14 -0800 [thread overview]
Message-ID: <20070221015014.GG3684@kroah.com> (raw)
In-Reply-To: <20070221014927.GA3684@kroah.com>
[-- Attachment #1: i2c-fix-broken-ds1337-initialization.patch --]
[-- Type: text/plain, Size: 2187 bytes --]
-stable review patch. If anyone has any objections, please let us know.
------------------
From: Dirk Eibach <eibach@gdsys.de>
On a custom board with ds1337 RTC I found that upgrade from 2.6.15 to
2.6.18 broke RTC support.
The main problem are changes to ds1337_init_client().
When a ds1337 recognizes a problem (e.g. power or clock failure) bit 7
in status register is set. This has to be reset by writing 0 to status
register. But since there are only 16 byte written to the chip and the
first byte is interpreted as an address, the status register (which is
the 16th) is never written.
The other problem is, that initializing all registers to zero is not
valid for day, date and month register. Funny enough this is checked by
ds1337_detect(), which depends on this values not being zero. So then
treated by ds1337_init_client() the ds1337 is not detected anymore,
whereas the failure bit in the status register is still set.
Broken by commit f9e8957937ebf60d22732a5ca9130f48a7603f60 (2.6.16-rc1,
2006-01-06). This fix is in Linus' tree since 2.6.20-rc1 (commit
763d9c046a2e511ec090a8986d3f85edf7448e7e).
Signed-off-by: Dirk Stieler <stieler@gdsys.de>
Signed-off-by: Dirk Eibach <eibach@gdsys.de>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
drivers/i2c/chips/ds1337.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
--- linux-2.6.18.7.orig/drivers/i2c/chips/ds1337.c
+++ linux-2.6.18.7/drivers/i2c/chips/ds1337.c
@@ -347,13 +347,19 @@ static void ds1337_init_client(struct i2
if ((status & 0x80) || (control & 0x80)) {
/* RTC not running */
- u8 buf[16];
+ u8 buf[1+16]; /* First byte is interpreted as address */
struct i2c_msg msg[1];
dev_dbg(&client->dev, "%s: RTC not running!\n", __FUNCTION__);
/* Initialize all, including STATUS and CONTROL to zero */
memset(buf, 0, sizeof(buf));
+
+ /* Write valid values in the date/time registers */
+ buf[1+DS1337_REG_DAY] = 1;
+ buf[1+DS1337_REG_DATE] = 1;
+ buf[1+DS1337_REG_MONTH] = 1;
+
msg[0].addr = client->addr;
msg[0].flags = 0;
msg[0].len = sizeof(buf);
--
next prev parent reply other threads:[~2007-02-21 1:52 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20070221014413.282048309@mini.kroah.org>
2007-02-21 1:49 ` [patch 00/18] 2.6.18-stable review Greg KH
2007-02-21 1:49 ` [patch 01/18] bcm43xx: Fix for oops on resume Greg KH
2007-02-23 5:25 ` Pavel Machek
2007-02-25 2:30 ` Larry Finger
2007-02-25 8:53 ` Andrew Morton
2007-02-21 1:49 ` [patch 02/18] bcm43xx: Fix for oops on ampdu status Greg KH
2007-02-21 1:49 ` [patch 03/18] Dont leak NT bit into next task Greg KH
2007-02-21 10:00 ` Giuseppe Bilotta
2007-02-21 17:14 ` Jan Engelhardt
2007-02-21 17:20 ` Chuck Ebbert
2007-02-22 15:29 ` Adrian Bunk
2007-02-22 16:56 ` Andi Kleen
2007-02-21 1:50 ` [patch 04/18] SCSI: add missing cdb clearing in scsi_execute() Greg KH
2007-02-21 1:50 ` [patch 05/18] IB/srp: Fix FMR mapping for 32-bit kernels and addresses above 4G Greg KH
2007-02-21 1:50 ` Greg KH [this message]
2007-02-21 1:50 ` [patch 07/18] grow_buffers() infinite loop fix (CVE-2006-5757, CVE-2006-6060) Greg KH
2007-02-21 1:50 ` [patch 08/18] hfs_fill_super returns success even if no root inode (CVE-2006-6056) Greg KH
2007-02-21 1:50 ` [patch 09/18] IB/mad: Fix race between cancel and receive completion Greg KH
2007-02-21 1:50 ` [patch 10/18] dvb-core: fix bug in CRC-32 checking on 64-bit systems Greg KH
2007-02-21 1:50 ` [patch 11/18] v4l: cx2341x audio_properties is an u16, not u8 Greg KH
2007-02-21 1:50 ` [patch 12/18] v4l: cx88: Fix leadtek_eeprom tagging Greg KH
2007-02-21 1:51 ` [patch 13/18] V4L: cx88: Fix lockup on suspend Greg KH
2007-02-22 1:14 ` Michael Krufky
2007-02-23 23:50 ` Greg KH
2007-02-21 1:51 ` [patch 14/18] V4L: Fix quickcam communicator driver for big endian architectures Greg KH
2007-02-21 1:51 ` [patch 15/18] V4L: fix ks0127 status flags Greg KH
2007-02-21 1:51 ` [patch 16/18] V4L: tveeprom: autodetect LG TAPC G701D as tuner type 37 Greg KH
2007-02-21 1:51 ` [patch 17/18] V4L: buf_qbuf: fix videobuf_queue->stream corruption and lockup Greg KH
2007-02-21 1:51 ` [patch 18/18] x86_64: fix 2.6.18 regression - PTRACE_OLDSETOPTIONS should be accepted Greg KH
2007-02-21 11:55 ` [patch 00/18] 2.6.18-stable review S.Çağlar Onur
2007-02-21 17:34 ` [stable] " Greg KH
2007-02-21 18:30 ` S.Çağlar Onur
2007-02-21 18:45 ` Ismail Dönmez
2007-02-22 5:42 ` Willy Tarreau
2007-02-26 0:00 ` Adrian Bunk
2007-02-26 0:18 ` Adrian Bunk
2007-03-05 13:44 ` S.Çağlar Onur
2007-03-05 19:26 ` Greg KH
2007-03-05 20:13 ` S.Çağlar Onur
2007-02-23 20:21 ` Hugh Dickins
2007-02-23 20:34 ` [stable] " Chris Wright
2007-02-23 21:13 ` Hugh Dickins
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=20070221015014.GG3684@kroah.com \
--to=greg@kroah.com \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=bunk@stusta.de \
--cc=chrisw@sous-sol.org \
--cc=chuckw@quantumlinux.com \
--cc=davej@redhat.com \
--cc=eibach@gdsys.de \
--cc=jmforbes@linuxtx.org \
--cc=khali@linux-fr.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mkrufky@linuxtv.org \
--cc=rdunlap@xenotime.net \
--cc=reviews@ml.cw.f00f.org \
--cc=stable@kernel.org \
--cc=stieler@gdsys.de \
--cc=torvalds@linux-foundation.org \
--cc=tytso@mit.edu \
--cc=zwane@arm.linux.org.uk \
/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