summaryrefslogtreecommitdiff
path: root/sys/dev
AgeCommit message (Collapse)Author
2010-05-10athn(4) is going to support a new family of Atheros 802.11nDamien Bergamini
chips (AR9003), which differs from the currently supported families (AR5008, AR9001 and AR9002). The main differences (from a driver point of view) are: * DMA: Tx and Rx descriptors have changed. A single Tx descriptor can now reference up to 4 scatter/gather DMA segments. There is now a DMA ring for reporting Tx status with separate Tx status descriptors (this ring is used to report Tx status for all the Tx FIFOs). Rx status descriptors are now put at the beginning of Rx buffers and do not need to be allocated separately from buffers. There are two Rx FIFOs (low priority and high priority) instead of one. * ROM: The AR9003 family uses OTP-ROM instead of EEPROM. Reading the ROM is totally insane since vendors can provide only the chunks of ROM that differ from a default image (and thus the default image has to be stored in the driver). This is referenced as "compressed ROM" in the Linux driver, though there is no real compression involved, at least for the moment. * PHY registers: All PHY registers have changed. Some registers offsets do not fit on 16 bits anymore, but since they are 32-bit aligned, we can still make them fit on 16 bits to save .rodata space in initialization tables. * MAC registers: Some MAC registers offsets have changed (GPIO, interrupt masks) which is quite annoying (though ~98% remain the same.) * Initialization values: Initialization values are now split in mac/soc/bb/radio blocks and pre/core/post phases in the Linux driver. I have chosen to not go that road and merge these blocks in modal and non-modal initialization values (similar to the other families). The initialization order remains exactly the same as the Linux driver though. To manage these differences, I have split athn.c in two backends: ar5008.c contains the bits that are specific to the AR5008, AR9001 and AR9002 families (used by ar5416.c, ar9280.c, ar9285.c and ar9287.c) and that were previously in athn.c. ar9003.c contains the bits that are specific to the new AR9003 family (used by ar9380.c only for now.) I have introduced a thin hardware abstraction layer (actually a set of pointers to functions) that is used in athn.c. My intent is to keep this abstraction layer as thin as possible and not to create another ugly pile of abstraction layers a la MadWifi. I think I've managed to keep things sane, probably at the expense of duplicating some code in both ar5008.c and ar9003.c, but at least we do not have to dig through layers and layers of virtual descriptors to figure out what is mapped to the hardware. Tested for non-regression on various AR5416 (sparc64+i386), AR9281 and AR9285 (i386 only) adapters. AR9380 part is not tested (hardware is not available to the general public yet). Committed over my AR9285 2.0.
2010-05-09back out 1.143, it causes data corruption on the mpis in sun v20z boxes,David Gwynne
but i suspect it is common to all SPI mpi parts. problem found and problem diff verified by landry. ok krw@ landry@ jasper@
2010-05-09Attach pineview graphics in inteldrm.Owain Ainsworth
Tested by Jan Stary; thanks!
2010-05-09Support Pineview IGD in intagp.Owain Ainsworth
Tested by Jan Stary, thanks!
2010-05-09hander -> handlerJasper Lievisse Adriaanse
ok miod@
2010-05-08Defines for the Intel 8259 PIC and compatible designs, because hardwiredMiod Vallat
numbers are a PITA in the long run; from NetBSD.
2010-05-08A little bit of a hack.Owain Ainsworth
If userland asks to allocate an object large enough that two that size could not fit around the pinned objects, disallow it with EFBIG. This prevents mmap of large objects that big and copying between them putting the machine into infinite thrashing. with a patch to the ddx (on my git branch) that allocates a non-accelerated pixmap when it gets that return code, matthieu@s test huge image works happily when before it DOSed the kernel. The correct fix would be to fall back to mmaping the backing pages for objects that big (radeondrm will need such ability anyway). This however is a lot more complicated and I am still working out how to do it correctly hence this commit for now.
2010-05-08Set the write combined bit on our newly created pages.Owain Ainsworth
We need a proper MI api for doing this (one which will fall back to mtrrs if PAT is not available would be best), but for now this allows inteldrm to use PAT if available. Big fat XXX mentioning the need for a real api. ok kettenis@, tedu@
2010-05-07Remember to restore the spl. Found out the hard way by me.David Hill
ok @damien
2010-05-05Prevent a process from entering iwn_ioctl while another process isDamien Bergamini
tsleep'ing (for example waiting for the firmware to become alive) in iwn_init. I believe this might fix a crash reported by dhill@ This is a temporary fix until I find something better that I will apply to my other drivers that can tsleep in if_init (wpi, run etc...)
2010-05-05firmware images in type-length-value format can now offer differentDamien Bergamini
alternatives in a same image.
2010-05-05regenDamien Bergamini
2010-05-05USB Id for Atheros AR3011 bluetooth adapter.Damien Bergamini
A firmware must be loaded into the device to enable it though.
2010-05-05disable bluetooth coexistence as I suspect this is what is causingDamien Bergamini
troubles to some people with AR9285+AR3011 combo adapters.
2010-05-05map the ATA data set management stuff (ie, trim) to the SCSI thinDavid Gwynne
provisioning bits in read cap 16
2010-05-02Remove unused softc member.Miod Vallat
2010-05-01put the read macros into functions so gcc4 doesn't whinge.Jonathan Gray
ok marco@ oga@ miod@
2010-05-01incomming -> incomingMichael Knudsen
The ones found in gnu/ left out by intention. ok jmc
2010-04-30Right now, if anything internal changes with a uvm object, diverseOwain Ainsworth
places in the tree need to be touched to update the object initialisation with respect to that. So, make a function (uvm_initobj) that takes the refcount, object and pager ops and does this initialisation for us. This should save on maintainance in the future. looked good to fgs@. Tedu complained about the British spelling but OKed it anyway.
2010-04-30add HT Capabilities element in outgoing probe requests if HT isDamien Bergamini
enabled (it is not enabled yet.)
2010-04-30fix for 5GHz band.Damien Bergamini
2010-04-30add support for firmware images in "type-length-value" format.Damien Bergamini
2010-04-30Remove volatile from function return values since gcc4 complains about themMark Kettenis
and they don't make any sense (the old deprecated GCC way of marking noreturn functions is surely not what was meant here). ok jsg@, guenther@, marco@
2010-04-30- regenJasper Lievisse Adriaanse
2010-04-30- add a fore more devices found in my boxJasper Lievisse Adriaanse
2010-04-29Revert r1.80, leaving iopools in place. Fixes PR#6365. Why WD3200KS-00PKenneth R Westerback
disks on ATI SBx00 care is mysterious but let's keep them working. Fix tested by Josh Elsasser, submitter of PR#6365. Thanks! ok dlg@
2010-04-29add radeon hd2600 xtRobert Nagy
2010-04-29regenRobert Nagy
2010-04-29use BUS_SPACE_MAP_PREFETCHABLE on maps that should be WC (soon this willOwain Ainsworth
actually do so).
2010-04-29Finally fix the bit 17 swizzling code.Owain Ainsworth
- pmap_kremove takes a va and a size, not a va range (unlike pmap_remove, that gratuitious difference is nothing if not annoying). - fix a memory leak of the bit 17 bitstring. - fix the offset calculation when iterating through the dma segments. Tested by Brandon Mercer, his machine now seems to be rock solid. Remember kids, if a code path has not been tested fully, it does not work!
2010-04-29Test bit is used like a boolean, so it must actually be a boolean.Owain Ainsworth
This was causing swizzling on bit 17 swizzling intel IGDs when not needed. Thanks to Brandon Mercer for testing.
2010-04-29Fix the drm_atomic macros to use unsigned int like they should.Owain Ainsworth
pointed out by Clang static analyser.
2010-04-29- regenJasper Lievisse Adriaanse
2010-04-29- add a few more devices, including one from eric@Jasper Lievisse Adriaanse
2010-04-29- add another run, from markus bergkvistJasper Lievisse Adriaanse
2010-04-29- add another run, from markus bergkvistJasper Lievisse Adriaanse
2010-04-28s/amd64/__amd64__/, s/i386/__i386__, no binary change.Mark Kettenis
2010-04-28s/i386/__i386__/, no binary change.Mark Kettenis
2010-04-28Fix gcc4 warningMarco Peereboom
2010-04-28*sigh* make the same change as previous commit to the sister function ofOwain Ainsworth
the one changed.
2010-04-28Deal with a non-incremented iterator by changing aOwain Ainsworth
while (condition) { do_stuff() increment_condition /* this was missing */ } To a for loop like it always should have been. I have no idea what I was smoking when I wrote this function. Fixes the crash on hardware that does bit 17 swizzling (turns out the three I know of are all 945s) as soon as we first unbind an object. Thank you very much to Brandon Mercer for actually managing to get me a crash dump so i could debug this, and also for testing the fix.
2010-04-27__packed needs to be applied to the struct, not the typedef.Mark Kettenis
Makes gcc4 happier. ok deraadt@, marco@
2010-04-27Update oxsemi (now plxtech) datasheet URL.Stuart Henderson
2010-04-27Add a couple more frames in order to support the latest logitech pro 9000Marco Peereboom
webcam. ok mglocker
2010-04-27spacingMarco Peereboom
2010-04-26syncStephan A. Rickauer
2010-04-26add Logitech Webcam C500, ok sthen@Stephan A. Rickauer
2010-04-25Argh, commited the wrong diff. This was the reversed test that found theOwain Ainsworth
libdrm bug recently. Correct to what was intended.
2010-04-25When querying if an object is busy, it is if it is marked active (beingOwain Ainsworth
accessed by the gpu or needing a flush). Since this implies that the object is wanted, emit the flush then to save time. Makes things a lot smoother than before in some GL applications, since before we were claiming that object needing a flush were unbusy so the next map stalled the gpu waiting on a flush. From daniel vetter on intel-gfx.
2010-04-25oops, kill unneeded write lock grabbing that got mixed in when resolvingOwain Ainsworth
conflicts.