From: arnd@arndb.de
To: paulus@samba.org
Cc: linuxppc-dev@ozlabs.org, cbe-oss-dev@ozlabs.org,
linux-kernel@vger.kernel.org
Subject: [patch 12/20] spufs: dont try to access SPE channel 1 count
Date: Mon, 19 Jun 2006 20:33:27 +0200 [thread overview]
Message-ID: <20060619183405.715054000@klappe.arndb.de> (raw)
In-Reply-To: <20060619183315.653672000@klappe.arndb.de>
[-- Attachment #1: spufs-channel-1-count.diff --]
[-- Type: text/plain, Size: 2871 bytes --]
The save/restore sequence for SPE contexts currently attempts to save
and restore the channel count for SPE channel 1 (the SPU_WriteEventMask
channel. But the CBE architecture (section 9.11.2) clearly states
that this channel does not have an associated count. Hardware simply
ignores the attempt to write this count, but the simulator generates
a warning message.
WARNING: 279721590: SPE7: Attempt to write channel count for CH 1 with
no associated count is ignored.
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Index: powerpc.git/arch/powerpc/platforms/cell/spufs/switch.c
===================================================================
--- powerpc.git.orig/arch/powerpc/platforms/cell/spufs/switch.c
+++ powerpc.git/arch/powerpc/platforms/cell/spufs/switch.c
@@ -622,12 +622,17 @@ static inline void save_ppuint_mb(struct
static inline void save_ch_part1(struct spu_state *csa, struct spu *spu)
{
struct spu_priv2 __iomem *priv2 = spu->priv2;
- u64 idx, ch_indices[7] = { 0UL, 1UL, 3UL, 4UL, 24UL, 25UL, 27UL };
+ u64 idx, ch_indices[7] = { 0UL, 3UL, 4UL, 24UL, 25UL, 27UL };
int i;
/* Save, Step 42:
- * Save the following CH: [0,1,3,4,24,25,27]
*/
+
+ /* Save CH 1, without channel count */
+ out_be64(&priv2->spu_chnlcntptr_RW, 1);
+ csa->spu_chnldata_RW[1] = in_be64(&priv2->spu_chnldata_RW);
+
+ /* Save the following CH: [0,3,4,24,25,27] */
for (i = 0; i < 7; i++) {
idx = ch_indices[i];
out_be64(&priv2->spu_chnlcntptr_RW, idx);
@@ -1105,13 +1110,18 @@ static inline void clear_spu_status(stru
static inline void reset_ch_part1(struct spu_state *csa, struct spu *spu)
{
struct spu_priv2 __iomem *priv2 = spu->priv2;
- u64 ch_indices[7] = { 0UL, 1UL, 3UL, 4UL, 24UL, 25UL, 27UL };
+ u64 ch_indices[7] = { 0UL, 3UL, 4UL, 24UL, 25UL, 27UL };
u64 idx;
int i;
/* Restore, Step 20:
- * Reset the following CH: [0,1,3,4,24,25,27]
*/
+
+ /* Reset CH 1 */
+ out_be64(&priv2->spu_chnlcntptr_RW, 1);
+ out_be64(&priv2->spu_chnldata_RW, 0UL);
+
+ /* Reset the following CH: [0,3,4,24,25,27] */
for (i = 0; i < 7; i++) {
idx = ch_indices[i];
out_be64(&priv2->spu_chnlcntptr_RW, idx);
@@ -1572,12 +1582,17 @@ static inline void restore_decr_wrapped(
static inline void restore_ch_part1(struct spu_state *csa, struct spu *spu)
{
struct spu_priv2 __iomem *priv2 = spu->priv2;
- u64 idx, ch_indices[7] = { 0UL, 1UL, 3UL, 4UL, 24UL, 25UL, 27UL };
+ u64 idx, ch_indices[7] = { 0UL, 3UL, 4UL, 24UL, 25UL, 27UL };
int i;
/* Restore, Step 59:
- * Restore the following CH: [0,1,3,4,24,25,27]
*/
+
+ /* Restore CH 1 without count */
+ out_be64(&priv2->spu_chnlcntptr_RW, 1);
+ out_be64(&priv2->spu_chnldata_RW, csa->spu_chnldata_RW[1]);
+
+ /* Restore the following CH: [0,3,4,24,25,27] */
for (i = 0; i < 7; i++) {
idx = ch_indices[i];
out_be64(&priv2->spu_chnlcntptr_RW, idx);
--
next prev parent reply other threads:[~2006-06-19 18:46 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-19 18:33 [patch 00/20] cell: patches for 2.6.18 arnd
2006-06-19 18:33 ` [patch 01/20] cell: add RAS support arnd
2006-06-20 15:43 ` [Cbe-oss-dev] " Olof Johansson
2006-06-20 16:26 ` Arnd Bergmann
2006-06-20 17:50 ` Olof Johansson
2006-06-20 19:00 ` Geoff Levand
2006-06-21 1:46 ` Benjamin Herrenschmidt
2006-06-19 18:33 ` [patch 02/20] cell: fix interrupt priority handling arnd
2006-06-19 18:33 ` [patch 03/20] cell: update defconfig arnd
2006-06-19 18:33 ` [patch 04/20] cell: register SPUs as sysdevs arnd
2006-06-19 18:33 ` [patch 05/20] cell: always build spu base into the kernel arnd
2006-06-19 18:33 ` [patch 06/20] spufs: restore mapping of mssync register arnd
2006-06-19 18:33 ` [patch 07/20] spufs: fix deadlock in spu_create error path arnd
2006-06-20 1:16 ` Michael Ellerman
2006-06-19 18:33 ` [patch 08/20] spufs: set up correct SLB entries for 64k pages arnd
2006-06-19 18:33 ` [patch 09/20] spufs: add a phys-id attribute to each SPU context arnd
2006-06-19 18:33 ` [patch 10/20] spufs: fix initial state of wbox file arnd
2006-06-19 18:33 ` [patch 11/20] spufs: use kzalloc in create_spu arnd
2006-06-19 18:33 ` arnd [this message]
2006-06-19 18:33 ` [patch 13/20] spufs: split the Cell BE support into generic and platform dependant parts arnd
2006-06-19 18:33 ` [patch 14/20] spufs: further abstract priv1 register access arnd
2006-06-19 18:33 ` [patch 15/20] spufs: fix spu irq affinity setting arnd
2006-06-19 18:33 ` [patch 16/20] spufs: remove stop_code from struct spu arnd
2006-06-19 18:33 ` [patch 17/20] spufs: fix Makefile for "make clean" arnd
2006-06-19 18:33 ` [patch 18/20] spufs: clear class2 interrupt status before wakeup arnd
2006-06-19 18:33 ` [patch 19/20] spufs: fail spu_create with invalid flags arnd
2006-06-19 18:33 ` [patch 20/20] spufs: one more fix for 64k pages arnd
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=20060619183405.715054000@klappe.arndb.de \
--to=arnd@arndb.de \
--cc=cbe-oss-dev@ozlabs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=paulus@samba.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
Powered by JetHome