diff --git a/core/linux-olinuxino/0001-mxs-spi-clear-XFER_LEN-in-CTRL0-register-during-DMA.patch b/core/linux-olinuxino/0001-mxs-spi-clear-XFER_LEN-in-CTRL0-register-during-DMA.patch new file mode 100644 index 000000000..834a226aa --- /dev/null +++ b/core/linux-olinuxino/0001-mxs-spi-clear-XFER_LEN-in-CTRL0-register-during-DMA.patch @@ -0,0 +1,24 @@ +diff --git a/drivers/spi/spi-mxs.c b/drivers/spi/spi-mxs.c +index 86dd04d..265c33f 100644 +--- a/drivers/spi/spi-mxs.c ++++ b/drivers/spi/spi-mxs.c +@@ -241,6 +241,7 @@ static int mxs_spi_txrx_dma(struct mxs_spi *spi, int cs, + INIT_COMPLETION(spi->c); + + ctrl0 = readl(ssp->base + HW_SSP_CTRL0); ++ ctrl0 &= ~BM_SSP_CTRL0_XFER_COUNT; + ctrl0 |= BM_SSP_CTRL0_DATA_XFER | mxs_spi_cs_to_reg(cs); + + if (*first) +@@ -256,8 +257,10 @@ static int mxs_spi_txrx_dma(struct mxs_spi *spi, int cs, + if ((sg_count + 1 == sgs) && *last) + ctrl0 |= BM_SSP_CTRL0_IGNORE_CRC; + +- if (ssp->devid == IMX23_SSP) ++ if (ssp->devid == IMX23_SSP) { ++ ctrl0 &= ~BM_SSP_CTRL0_XFER_COUNT; + ctrl0 |= min; ++ } + + dma_xfer[sg_count].pio[0] = ctrl0; + dma_xfer[sg_count].pio[3] = min; diff --git a/core/linux-olinuxino/0002-ARM-imx23-olinuxino-Add-spidev-support.patch b/core/linux-olinuxino/0002-ARM-imx23-olinuxino-Add-spidev-support.patch new file mode 100644 index 000000000..45c6f867e --- /dev/null +++ b/core/linux-olinuxino/0002-ARM-imx23-olinuxino-Add-spidev-support.patch @@ -0,0 +1,21 @@ +Source: https://www.olimex.com/forum/index.php?topic=1810 + +diff --git a/arch/arm/boot/dts/imx23-olinuxino.dts b/arch/arm/boot/dts/imx23-olinuxino.dts +index d107c4a..993da2e 100644 +--- a/arch/arm/boot/dts/imx23-olinuxino.dts ++++ b/arch/arm/boot/dts/imx23-olinuxino.dts +@@ -64,7 +64,14 @@ + compatible = "fsl,imx23-spi"; + pinctrl-names = "default"; + pinctrl-0 = <&spi2_pins_a>; ++ clock-frequency = <1000000>; + status = "okay"; ++ ++ spidev0: spidev@0 { ++ compatible = "spidev"; ++ spi-max-frequency = <1000000>; ++ reg = <0>; ++ }; + }; + }; + diff --git a/core/linux-olinuxino/PKGBUILD b/core/linux-olinuxino/PKGBUILD index 996a96c81..bafc8618f 100644 --- a/core/linux-olinuxino/PKGBUILD +++ b/core/linux-olinuxino/PKGBUILD @@ -9,7 +9,7 @@ pkgname=('linux-olinuxino' 'linux-headers-olinuxino') _kernelname=${pkgname#linux} _basekernel=3.7 pkgver=${_basekernel}.2 -pkgrel=8 +pkgrel=9 arch=('arm') url="http://www.kernel.org/" license=('GPL2') @@ -24,16 +24,20 @@ source=("http://www.kernel.org/pub/linux/kernel/v3.0/linux-${_basekernel}.tar.xz '0001-mmc-mxs-mmc-Add-support-for-non-removable-cards.patch' '0002-ARM-dts-imx23-olinuxino-Set-the-sdcard-as-non-remova.patch' '0001-rtl8192cu.patch' + '0001-mxs-spi-clear-XFER_LEN-in-CTRL0-register-during-DMA.patch' + '0002-ARM-imx23-olinuxino-Add-spidev-support.patch' 'memset.patch') md5sums=('21223369d682bcf44bcdfe1521095983' 'b88977838a2a52ff4fb4e82b30726496' - '8071b37a471aeed304834ad22d0c6ba4' + '79b2795a8a7eefec90870418e1640c93' '9d3c56a4b999c8bfbd4018089a62f662' '13fc27b36015d5a4bd82ce3e6d9d016e' 'acc5de524247ec1aff5c9af6a486652f' '8a034a737c554cc4ef99ca3854ad56d5' 'ef27d61a159fa9fcba6e7b93e9f630f2' '2a2b8c032e3e6f34f72661e861c392e9' + 'ae07da78d2c916cbce70ecfb3f274c2e' + '068301d9e088335eb329dd93317246f9' '39be2896f0b968d61a19b33da75ce6e0') prepare() { @@ -54,6 +58,8 @@ prepare() { patch -Np1 -i "${srcdir}/0001-MXS-imx23-olinuxino-Add-i2c-support.patch" patch -Np1 -i "${srcdir}/0001-rtl8192cu.patch" patch -Np1 -i "${srcdir}/0001-mmc-mxs-mmc-Add-support-for-non-removable-cards.patch" + patch -Np1 -i "${srcdir}/0001-mxs-spi-clear-XFER_LEN-in-CTRL0-register-during-DMA.patch" + patch -Np1 -i "${srcdir}/0002-ARM-imx23-olinuxino-Add-spidev-support.patch" patch -Np1 -i "${srcdir}/0002-ARM-dts-imx23-olinuxino-Set-the-sdcard-as-non-remova.patch" patch -Np1 -i "${srcdir}/memset.patch" diff --git a/core/linux-olinuxino/config b/core/linux-olinuxino/config index 2b0d1f78b..456e5c076 100644 --- a/core/linux-olinuxino/config +++ b/core/linux-olinuxino/config @@ -3297,7 +3297,7 @@ CONFIG_CIFS_SMB2=y # CONFIG_AFS_FS is not set CONFIG_NLS=y CONFIG_NLS_DEFAULT="iso8859-1" -# CONFIG_NLS_CODEPAGE_437 is not set +CONFIG_NLS_CODEPAGE_437=m # CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_775 is not set # CONFIG_NLS_CODEPAGE_850 is not set diff --git a/core/linux-olinuxino/linux-olinuxino.install b/core/linux-olinuxino/linux-olinuxino.install index c0a9a0f3b..96318b0fd 100644 --- a/core/linux-olinuxino/linux-olinuxino.install +++ b/core/linux-olinuxino/linux-olinuxino.install @@ -1,5 +1,5 @@ KERNEL_NAME=-olinuxino -KERNEL_VERSION=3.7.2-3-ARCH +KERNEL_VERSION=3.7.2-8-ARCH ## arg 1: the new package version post_install() {