summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/chipsets/ata-via.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove from legacy ata(4) driver support for hardware, supported by newermav2015-03-241-8/+0
| | | | | | and more functional drivers ahci(4), siis(4) and mvs(4). This removes about 3400 lines of code, unused since FreeBSD 9.0 release.
* Reduce priority of ATA/SATA drivers.mav2015-03-231-1/+1
| | | | | | | Legacy ata(4) -> BUS_PROBE_LOW_PRIORITY; more functional ahci(4), siis(4), mvs(4) -> BUS_PROBE_DEFAULT; BUS_PROBE_VENDOR leave for vendor drivers. MFC after: 2 weeks
* - With the demise of !ATA_CAM, ATA_STATIC_ID is the only ata(4) relatedmarius2013-04-061-1/+0
| | | | | | | | | option left but actually consumed by ada(4), so move it to opt_ada.h and get rid of opt_ata.h. - Fix stand-alone build of atacore(4) by adding opt_cam.h. - Use __FBSDID. - Use DEVMETHOD_END. - Use NULL instead of 0 for pointers.
* Remove duplicate const specifiers in many drivers (I hope I got all ofdim2012-11-051-2/+2
| | | | | | | | | | | | | | | | | | | | them, please let me know if not). Most of these are of the form: static const struct bzzt_type { [...list of members...] } const bzzt_devs[] = { [...list of initializers...] }; The second const is unnecessary, as arrays cannot be modified anyway, and if the elements are const, the whole thing is const automatically (e.g. it is placed in .rodata). I have verified this does not change the binary output of a full kernel build (except for build timestamps embedded in the object files). Reviewed by: yongari, marius MFC after: 1 week
* Remove variables which are initialized but never used thereaftereadler2012-07-071-4/+0
| | | | | | | reported by gcc46 warning Approved by: cperciva MFC after: 1 week
* - First pass at const'ifying ata(4) as appropriate.marius2012-03-211-7/+9
| | | | | | | - Use DEVMETHOD_END. - Use NULL instead of 0 for pointers MFC after: 1 week
* Convert files to UTF-8uqs2012-01-151-1/+1
|
* Record that there is no devices if SATA reset found none.mav2010-11-181-0/+2
|
* Some VIA SATA controllers provide access to non-standard SATA registers viamav2010-11-181-4/+128
| | | | | PCI config space. Use them to implement hot-plug and link speed reporting. Tested on ASRock PV530 board with VX900 chipset.
* Add IDs for VIA VX900 chipset SATA controller.mav2010-11-171-1/+4
| | | | MFC after: 1 week
* Set of legacy mode SATA enchancements:mav2010-10-181-2/+13
| | | | | | | | | | | | - Implement proper combined mode decoding for Intel controllers to properly identify SATA and PATA channels and associate ATA channels with SATA ports. This fixes wrong reporting and in some cases hard resets to wrong SATA ports. - Improve SATA registers support to handle hot-plug events and potentially interface errors. For ICH5/6300ESB chipsets these registers accessible via PCI config space. For later ones they may be accessible via PCI BAR(5). - For controllers not generating interrupts on hot-plug events, implement periodic status polling. Use it to detect hot-plug on Intel and VIA controllers. Same probably could also be used for Serverworks and SIS.
* Revert r132291.mav2010-09-301-2/+1
| | | | | Restore setting PIO/WDMA timings for VIA UDMA133 controllers. Linux disables only AST register writing there, but no all timings.
* If ata_sata_phy_reset() failed and ata_generic_reset() is not called, markmav2010-07-101-1/+4
| | | | | channel as having no devices connected. This improves hot-unplug operation on legacy-emulating SATA controllers.
* Add VIA CX700/VX800 chipsets SATA/PATA support.mav2009-12-201-7/+56
| | | | | PR: kern/121521 Tested by: Alex Deiter
* MFp4:mav2009-12-061-67/+56
| | | | | | | | | | | | | | | | | | Introduce ATA_CAM kernel option, turning ata(4) controller drivers into cam(4) interface modules. When enabled, this options deprecates all ata(4) peripheral drivers (ad, acd, ...) and interfaces and allows cam(4) drivers (ada, cd, ...) and interfaces to be natively used instead. As side effect of this, ata(4) mode setting code was completely rewritten to make controller API more strict and permit above change. While doing this, SATA revision was separated from PATA mode. It allows DMA-incapable SATA devices to operate and makes hw.ata.atapi_dma tunable work again. Also allow ata(4) controller drivers (except some specific or broken ones) to handle larger data transfers. Previous constraint of 64K was artificial and is not really required by PCI ATA BM specification or hardware. Submitted by: nwitehorn (powerpc part)
* Add IDs for PATA part also.mav2009-10-261-0/+2
|
* Add two more VIA SATA chip IDs.mav2009-10-261-0/+2
| | | | PR: kern/135057
* MFp4:mav2009-06-241-1/+1
| | | | | Reduce default PCI ATA drivers priorities from absolute to default, to allow them been overriden. It was so before modularization.
* Integrate user/mav/ata branch:mav2009-03-301-1/+1
| | | | | | | | | | | Add ch_suspend/ch_resume methods for PCI controllers and implement them for AHCI. Refactor AHCI channel initialization according to it. Fix Port Multipliers operation. It is far from perfect yet, but works now. Tested with JMicron JMB363 AHCI + SiI 3726 PMP pair. Previous version was also tested with SiI 4726 PMP. Hardware sponsored by: Vitsch Electronics / VEHosting.nl
* Remove the local management of INTx as this is now taken care of by pci.rnoland2009-03-041-4/+0
| | | | | Reviewed by: jhb MFC after: 3 days
* Quite mechanical ch_detach implementations for all atapci subdrivers.mav2009-02-191-0/+29
| | | | Some dmainit call fixes for previous commit.
* As soon as they called in only same one place (ata_pcichannel_attach()),mav2009-02-181-4/+4
| | | | | | | | join allocate() and dmainit() atapci subdriver's channel initialization methods into single ch_attach() method. As opposite to ch_attach() add new ch_detach() method to deallocate/disable channel.
* This is the roumored ATA modulerisation works, and it needs a little ↵sos2008-10-091-0/+351
explanation. If you just config KERNEL as usual there should be no apparent changes, you'll get all chipset support code compiled in. However there is now a way to only compile in code for chipsets needed on a pr vendor basis. ATA now has the following "device" entries: atacore: ATA core functionality, always needed for any ATA setup atacard: CARDBUS support atacbus: PC98 cbus support ataisa: ISA bus support atapci: PCI bus support only generic chipset support. ataahci: AHCI support, also pulled in by some vendor modules. ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek, atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron, atamarvell, atamicron, atanational, atanetcell, atanvidia, atapromise, ataserverworks, atasiliconimage, atasis, atavia; Vendor support, ie atavia for VIA chipsets atadisk: ATA disk driver ataraid: ATA softraid driver atapicd: ATAPI cd/dvd driver atapifd: ATAPI floppy/flashdisk driver atapist: ATAPI tape driver atausb: ATA<>USB bridge atapicam: ATA<>CAM bridge This makes it possible to config a kernel with just VIA chipset support by having the following ATA lines in the kernel config file: device atacore device atapci device atavia And then you need the atadisk, atapicd etc lines in there just as usual. If you use ATA as modules loaded at boot there is few changes except the rename of the "ata" module to "atacore", things looks just as usual. However under atapci you now have a whole bunch of vendor specific drivers, that you can kldload individually depending on you needs. Drivers have the same names as used in the kernel config explained above.
OpenPOWER on IntegriCloud