Skip to content

Commit

Permalink
spi/dw_spi: Allow interrupt sharing
Browse files Browse the repository at this point in the history
Allow interrupt sharing since exclusive interrupt line for
DW SPI controller is not provided on every platform.

Signed-off-by: Yong Wang <yong.y.wang@intel.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
  • Loading branch information
Yong Wang authored and Grant Likely committed Sep 8, 2010
1 parent 9d8f86b commit cbcc062
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion drivers/spi/dw_spi.c
Original file line number Diff line number Diff line change
Expand Up @@ -396,6 +396,11 @@ static irqreturn_t interrupt_transfer(struct dw_spi *dws)
static irqreturn_t dw_spi_irq(int irq, void *dev_id)
{
struct dw_spi *dws = dev_id;
u16 irq_status, irq_mask = 0x3f;

irq_status = dw_readw(dws, isr) & irq_mask;
if (!irq_status)
return IRQ_NONE;

if (!dws->cur_msg) {
spi_mask_intr(dws, SPI_INT_TXEI);
Expand Down Expand Up @@ -883,7 +888,7 @@ int __devinit dw_spi_add_host(struct dw_spi *dws)
dws->dma_inited = 0;
dws->dma_addr = (dma_addr_t)(dws->paddr + 0x60);

ret = request_irq(dws->irq, dw_spi_irq, 0,
ret = request_irq(dws->irq, dw_spi_irq, IRQF_SHARED,
"dw_spi", dws);
if (ret < 0) {
dev_err(&master->dev, "can not get IRQ\n");
Expand Down

0 comments on commit cbcc062

Please sign in to comment.