summaryrefslogtreecommitdiff
path: root/cleopatre/linux-2.6.25.10-spc300/drivers
AgeCommit message (Collapse)Author
2012-11-06cleo/linux/drv/eth: don't netif_wake_queue() on link upYacine Belkadi
In the Synop3504 Ethernet driver, there is no reason to wake the queue on link up, because it's already started on open() and it's not stopped on link down.
2012-11-06cleo/linux/drv/eth: don't txdesc_reset() on link up, refs #3195, (ind.) ↵Yacine Belkadi
closes #3439 In the Synop3504 Ethernet driver, the Tx descriptors were reset on link up. That's not necessary because the MAC TxDMA will process (fetch and close) the Tx descriptors even if the link is down. So letting the normal process happen will take care of the pending descriptors. This Tx descriptor reset already caused problems when it was performed on link_down. It was then moved to link up. In link up, this reset is one of the causes of #3439*. So removing the reset of the Tx descriptors on link up also indirectly closes the ticket #3439. *#3439 is a kernel oops that happens when booting in "single mode" on a board with an IP75D PHY: The IP175D driver declares its readiness to the Linux PHY Layer in a particular way, probably to skip the Auto-Negotiation step. As a consequence, the PHY layer may call the Ethernet driver's adjust_link() before it's ready (before phy_start() is called). In other words, adjust_link() may be called before the driver has initialized the descriptors. If that happens, the Ethernet driver touches the uninitialized Tx descriptors, and a kernel oops occurs. The problem is visible in single mode because the eth interface is not brought up. So synop3504_open() is not run. So the Tx descriptors are not already initialized when the PHY layer calls synop3504_handle_link_change() which calls txdesc_reset(), which causes a kernel oops.
2012-11-06cleo/linux/drv/eth: don't netif_carrier_{on|off}() on link change, closes #3254Yacine Belkadi
In the Synop3504 Ethernet driver, it is not necessary to call netif_carrier_{on,off}() on link up/down, because the PHY layer already takes care of that before calling the driver's link change handler. More precisely, in linux/drivers/net/phy.c, phy_state_machine() calls netif_carrier_{on|off}() before calling phydev->adjust_link().
2012-10-31cleo/{linux, openocd}: add support for w25q64 flash, closes #3447Jean-Philippe SAVE
2012-10-31cleo/{linux, openocd}: suppress duplicated JEDEC info on flashs, closes #3446Jean-Philippe SAVE
The winbond flash w25q32 is declared twice.
2012-10-19cleo/linux/driver/net/arm/synop3504: flush MIU only on MSE500, closes #3408Jean-Philippe SAVE
2012-10-18{cleo,polux}/linux: simplify watchdog API, closes #3296Jérémy Dufour
The function spc300_wdt_stop is removed: we can not stop the watchdog. The functions spc300_wdt_restart and spc300_wdt_settimeout are replaced by spc300_wdt_start.
2012-10-17cleo/linux/driver/net/arm/synop3504: adapt synchro with DMA, closes #3408Jean-Philippe SAVE
- force compiler to set dma own-bit at the end of the descriptor changes. - waiting for miu flush before using dma descriptors changed by dma.
2012-09-20cleo/linux: add a driver for mseafe, refs #3318Jean-Philippe SAVE
2012-09-20cleo/linux/drivers/afe: use 32 bits for read/write functions, refs #3318Jean-Philippe SAVE
2012-09-20cleo/{linux, buildroot}: handle eth clks and rgmii on MSE500, refs #3318Jean-Philippe SAVE
2012-09-20cleo/linux/drivers/spi: extract reset macro from headerJean-Philippe SAVE
2012-09-20cleo/{linux/drivers/mtd/, tools/openocd-r668/}: Support new flashesJulien Lacour
2012-09-20cleopatre: rename SPC300DINI into MSE500DINI_300, refs #3119Cyril Jourdan
2012-09-20{cleo, common}: rename spc300_nvram into spidcom_nvram, refs #3119Cyril Jourdan
This is done to use common NVRAM structure and variable names with polux.
2012-09-20cleo/linux: rename hardware and import dir into ips and hardware, refs #3119Cyril Jourdan
2012-09-06cleo/linux/drv/net/arm/synop3504: reset rings on timeout, refs #3161Nélio Laranjeiro
Linux network scheduler handles a timer to detect timeout TX. This timeout is configurable for the device. The watchdog only call the drivers' timeout function if the carrier is ON, so it is only used to detect problems on transmission or congestion on the medium. In our case, as the timeout is pretty long, if the first packet in the DMA has expired the last one has expired too, so the ring can be reseted. This is only true for TX DMA ring, because the timeout is configured to expire 4 seconds after the last TX has been requested. Used example from drivers/net/meth.c
2012-09-06cleo/linux/drv/net/arm/synop3504: only reset TX desc on link_up, closes #3195Nélio Laranjeiro
All received packets are still for linux or any application on linux or even for cesar, so those packets can be processed. On the contrary, TX descriptors are for the world behind the Ethernet, this world could have change between the link_down and the link_up, so it is better to discard packets currently present in the DMA.
2012-09-06cleo/linux/drv/net/arm/synop3504: remove netif_carrier_off on stop, refs #3195Nélio Laranjeiro
Calling netif_carrier_off on stop function is redundant with the behavior of the phy_stop function. When the PHY change its status, it calls the driver's handler synop3504_handle_link_change, this function will check the status and call link_down function. Currently synop3504_on_link_down calls netif_carrier_off linux's function, as it is done by the process, there is no need to call it twice.
2012-09-06cleo/linux/drv/net/arm/synop3504: don't stop DMA on link_down, refs #3195Nélio Laranjeiro
On link down, there is no need to stop the DMA neither to stop the queue. The PHY has no link, so it will not receive any frame from Ethernet. TX is stopped until the link becomes UP (i.e. netif_carrier_on is called).
2012-09-06cleo/linux/drv/net/arm/synop3504: remove link_down call on open, refs #3195Nélio Laranjeiro
In open function, the link_down should not be called as nothing is started yet.
2012-09-06cleo/linux/drv/net/arm/synop3504: start DMA on synop3504_open, refs #3195Nélio Laranjeiro
Open function should prepare the DMA for transmissions. Linux has still the carrier OFF so it will not try to send packets. As the PHY is started at the end of the open function, it can receive frames from the Ethernet before the handler could be called (i.e. synop3504_handle_link_change), in this case the DMA is ready and can process the received frame.
2012-07-24cleo/linux/driver[eoc]: add flash default config for m25p80 driver, closes #3264Tom Yang
2012-06-28cleo/linux/drv/net/arm/synop3504: do not enable carrier at open, closes #3048Cyril Jourdan
We must wait a link up and declare carrier on. We do this to prevent us from trying to send packets before first link up, what may create a shift between DMA current descriptor address and our TX descriptor ring state.
2012-06-13cleo/linux: rename CONFIG_AD986X to CONFIG_AFE_AD986X, refs #3082Yacine Belkadi
Rename the config option of the AD986X driver to reflect that it's an AFE driver. NB: The "select AFE_AD986X" line is a temporary hack to let everything compile without the updated defconfig files. It will be removed in a subsequent commit.
2012-06-13cleo/linux/{afe,drv/afe/ad986x}: remove the old AFE functions, refs #3082Yacine Belkadi
The old AFE API is no longer used. So this commit removes it.
2012-06-13cleo/linux/drv/afe/ad986x: support the new AFE API functions, refs #3082Yacine Belkadi
Update the AD986X module to support the new AFE API. The previous API is not removed yet.
2012-06-13cleo/linux: add an "AFE" menuconfig, refs #3082Yacine Belkadi
Add a new config option "CONFIG_AFE" for the AFE support and drivers. NB: The "select AFE" line is a temporary hack to let everything compile without the updated defconfig files. It will be removed in a subsequent commit.
2012-06-13cleo/linux/drv/afe: add new AFE api, refs #3082Yacine Belkadi
Add a new API for AFE related operations, that better handles error cases like when there is no AFE device. The previous API is tagged as "deprecated", but no removed yet.
2012-06-13cleo/linux/drv/afe/ad986x: refactor probe() with goto(s), refs #3082Yacine Belkadi
Refactor to prepare for subsequent commits.
2012-06-13cleo/linux/drv/afe/Kconfig: remove "default y" for AD9865Yacine Belkadi
There is no reason for this module to be included by default. It should be (and is) selected by the defconfig files.
2012-05-09cleo/linux/drv: make ethernet work on spc300dini, refs #2759MSE500 Team
- Prevent advertising of 1000Base-T capability because the spc300dini doesn't support Gigabit Ethernet. - Apply a specific configuration to the phy (2ns delay for TX and RX clock).
2012-05-09cleo/linux: switch to board/chip/feature configurationNicolas Schodet
2012-04-26cleo/linux/drivers/net/arm: accept giant frames, closes #2992Nicolas Schodet
2012-04-18cleo/{linux,tools}: add new flashes Winbond / Eon, closes #2919Tom Yang
Support Winbond 25Q32 / Eon en25q32 / Eon en25q128. Conflicts: cleopatre/linux-2.6.25.10-spc300/drivers/mtd/devices/m25p80.c
2012-04-10cleopatre/linux/drivers/spi: round down SPI speed, closes #3066Nicolas Schodet
2012-03-30cleo/linux/driver/net: redefine PKT_BUF_SZ using linux definesJérémy Dufour
2012-03-30cleo/linux/driver/net: use default ethernet change mtu function, closes #2969Jérémy Dufour
2012-02-20cleo/linux/driver/net: return remaining budget after NAPI pollJérémy Dufour
2012-02-10cleo/linux/drivers/net: use dev_alloc_skb for synop3504 driverNicolas Schodet
2011-12-20cleo/linux/drivers/net/arm/synop3504: reset descriptors on link up, refs #2701Nicolas Schodet
When interface is brought down, phy is stopped which will make the link down in the next phy timer run. Descriptors can not be cleared when link comes down because descriptors memory is freed yet.
2011-10-27cleo/linux/drivers/net: fix DMA synchronisation in Synopsys driver, refs #2295Jérémy Dufour
2011-09-15cleo/linux/drv/ad986x: move code from char/ to (the new) afe/, closes #453Yacine Belkadi
2011-09-15cleo/{devkit/plcdrv,linux/drv/ad9865}: move AFE /proc code from plcdrv to ↵Yacine Belkadi
ad9865, refs #453 The code providing a /proc entry to read/write the content of the AFE registers was in plcdrv. It seems more appropriate to put it in the AFE driver. As a consequence, the path to read/write the AFE registers becomes /proc/driver/afe instead of /proc/net/plc/afe.
2011-09-15cleo/linux/drv/ad986x: export functions for reading/writing to the AFE ↵Yacine Belkadi
registers, refs #453
2011-09-15cleo/linux/drv/ad986x: refactor the code for reading/writing to the AFE ↵Yacine Belkadi
registers, refs #453
2011-09-15cleo/linux/drv/ad986x: store a reference to the spi_device, refs #453Yacine Belkadi
2011-09-15cleo/linux/drv/ad9865: rename ad9865 to ad986xYacine Belkadi
Rename the AFE driver ad9865 to ad986x because it is also used for the AD9867 and AD9868 devices.
2011-09-08cleo/linux/drv/eth: add seq_check support, refs #2644Yacine Belkadi
2011-08-12cleo/linux/drv/eth: support getting/setting flow control params from ↵Yacine Belkadi
ethtool, closes #2487 In the Ethernet driver, add support for using ethtool: - to query whether Rx or Tx pause are enabled. e.g. ethtool -a eth0 - to specify whether Rx or Tx pause should be enabled. e.g. ethtool -A eth0 rx on tx off