summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuergen Beisert <jbe@pengutronix.de>2013-04-08 18:23:07 +0200
committerJuergen Beisert <jbe@pengutronix.de>2013-06-12 12:14:06 +0200
commit968e2e38f8c7f3ac84619d82d0e80566c9abb9e7 (patch)
treedd62289958fbea82a839c85d93f35636909b1176
parent0030a3c10fd6271889dcb41c0713069466c82919 (diff)
downloadOSELAS.BSP-Pengutronix-Mini2440-968e2e38f8c7f3ac84619d82d0e80566c9abb9e7.tar.gz
OSELAS.BSP-Pengutronix-Mini2440-968e2e38f8c7f3ac84619d82d0e80566c9abb9e7.tar.xz
Kernel-3.8: keep in sync with stable release 3.8.6
Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
-rw-r--r--Changelog2
-rw-r--r--documentation/plain_sources/special_notes.tex2
-rw-r--r--kernelconfig-3.82
-rw-r--r--patches/linux-3.8/dm9000B_driver_initialization_upgrade.patch297
-rw-r--r--patches/linux-3.8/patch-3.8.5-6.bz2bin0 -> 45279 bytes
-rw-r--r--patches/linux-3.8/series2
-rw-r--r--patches/linux-3.8/set-marker.diff2
7 files changed, 6 insertions, 301 deletions
diff --git a/Changelog b/Changelog
index 0be20c3..3eaf24c 100644
--- a/Changelog
+++ b/Changelog
@@ -4,6 +4,8 @@
- keep in sync with stable release .72
* Kernel 3.4:
- keep in sync with stable release .39
+ * Kernel 3.8:
+ - keep in sync with stable release .6
2013-04-01 Juergen Beisert <jbe@pengutronix.de
diff --git a/documentation/plain_sources/special_notes.tex b/documentation/plain_sources/special_notes.tex
index 89dedc1..67f04b7 100644
--- a/documentation/plain_sources/special_notes.tex
+++ b/documentation/plain_sources/special_notes.tex
@@ -32,7 +32,7 @@ they are still available and also some of them are still maintained. Here is a
list of currently available Linux kernel releases in the \ptxdistBSPName{}:
\begin{itemize}
- \item \curKernelRev{}, stable patch level 5 (default)
+ \item \curKernelRev{}, stable patch level 6 (default)
\item 3.7 *), stable patch level 10
\item 3.6 *), stable patch level 11
\item 3.5 *), stable patch level 7
diff --git a/kernelconfig-3.8 b/kernelconfig-3.8
index 2ede258..8457062 100644
--- a/kernelconfig-3.8
+++ b/kernelconfig-3.8
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.8.5-ptx-master Kernel Configuration
+# Linux/arm 3.8.6-ptx-master Kernel Configuration
#
CONFIG_ARM=y
CONFIG_HAVE_PWM=y
diff --git a/patches/linux-3.8/dm9000B_driver_initialization_upgrade.patch b/patches/linux-3.8/dm9000B_driver_initialization_upgrade.patch
deleted file mode 100644
index abf4731..0000000
--- a/patches/linux-3.8/dm9000B_driver_initialization_upgrade.patch
+++ /dev/null
@@ -1,297 +0,0 @@
-From: Joseph CHANG <josright123@gmail.com>
-Subject: [PATCH 1/1] DM9000B: driver initialization upgrade
-
-Fix bug for DM9000 revision B which contain a DSP PHY
-
-DM9000B use DSP PHY instead previouse DM9000 revisions' analog PHY,
-So need extra change in initialization, For
-explicity PHY Reset and PHY init parameter, and
-first DM9000_NCR reset need NCR_MAC_LBK bit by dm9000_probe().
-
-Following DM9000_NCR reset cause by dm9000_open() clear the
-NCR_MAC_LBK bit.
-
-Without this fix, Power-up FIFO pointers error happen around 2%
-rate among Davicom's customers' boards. With this fix, All above
-cases can be solved.
-
-Signed-off-by: Joseph CHANG <josright123@gmail.com>
----
- drivers/net/ethernet/davicom/dm9000.c | 214 +++++++++++++++++-----------------
- drivers/net/ethernet/davicom/dm9000.h | 11 +
- 2 files changed, 120 insertions(+), 105 deletions(-)
-
-Index: linux-3.8/drivers/net/ethernet/davicom/dm9000.c
-===================================================================
---- linux-3.8.orig/drivers/net/ethernet/davicom/dm9000.c
-+++ linux-3.8/drivers/net/ethernet/davicom/dm9000.c
-@@ -265,6 +265,107 @@ static void dm9000_dumpblk_32bit(void __
- tmp = readl(reg);
- }
-
-+/*
-+ * Sleep, either by using msleep() or if we are suspending, then
-+ * use mdelay() to sleep.
-+ */
-+static void dm9000_msleep(board_info_t *db, unsigned int ms)
-+{
-+ if (db->in_suspend)
-+ mdelay(ms);
-+ else
-+ msleep(ms);
-+}
-+
-+/* Read a word from phyxcer */
-+static int
-+dm9000_phy_read(struct net_device *dev, int phy_reg_unused, int reg)
-+{
-+ board_info_t *db = netdev_priv(dev);
-+ unsigned long flags;
-+ unsigned int reg_save;
-+ int ret;
-+
-+ mutex_lock(&db->addr_lock);
-+
-+ spin_lock_irqsave(&db->lock, flags);
-+
-+ /* Save previous register address */
-+ reg_save = readb(db->io_addr);
-+
-+ /* Fill the phyxcer register into REG_0C */
-+ iow(db, DM9000_EPAR, DM9000_PHY | reg);
-+
-+ /* Issue phyxcer read command */
-+ iow(db, DM9000_EPCR, EPCR_ERPRR | EPCR_EPOS);
-+
-+ writeb(reg_save, db->io_addr);
-+ spin_unlock_irqrestore(&db->lock, flags);
-+
-+ dm9000_msleep(db, 1); /* Wait read complete */
-+
-+ spin_lock_irqsave(&db->lock, flags);
-+ reg_save = readb(db->io_addr);
-+
-+ iow(db, DM9000_EPCR, 0x0); /* Clear phyxcer read command */
-+
-+ /* The read data keeps on REG_0D & REG_0E */
-+ ret = (ior(db, DM9000_EPDRH) << 8) | ior(db, DM9000_EPDRL);
-+
-+ /* restore the previous address */
-+ writeb(reg_save, db->io_addr);
-+ spin_unlock_irqrestore(&db->lock, flags);
-+
-+ mutex_unlock(&db->addr_lock);
-+
-+ dm9000_dbg(db, 5, "phy_read[%02x] -> %04x\n", reg, ret);
-+ return ret;
-+}
-+
-+/* Write a word to phyxcer */
-+static void
-+dm9000_phy_write(struct net_device *dev,
-+ int phyaddr_unused, int reg, int value)
-+{
-+ board_info_t *db = netdev_priv(dev);
-+ unsigned long flags;
-+ unsigned long reg_save;
-+
-+ dm9000_dbg(db, 5, "phy_write[%02x] = %04x\n", reg, value);
-+ mutex_lock(&db->addr_lock);
-+
-+ spin_lock_irqsave(&db->lock, flags);
-+
-+ /* Save previous register address */
-+ reg_save = readb(db->io_addr);
-+
-+ /* Fill the phyxcer register into REG_0C */
-+ iow(db, DM9000_EPAR, DM9000_PHY | reg);
-+
-+ /* Fill the written data into REG_0D & REG_0E */
-+ iow(db, DM9000_EPDRL, value);
-+ iow(db, DM9000_EPDRH, value >> 8);
-+
-+ /* Issue phyxcer write command */
-+ iow(db, DM9000_EPCR, EPCR_EPOS | EPCR_ERPRW);
-+
-+ writeb(reg_save, db->io_addr);
-+ spin_unlock_irqrestore(&db->lock, flags);
-+
-+ dm9000_msleep(db, 1); /* Wait write complete */
-+
-+ spin_lock_irqsave(&db->lock, flags);
-+ reg_save = readb(db->io_addr);
-+
-+ iow(db, DM9000_EPCR, 0x0); /* Clear phyxcer write command */
-+
-+ /* restore the previous address */
-+ writeb(reg_save, db->io_addr);
-+
-+ spin_unlock_irqrestore(&db->lock, flags);
-+ mutex_unlock(&db->addr_lock);
-+}
-+
- /* dm9000_set_io
- *
- * select the specified set of io routines to use with the
-@@ -802,6 +903,9 @@ dm9000_init_dm9000(struct net_device *de
-
- iow(db, DM9000_GPCR, GPCR_GEP_CNTL); /* Let GPIO0 output */
-
-+ dm9000_phy_write(dev, 0, MII_BMCR, BMCR_RESET); /* PHY RESET */
-+ dm9000_phy_write(dev, 0, MII_DM_DSPCR, DSPCR_INIT_PARAM); /* Init */
-+
- ncr = (db->flags & DM9000_PLATF_EXT_PHY) ? NCR_EXT_PHY : 0;
-
- /* if wol is needed, then always set NCR_WAKEEN otherwise we end
-@@ -1214,109 +1318,6 @@ dm9000_open(struct net_device *dev)
- return 0;
- }
-
--/*
-- * Sleep, either by using msleep() or if we are suspending, then
-- * use mdelay() to sleep.
-- */
--static void dm9000_msleep(board_info_t *db, unsigned int ms)
--{
-- if (db->in_suspend)
-- mdelay(ms);
-- else
-- msleep(ms);
--}
--
--/*
-- * Read a word from phyxcer
-- */
--static int
--dm9000_phy_read(struct net_device *dev, int phy_reg_unused, int reg)
--{
-- board_info_t *db = netdev_priv(dev);
-- unsigned long flags;
-- unsigned int reg_save;
-- int ret;
--
-- mutex_lock(&db->addr_lock);
--
-- spin_lock_irqsave(&db->lock,flags);
--
-- /* Save previous register address */
-- reg_save = readb(db->io_addr);
--
-- /* Fill the phyxcer register into REG_0C */
-- iow(db, DM9000_EPAR, DM9000_PHY | reg);
--
-- iow(db, DM9000_EPCR, EPCR_ERPRR | EPCR_EPOS); /* Issue phyxcer read command */
--
-- writeb(reg_save, db->io_addr);
-- spin_unlock_irqrestore(&db->lock,flags);
--
-- dm9000_msleep(db, 1); /* Wait read complete */
--
-- spin_lock_irqsave(&db->lock,flags);
-- reg_save = readb(db->io_addr);
--
-- iow(db, DM9000_EPCR, 0x0); /* Clear phyxcer read command */
--
-- /* The read data keeps on REG_0D & REG_0E */
-- ret = (ior(db, DM9000_EPDRH) << 8) | ior(db, DM9000_EPDRL);
--
-- /* restore the previous address */
-- writeb(reg_save, db->io_addr);
-- spin_unlock_irqrestore(&db->lock,flags);
--
-- mutex_unlock(&db->addr_lock);
--
-- dm9000_dbg(db, 5, "phy_read[%02x] -> %04x\n", reg, ret);
-- return ret;
--}
--
--/*
-- * Write a word to phyxcer
-- */
--static void
--dm9000_phy_write(struct net_device *dev,
-- int phyaddr_unused, int reg, int value)
--{
-- board_info_t *db = netdev_priv(dev);
-- unsigned long flags;
-- unsigned long reg_save;
--
-- dm9000_dbg(db, 5, "phy_write[%02x] = %04x\n", reg, value);
-- mutex_lock(&db->addr_lock);
--
-- spin_lock_irqsave(&db->lock,flags);
--
-- /* Save previous register address */
-- reg_save = readb(db->io_addr);
--
-- /* Fill the phyxcer register into REG_0C */
-- iow(db, DM9000_EPAR, DM9000_PHY | reg);
--
-- /* Fill the written data into REG_0D & REG_0E */
-- iow(db, DM9000_EPDRL, value);
-- iow(db, DM9000_EPDRH, value >> 8);
--
-- iow(db, DM9000_EPCR, EPCR_EPOS | EPCR_ERPRW); /* Issue phyxcer write command */
--
-- writeb(reg_save, db->io_addr);
-- spin_unlock_irqrestore(&db->lock, flags);
--
-- dm9000_msleep(db, 1); /* Wait write complete */
--
-- spin_lock_irqsave(&db->lock,flags);
-- reg_save = readb(db->io_addr);
--
-- iow(db, DM9000_EPCR, 0x0); /* Clear phyxcer write command */
--
-- /* restore the previous address */
-- writeb(reg_save, db->io_addr);
--
-- spin_unlock_irqrestore(&db->lock, flags);
-- mutex_unlock(&db->addr_lock);
--}
--
- static void
- dm9000_shutdown(struct net_device *dev)
- {
-@@ -1515,7 +1516,12 @@ dm9000_probe(struct platform_device *pde
- db->flags |= DM9000_PLATF_SIMPLE_PHY;
- #endif
-
-- dm9000_reset(db);
-+ /* Fixing bug on dm9000_probe, takeover dm9000_reset(db),
-+ * Need 'NCR_MAC_LBK' bit to indeed stable our DM9000 fifo
-+ * while probe stage.
-+ */
-+
-+ iow(db, DM9000_NCR, NCR_MAC_LBK | NCR_RST);
-
- /* try multiple times, DM9000 sometimes gets the read wrong */
- for (i = 0; i < 8; i++) {
-Index: linux-3.8/drivers/net/ethernet/davicom/dm9000.h
-===================================================================
---- linux-3.8.orig/drivers/net/ethernet/davicom/dm9000.h
-+++ linux-3.8/drivers/net/ethernet/davicom/dm9000.h
-@@ -69,7 +69,9 @@
- #define NCR_WAKEEN (1<<6)
- #define NCR_FCOL (1<<4)
- #define NCR_FDX (1<<3)
--#define NCR_LBK (3<<1)
-+
-+#define NCR_RESERVED (3<<1)
-+#define NCR_MAC_LBK (1<<1)
- #define NCR_RST (1<<0)
-
- #define NSR_SPEED (1<<7)
-@@ -167,5 +169,12 @@
- #define ISR_LNKCHNG (1<<5)
- #define ISR_UNDERRUN (1<<4)
-
-+/* Davicom MII registers.
-+ */
-+
-+#define MII_DM_DSPCR 0x1b /* DSP Control Register */
-+
-+#define DSPCR_INIT_PARAM 0xE100 /* DSP init parameter */
-+
- #endif /* _DM9000X_H_ */
-
diff --git a/patches/linux-3.8/patch-3.8.5-6.bz2 b/patches/linux-3.8/patch-3.8.5-6.bz2
new file mode 100644
index 0000000..9fbc95a
--- /dev/null
+++ b/patches/linux-3.8/patch-3.8.5-6.bz2
Binary files differ
diff --git a/patches/linux-3.8/series b/patches/linux-3.8/series
index e8609ac..ccadc45 100644
--- a/patches/linux-3.8/series
+++ b/patches/linux-3.8/series
@@ -5,6 +5,7 @@ patch-3.8.2-3.bz2
patch-3.8.3-4.bz2
patch-3.8.4-5.bz2
fix_kernels_nick.diff
+patch-3.8.5-6.bz2
# fix a compilation error. Maybe part of future stable releases
ASoC_samsung_Fix_compilation_error_on_S3C2440.patch
@@ -22,7 +23,6 @@ PATCH_2_3_rtc-s3c_Disable_alarm_entries_that_are_not_chosen.diff
# will be part of mainline some time
dm9000_Make_the_driver_follow_the_IRQF_SHARED_contract.patch
dm9000_Implement_full_reset_of_network_device.patch
-dm9000B_driver_initialization_upgrade.patch
# due to wrong option, mounting NAND is slow
speed_up_NAND_mounting.diff
diff --git a/patches/linux-3.8/set-marker.diff b/patches/linux-3.8/set-marker.diff
index adbdc19..711f682 100644
--- a/patches/linux-3.8/set-marker.diff
+++ b/patches/linux-3.8/set-marker.diff
@@ -9,7 +9,7 @@ Index: linux-3.8/Makefile
@@ -1,7 +1,7 @@
VERSION = 3
PATCHLEVEL = 8
- SUBLEVEL = 5
+ SUBLEVEL = 6
-EXTRAVERSION =
+EXTRAVERSION = -ptx-master
NAME = Unicycling Gorilla