Loading drivers/spi/pxa2xx_spi.c +14 −1 Original line number Diff line number Diff line Loading @@ -742,6 +742,18 @@ static irqreturn_t ssp_int(int irq, void *dev_id) { struct driver_data *drv_data = dev_id; void __iomem *reg = drv_data->ioaddr; u32 sccr1_reg = read_SSCR1(reg); u32 mask = drv_data->mask_sr; u32 status; status = read_SSSR(reg); /* Ignore possible writes if we don't need to write */ if (!(sccr1_reg & SSCR1_TIE)) mask &= ~SSSR_TFS; if (!(status & mask)) return IRQ_NONE; if (!drv_data->cur_msg) { Loading Loading @@ -1512,7 +1524,8 @@ static int __devinit pxa2xx_spi_probe(struct platform_device *pdev) drv_data->mask_sr = SSSR_TINT | SSSR_RFS | SSSR_TFS | SSSR_ROR; } status = request_irq(ssp->irq, ssp_int, 0, dev_name(dev), drv_data); status = request_irq(ssp->irq, ssp_int, IRQF_SHARED, dev_name(dev), drv_data); if (status < 0) { dev_err(&pdev->dev, "cannot get IRQ %d\n", ssp->irq); goto out_error_master_alloc; Loading Loading
drivers/spi/pxa2xx_spi.c +14 −1 Original line number Diff line number Diff line Loading @@ -742,6 +742,18 @@ static irqreturn_t ssp_int(int irq, void *dev_id) { struct driver_data *drv_data = dev_id; void __iomem *reg = drv_data->ioaddr; u32 sccr1_reg = read_SSCR1(reg); u32 mask = drv_data->mask_sr; u32 status; status = read_SSSR(reg); /* Ignore possible writes if we don't need to write */ if (!(sccr1_reg & SSCR1_TIE)) mask &= ~SSSR_TFS; if (!(status & mask)) return IRQ_NONE; if (!drv_data->cur_msg) { Loading Loading @@ -1512,7 +1524,8 @@ static int __devinit pxa2xx_spi_probe(struct platform_device *pdev) drv_data->mask_sr = SSSR_TINT | SSSR_RFS | SSSR_TFS | SSSR_ROR; } status = request_irq(ssp->irq, ssp_int, 0, dev_name(dev), drv_data); status = request_irq(ssp->irq, ssp_int, IRQF_SHARED, dev_name(dev), drv_data); if (status < 0) { dev_err(&pdev->dev, "cannot get IRQ %d\n", ssp->irq); goto out_error_master_alloc; Loading