Deleted Added
full compact
ahc_pci.c (63457) ahc_pci.c (63944)
1/*
2 * Product specific probe and attach routines for:
3 * 3940, 2940, aic7895, aic7890, aic7880,
4 * aic7870, aic7860 and aic7850 SCSI controllers
5 *
6 * Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000 Justin T. Gibbs
7 * All rights reserved.
8 *

--- 16 unchanged lines hidden (view full) ---

25 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
1/*
2 * Product specific probe and attach routines for:
3 * 3940, 2940, aic7895, aic7890, aic7880,
4 * aic7870, aic7860 and aic7850 SCSI controllers
5 *
6 * Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000 Justin T. Gibbs
7 * All rights reserved.
8 *

--- 16 unchanged lines hidden (view full) ---

25 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 *
33 * $FreeBSD: head/sys/dev/aic7xxx/ahc_pci.c 63457 2000-07-18 20:12:14Z gibbs $
33 * $FreeBSD: head/sys/dev/aic7xxx/ahc_pci.c 63944 2000-07-27 23:17:52Z gibbs $
34 */
35
36#include <sys/param.h>
37#include <sys/systm.h>
38#include <sys/kernel.h>
39#include <sys/module.h>
40#include <sys/bus.h>
41

--- 730 unchanged lines hidden (view full) ---

772 dscommand0 |= MPARCKEN;
773 if ((ahc->features & AHC_ULTRA2) != 0) {
774
775 /*
776 * DPARCKEN doesn't work correctly on
777 * some MBs so don't use it.
778 */
779 dscommand0 &= ~DPARCKEN;
34 */
35
36#include <sys/param.h>
37#include <sys/systm.h>
38#include <sys/kernel.h>
39#include <sys/module.h>
40#include <sys/bus.h>
41

--- 730 unchanged lines hidden (view full) ---

772 dscommand0 |= MPARCKEN;
773 if ((ahc->features & AHC_ULTRA2) != 0) {
774
775 /*
776 * DPARCKEN doesn't work correctly on
777 * some MBs so don't use it.
778 */
779 dscommand0 &= ~DPARCKEN;
780 /*
781 * We default to using 32byte SCBs
782 * and using cacheline streaming.
783 * If external SCB ram is detected,
784 * we'll switch to using 64 byte SCBs.
785 */
780 dscommand0 |= CACHETHEN|USCBSIZE32;
781 }
786 dscommand0 |= CACHETHEN|USCBSIZE32;
787 }
788 /*
789 * Handle chips that must have cache line
790 * streaming (dis/en)abled.
791 */
792 if ((ahc->bugs & AHC_CACHETHEN_DIS_BUG) != 0)
793 dscommand0 |= CACHETHEN;
782
794
795 if ((ahc->bugs & AHC_CACHETHEN_BUG) != 0)
796 dscommand0 &= ~CACHETHEN;
797
783 ahc_outb(ahc, DSCOMMAND0, dscommand0);
784
785 /* See if we have a SEEPROM and perform auto-term */
786 check_extport(ahc, &sxfrctl1);
787
788 /*
789 * Take the LED out of diagnostic mode
790 */

--- 1060 unchanged lines hidden (view full) ---

1851static int
1852ahc_aic7890_setup(device_t dev, struct ahc_probe_config *probe_config)
1853{
1854 probe_config->channel = 'A';
1855 probe_config->chip = AHC_AIC7890;
1856 probe_config->features = AHC_AIC7890_FE;
1857 probe_config->flags |= AHC_NEWEEPROM_FMT;
1858 if (pci_get_revid(dev) == 0)
798 ahc_outb(ahc, DSCOMMAND0, dscommand0);
799
800 /* See if we have a SEEPROM and perform auto-term */
801 check_extport(ahc, &sxfrctl1);
802
803 /*
804 * Take the LED out of diagnostic mode
805 */

--- 1060 unchanged lines hidden (view full) ---

1866static int
1867ahc_aic7890_setup(device_t dev, struct ahc_probe_config *probe_config)
1868{
1869 probe_config->channel = 'A';
1870 probe_config->chip = AHC_AIC7890;
1871 probe_config->features = AHC_AIC7890_FE;
1872 probe_config->flags |= AHC_NEWEEPROM_FMT;
1873 if (pci_get_revid(dev) == 0)
1859 probe_config->bugs |= AHC_AUTOFLUSH_BUG;
1874 probe_config->bugs |= AHC_AUTOFLUSH_BUG|AHC_CACHETHEN_BUG;
1860 return (0);
1861}
1862
1863static int
1864ahc_aic7892_setup(device_t dev, struct ahc_probe_config *probe_config)
1865{
1866 probe_config->channel = 'A';
1867 probe_config->chip = AHC_AIC7892;

--- 24 unchanged lines hidden (view full) ---

1892
1893static int
1894ahc_aic7896_setup(device_t dev, struct ahc_probe_config *probe_config)
1895{
1896 probe_config->channel = pci_get_function(dev) == 1 ? 'B' : 'A';
1897 probe_config->chip = AHC_AIC7896;
1898 probe_config->features = AHC_AIC7896_FE;
1899 probe_config->flags |= AHC_NEWEEPROM_FMT;
1875 return (0);
1876}
1877
1878static int
1879ahc_aic7892_setup(device_t dev, struct ahc_probe_config *probe_config)
1880{
1881 probe_config->channel = 'A';
1882 probe_config->chip = AHC_AIC7892;

--- 24 unchanged lines hidden (view full) ---

1907
1908static int
1909ahc_aic7896_setup(device_t dev, struct ahc_probe_config *probe_config)
1910{
1911 probe_config->channel = pci_get_function(dev) == 1 ? 'B' : 'A';
1912 probe_config->chip = AHC_AIC7896;
1913 probe_config->features = AHC_AIC7896_FE;
1914 probe_config->flags |= AHC_NEWEEPROM_FMT;
1915 probe_config->bugs |= AHC_CACHETHEN_DIS_BUG;
1900 return (0);
1901}
1902
1903static int
1904ahc_aic7899_setup(device_t dev, struct ahc_probe_config *probe_config)
1905{
1906 probe_config->channel = pci_get_function(dev) == 1 ? 'B' : 'A';
1907 probe_config->chip = AHC_AIC7899;

--- 80 unchanged lines hidden ---
1916 return (0);
1917}
1918
1919static int
1920ahc_aic7899_setup(device_t dev, struct ahc_probe_config *probe_config)
1921{
1922 probe_config->channel = pci_get_function(dev) == 1 ? 'B' : 'A';
1923 probe_config->chip = AHC_AIC7899;

--- 80 unchanged lines hidden ---