ata-micron.c (09c817ba36db7c3a4ff5e25ac55816ca181a403d) | ata-micron.c (066f913a94b134b6d5e32b6af88f297c7da9c031) |
---|---|
1/*- 2 * Copyright (c) 1998 - 2008 S�ren Schmidt <sos@FreeBSD.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 37 unchanged lines hidden (view full) --- 46#include <machine/bus.h> 47#include <sys/rman.h> 48#include <dev/pci/pcivar.h> 49#include <dev/pci/pcireg.h> 50#include <dev/ata/ata-all.h> 51#include <dev/ata/ata-pci.h> 52#include <ata_if.h> 53 | 1/*- 2 * Copyright (c) 1998 - 2008 S�ren Schmidt <sos@FreeBSD.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 37 unchanged lines hidden (view full) --- 46#include <machine/bus.h> 47#include <sys/rman.h> 48#include <dev/pci/pcivar.h> 49#include <dev/pci/pcireg.h> 50#include <dev/ata/ata-all.h> 51#include <dev/ata/ata-pci.h> 52#include <ata_if.h> 53 |
54/* local prototypes */ 55static int ata_micron_chipinit(device_t dev); 56static void ata_micron_setmode(device_t dev, int mode); 57 58 | |
59/* 60 * Cenatek chipset support functions 61 */ 62static int 63ata_micron_probe(device_t dev) 64{ 65 struct ata_pci_controller *ctlr = device_get_softc(dev); 66 67 if (pci_get_devid(dev) == ATA_MICRON_RZ1000 || 68 pci_get_devid(dev) == ATA_MICRON_RZ1001) { 69 device_set_desc(dev, 70 "RZ 100? ATA controller !WARNING! data loss/corruption risk"); | 54/* 55 * Cenatek chipset support functions 56 */ 57static int 58ata_micron_probe(device_t dev) 59{ 60 struct ata_pci_controller *ctlr = device_get_softc(dev); 61 62 if (pci_get_devid(dev) == ATA_MICRON_RZ1000 || 63 pci_get_devid(dev) == ATA_MICRON_RZ1001) { 64 device_set_desc(dev, 65 "RZ 100? ATA controller !WARNING! data loss/corruption risk"); |
71 ctlr->chipinit = ata_micron_chipinit; | 66 ctlr->chipinit = ata_generic_chipinit; |
72 return (BUS_PROBE_DEFAULT); 73 } | 67 return (BUS_PROBE_DEFAULT); 68 } |
74 else 75 return ENXIO; | 69 return (ENXIO); |
76} 77 | 70} 71 |
78static int 79ata_micron_chipinit(device_t dev) 80{ 81 struct ata_pci_controller *ctlr = device_get_softc(dev); 82 83 if (ata_setup_interrupt(dev, ata_generic_intr)) 84 return ENXIO; 85 86 ctlr->setmode = ata_micron_setmode; 87 return 0; 88} 89 90static void 91ata_micron_setmode(device_t dev, int mode) 92{ 93 struct ata_device *atadev = device_get_softc(dev); 94 95 mode = ata_limit_mode(dev, mode, ATA_UDMA2); 96 mode = ata_check_80pin(dev, mode); 97 if (!ata_controlcmd(dev, ATA_SETFEATURES, ATA_SF_SETXFER, 0, mode)) 98 atadev->mode = mode; 99} 100 | |
101ATA_DECLARE_DRIVER(ata_micron); | 72ATA_DECLARE_DRIVER(ata_micron); |