All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alan <alan@lxorguk.ukuu.org.uk>
To: Hiroshi Miura <miura@da-cha.org>
Cc: TAKADA <takada@mbf.nifty.com>, linux-kernel@vger.kernel.org
Subject: Re: i386,2.6 cyrix.c cann't found companion chip
Date: Mon, 8 Jan 2007 17:06:54 +0000	[thread overview]
Message-ID: <20070108170654.77dd811a@localhost.localdomain> (raw)
In-Reply-To: <45A11900.3020302@da-cha.org>

On Mon, 08 Jan 2007 01:00:00 +0900
Hiroshi Miura <miura@da-cha.org> wrote:

> Hi Takada-san,
> 
> It is  obviously bad.
> These part is added several years ago by my post.
> A cyrix.c try to find chip because of chip hardware bug affected
> to timer which has started early.
> 
> Now, these chips have already been obsolete.
> There are 2 options. One is simply remove these functionality.
> The other is to move it to compile time ifdef that is off by default.
> 
> For user who use in embbeded environment,
> I wanna change it to ifdef.
> 
> Thank you for report!
> 
> Hiroshi

What do the you think of this as a solution ?

Signed-off-by: Alan Cox <alan@redhat.com>

--- linux.vanilla-2.6.20-rc4/arch/i386/kernel/cpu/cyrix.c	2007-01-01 21:40:52.000000000 +0000
+++ linux-2.6.20-rc4/arch/i386/kernel/cpu/cyrix.c	2007-01-08 16:36:31.762654720 +0000
@@ -196,6 +196,7 @@
 	unsigned char dir0, dir0_msn, dir0_lsn, dir1 = 0;
 	char *buf = c->x86_model_id;
 	const char *p = NULL;
+	u16 vendor, device;
 
 	/* Bit 31 in normal CPUID used for nonstandard 3DNow ID;
 	   3DNow is IDd by bit 31 in extended CPUID (1*32+31) anyway */
@@ -257,7 +258,6 @@
 		break;
 
 	case 4: /* MediaGX/GXm or Geode GXM/GXLV/GX1 */
-#ifdef CONFIG_PCI
 		/* It isn't really a PCI quirk directly, but the cure is the
 		   same. The MediaGX has deep magic SMM stuff that handles the
 		   SB emulation. It thows away the fifo on disable_dma() which
@@ -265,22 +265,26 @@
 
 		   Bug2: VSA1 has a wrap bug so that using maximum sized DMA 
 		   causes bad things. According to NatSemi VSA2 has another
-		   bug to do with 'hlt'. I've not seen any boards using VSA2
-		   and X doesn't seem to support it either so who cares 8).
-		   VSA1 we work around however.
+		   bug to do with 'hlt'.
 		*/
 
 		printk(KERN_INFO "Working around Cyrix MediaGX virtual DMA bugs.\n");
 		isa_dma_bridge_buggy = 2;
-
+		
+		/* We do this before the PCI layer is running. However we 
+		   are safe here as we know the bridge must be a Cyrix 
+		   companion and must be present */
+		   
+		pci_conf1_read(0, 0, PCI_DEVFN(0x12, 0), 0, 4, &vendor);
+		pci_conf1_read(0, 0, PCI_DEVFN(0x12, 0), 4, 4, &device);
 
 		/*
 		 *  The 5510/5520 companion chips have a funky PIT.
 		 */  
-		if (pci_dev_present(cyrix_55x0))
+		if (vendor == PCI_VENDOR_ID_CYRIX && (device == PCI_DEVICE_ID_CYRIX_5510 || device == PCI_DEVICE_ID_CYRIX_5520))
 			pit_latch_buggy = 1;
-#endif
-		c->x86_cache_size=16;	/* Yep 16K integrated cache thats it */
+
+		c->x86_cache_size=16;	/* Yep 16K integrated cache thats it (12K in X) */
 
 		/* GXm supports extended cpuid levels 'ala' AMD */
 		if (c->cpuid_level == 2) {

  parent reply	other threads:[~2007-01-08 16:56 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-07  9:47 i386,2.6 cyrix.c cann't found companion chip TAKADA
2007-01-07 16:00 ` Hiroshi Miura
2007-01-07 22:20   ` Alan
2007-01-08 17:06   ` Alan [this message]
2007-01-09 15:19     ` takada

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=20070108170654.77dd811a@localhost.localdomain \
    --to=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miura@da-cha.org \
    --cc=takada@mbf.nifty.com \
    /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 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.