diff options
Diffstat (limited to 'drivers/net/smc91x.c')
-rw-r--r-- | drivers/net/smc91x.c | 53 |
1 files changed, 24 insertions, 29 deletions
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c index 75e9b3b910cc..0e9833adf9fe 100644 --- a/drivers/net/smc91x.c +++ b/drivers/net/smc91x.c | |||
@@ -215,15 +215,12 @@ struct smc_local { | |||
215 | 215 | ||
216 | spinlock_t lock; | 216 | spinlock_t lock; |
217 | 217 | ||
218 | #ifdef SMC_CAN_USE_DATACS | ||
219 | u32 __iomem *datacs; | ||
220 | #endif | ||
221 | |||
222 | #ifdef SMC_USE_PXA_DMA | 218 | #ifdef SMC_USE_PXA_DMA |
223 | /* DMA needs the physical address of the chip */ | 219 | /* DMA needs the physical address of the chip */ |
224 | u_long physaddr; | 220 | u_long physaddr; |
225 | #endif | 221 | #endif |
226 | void __iomem *base; | 222 | void __iomem *base; |
223 | void __iomem *datacs; | ||
227 | }; | 224 | }; |
228 | 225 | ||
229 | #if SMC_DEBUG > 0 | 226 | #if SMC_DEBUG > 0 |
@@ -2104,9 +2101,8 @@ static int smc_enable_device(struct platform_device *pdev) | |||
2104 | * Set the appropriate byte/word mode. | 2101 | * Set the appropriate byte/word mode. |
2105 | */ | 2102 | */ |
2106 | ecsr = readb(addr + (ECSR << SMC_IO_SHIFT)) & ~ECSR_IOIS8; | 2103 | ecsr = readb(addr + (ECSR << SMC_IO_SHIFT)) & ~ECSR_IOIS8; |
2107 | #ifndef SMC_CAN_USE_16BIT | 2104 | if (!SMC_CAN_USE_16BIT) |
2108 | ecsr |= ECSR_IOIS8; | 2105 | ecsr |= ECSR_IOIS8; |
2109 | #endif | ||
2110 | writeb(ecsr, addr + (ECSR << SMC_IO_SHIFT)); | 2106 | writeb(ecsr, addr + (ECSR << SMC_IO_SHIFT)); |
2111 | local_irq_restore(flags); | 2107 | local_irq_restore(flags); |
2112 | 2108 | ||
@@ -2143,40 +2139,39 @@ static void smc_release_attrib(struct platform_device *pdev) | |||
2143 | release_mem_region(res->start, ATTRIB_SIZE); | 2139 | release_mem_region(res->start, ATTRIB_SIZE); |
2144 | } | 2140 | } |
2145 | 2141 | ||
2146 | #ifdef SMC_CAN_USE_DATACS | 2142 | static inline void smc_request_datacs(struct platform_device *pdev, struct net_device *ndev) |
2147 | static void smc_request_datacs(struct platform_device *pdev, struct net_device *ndev) | ||
2148 | { | 2143 | { |
2149 | struct resource * res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-data32"); | 2144 | if (SMC_CAN_USE_DATACS) { |
2150 | struct smc_local *lp = netdev_priv(ndev); | 2145 | struct resource * res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-data32"); |
2146 | struct smc_local *lp = netdev_priv(ndev); | ||
2151 | 2147 | ||
2152 | if (!res) | 2148 | if (!res) |
2153 | return; | 2149 | return; |
2154 | 2150 | ||
2155 | if(!request_mem_region(res->start, SMC_DATA_EXTENT, CARDNAME)) { | 2151 | if(!request_mem_region(res->start, SMC_DATA_EXTENT, CARDNAME)) { |
2156 | printk(KERN_INFO "%s: failed to request datacs memory region.\n", CARDNAME); | 2152 | printk(KERN_INFO "%s: failed to request datacs memory region.\n", CARDNAME); |
2157 | return; | 2153 | return; |
2158 | } | 2154 | } |
2159 | 2155 | ||
2160 | lp->datacs = ioremap(res->start, SMC_DATA_EXTENT); | 2156 | lp->datacs = ioremap(res->start, SMC_DATA_EXTENT); |
2157 | } | ||
2161 | } | 2158 | } |
2162 | 2159 | ||
2163 | static void smc_release_datacs(struct platform_device *pdev, struct net_device *ndev) | 2160 | static void smc_release_datacs(struct platform_device *pdev, struct net_device *ndev) |
2164 | { | 2161 | { |
2165 | struct smc_local *lp = netdev_priv(ndev); | 2162 | if (SMC_CAN_USE_DATACS) { |
2166 | struct resource * res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-data32"); | 2163 | struct smc_local *lp = netdev_priv(ndev); |
2164 | struct resource * res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-data32"); | ||
2167 | 2165 | ||
2168 | if (lp->datacs) | 2166 | if (lp->datacs) |
2169 | iounmap(lp->datacs); | 2167 | iounmap(lp->datacs); |
2170 | 2168 | ||
2171 | lp->datacs = NULL; | 2169 | lp->datacs = NULL; |
2172 | 2170 | ||
2173 | if (res) | 2171 | if (res) |
2174 | release_mem_region(res->start, SMC_DATA_EXTENT); | 2172 | release_mem_region(res->start, SMC_DATA_EXTENT); |
2173 | } | ||
2175 | } | 2174 | } |
2176 | #else | ||
2177 | static void smc_request_datacs(struct platform_device *pdev, struct net_device *ndev) {} | ||
2178 | static void smc_release_datacs(struct platform_device *pdev, struct net_device *ndev) {} | ||
2179 | #endif | ||
2180 | 2175 | ||
2181 | /* | 2176 | /* |
2182 | * smc_init(void) | 2177 | * smc_init(void) |