Skip to content

libata: irq_on/off restructuring (take #2)

Albert Lee linux-ide 1 version Applied

Status from this message: applied

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest7 patches 6 repliesApplied

Patches in v1 Applied

#Subject and filesSizeRepliesApplied
1/7libata: remove irq_on from ata_bus_reset() and ata_std_postreset()drivers/ata/libata-core.c drivers/ata/pata_scc.c+0 -111 reply
2/7sata_promise: pdc_freeze() semantic changedrivers/ata/sata_promise.c+0 -11 reply
3/7libata: add freeze/thaw to old EH LLDDsdrivers/ata/pata_ixp4xx_cf.c drivers/ata/pata_scc.c drivers/ata/pdc_adma.c +3 more+31 -00 replies
4/7libata: use freeze/thaw for polling PIOdrivers/ata/libata-core.c include/linux/libata.h+5 -101 reply
5/7libata: integrate freeze/thaw with irq_on/offdrivers/ata/ahci.c drivers/ata/ata_generic.c drivers/ata/ata_piix.c +65 more+231 -3882 replies
6/7libata: remove nIEN handling from ata_tf_load()drivers/ata/libata-sff.c drivers/ata/pata_scc.c drivers/ata/sata_svw.c +1 more+13 -390 replies
7/7libata: remove ap->last_ctldrivers/ata/libata-core.c drivers/ata/libata-sff.c drivers/ata/pata_scc.c +1 more+0 -61 reply

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/7] libata: irq_on/off restructuring (take #2)

(Revised per Tejun's advice.)
For ATA, there are two levels of mechanism available to turn irq on/off.
- device level: nIEN bit in the control register. This masks INTRQ from the device.
- host adapter level: some controllers can mask out per-port irq from the host adapter.

Currently various parts of libata deal with irq on/off.
ex. tf_load() can alter the nIEN bit.
ex. irq_on() also alters the device level nIEN bit. ex. freeze()/thaw() deal with the host adapter irq mask.

It seems these irq_on/off codes could be better structured. Patches against the libata-dev tree for your review, thanks.

1/7: remove irq_on from ata_bus_reset() and ata_std_postreset() 2/7: sata_promise::pdc_freeze() semantic change
3/7: add freeze()/thaw() to old EH LLDDs
4/7: use freeze()/thaw() for polling PIO
5/7: integrate freeze/thaw with irq_on/off
6/7: tf_load() cleanup
7/7: remove ap->last_ctl