diff options
Diffstat (limited to 'target/linux')
| -rw-r--r-- | target/linux/ar71xx/patches-3.3/206-spi-ath79-make-chipselect-logic-more-flexible.patch | 17 | ||||
| -rw-r--r-- | target/linux/ar71xx/patches-3.3/463-spi-ath79-add-fast-flash-read.patch | 10 | 
2 files changed, 15 insertions, 12 deletions
| diff --git a/target/linux/ar71xx/patches-3.3/206-spi-ath79-make-chipselect-logic-more-flexible.patch b/target/linux/ar71xx/patches-3.3/206-spi-ath79-make-chipselect-logic-more-flexible.patch index 91713e677..5a4c0df5d 100644 --- a/target/linux/ar71xx/patches-3.3/206-spi-ath79-make-chipselect-logic-more-flexible.patch +++ b/target/linux/ar71xx/patches-3.3/206-spi-ath79-make-chipselect-logic-more-flexible.patch @@ -178,7 +178,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>   	if (is_active) {   		/* set initial clock polarity */ -@@ -80,20 +83,21 @@ static void ath79_spi_chipselect(struct +@@ -80,20 +83,24 @@ static void ath79_spi_chipselect(struct   		ath79_spi_wr(sp, AR71XX_SPI_REG_IOC, sp->ioc_base);   	} @@ -203,13 +203,16 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>  +	case ATH79_SPI_CS_TYPE_GPIO:  +		/* SPI is normally active-low */ -+		gpio_set_value(cdata->cs_line, cs_high); ++		if (gpio_cansleep(cdata->cs_line)) ++			gpio_set_value_cansleep(cdata->cs_line, cs_high); ++		else ++			gpio_set_value(cdata->cs_line, cs_high);  +		break;  +	}   }   static void ath79_spi_enable(struct ath79_spi *sp) -@@ -120,24 +124,30 @@ static void ath79_spi_disable(struct ath +@@ -120,24 +127,30 @@ static void ath79_spi_disable(struct ath   static int ath79_spi_setup_cs(struct spi_device *spi)   {   	struct ath79_spi_controller_data *cdata; @@ -244,7 +247,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>   	}   	return status; -@@ -145,9 +155,19 @@ static int ath79_spi_setup_cs(struct spi +@@ -145,9 +158,19 @@ static int ath79_spi_setup_cs(struct spi   static void ath79_spi_cleanup_cs(struct spi_device *spi)   { @@ -267,7 +270,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>   	}   } -@@ -155,6 +175,9 @@ static int ath79_spi_setup(struct spi_de +@@ -155,6 +178,9 @@ static int ath79_spi_setup(struct spi_de   {   	int status = 0; @@ -277,7 +280,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>   	if (spi->bits_per_word > 32)   		return -EINVAL; -@@ -215,6 +238,10 @@ static __devinit int ath79_spi_probe(str +@@ -215,6 +241,10 @@ static __devinit int ath79_spi_probe(str   	unsigned long rate;   	int ret; @@ -288,7 +291,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>   	master = spi_alloc_master(&pdev->dev, sizeof(*sp));   	if (master == NULL) {   		dev_err(&pdev->dev, "failed to allocate spi master\n"); -@@ -224,17 +251,10 @@ static __devinit int ath79_spi_probe(str +@@ -224,17 +254,10 @@ static __devinit int ath79_spi_probe(str   	sp = spi_master_get_devdata(master);   	platform_set_drvdata(pdev, sp); diff --git a/target/linux/ar71xx/patches-3.3/463-spi-ath79-add-fast-flash-read.patch b/target/linux/ar71xx/patches-3.3/463-spi-ath79-add-fast-flash-read.patch index 5268ad44c..9ccc4a45e 100644 --- a/target/linux/ar71xx/patches-3.3/463-spi-ath79-add-fast-flash-read.patch +++ b/target/linux/ar71xx/patches-3.3/463-spi-ath79-add-fast-flash-read.patch @@ -24,7 +24,7 @@   };   static inline u32 ath79_spi_rr(struct ath79_spi *sp, unsigned reg) -@@ -108,9 +118,6 @@ static void ath79_spi_enable(struct ath7 +@@ -111,9 +121,6 @@ static void ath79_spi_enable(struct ath7   	/* save CTRL register */   	sp->reg_ctrl = ath79_spi_rr(sp, AR71XX_SPI_REG_CTRL);   	sp->ioc_base = ath79_spi_rr(sp, AR71XX_SPI_REG_IOC); @@ -34,7 +34,7 @@   }   static void ath79_spi_disable(struct ath79_spi *sp) -@@ -229,6 +236,110 @@ static u32 ath79_spi_txrx_mode0(struct s +@@ -232,6 +239,110 @@ static u32 ath79_spi_txrx_mode0(struct s   	return ath79_spi_rr(sp, AR71XX_SPI_REG_RDS);   } @@ -145,7 +145,7 @@   static __devinit int ath79_spi_probe(struct platform_device *pdev)   {   	struct spi_master *master; -@@ -251,6 +362,8 @@ static __devinit int ath79_spi_probe(str +@@ -254,6 +365,8 @@ static __devinit int ath79_spi_probe(str   	sp = spi_master_get_devdata(master);   	platform_set_drvdata(pdev, sp); @@ -154,7 +154,7 @@   	master->setup = ath79_spi_setup;   	master->cleanup = ath79_spi_cleanup;   	master->bus_num = pdata->bus_num; -@@ -259,7 +372,7 @@ static __devinit int ath79_spi_probe(str +@@ -262,7 +375,7 @@ static __devinit int ath79_spi_probe(str   	sp->bitbang.master = spi_master_get(master);   	sp->bitbang.chipselect = ath79_spi_chipselect;   	sp->bitbang.txrx_word[SPI_MODE_0] = ath79_spi_txrx_mode0; @@ -163,7 +163,7 @@   	sp->bitbang.flags = SPI_CS_HIGH;   	r = platform_get_resource(pdev, IORESOURCE_MEM, 0); -@@ -284,7 +397,8 @@ static __devinit int ath79_spi_probe(str +@@ -287,7 +400,8 @@ static __devinit int ath79_spi_probe(str   	if (ret)   		goto err_clk_put; | 
