[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: kernel/3551: 3com 3CSOHO100B-TX not recognized by dc(4) - patch included
- To: bugs_(_at_)_cvs_(_dot_)_openbsd_(_dot_)_org
- Subject: Re: kernel/3551: 3com 3CSOHO100B-TX not recognized by dc(4) - patch included
- From: Otto Moerbeek <otto_(_at_)_drijf_(_dot_)_net>
- Date: Tue, 4 Nov 2003 08:15:02 -0700 (MST)
- Cc:
- Reply-to: Otto Moerbeek <otto_(_at_)_drijf_(_dot_)_net>
The following reply was made to PR kernel/3551; it has been noted by GNATS.
From: Otto Moerbeek <otto_(_at_)_drijf_(_dot_)_net>
To: christoph_(_dot_)_scheurer_(_at_)_ch_(_dot_)_tum_(_dot_)_de
Cc: gnats_(_at_)_openbsd_(_dot_)_org, GNATS Filer <gnats_(_at_)_cvs_(_dot_)_openbsd_(_dot_)_org>,
bugs_(_at_)_cvs_(_dot_)_openbsd_(_dot_)_org
Subject: Re: kernel/3551: 3com 3CSOHO100B-TX not recognized by dc(4) - patch
included
Date: Tue, 4 Nov 2003 15:54:17 +0100 (CET)
This is already in -current:
<http://www.openbsd.org/cgi-bin/cvsweb/src/sys/dev/pci/if_dc_pci.c.diff?r1=1.41&r2=1.42&f=h>
-Otto
On Tue, 4 Nov 2003 christoph_(_dot_)_scheurer_(_at_)_ch_(_dot_)_tum_(_dot_)_de wrote:
> >Number: 3551
> >Category: kernel
> >Synopsis: 3com 3CSOHO100B-TX not recognized by dc(4) - patch included
> >Confidential: yes
> >Severity: critical
> >Priority: medium
> >Responsible: bugs
> >State: open
> >Quarter:
> >Keywords:
> >Date-Required:
> >Class: sw-bug
> >Submitter-Id: net
> >Arrival-Date: Tue Nov 04 14:40:01 GMT 2003
> >Closed-Date:
> >Last-Modified:
> >Originator: Christoph Scheurer
> >Release: OPENBSD_3_4 patch branch
> >Organization:
> TU Muenchen
> >Environment:
>
> System : OpenBSD 3.4
> Architecture: OpenBSD.i386
> Machine : i386
> >Description:
>
> The card is recognized by the PCI subsystem but not initialized by the
> dc(4) driver due to the missing ID entries.
> >How-To-Repeat:
>
> Install a 3CSOHO100B-TX card and reboot.
> >Fix:
>
> The following patch makes this card known to the dc(4) driver. It has
> worked reliably for me for some time. The patch is modelled after the
> corresponding patch in the FreeBSD source tree.
>
> With the patched driver the kernel correctly recognizes the card:
>
> dc0 at pci0 dev 14 function 0 "3Com 3cSOHO 100B-TX" rev 0x31: irq 7, address 00:04:75:b2:7d:0f
> ukphy0 at dc0 phy 1: Generic IEEE 802.3u media interface
>
> --- sys/dev/pci/if_dc_pci.c.orig Thu Oct 16 16:57:48 2003
> +++ sys/dev/pci/if_dc_pci.c Fri Oct 17 09:49:45 2003
> @@ -99,10 +99,11 @@
> { PCI_VENDOR_LITEON, PCI_PRODUCT_LITEON_PNICII },
> { PCI_VENDOR_ACCTON, PCI_PRODUCT_ACCTON_EN1217 },
> { PCI_VENDOR_ACCTON, PCI_PRODUCT_ACCTON_EN2242 },
> { PCI_VENDOR_CONEXANT, PCI_PRODUCT_CONEXANT_RS7112 },
> { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_21145 },
> + { PCI_VENDOR_3COM, PCI_PRODUCT_3COM_3CSHO100BTX },
> { 0, 0 }
> };
>
> int dc_pci_match(struct device *, void *, void *);
> void dc_pci_attach(struct device *, struct device *, void *);
> @@ -322,10 +323,21 @@
> command = pci_conf_read(pc, pa->pa_tag, DC_PCI_CFLT);
> command &= 0xFFFF00FF;
> command |= 0x00008000;
> pci_conf_write(pc, pa->pa_tag, DC_PCI_CFLT, command);
> }
> + break;
> + case PCI_VENDOR_3COM:
> + if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_3COM_3CSHO100BTX) {
> + found = 1;
> + sc->dc_type = DC_TYPE_AN983;
> + sc->dc_flags |= DC_TX_USE_TX_INTR;
> + sc->dc_flags |= DC_TX_ADMTEK_WAR;
> + sc->dc_pmode = DC_PMODE_MII;
> + }
> + dc_eeprom_width(sc);
> + dc_read_srom(sc, sc->dc_romwidth);
> break;
> case PCI_VENDOR_ADMTEK:
> if (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ADMTEK_AL981) {
> found = 1;
> sc->dc_type = DC_TYPE_AL981;
>
>
> >Release-Note:
> >Audit-Trail:
> >Unformatted:
Visit your host, monkey.org