aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_isapnp.c
Commit message (Expand)AuthorAge
* PNP: ata/pata_isapnp: Use module_pnp_driver to register driverPeter Huewe2015-03-18
* pata_isapnp: Don't use invalid I/O portsOndrej Zary2013-10-07
* [libata] Improve timeout handlingAlan Cox2009-03-24
* [libata] convert drivers to use ata.h mode mask definesErik Inge Bolsø2009-03-24
* ata: Switch all my stuff to a common addressAlan Cox2008-10-27
* libata: rename SFF functionsTejun Heo2008-04-17
* libata: implement and use ops inheritanceTejun Heo2008-04-17
* libata: implement and use SHT initializersTejun Heo2008-04-17
* libata: implement and use ata_noop_irq_clear()Tejun Heo2008-04-17
* pata_isapnp: Polled devicesAlan Cox2007-11-23
* libata: implement and use ata_port_desc() to report port configurationTejun Heo2007-10-12
* libata: Switch most of the remaining SFF drivers to ata_sff_port_startAlan Cox2007-10-12
* [libata] Remove ->port_disable() hookJeff Garzik2007-10-12
* [libata] Remove ->irq_ack() hook, and ata_dummy_irq_on()Jeff Garzik2007-10-12
* [libata] Bump driver versionsJeff Garzik2007-08-31
* [libata] pata_isapnp: replace missing module device tableJeff Garzik2007-08-15
* remove unused variable in pata_isapnpYoichi Yuasa2007-06-09
* libata: bump versionsJeff Garzik2007-05-21
* libata: convert the remaining PATA drivers to new init modelTejun Heo2007-04-28
* [libata] More PATA driver ->cable_detect supportJeff Garzik2007-04-28
* libata: clear drvdata in ata_host_release(), take#2Tejun Heo2007-03-01
* [libata] bump versionsJeff Garzik2007-02-26
* libata: add another IRQ calls (libata drivers)Akira Iguchi2007-02-09
* libata: convert to iomapTejun Heo2007-02-09
* libata: update libata LLDs to use devresTejun Heo2007-02-09
* [PATCH] libata: kill unnecessary sht->max_sectors initializationsTejun Heo2006-12-03
* [PATCH] libata: add missing sht->slave_destroyTejun Heo2006-11-29
* [libata] Don't use old-EH ->eng_timeout() hook when not neededJeff Garzik2006-09-27
* [libata] Add a bunch of PATA drivers.Jeff Garzik2006-08-29
per-channel cookie to the descriptor. * Note: caller is expected to hold a lock to prevent concurrency. */ static inline dma_cookie_t dma_cookie_assign(struct dma_async_tx_descriptor *tx) { struct dma_chan *chan = tx->chan; dma_cookie_t cookie; cookie = chan->cookie + 1; if (cookie < DMA_MIN_COOKIE) cookie = DMA_MIN_COOKIE; tx->cookie = chan->cookie = cookie; return cookie; } /** * dma_cookie_complete - complete a descriptor * @tx: descriptor to complete * * Mark this descriptor complete by updating the channels completed * cookie marker. Zero the descriptors cookie to prevent accidental * repeated completions. * * Note: caller is expected to hold a lock to prevent concurrency. */ static inline void dma_cookie_complete(struct dma_async_tx_descriptor *tx) { BUG_ON(tx->cookie < DMA_MIN_COOKIE); tx->chan->completed_cookie = tx->cookie; tx->cookie = 0; } /** * dma_cookie_status - report cookie status * @chan: dma channel * @cookie: cookie we are interested in * @state: dma_tx_state structure to return last/used cookies * * Report the status of the cookie, filling in the state structure if * non-NULL. No locking is required. */ static inline enum dma_status dma_cookie_status(struct dma_chan *chan, dma_cookie_t cookie, struct dma_tx_state *state) { dma_cookie_t used, complete; used = chan->cookie; complete = chan->completed_cookie; barrier(); if (state) { state->last = complete; state->used = used; state->residue = 0; } return dma_async_is_complete(cookie, complete, used); } static inline void dma_set_residue(struct dma_tx_state *state, u32 residue) { if (state) state->residue = residue; } #endif