diff for duplicates of <20060331224954.GC17261@cosmic.amd.com> diff --git a/a/1.txt b/N1/1.txt index a7e55ae..01733a4 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -11,48 +11,3 @@ Jordan Crouse Senior Linux Engineer AMD - Personal Connectivity Solutions Group <www.amd.com/embeddedprocessors> --------------- next part -------------- -[PATCH] scx200_acb: Fix for negack clear errata - -From: Jordan Crouse <jordan.crouse at amd.com> - -This patch is a fix for the CS5535 errata 111: - -When the SMB controller tries to access a non-existing device, it sets -the NEGACK bit, SMB I/O Offset 01h[4], to 1 after it detects no -acknowledge at the ninth clock. The specification says there are only -two ways to clear this status bit: write 1 to this bit or disable the -SMB controller. Sometimes this bit is cleared by a read of this -register, but not always. - -Signed-off-by: Jordan Crouse <jordan.crouse at amd.com> ---- - - drivers/i2c/busses/scx200_acb.c | 7 +++++++ - 1 files changed, 7 insertions(+), 0 deletions(-) - -diff --git a/drivers/i2c/busses/scx200_acb.c b/drivers/i2c/busses/scx200_acb.c -index 8bd305e..e7a2225 100644 ---- a/drivers/i2c/busses/scx200_acb.c -+++ b/drivers/i2c/busses/scx200_acb.c -@@ -133,6 +133,9 @@ static void scx200_acb_machine(struct sc - - outb(inb(ACBCTL1) | ACBCTL1_STOP, ACBCTL1); - outb(ACBST_STASTR | ACBST_NEGACK, ACBST); -+ -+ /* Reset the status register */ -+ outb(0, ACBST); - return; - } - -@@ -228,6 +231,10 @@ static void scx200_acb_poll(struct scx20 - timeout = jiffies + POLL_TIMEOUT; - while (time_before(jiffies, timeout)) { - status = inb(ACBST); -+ -+ /* Reset the status register to avoid the hang */ -+ outb(0, ACBST); -+ - if ((status & (ACBST_SDAST|ACBST_BER|ACBST_NEGACK)) != 0) { - scx200_acb_machine(iface, status); - return; diff --git a/N1/2.hdr b/N1/2.hdr new file mode 100644 index 0000000..7509421 --- /dev/null +++ b/N1/2.hdr @@ -0,0 +1,5 @@ +Content-Type: text/plain; + charset=us-ascii +Content-Disposition: inline; + filename=smb-stsreset.patch +Content-Transfer-Encoding: 7bit diff --git a/N1/2.txt b/N1/2.txt new file mode 100644 index 0000000..86949f0 --- /dev/null +++ b/N1/2.txt @@ -0,0 +1,44 @@ +[PATCH] scx200_acb: Fix for negack clear errata + +From: Jordan Crouse <jordan.crouse@amd.com> + +This patch is a fix for the CS5535 errata 111: + +When the SMB controller tries to access a non-existing device, it sets +the NEGACK bit, SMB I/O Offset 01h[4], to 1 after it detects no +acknowledge at the ninth clock. The specification says there are only +two ways to clear this status bit: write 1 to this bit or disable the +SMB controller. Sometimes this bit is cleared by a read of this +register, but not always. + +Signed-off-by: Jordan Crouse <jordan.crouse@amd.com> +--- + + drivers/i2c/busses/scx200_acb.c | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +diff --git a/drivers/i2c/busses/scx200_acb.c b/drivers/i2c/busses/scx200_acb.c +index 8bd305e..e7a2225 100644 +--- a/drivers/i2c/busses/scx200_acb.c ++++ b/drivers/i2c/busses/scx200_acb.c +@@ -133,6 +133,9 @@ static void scx200_acb_machine(struct sc + + outb(inb(ACBCTL1) | ACBCTL1_STOP, ACBCTL1); + outb(ACBST_STASTR | ACBST_NEGACK, ACBST); ++ ++ /* Reset the status register */ ++ outb(0, ACBST); + return; + } + +@@ -228,6 +231,10 @@ static void scx200_acb_poll(struct scx20 + timeout = jiffies + POLL_TIMEOUT; + while (time_before(jiffies, timeout)) { + status = inb(ACBST); ++ ++ /* Reset the status register to avoid the hang */ ++ outb(0, ACBST); ++ + if ((status & (ACBST_SDAST|ACBST_BER|ACBST_NEGACK)) != 0) { + scx200_acb_machine(iface, status); + return; diff --git a/a/content_digest b/N1/content_digest index db6536b..f1cdff2 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,11 +1,11 @@ - "From\0jordan.crouse@amd.com (Jordan Crouse)\0" - "Subject\0[lm-sensors] [PATCH 2.6] scx200_acb - Fix for CS5535 eratta\0" - "Date\0Fri, 31 Mar 2006 22:49:54 +0000\0" + "From\0Jordan Crouse <jordan.crouse@amd.com>\0" + "Subject\0[PATCH 2.6] scx200_acb - Fix for CS5535 eratta\0" + "Date\0Fri, 31 Mar 2006 15:49:54 -0700\0" "To\0linux-kernel@vger.kernel.org\0" "Cc\0lm-sensors@lm-sensors.org" info-linux@ldcmail.amd.com " BGardner@wabtec.com\0" - "\00:1\0" + "\01:1\0" "b\0" "Hey all - This is a fix for the recently added CS5535/CS5536 support in\n" "the scx200_acb driver. This works around an errata in the CS5535 that \n" @@ -19,11 +19,13 @@ "Jordan Crouse\n" "Senior Linux Engineer\n" "AMD - Personal Connectivity Solutions Group\n" - "<www.amd.com/embeddedprocessors>\n" - "-------------- next part --------------\n" + <www.amd.com/embeddedprocessors> + "\01:2\0" + "fn\0smb-stsreset.patch\0" + "b\0" "[PATCH] scx200_acb: Fix for negack clear errata\n" "\n" - "From: Jordan Crouse <jordan.crouse at amd.com>\n" + "From: Jordan Crouse <jordan.crouse@amd.com>\n" "\n" "This patch is a fix for the CS5535 errata 111:\n" "\n" @@ -34,7 +36,7 @@ "SMB controller. Sometimes this bit is cleared by a read of this\n" "register, but not always.\n" "\n" - "Signed-off-by: Jordan Crouse <jordan.crouse at amd.com>\n" + "Signed-off-by: Jordan Crouse <jordan.crouse@amd.com>\n" "---\n" "\n" " drivers/i2c/busses/scx200_acb.c | 7 +++++++\n" @@ -66,4 +68,4 @@ " \t\t\tscx200_acb_machine(iface, status);\n" " \t\t\treturn;" -77534c1c07b55f5120589631576706cf34c9485dc4210961f94df7afe59b1b99 +8bb3953917de79d2ecb1222e51391e953c91ddcf64220d9b8ee746aadcbe3863
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.