On Mon, 2015-07-27 at 17:03 +0800, kbuild test robot wrote: > tree: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git > master > head: 8fff755e9f8d0f70a595e79f248695ce6aef5cc3 > commit: f2ce8a9e48385f444389e75cfe293637c3eb5410 [41/49] net/macb: > improve big endian CPU support > config: arm-at91_dt_defconfig (attached as .config) > reproduce: > wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp > -tests.git/plain/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > git checkout f2ce8a9e48385f444389e75cfe293637c3eb5410 > # save the attached .config to linux build tree > make.cross ARCH=arm
Oh, no. I do use compiler from Debian for AVR32, didn't check this on other architectures. Possible something like following will fix it: --- a/drivers/net/ethernet/cadence/macb.h +++ b/drivers/net/ethernet/cadence/macb.h @@ -429,12 +429,12 @@ | GEM_BF(name, value)) /* Register access macros */ -#define macb_readl(port, reg) (port)->readl((port), MACB_##reg) -#define macb_writel(port, reg, value) (port)->writel((port), MACB_##reg, (value)) -#define gem_readl(port, reg) (port)->readl((port), GEM_##reg) -#define gem_writel(port, reg, value) (port)->writel((port), GEM_##reg, (value)) -#define queue_readl(queue, reg) (queue)->bp ->readl((queue)->bp, (queue)->reg) -#define queue_writel(queue, reg, value) (queue)->bp ->writel((queue)->bp, (queue)->reg, (value)) +#define macb_readl(port, reg) port->readl(port, MACB_##reg) +#define macb_writel(port, reg, value) port->writel(port, MACB_##reg, (value)) +#define gem_readl(port, reg) port->readl(port, GEM_##reg) +#define gem_writel(port, reg, value) port->writel(port, GEM_##reg, (value)) +#define queue_readl(queue, reg) queue->bp->readl(queue ->bp, queue->reg) +#define queue_writel(queue, reg, value) queue->bp->writel(queue ->bp, queue->reg, (value)) /* Conditional GEM/MACB macros. These perform the operation to the correct * register dependent on whether the device is a GEM or a MACB. For registers > > All error/warnings (new ones prefixed by >>): > > drivers/net/ethernet/cadence/macb.c: In function > 'macb_set_hwaddr': > > > drivers/net/ethernet/cadence/macb.c:164:1: error: macro "writel" > > > passed 3 arguments, but takes just 2 > macb_or_gem_writel(bp, SA1B, bottom); > ^ > In file included from drivers/net/ethernet/cadence/macb.c:34:0: > > > drivers/net/ethernet/cadence/macb.h:435:38: warning: statement > > > with no effect [-Wunused-value] > #define gem_writel(port, reg, value) (port)->writel((port), > GEM_##reg, (value)) > ^ > > > drivers/net/ethernet/cadence/macb.h:447:4: note: in expansion of > > > macro 'gem_writel' > gem_writel((__bp), __reg, __value); \ > ^ > > > drivers/net/ethernet/cadence/macb.c:164:2: note: in expansion of > > > macro 'macb_or_gem_writel' > macb_or_gem_writel(bp, SA1B, bottom); > ^ > > > drivers/net/ethernet/cadence/macb.c:164:1: error: macro "writel" > > > passed 3 arguments, but takes just 2 > macb_or_gem_writel(bp, SA1B, bottom); > ^ > In file included from drivers/net/ethernet/cadence/macb.c:34:0: > drivers/net/ethernet/cadence/macb.h:433:39: warning: statement > with no effect [-Wunused-value] > #define macb_writel(port, reg, value) (port)->writel((port), > MACB_##reg, (value)) > ^ > > > drivers/net/ethernet/cadence/macb.h:449:4: note: in expansion of > > > macro 'macb_writel' > macb_writel((__bp), __reg, __value); \ > ^ > > > drivers/net/ethernet/cadence/macb.c:164:2: note: in expansion of > > > macro 'macb_or_gem_writel' > macb_or_gem_writel(bp, SA1B, bottom); > ^ > drivers/net/ethernet/cadence/macb.c:166:1: error: macro "writel" > passed 3 arguments, but takes just 2 > macb_or_gem_writel(bp, SA1T, top); > ^ > In file included from drivers/net/ethernet/cadence/macb.c:34:0: > > > drivers/net/ethernet/cadence/macb.h:435:38: warning: statement > > > with no effect [-Wunused-value] > #define gem_writel(port, reg, value) (port)->writel((port), > GEM_##reg, (value)) > ^ > > > drivers/net/ethernet/cadence/macb.h:447:4: note: in expansion of > > > macro 'gem_writel' > gem_writel((__bp), __reg, __value); \ > ^ > drivers/net/ethernet/cadence/macb.c:166:2: note: in expansion of > macro 'macb_or_gem_writel' > macb_or_gem_writel(bp, SA1T, top); > ^ > drivers/net/ethernet/cadence/macb.c:166:1: error: macro "writel" > passed 3 arguments, but takes just 2 > macb_or_gem_writel(bp, SA1T, top); > ^ > In file included from drivers/net/ethernet/cadence/macb.c:34:0: > drivers/net/ethernet/cadence/macb.h:433:39: warning: statement > with no effect [-Wunused-value] > #define macb_writel(port, reg, value) (port)->writel((port), > MACB_##reg, (value)) > ^ > > > drivers/net/ethernet/cadence/macb.h:449:4: note: in expansion of > > > macro 'macb_writel' > macb_writel((__bp), __reg, __value); \ > ^ > drivers/net/ethernet/cadence/macb.c:166:2: note: in expansion of > macro 'macb_or_gem_writel' > macb_or_gem_writel(bp, SA1T, top); > ^ > drivers/net/ethernet/cadence/macb.c:169:1: error: macro "writel" > passed 3 arguments, but takes just 2 > macb_or_gem_writel(bp, SA2B, 0); > ^ > In file included from drivers/net/ethernet/cadence/macb.c:34:0: > > > drivers/net/ethernet/cadence/macb.h:435:38: warning: statement > > > with no effect [-Wunused-value] > #define gem_writel(port, reg, value) (port)->writel((port), > GEM_##reg, (value)) > ^ > > > drivers/net/ethernet/cadence/macb.h:447:4: note: in expansion of > > > macro 'gem_writel' > gem_writel((__bp), __reg, __value); \ > ^ > drivers/net/ethernet/cadence/macb.c:169:2: note: in expansion of > macro 'macb_or_gem_writel' > macb_or_gem_writel(bp, SA2B, 0); > ^ > drivers/net/ethernet/cadence/macb.c:169:1: error: macro "writel" > passed 3 arguments, but takes just 2 > macb_or_gem_writel(bp, SA2B, 0); > ^ > In file included from drivers/net/ethernet/cadence/macb.c:34:0: > drivers/net/ethernet/cadence/macb.h:433:39: warning: statement > with no effect [-Wunused-value] > #define macb_writel(port, reg, value) (port)->writel((port), > MACB_##reg, (value)) > ^ > > > drivers/net/ethernet/cadence/macb.h:449:4: note: in expansion of > > > macro 'macb_writel' > macb_writel((__bp), __reg, __value); \ > ^ > drivers/net/ethernet/cadence/macb.c:169:2: note: in expansion of > macro 'macb_or_gem_writel' > macb_or_gem_writel(bp, SA2B, 0); > ^ > drivers/net/ethernet/cadence/macb.c:170:1: error: macro "writel" > passed 3 arguments, but takes just 2 > macb_or_gem_writel(bp, SA2T, 0); > ^ > In file included from drivers/net/ethernet/cadence/macb.c:34:0: > > > drivers/net/ethernet/cadence/macb.h:435:38: warning: statement > > > with no effect [-Wunused-value] > #define gem_writel(port, reg, value) (port)->writel((port), > GEM_##reg, (value)) > ^ > > > drivers/net/ethernet/cadence/macb.h:447:4: note: in expansion of > > > macro 'gem_writel' > gem_writel((__bp), __reg, __value); \ > ^ > drivers/net/ethernet/cadence/macb.c:170:2: note: in expansion of > macro 'macb_or_gem_writel' > macb_or_gem_writel(bp, SA2T, 0); > ^ > drivers/net/ethernet/cadence/macb.c:170:1: error: macro "writel" > passed 3 arguments, but takes just 2 > macb_or_gem_writel(bp, SA2T, 0); > ^ > In file included from drivers/net/ethernet/cadence/macb.c:34:0: > drivers/net/ethernet/cadence/macb.h:433:39: warning: statement > with no effect [-Wunused-value] > #define macb_writel(port, reg, value) (port)->writel((port), > MACB_##reg, (value)) > ^ > > > drivers/net/ethernet/cadence/macb.h:449:4: note: in expansion of > > > macro 'macb_writel' > macb_writel((__bp), __reg, __value); \ > ^ > drivers/net/ethernet/cadence/macb.c:170:2: note: in expansion of > macro 'macb_or_gem_writel' > macb_or_gem_writel(bp, SA2T, 0); > ^ > drivers/net/ethernet/cadence/macb.c:171:1: error: macro "writel" > passed 3 arguments, but takes just 2 > macb_or_gem_writel(bp, SA3B, 0); > ^ > In file included from drivers/net/ethernet/cadence/macb.c:34:0: > > > drivers/net/ethernet/cadence/macb.h:435:38: warning: statement > > > with no effect [-Wunused-value] > #define gem_writel(port, reg, value) (port)->writel((port), > GEM_##reg, (value)) > ^ > > > drivers/net/ethernet/cadence/macb.h:447:4: note: in expansion of > > > macro 'gem_writel' > gem_writel((__bp), __reg, __value); \ > ^ > drivers/net/ethernet/cadence/macb.c:171:2: note: in expansion of > macro 'macb_or_gem_writel' > macb_or_gem_writel(bp, SA3B, 0); > ^ > drivers/net/ethernet/cadence/macb.c:171:1: error: macro "writel" > passed 3 arguments, but takes just 2 > macb_or_gem_writel(bp, SA3B, 0); > ^ > In file included from drivers/net/ethernet/cadence/macb.c:34:0: > drivers/net/ethernet/cadence/macb.h:433:39: warning: statement > with no effect [-Wunused-value] > #define macb_writel(port, reg, value) (port)->writel((port), > MACB_##reg, (value)) > ^ > > > drivers/net/ethernet/cadence/macb.h:449:4: note: in expansion of > > > macro 'macb_writel' > macb_writel((__bp), __reg, __value); \ > ^ > drivers/net/ethernet/cadence/macb.c:171:2: note: in expansion of > macro 'macb_or_gem_writel' > macb_or_gem_writel(bp, SA3B, 0); > ^ > drivers/net/ethernet/cadence/macb.c:172:1: error: macro "writel" > passed 3 arguments, but takes just 2 > macb_or_gem_writel(bp, SA3T, 0); > ^ > In file included from drivers/net/ethernet/cadence/macb.c:34:0: > > > drivers/net/ethernet/cadence/macb.h:435:38: warning: statement > > > with no effect [-Wunused-value] > #define gem_writel(port, reg, value) (port)->writel((port), > GEM_##reg, (value)) > ^ > > vim +/writel +164 drivers/net/ethernet/cadence/macb.c > > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 28 #include <linux/phy.h> > b17471f5d drivers/net/ethernet/cadence/macb.c Olof Johansson > 2011-12-20 29 #include <linux/of.h> > fb97a8466 drivers/net/ethernet/cadence/macb.c Jean-Christophe > PLAGNIOL-VILLARD 2011-11-18 30 #include <linux/of_device.h> > 148cbb53a drivers/net/ethernet/cadence/macb.c Boris BREZILLON > 2013-08-22 31 #include <linux/of_mdio.h> > fb97a8466 drivers/net/ethernet/cadence/macb.c Jean-Christophe > PLAGNIOL-VILLARD 2011-11-18 32 #include <linux/of_net.h> > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 33 > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 @34 #include "macb.h" > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 35 > 1b44791ab drivers/net/ethernet/cadence/macb.c Nicolas Ferre > 2013-06-04 36 #define MACB_RX_BUFFER_SIZE 128 > 1b44791ab drivers/net/ethernet/cadence/macb.c Nicolas Ferre > 2013-06-04 37 #define RX_BUFFER_MULTIPLE 64 /* bytes > */ > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 38 #define RX_RING_SIZE 512 /* must > be power of 2 */ > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 39 #define RX_RING_BYTES (siz > eof(struct macb_dma_desc) * RX_RING_SIZE) > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 40 > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 41 #define TX_RING_SIZE 128 /* must > be power of 2 */ > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 42 #define TX_RING_BYTES (siz > eof(struct macb_dma_desc) * TX_RING_SIZE) > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 43 > 909a85834 drivers/net/ethernet/cadence/macb.c Nicolas Ferre > 2012-11-19 44 /* level of occupied TX descriptors under > which we wake up TX process */ > 909a85834 drivers/net/ethernet/cadence/macb.c Nicolas Ferre > 2012-11-19 45 #define MACB_TX_WAKEUP_THRESH (3 * > TX_RING_SIZE / 4) > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 46 > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 47 #define MACB_RX_INT_FLAGS (MACB_BIT(RC > OMP) | MACB_BIT(RXUBR) \ > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 48 | > MACB_BIT(ISR_ROVR)) > e86cd53af drivers/net/ethernet/cadence/macb.c Nicolas Ferre > 2012-10-31 49 #define MACB_TX_ERR_FLAGS (MACB_BIT(IS > R_TUND) \ > e86cd53af drivers/net/ethernet/cadence/macb.c Nicolas Ferre > 2012-10-31 50 | > MACB_BIT(ISR_RLE) \ > e86cd53af drivers/net/ethernet/cadence/macb.c Nicolas Ferre > 2012-10-31 51 | > MACB_BIT(TXERR)) > e86cd53af drivers/net/ethernet/cadence/macb.c Nicolas Ferre > 2012-10-31 52 #define MACB_TX_INT_FLAGS (MACB_TX_ERR > _FLAGS | MACB_BIT(TCOMP)) > e86cd53af drivers/net/ethernet/cadence/macb.c Nicolas Ferre > 2012-10-31 53 > a4c35ed3f drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2014-07-24 54 #define MACB_MAX_TX_LEN ((un > signed int)((1 << MACB_TX_FRMLEN_SIZE) - 1)) > a4c35ed3f drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2014-07-24 55 #define GEM_MAX_TX_LEN ((un > signed int)((1 << GEM_TX_FRMLEN_SIZE) - 1)) > a4c35ed3f drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2014-07-24 56 > a5898ea09 drivers/net/ethernet/cadence/macb.c Harini Katakam > 2015-05-06 57 #define GEM_MTU_MIN_SIZE 68 > a5898ea09 drivers/net/ethernet/cadence/macb.c Harini Katakam > 2015-05-06 58 > e86cd53af drivers/net/ethernet/cadence/macb.c Nicolas Ferre > 2012-10-31 59 /* > e86cd53af drivers/net/ethernet/cadence/macb.c Nicolas Ferre > 2012-10-31 60 * Graceful stop timeouts in us. We should > allow up to > e86cd53af drivers/net/ethernet/cadence/macb.c Nicolas Ferre > 2012-10-31 61 * 1 frame time (10 Mbits/s, full-duplex, > ignoring collisions) > e86cd53af drivers/net/ethernet/cadence/macb.c Nicolas Ferre > 2012-10-31 62 */ > e86cd53af drivers/net/ethernet/cadence/macb.c Nicolas Ferre > 2012-10-31 63 #define MACB_HALT_TIMEOUT 1230 > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 64 > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 65 /* Ring buffer accessors */ > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 66 static unsigned int > macb_tx_ring_wrap(unsigned int index) > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 67 { > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 68 return index & (TX_RING_SIZE - 1); > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 69 } > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 70 > 02c958dd3 drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2014-12-12 71 static struct macb_dma_desc > *macb_tx_desc(struct macb_queue *queue, > 02c958dd3 drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2014-12-12 72 > unsigned int index) > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 73 { > 02c958dd3 drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2014-12-12 74 return &queue > ->tx_ring[macb_tx_ring_wrap(index)]; > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 75 } > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 76 > 02c958dd3 drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2014-12-12 77 static struct macb_tx_skb > *macb_tx_skb(struct macb_queue *queue, > 02c958dd3 drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2014-12-12 78 > unsigned int index) > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 79 { > 02c958dd3 drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2014-12-12 80 return &queue > ->tx_skb[macb_tx_ring_wrap(index)]; > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 81 } > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 82 > 02c958dd3 drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2014-12-12 83 static dma_addr_t macb_tx_dma(struct > macb_queue *queue, unsigned int index) > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 84 { > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 85 dma_addr_t offset; > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 86 > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 87 offset = macb_tx_ring_wrap(index) * > sizeof(struct macb_dma_desc); > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 88 > 02c958dd3 drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2014-12-12 89 return queue->tx_ring_dma + offset; > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 90 } > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 91 > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 92 static unsigned int > macb_rx_ring_wrap(unsigned int index) > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 93 { > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 94 return index & (RX_RING_SIZE - 1); > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 95 } > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 96 > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 97 static struct macb_dma_desc > *macb_rx_desc(struct macb *bp, unsigned int index) > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 98 { > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 99 return &bp > ->rx_ring[macb_rx_ring_wrap(index)]; > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 100 } > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 101 > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 102 static void *macb_rx_buffer(struct macb > *bp, unsigned int index) > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 103 { > 1b44791ab drivers/net/ethernet/cadence/macb.c Nicolas Ferre > 2013-06-04 104 return bp->rx_buffers + bp > ->rx_buffer_size * macb_rx_ring_wrap(index); > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 105 } > 55054a16a drivers/net/ethernet/cadence/macb.c Havard Skinnemoen > 2012-10-31 106 > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 107 /* I/O accessors */ > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 108 static u32 hw_readl_native(struct macb > *bp, int offset) > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 109 { > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 110 return __raw_readl(bp->regs + > offset); > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 111 } > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 112 > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 113 static void hw_writel_native(struct macb > *bp, int offset, u32 value) > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 114 { > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 115 __raw_writel(value, bp->regs + > offset); > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 116 } > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 117 > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 118 static u32 hw_readl(struct macb *bp, int > offset) > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 119 { > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 120 return readl_relaxed(bp->regs + > offset); > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 121 } > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 122 > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 123 static void hw_writel(struct macb *bp, int > offset, u32 value) > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 124 { > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 125 writel_relaxed(value, bp->regs + > offset); > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 126 } > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 127 > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 128 /* > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 129 * Find the CPU endianness by using the > loopback bit of NCR register. When the > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 130 * CPU is in big endian we need to program > swaped mode for management > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 131 * descriptor access. > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 132 */ > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 133 static bool hw_is_native_io(void __iomem > *addr) > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 134 { > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 135 u32 value = MACB_BIT(LLB); > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 136 > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 137 __raw_writel(value, addr + > MACB_NCR); > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 138 value = __raw_readl(addr + > MACB_NCR); > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 139 > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 140 /* Write 0 back to disable > everything */ > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 141 __raw_writel(0, addr + MACB_NCR); > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 142 > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 143 return value == MACB_BIT(LLB); > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 144 } > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 145 > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 146 static bool hw_is_gem(void __iomem *addr, > bool native_io) > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 147 { > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 148 u32 id; > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 149 > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 150 if (native_io) > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 151 id = __raw_readl(addr + > MACB_MID); > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 152 else > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 153 id = readl_relaxed(addr + > MACB_MID); > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 154 > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 155 return MACB_BFEXT(IDNUM, id) >= 0x2; > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 156 } > f2ce8a9e4 drivers/net/ethernet/cadence/macb.c Andy Shevchenko > 2015-07-24 157 > 421d9df06 drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2015-03-07 158 static void macb_set_hwaddr(struct macb > *bp) > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 159 { > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 160 u32 bottom; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 161 u16 top; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 162 > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 163 bottom = cpu_to_le32(*((u32 *)bp > ->dev->dev_addr)); > f75ba50bd drivers/net/ethernet/cadence/macb.c Jamie Iles > 2011-11-08 @164 macb_or_gem_writel(bp, SA1B, > bottom); > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 165 top = cpu_to_le16(*((u16 *)(bp->dev > ->dev_addr + 4))); > f75ba50bd drivers/net/ethernet/cadence/macb.c Jamie Iles > 2011-11-08 166 macb_or_gem_writel(bp, SA1T, top); > 3629a6ceb drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-11 167 > 3629a6ceb drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-11 168 /* Clear unused address register > sets */ > 3629a6ceb drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-11 169 macb_or_gem_writel(bp, SA2B, 0); > 3629a6ceb drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-11 170 macb_or_gem_writel(bp, SA2T, 0); > 3629a6ceb drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-11 171 macb_or_gem_writel(bp, SA3B, 0); > 3629a6ceb drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-11 172 macb_or_gem_writel(bp, SA3T, 0); > 3629a6ceb drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-11 173 macb_or_gem_writel(bp, SA4B, 0); > 3629a6ceb drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-11 @174 macb_or_gem_writel(bp, SA4T, 0); > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 175 } > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 176 > 421d9df06 drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2015-03-07 177 static void macb_get_hwaddr(struct macb > *bp) > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 178 { > d25e78aaf drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 179 struct macb_platform_data *pdata; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 180 u32 bottom; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 181 u16 top; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 182 u8 addr[6]; > 17b8bb3e2 drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 183 int i; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 184 > c607a0d99 drivers/net/ethernet/cadence/macb.c Jingoo Han > 2013-08-30 185 pdata = dev_get_platdata(&bp->pdev > ->dev); > d25e78aaf drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 186 > 17b8bb3e2 drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 187 /* Check all 4 address register for > vaild address */ > 17b8bb3e2 drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 188 for (i = 0; i < 4; i++) { > 17b8bb3e2 drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 @189 bottom = > macb_or_gem_readl(bp, SA1B + i * 8); > 17b8bb3e2 drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 190 top = macb_or_gem_readl(bp, > SA1T + i * 8); > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 191 > d25e78aaf drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 192 if (pdata && pdata > ->rev_eth_addr) { > d25e78aaf drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 193 addr[5] = bottom & > 0xff; > d25e78aaf drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 194 addr[4] = (bottom >> > 8) & 0xff; > d25e78aaf drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 195 addr[3] = (bottom >> > 16) & 0xff; > d25e78aaf drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 196 addr[2] = (bottom >> > 24) & 0xff; > d25e78aaf drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 197 addr[1] = top & > 0xff; > d25e78aaf drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 198 addr[0] = (top & > 0xff00) >> 8; > d25e78aaf drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 199 } else { > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 200 addr[0] = bottom & > 0xff; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 201 addr[1] = (bottom >> > 8) & 0xff; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 202 addr[2] = (bottom >> > 16) & 0xff; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 203 addr[3] = (bottom >> > 24) & 0xff; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 204 addr[4] = top & > 0xff; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 205 addr[5] = (top >> 8) > & 0xff; > d25e78aaf drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 206 } > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 207 > d1d5741d8 drivers/net/macb.c Sven Schnelle > 2008-06-09 208 if > (is_valid_ether_addr(addr)) { > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 209 memcpy(bp->dev > ->dev_addr, addr, sizeof(addr)); > 17b8bb3e2 drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 210 return; > 17b8bb3e2 drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 211 } > 17b8bb3e2 drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 212 } > 17b8bb3e2 drivers/net/ethernet/cadence/macb.c Joachim Eastwood > 2012-11-07 213 > c220f8cd0 drivers/net/ethernet/cadence/macb.c Jamie Iles > 2011-03-08 214 netdev_info(bp->dev, "invalid hw > address, using random\n"); > f2cedb63d drivers/net/ethernet/cadence/macb.c Danny Kukawka > 2012-02-15 215 eth_hw_addr_random(bp->dev); > d1d5741d8 drivers/net/macb.c Sven Schnelle > 2008-06-09 216 } > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 217 > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 218 static int macb_mdio_read(struct mii_bus > *bus, int mii_id, int regnum) > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 219 { > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 220 struct macb *bp = bus->priv; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 221 int value; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 222 > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 @223 macb_writel(bp, MAN, (MACB_BF(SOF, > MACB_MAN_SOF) > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 224 | MACB_BF(RW, > MACB_MAN_READ) > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 225 | > MACB_BF(PHYA, mii_id) > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 226 | > MACB_BF(REGA, regnum) > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 @227 | > MACB_BF(CODE, MACB_MAN_CODE))); > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 228 > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 229 /* wait for end of transfer */ > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 @230 while (!MACB_BFEXT(IDLE, > macb_readl(bp, NSR))) > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 231 cpu_relax(); > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 232 > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 233 value = MACB_BFEXT(DATA, > macb_readl(bp, MAN)); > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 234 > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 235 return value; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 236 } > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 237 > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 238 static int macb_mdio_write(struct mii_bus > *bus, int mii_id, int regnum, > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 239 u16 value) > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 240 { > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 241 struct macb *bp = bus->priv; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 242 > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 243 macb_writel(bp, MAN, (MACB_BF(SOF, > MACB_MAN_SOF) > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 244 | MACB_BF(RW, > MACB_MAN_WRITE) > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 245 | > MACB_BF(PHYA, mii_id) > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 246 | > MACB_BF(REGA, regnum) > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 247 | > MACB_BF(CODE, MACB_MAN_CODE) > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 248 | > MACB_BF(DATA, value))); > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 249 > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 250 /* wait for end of transfer */ > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 @251 while (!MACB_BFEXT(IDLE, > macb_readl(bp, NSR))) > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 252 cpu_relax(); > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 253 > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 254 return 0; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 255 } > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 256 > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 257 /** > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 258 * macb_set_tx_clk() - Set a clock to a > new frequency > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 259 * @clk Pointer to the clock > to change > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 260 * @rate New frequency in Hz > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 261 * @dev Pointer to the > struct net_device > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 262 */ > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 263 static void macb_set_tx_clk(struct clk > *clk, int speed, struct net_device *dev) > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 264 { > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 265 long ferr, rate, rate_rounded; > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 266 > 93b31f48b drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2015-03-07 267 if (!clk) > 93b31f48b drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2015-03-07 268 return; > 93b31f48b drivers/net/ethernet/cadence/macb.c Cyrille Pitchen > 2015-03-07 269 > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 270 switch (speed) { > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 271 case SPEED_10: > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 272 rate = 2500000; > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 273 break; > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 274 case SPEED_100: > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 275 rate = 25000000; > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 276 break; > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 277 case SPEED_1000: > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 278 rate = 125000000; > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 279 break; > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 280 default: > 9319e47c1 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 281 return; > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 282 } > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 283 > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 284 rate_rounded = clk_round_rate(clk, > rate); > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 285 if (rate_rounded < 0) > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 286 return; > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 287 > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 288 /* RGMII allows 50 ppm frequency > error. Test and warn if this limit > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 289 * is not satisfied. > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 290 */ > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 291 ferr = abs(rate_rounded - rate); > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 292 ferr = DIV_ROUND_UP(ferr, rate / > 100000); > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 293 if (ferr > 5) > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 294 netdev_warn(dev, "unable to > generate target frequency: %ld Hz\n", > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 295 rate); > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 296 > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 297 if (clk_set_rate(clk, rate_rounded)) > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 298 netdev_err(dev, "adjusting > tx_clk failed.\n"); > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 299 } > e1824dfe0 drivers/net/ethernet/cadence/macb.c Soren Brinkmann > 2013-12-10 300 > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 301 static void macb_handle_link_change(struct > net_device *dev) > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 302 { > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 303 struct macb *bp = netdev_priv(dev); > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 304 struct phy_device *phydev = bp > ->phy_dev; > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 305 unsigned long flags; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 306 > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 307 int status_change = 0; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 308 > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 309 spin_lock_irqsave(&bp->lock, flags); > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 310 > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 311 if (phydev->link) { > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 312 if ((bp->speed != phydev > ->speed) || > 6c36a7074 drivers/net/macb.c frederic RODO > 2007-07-12 313 (bp->duplex != phydev > ->duplex)) { > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 314 u32 reg; > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 315 > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 @316 reg = macb_readl(bp, > NCFGR); > 89e5785fc drivers/net/macb.c Haavard Skinnemoen > 2006-11-09 317 reg &= > ~(MACB_BIT(SPD) | MACB_BIT(FD)); > 140b7552f drivers/net/ethernet/cadence/macb.c Patrice Vilchez > 2012-10-31 318 if (macb_is_gem(bp)) > 140b7552f drivers/net/ethernet/cadence/macb.c Patrice Vilchez > 2012-10-31 319 reg &= > ~GEM_BIT(GBE); > > :::::: The code at line 164 was first introduced by commit > :::::: f75ba50bdc2bcfab591bdf903312557033d0ac68 macb: initial support > for Cadence GEM > > :::::: TO: Jamie Iles <jamie.i...@mathembedded.com> > :::::: CC: Jamie Iles <ja...@jamieiles.com> > > --- > 0-DAY kernel test infrastructure Open Source > Technology Center > https://lists.01.org/pipermail/kbuild-all Intel Cor > poration -- Andy Shevchenko <andriy.shevche...@linux.intel.com> Intel Finland Oy -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html