public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Peter Staubach <staubach@redhat.com>
To: Daniel Ritz <daniel.ritz@gmx.ch>
Cc: Aristeu Sergio Rozanski Filho <aris@cathedrallabs.org>,
	linux-kernel@vger.kernel.org
Subject: Re: oz6812, yenta_socket and madwifi
Date: Mon, 25 Jul 2005 15:38:40 -0400	[thread overview]
Message-ID: <42E53FC0.5050205@redhat.com> (raw)
In-Reply-To: <200507231744.17519.daniel.ritz@gmx.ch>

Daniel Ritz wrote:

>hi
>
>since i'm the one that put that code there in the first place i guess
>i have to comment on it :)
>
>the attached patch should also fix your problem. and it cleans up the
>magic numbers a bit.
>
>rgds
>-daniel
>
>-------------
>
>[PATCH] disable read prefetch/write burst on old O2Micro bridges
>
>older O2Micro bridges have problems with both read prefetch and write burst
>depending on the combination of the chipset, bridge, cardbus card. safest
>is to disable read prefetch and write burst on those old bridges.
>
>Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch>
>
>diff --git a/drivers/pcmcia/o2micro.h b/drivers/pcmcia/o2micro.h
>--- a/drivers/pcmcia/o2micro.h
>+++ b/drivers/pcmcia/o2micro.h
>@@ -120,11 +120,16 @@
> #define  O2_MODE_E_LED_OUT	0x08
> #define  O2_MODE_E_SKTA_ACTV	0x10
> 
>+#define O2_RESERVED1		0x94
>+#define O2_RESERVED2		0xD4
>+#define O2_RES_READ_PREFETCH	0x02
>+#define O2_RES_WRITE_BURST	0x08
>+
> static int o2micro_override(struct yenta_socket *socket)
> {
> 	/*
>-	 * 'reserved' register at 0x94/D4. chaning it to 0xCA (8 bit) enables
>-	 * read prefetching which for example makes the RME Hammerfall DSP
>+	 * 'reserved' register at 0x94/D4. allows setting read prefetch and write
>+	 * bursting. read prefetching for example makes the RME Hammerfall DSP
> 	 * working. for some bridges it is at 0x94, for others at 0xD4. it's
> 	 * ok to write to both registers on all O2 bridges.
> 	 * from Eric Still, 02Micro.
>@@ -132,20 +137,35 @@ static int o2micro_override(struct yenta
> 	u8 a, b;
> 
> 	if (PCI_FUNC(socket->dev->devfn) == 0) {
>-		a = config_readb(socket, 0x94);
>-		b = config_readb(socket, 0xD4);
>+		a = config_readb(socket, O2_RESERVED1);
>+		b = config_readb(socket, O2_RESERVED2);
> 
> 		printk(KERN_INFO "Yenta O2: res at 0x94/0xD4: %02x/%02x\n", a, b);
> 
> 		switch (socket->dev->device) {
>+		/*
>+		 * older bridges have problems with both read prefetch and write
>+		 * bursting depending on the combination of the chipset, bridge
>+		 * and the cardbus card. so disable them to be on the safe side.
>+		 */
>+		case PCI_DEVICE_ID_O2_6729:
>+		case PCI_DEVICE_ID_O2_6730:
>+		case PCI_DEVICE_ID_O2_6812:
> 		case PCI_DEVICE_ID_O2_6832:
>-			printk(KERN_INFO "Yenta O2: old bridge, not enabling read prefetch / write burst\n");
>+		case PCI_DEVICE_ID_O2_6836:
>+			printk(KERN_INFO "Yenta O2: old bridge, disabling read prefetch/write burst\n");
>+			config_writeb(socket, O2_RESERVED1,
>+			              a & ~(O2_RES_READ_PREFETCH | O2_RES_READ_PREFETCH));
>+			config_writeb(socket, O2_RESERVED2,
>+			              b & ~(O2_RES_READ_PREFETCH | O2_RES_READ_PREFETCH));
> 			break;
> 
> 		default:
> 			printk(KERN_INFO "Yenta O2: enabling read prefetch/write burst\n");
>-			config_writeb(socket, 0x94, a | 0x0a);
>-			config_writeb(socket, 0xD4, b | 0x0a);
>+			config_writeb(socket, O2_RESERVED1,
>+			              a | O2_RES_READ_PREFETCH | O2_RES_READ_PREFETCH);
>+			config_writeb(socket, O2_RESERVED2,
>+			              b | O2_RES_READ_PREFETCH | O2_RES_READ_PREFETCH);
> 		}
> 	}
>

Shouldn't the two pairs of calls to config_writeb() be using
"O2_RES_READ_PREFETCH | O2_RES_WRITE_BURST" instead of
"O2_RES_READ_PREFETCH | O2_RES_READ_PREFETCH"?

    Thanx...

       ps

  reply	other threads:[~2005-07-25 19:43 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-23 15:44 oz6812, yenta_socket and madwifi Daniel Ritz
2005-07-25 19:38 ` Peter Staubach [this message]
2005-07-25 22:14   ` Daniel Ritz
  -- strict thread matches above, loose matches on Subject: below --
2005-07-16  4:52 Aristeu Sergio Rozanski Filho

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=42E53FC0.5050205@redhat.com \
    --to=staubach@redhat.com \
    --cc=aris@cathedrallabs.org \
    --cc=daniel.ritz@gmx.ch \
    --cc=linux-kernel@vger.kernel.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