* [meta-raspberrypi][PATCH 0/5] kernel fixes
@ 2015-05-08 21:49 Petter Mabäcker
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 1/5] devicetree: auto-disable dts for old kernels Petter Mabäcker
` (4 more replies)
0 siblings, 5 replies; 15+ messages in thread
From: Petter Mabäcker @ 2015-05-08 21:49 UTC (permalink / raw)
To: yocto
The following changes since commit c9f29df249b80ab488e4ea6eddc01a6522a28c09:
linux-raspberrypi: Update 3.18 branch to 3.18.11 (2015-04-30 21:55:02 +0200)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib petmab/rpi_kernel_fixes_dts
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=petmab/rpi_kernel_fixes_dts
Petter Mabäcker (5):
devicetree: auto-disable dts for old kernels
README: fix outdated device tree info
linux-raspberrypi: Add 3.14 support
linux-raspberrypi: Drop support for old kernel versions
linux-raspberrypi: Update 3.12 branch to latest
README | 3 +-
classes/linux-raspberrypi-base.bbclass | 29 +++
classes/sdcard_image-rpi.bbclass | 6 +-
recipes-kernel/linux/linux-raspberrypi.inc | 4 +-
.../0001-ASoC-Add-BCM2708-fixes.patch | 263 +++++++++++++++++++++
...ng-lock-from-atomic-context-in-i2c-driver.patch | 235 ++++++++++++++++++
.../sl030raspberrypii2ckernel.patch | 32 ---
recipes-kernel/linux/linux-raspberrypi_3.10.bb | 8 -
recipes-kernel/linux/linux-raspberrypi_3.12.bb | 3 +-
recipes-kernel/linux/linux-raspberrypi_3.14.bb | 9 +
recipes-kernel/linux/linux-raspberrypi_3.16.bb | 8 -
recipes-kernel/linux/linux-raspberrypi_3.6.bb | 8 -
recipes-kernel/linux/linux-raspberrypi_3.8.bb | 8 -
13 files changed, 546 insertions(+), 70 deletions(-)
create mode 100644 classes/linux-raspberrypi-base.bbclass
create mode 100644 recipes-kernel/linux/linux-raspberrypi/0001-ASoC-Add-BCM2708-fixes.patch
create mode 100644 recipes-kernel/linux/linux-raspberrypi/0002-Fix-grabbing-lock-from-atomic-context-in-i2c-driver.patch
delete mode 100644 recipes-kernel/linux/linux-raspberrypi/sl030raspberrypii2ckernel.patch
delete mode 100644 recipes-kernel/linux/linux-raspberrypi_3.10.bb
create mode 100644 recipes-kernel/linux/linux-raspberrypi_3.14.bb
delete mode 100644 recipes-kernel/linux/linux-raspberrypi_3.16.bb
delete mode 100644 recipes-kernel/linux/linux-raspberrypi_3.6.bb
delete mode 100644 recipes-kernel/linux/linux-raspberrypi_3.8.bb
--
1.9.1
^ permalink raw reply [flat|nested] 15+ messages in thread
* [meta-raspberrypi][PATCH 1/5] devicetree: auto-disable dts for old kernels
2015-05-08 21:49 [meta-raspberrypi][PATCH 0/5] kernel fixes Petter Mabäcker
@ 2015-05-08 21:49 ` Petter Mabäcker
2015-05-10 10:16 ` Andrei Gherzan
2015-05-17 22:46 ` Andrei Gherzan
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 2/5] README: fix outdated device tree info Petter Mabäcker
` (3 subsequent siblings)
4 siblings, 2 replies; 15+ messages in thread
From: Petter Mabäcker @ 2015-05-08 21:49 UTC (permalink / raw)
To: yocto
After '6392a63 rpi-base.inc: Use KERNEL_DEVICETREE by default' was
introduced, kernel versions < 3.18 might not be buildable. Since full
device tree support was introduced in 3.18 this change ensures that all
kernel < 3.18 will automatically disable device tree.
Signed-off-by: Petter Mabäcker <petter@technux.se>
---
classes/linux-raspberrypi-base.bbclass | 29 +++++++++++++++++++++++++++++
classes/sdcard_image-rpi.bbclass | 6 ++++--
recipes-kernel/linux/linux-raspberrypi.inc | 4 +++-
3 files changed, 36 insertions(+), 3 deletions(-)
create mode 100644 classes/linux-raspberrypi-base.bbclass
diff --git a/classes/linux-raspberrypi-base.bbclass b/classes/linux-raspberrypi-base.bbclass
new file mode 100644
index 0000000..4bcadd0
--- /dev/null
+++ b/classes/linux-raspberrypi-base.bbclass
@@ -0,0 +1,29 @@
+inherit linux-kernel-base
+
+
+def get_dts(d, ver):
+ staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR", True)
+ dts = d.getVar("KERNEL_DEVICETREE", True)
+
+ # d.getVar() might return 'None' as a normal string
+ # leading to 'is None' check isn't enough.
+ # TODO: Investigate if this is a bug in bitbake
+ if ver is None or ver == "None":
+ ''' if 'ver' isn't set try to grab the kernel version
+ from the kernel staging '''
+ ver = get_kernelversion_file(staging_dir)
+
+ if ver is not None:
+ min_ver = ver.split('.', 3)
+ else:
+ return dts
+
+ # Always turn off device tree support for kernel's < 3.18
+ try:
+ if int(min_ver[0]) <= 3:
+ if int(min_ver[1]) < 18:
+ dts = ""
+ except IndexError:
+ min_ver = None
+
+ return dts
diff --git a/classes/sdcard_image-rpi.bbclass b/classes/sdcard_image-rpi.bbclass
index 1ff664d..ca94566 100644
--- a/classes/sdcard_image-rpi.bbclass
+++ b/classes/sdcard_image-rpi.bbclass
@@ -1,4 +1,5 @@
inherit image_types
+inherit linux-raspberrypi-base
#
# Create an image that can by written onto a SD card using dd.
@@ -88,7 +89,8 @@ IMAGE_CMD_rpi-sdimg () {
ROOTFS_SIZE_ALIGNED=$(expr ${ROOTFS_SIZE_ALIGNED} - ${ROOTFS_SIZE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
SDIMG_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} + ${BOOT_SPACE_ALIGNED} + ${ROOTFS_SIZE_ALIGNED})
- echo "Creating filesystem with Boot partition ${BOOT_SPACE_ALIGNED} KiB and RootFS ${ROOTFS_SIZE_ALIGNED} KiB"
+ # Check if we are building with device tree support
+ DTS="${@get_dts(d, None)}"
# Initialize sdcard image file
dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE}
@@ -112,7 +114,7 @@ IMAGE_CMD_rpi-sdimg () {
mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::uImage
;;
*)
- if test -n "${KERNEL_DEVICETREE}"; then
+ if test -n "${DTS}"; then
# Copy board device trees to root folder
for DTB in ${DT_ROOT}; do
DTB_BASE_NAME=`basename ${DTB} .dtb`
diff --git a/recipes-kernel/linux/linux-raspberrypi.inc b/recipes-kernel/linux/linux-raspberrypi.inc
index 84d4f9e..7e36408 100644
--- a/recipes-kernel/linux/linux-raspberrypi.inc
+++ b/recipes-kernel/linux/linux-raspberrypi.inc
@@ -1,4 +1,5 @@
require linux.inc
+inherit linux-raspberrypi-base
DESCRIPTION = "Linux Kernel for Raspberry Pi"
SECTION = "kernel"
@@ -26,7 +27,8 @@ UDEV_GE_141 ?= "1"
# See http://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.html#anonymous-python-functions
python __anonymous () {
kerneltype = d.getVar('KERNEL_IMAGETYPE', True)
- kerneldt = d.getVar('KERNEL_DEVICETREE', True)
+ kerneldt = get_dts(d, d.getVar('LINUX_VERSION', True))
+ d.setVar("KERNEL_DEVICETREE", kerneldt)
# Add dependency to 'rpi-mkimage-native' package only if RPi bootloader is used with DT-enable kernel
if kerneldt:
--
1.9.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [meta-raspberrypi][PATCH 2/5] README: fix outdated device tree info
2015-05-08 21:49 [meta-raspberrypi][PATCH 0/5] kernel fixes Petter Mabäcker
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 1/5] devicetree: auto-disable dts for old kernels Petter Mabäcker
@ 2015-05-08 21:49 ` Petter Mabäcker
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 3/5] linux-raspberrypi: Add 3.14 support Petter Mabäcker
` (2 subsequent siblings)
4 siblings, 0 replies; 15+ messages in thread
From: Petter Mabäcker @ 2015-05-08 21:49 UTC (permalink / raw)
To: yocto
After '6392a63 rpi-base.inc: Use KERNEL_DEVICETREE by default' was
introduced, the default value for 3.18+ kernels was changed. Ensure this
is reflected in the README.
Signed-off-by: Petter Mabäcker <petter@technux.se>
---
README | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/README b/README
index a2ec4ca..3913f41 100644
--- a/README
+++ b/README
@@ -179,7 +179,8 @@ kernels.
While creating the SDCard image, this modified kernel is put on
boot partition (as kernel.img) as well as DeviceTree blobs (.dtb files).
-NOTE: KERNEL_DEVICETREE is empty by default.
+NOTE: KERNEL_DEVICETREE is default enabled for kernel >= 3.18 and always disabled for
+ older kernel versions.
3. Extra apps
=============
--
1.9.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [meta-raspberrypi][PATCH 3/5] linux-raspberrypi: Add 3.14 support
2015-05-08 21:49 [meta-raspberrypi][PATCH 0/5] kernel fixes Petter Mabäcker
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 1/5] devicetree: auto-disable dts for old kernels Petter Mabäcker
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 2/5] README: fix outdated device tree info Petter Mabäcker
@ 2015-05-08 21:49 ` Petter Mabäcker
2015-05-17 22:53 ` Andrei Gherzan
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 4/5] linux-raspberrypi: Drop support for old kernel versions Petter Mabäcker
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 5/5] linux-raspberrypi: Update 3.12 branch to latest Petter Mabäcker
4 siblings, 1 reply; 15+ messages in thread
From: Petter Mabäcker @ 2015-05-08 21:49 UTC (permalink / raw)
To: yocto
Add basic support for Linux 3.14, cherry-pick changes from 3.18.y in
order to solve some debugfs warnings and get better support
for i2s for BCM2708.
- 3.14 lacks BCM2709 support and will not by default be able to use for
raspberry pi 2.
Below warnings still exists they are harmless and exists due to that
snd_soc_pcm512x is triggered to be loaded twice. The problem is solved
after device tree support for the driver was introduced in 3.18.y and no
easy solution exists to solve this problem on older kernel versions (see
https://github.com/raspberrypi/linux/issues/662 for more info).
pcm512x 1-004c: Failed to reset device: -5
pcm512x: probe of 1-004c failed with error
Remove sl030raspberrypii2ckernel.patch since it will not apply anymore
and its content seems to be obsolite after cherry-picking
'558d0bf Fix grabbing lock from atomic context in i2c driver'.
[Support #57]
Signed-off-by: Petter Mabäcker <petter@technux.se>
---
.../0001-ASoC-Add-BCM2708-fixes.patch | 263 +++++++++++++++++++++
...ng-lock-from-atomic-context-in-i2c-driver.patch | 235 ++++++++++++++++++
recipes-kernel/linux/linux-raspberrypi_3.14.bb | 9 +
3 files changed, 507 insertions(+)
create mode 100644 recipes-kernel/linux/linux-raspberrypi/0001-ASoC-Add-BCM2708-fixes.patch
create mode 100644 recipes-kernel/linux/linux-raspberrypi/0002-Fix-grabbing-lock-from-atomic-context-in-i2c-driver.patch
create mode 100644 recipes-kernel/linux/linux-raspberrypi_3.14.bb
diff --git a/recipes-kernel/linux/linux-raspberrypi/0001-ASoC-Add-BCM2708-fixes.patch b/recipes-kernel/linux/linux-raspberrypi/0001-ASoC-Add-BCM2708-fixes.patch
new file mode 100644
index 0000000..26c71b8
--- /dev/null
+++ b/recipes-kernel/linux/linux-raspberrypi/0001-ASoC-Add-BCM2708-fixes.patch
@@ -0,0 +1,263 @@
+From e73a69601c65103b0e032e6093af0f00a1e1af3a Mon Sep 17 00:00:00 2001
+From: Florian Meier <florian.meier@koalo.de>
+Date: Fri, 22 Nov 2013 14:33:38 +0100
+Subject: [PATCH 1/2] ASoC: Add BCM2708 fixes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+(cherry-pick remaining parts of
+730cb8a1216f9da3d097072cd9bb06e0db348172)
+
+bcm2708-i2s: Update bclk_ratio to more correct values
+
+Move GPIO setup to hw_params.
+
+This is used to stop the I2S driver from breaking
+the GPIO setup for other uses of the PCM interface
+
+Configure GPIOs for I2S based on revision/card settings
+
+With RPi model B+, assignment of the I2S GPIO pins has changed.
+This patch uses the board revision to auto-detect the GPIOs used
+for I2S. It also allows sound card drivers to set the GPIOs that
+should be used. This is especially important with the Compute
+Module.
+
+bcm2708-i2s: Avoid leak from iomap when accessing gpio
+
+bcm2708: Eliminate i2s debugfs directory error
+
+Qualify the two regmap ranges uses by bcm2708-i2s ('-i2s' and '-clk')
+to avoid the name clash when registering debugfs entries.
+
+Upstream-Status: Pending
+
+Signed-off-by: Petter Mabäcker <petter@technux.se>
+
+Conflicts:
+ sound/soc/bcm/Kconfig
+ sound/soc/bcm/Makefile
+ sound/soc/bcm/bcm2708-i2s.c
+---
+ sound/soc/bcm/bcm2708-i2s.c | 82 ++++++++++++++++++++++++++++++++++++---------
+ sound/soc/bcm/bcm2708-i2s.h | 35 +++++++++++++++++++
+ 2 files changed, 102 insertions(+), 15 deletions(-)
+ create mode 100644 sound/soc/bcm/bcm2708-i2s.h
+
+diff --git a/sound/soc/bcm/bcm2708-i2s.c b/sound/soc/bcm/bcm2708-i2s.c
+index 9976571..3fcb740 100644
+--- a/sound/soc/bcm/bcm2708-i2s.c
++++ b/sound/soc/bcm/bcm2708-i2s.c
+@@ -31,6 +31,8 @@
+ * General Public License for more details.
+ */
+
++#include "bcm2708-i2s.h"
++
+ #include <linux/init.h>
+ #include <linux/module.h>
+ #include <linux/device.h>
+@@ -38,6 +40,7 @@
+ #include <linux/delay.h>
+ #include <linux/io.h>
+ #include <linux/clk.h>
++#include <mach/gpio.h>
+
+ #include <sound/core.h>
+ #include <sound/pcm.h>
+@@ -46,6 +49,8 @@
+ #include <sound/soc.h>
+ #include <sound/dmaengine_pcm.h>
+
++#include <asm/system_info.h>
++
+ /* Clock registers */
+ #define BCM2708_CLK_PCMCTL_REG 0x00
+ #define BCM2708_CLK_PCMDIV_REG 0x04
+@@ -163,6 +168,9 @@ static const unsigned int bcm2708_clk_freq[BCM2708_CLK_SRC_HDMI+1] = {
+ #define BCM2708_DMA_DREQ_PCM_TX 2
+ #define BCM2708_DMA_DREQ_PCM_RX 3
+
++/* I2S pin configuration */
++static int bcm2708_i2s_gpio=BCM2708_I2S_GPIO_AUTO;
++
+ /* General device struct */
+ struct bcm2708_i2s_dev {
+ struct device *dev;
+@@ -174,6 +182,12 @@ struct bcm2708_i2s_dev {
+ struct regmap *clk_regmap;
+ };
+
++void bcm2708_i2s_set_gpio(int gpio) {
++ bcm2708_i2s_gpio=gpio;
++}
++EXPORT_SYMBOL(bcm2708_i2s_set_gpio);
++
++
+ static void bcm2708_i2s_start_clock(struct bcm2708_i2s_dev *dev)
+ {
+ /* Start the clock if in master mode */
+@@ -306,6 +320,25 @@ static int bcm2708_i2s_set_dai_bclk_ratio(struct snd_soc_dai *dai,
+ }
+
+
++static int bcm2708_i2s_set_function(unsigned offset, int function)
++{
++ #define GPIOFSEL(x) (0x00+(x)*4)
++ void __iomem *gpio = __io_address(GPIO_BASE);
++ unsigned alt = function <= 3 ? function + 4: function == 4 ? 3 : 2;
++ unsigned gpiodir;
++ unsigned gpio_bank = offset / 10;
++ unsigned gpio_field_offset = (offset - 10 * gpio_bank) * 3;
++
++ if (offset >= BCM2708_NR_GPIOS)
++ return -EINVAL;
++
++ gpiodir = readl(gpio + GPIOFSEL(gpio_bank));
++ gpiodir &= ~(7 << gpio_field_offset);
++ gpiodir |= alt << gpio_field_offset;
++ writel(gpiodir, gpio + GPIOFSEL(gpio_bank));
++ return 0;
++}
++
+ static void bcm2708_i2s_setup_gpio(void)
+ {
+ /*
+@@ -314,20 +347,37 @@ static void bcm2708_i2s_setup_gpio(void)
+ * TODO Better way would be to handle
+ * this in the device tree!
+ */
+-#define INP_GPIO(g) *(gpio+((g)/10)) &= ~(7<<(((g)%10)*3))
+-#define SET_GPIO_ALT(g,a) *(gpio+(((g)/10))) |= (((a)<=3?(a)+4:(a)==4?3:2)<<(((g)%10)*3))
++ int pin,pinconfig,startpin,alt;
++
++ /* SPI is on different GPIOs on different boards */
++ /* for Raspberry Pi B+, this is pin GPIO18-21, for original on 28-31 */
++ if (bcm2708_i2s_gpio==BCM2708_I2S_GPIO_AUTO) {
++ if ((system_rev & 0xffffff) >= 0x10) {
++ /* Model B+ */
++ pinconfig=BCM2708_I2S_GPIO_PIN18;
++ } else {
++ /* original */
++ pinconfig=BCM2708_I2S_GPIO_PIN28;
++ }
++ } else {
++ pinconfig=bcm2708_i2s_gpio;
++ }
+
+- unsigned int *gpio;
+- int pin;
+- gpio = ioremap(GPIO_BASE, SZ_16K);
++ if (pinconfig==BCM2708_I2S_GPIO_PIN18) {
++ startpin=18;
++ alt=BCM2708_I2S_GPIO_PIN18_ALT;
++ } else if (pinconfig==BCM2708_I2S_GPIO_PIN28) {
++ startpin=28;
++ alt=BCM2708_I2S_GPIO_PIN28_ALT;
++ } else {
++ printk(KERN_INFO "Can't configure I2S GPIOs, unknown pin mode for I2S: %i\n",pinconfig);
++ return;
++ }
+
+- /* SPI is on GPIO 7..11 */
+- for (pin = 28; pin <= 31; pin++) {
+- INP_GPIO(pin); /* set mode to GPIO input first */
+- SET_GPIO_ALT(pin, 2); /* set mode to ALT 0 */
++ /* configure I2S pins to correct ALT mode */
++ for (pin = startpin; pin <= startpin+3; pin++) {
++ bcm2708_i2s_set_function(pin, alt);
+ }
+-#undef INP_GPIO
+-#undef SET_GPIO_ALT
+ }
+
+ static int bcm2708_i2s_hw_params(struct snd_pcm_substream *substream,
+@@ -372,15 +422,15 @@ static int bcm2708_i2s_hw_params(struct snd_pcm_substream *substream,
+ switch (params_format(params)) {
+ case SNDRV_PCM_FORMAT_S16_LE:
+ data_length = 16;
+- bclk_ratio = 40;
++ bclk_ratio = 50;
+ break;
+ case SNDRV_PCM_FORMAT_S24_LE:
+ data_length = 24;
+- bclk_ratio = 40;
++ bclk_ratio = 50;
+ break;
+ case SNDRV_PCM_FORMAT_S32_LE:
+ data_length = 32;
+- bclk_ratio = 80;
++ bclk_ratio = 100;
+ break;
+ default:
+ return -EINVAL;
+@@ -746,7 +796,7 @@ static struct snd_soc_dai_driver bcm2708_i2s_dai = {
+ .channels_max = 2,
+ .rates = SNDRV_PCM_RATE_8000_192000,
+ .formats = SNDRV_PCM_FMTBIT_S16_LE
+- // | SNDRV_PCM_FMTBIT_S24_LE : disable for now, it causes white noise with xbmc
++ | SNDRV_PCM_FMTBIT_S24_LE
+ | SNDRV_PCM_FMTBIT_S32_LE
+ },
+ .capture = {
+@@ -803,6 +853,7 @@ static const struct regmap_config bcm2708_regmap_config[] = {
+ .precious_reg = bcm2708_i2s_precious_reg,
+ .volatile_reg = bcm2708_i2s_volatile_reg,
+ .cache_type = REGCACHE_RBTREE,
++ .name = "i2s",
+ },
+ {
+ .reg_bits = 32,
+@@ -811,6 +862,7 @@ static const struct regmap_config bcm2708_regmap_config[] = {
+ .max_register = BCM2708_CLK_PCMDIV_REG,
+ .volatile_reg = bcm2708_clk_volatile_reg,
+ .cache_type = REGCACHE_RBTREE,
++ .name = "clk",
+ },
+ };
+
+diff --git a/sound/soc/bcm/bcm2708-i2s.h b/sound/soc/bcm/bcm2708-i2s.h
+new file mode 100644
+index 0000000..94fed6a
+--- /dev/null
++++ b/sound/soc/bcm/bcm2708-i2s.h
+@@ -0,0 +1,35 @@
++/*
++ * I2S configuration for sound cards.
++ *
++ * Copyright (c) 2014 Daniel Matuschek <daniel@hifiberry.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
++ */
++
++#ifndef BCM2708_I2S_H
++#define BCM2708_I2S_H
++
++/* I2S pin assignment */
++#define BCM2708_I2S_GPIO_AUTO 0
++#define BCM2708_I2S_GPIO_PIN18 1
++#define BCM2708_I2S_GPIO_PIN28 2
++
++/* Alt mode to enable I2S */
++#define BCM2708_I2S_GPIO_PIN18_ALT 0
++#define BCM2708_I2S_GPIO_PIN28_ALT 2
++
++extern void bcm2708_i2s_set_gpio(int gpio);
++
++#endif
+--
+1.9.1
+
diff --git a/recipes-kernel/linux/linux-raspberrypi/0002-Fix-grabbing-lock-from-atomic-context-in-i2c-driver.patch b/recipes-kernel/linux/linux-raspberrypi/0002-Fix-grabbing-lock-from-atomic-context-in-i2c-driver.patch
new file mode 100644
index 0000000..907ed7b
--- /dev/null
+++ b/recipes-kernel/linux/linux-raspberrypi/0002-Fix-grabbing-lock-from-atomic-context-in-i2c-driver.patch
@@ -0,0 +1,235 @@
+From 2c84355bf200f4d19d7078dee2c63011ad715395 Mon Sep 17 00:00:00 2001
+From: jeanleflambeur <catalin.vasile@gmail.com>
+Date: Sun, 1 Feb 2015 12:35:38 +0100
+Subject: [PATCH 2/2] Fix grabbing lock from atomic context in i2c driver
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+(cherry-pick from 558d0bfc8fe80ccdccee7f03e881a80965ec987c)
+
+2 main changes:
+- check for timeouts in the bcm2708_bsc_setup function as indicated by this comment:
+ /* poll for transfer start bit (should only take 1-20 polls) */
+ This implies that the setup function can now fail so account for this everywhere it's called
+- Removed the clk_get_rate call from inside the setup function as it locks a mutex and that's not ok since we call it from under a spin lock.
+
+removed dead code and update comment
+
+fixed typo in comment
+
+Upstream-Status: Pending
+
+Signed-off-by: Petter Mabäcker <petter@technux.se>
+
+Conflicts:
+ drivers/i2c/busses/i2c-bcm2708.c
+---
+ drivers/i2c/busses/i2c-bcm2708.c | 88 +++++++++++++++++++++++++++++-----------
+ 1 file changed, 65 insertions(+), 23 deletions(-)
+
+diff --git a/drivers/i2c/busses/i2c-bcm2708.c b/drivers/i2c/busses/i2c-bcm2708.c
+index 05531db..886672c 100644
+--- a/drivers/i2c/busses/i2c-bcm2708.c
++++ b/drivers/i2c/busses/i2c-bcm2708.c
+@@ -67,6 +67,7 @@
+ #define BSC_S_TA 0x00000001
+
+ #define I2C_TIMEOUT_MS 150
++#define I2C_WAIT_LOOP_COUNT 40
+
+ #define DRV_NAME "bcm2708_i2c"
+
+@@ -85,6 +86,7 @@ struct bcm2708_i2c {
+ void __iomem *base;
+ int irq;
+ struct clk *clk;
++ u32 cdiv;
+
+ struct completion done;
+
+@@ -108,10 +110,10 @@ static void bcm2708_i2c_init_pinmode(int id)
+ int pin;
+ u32 *gpio = ioremap(0x20200000, SZ_16K);
+
+- BUG_ON(id != 0 && id != 1);
++ BUG_ON(id != 0 && id != 1);
+ /* BSC0 is on GPIO 0 & 1, BSC1 is on GPIO 2 & 3 */
+ for (pin = id*2+0; pin <= id*2+1; pin++) {
+-printk("bcm2708_i2c_init_pinmode(%d,%d)\n", id, pin);
++ printk("bcm2708_i2c_init_pinmode(%d,%d)\n", id, pin);
+ INP_GPIO(pin); /* set mode to GPIO input first */
+ SET_GPIO_ALT(pin, 0); /* set mode to ALT 0 */
+ }
+@@ -150,16 +152,16 @@ static inline void bcm2708_bsc_fifo_fill(struct bcm2708_i2c *bi)
+ bcm2708_wr(bi, BSC_FIFO, bi->msg->buf[bi->pos++]);
+ }
+
+-static inline void bcm2708_bsc_setup(struct bcm2708_i2c *bi)
++static inline int bcm2708_bsc_setup(struct bcm2708_i2c *bi)
+ {
+- unsigned long bus_hz;
+ u32 cdiv, s;
+ u32 c = BSC_C_I2CEN | BSC_C_INTD | BSC_C_ST | BSC_C_CLEAR_1;
++ int wait_loops = I2C_WAIT_LOOP_COUNT;
+
+- bus_hz = clk_get_rate(bi->clk);
+- cdiv = bus_hz / baudrate;
+- if (cdiv > 0xffff)
+- cdiv = 0xffff;
++ /* Can't call clk_get_rate as it locks a mutex and here we are spinlocked.
++ * Use the value that we cached in the probe.
++ */
++ cdiv = bi->cdiv;
+
+ if (bi->msg->flags & I2C_M_RD)
+ c |= BSC_C_INTR | BSC_C_READ;
+@@ -176,17 +178,25 @@ static inline void bcm2708_bsc_setup(struct bcm2708_i2c *bi)
+ - Both messages to same slave address
+ - Write message can fit inside FIFO (16 bytes or less) */
+ if ( (bi->nmsgs > 1) &&
+- !(bi->msg[0].flags & I2C_M_RD) && (bi->msg[1].flags & I2C_M_RD) &&
+- (bi->msg[0].addr == bi->msg[1].addr) && (bi->msg[0].len <= 16)) {
++ !(bi->msg[0].flags & I2C_M_RD) && (bi->msg[1].flags & I2C_M_RD) &&
++ (bi->msg[0].addr == bi->msg[1].addr) && (bi->msg[0].len <= 16)) {
+ /* Fill FIFO with entire write message (16 byte FIFO) */
+- while (bi->pos < bi->msg->len)
++ while (bi->pos < bi->msg->len) {
+ bcm2708_wr(bi, BSC_FIFO, bi->msg->buf[bi->pos++]);
++ }
+ /* Start write transfer (no interrupts, don't clear FIFO) */
+ bcm2708_wr(bi, BSC_C, BSC_C_I2CEN | BSC_C_ST);
++
+ /* poll for transfer start bit (should only take 1-20 polls) */
+ do {
+ s = bcm2708_rd(bi, BSC_S);
+- } while (!(s & (BSC_S_TA | BSC_S_ERR | BSC_S_CLKT | BSC_S_DONE)));
++ } while (!(s & (BSC_S_TA | BSC_S_ERR | BSC_S_CLKT | BSC_S_DONE)) && --wait_loops >= 0);
++
++ /* did we time out or some error occured? */
++ if (wait_loops < 0 || (s & (BSC_S_ERR | BSC_S_CLKT))) {
++ return -1;
++ }
++
+ /* Send next read message before the write transfer finishes. */
+ bi->nmsgs--;
+ bi->msg++;
+@@ -196,6 +206,8 @@ static inline void bcm2708_bsc_setup(struct bcm2708_i2c *bi)
+ }
+ }
+ bcm2708_wr(bi, BSC_C, c);
++
++ return 0;
+ }
+
+ static irqreturn_t bcm2708_i2c_interrupt(int irq, void *dev_id)
+@@ -203,13 +215,15 @@ static irqreturn_t bcm2708_i2c_interrupt(int irq, void *dev_id)
+ struct bcm2708_i2c *bi = dev_id;
+ bool handled = true;
+ u32 s;
++ int ret;
+
+ spin_lock(&bi->lock);
+
+ /* we may see camera interrupts on the "other" I2C channel
+- Just return if we've not sent anything */
+- if (!bi->nmsgs || !bi->msg )
++ Just return if we've not sent anything */
++ if (!bi->nmsgs || !bi->msg) {
+ goto early_exit;
++ }
+
+ s = bcm2708_rd(bi, BSC_S);
+
+@@ -217,13 +231,16 @@ static irqreturn_t bcm2708_i2c_interrupt(int irq, void *dev_id)
+ bcm2708_bsc_reset(bi);
+ bi->error = true;
+
++ bi->msg = 0; /* to inform the that all work is done */
++ bi->nmsgs = 0;
+ /* wake up our bh */
+ complete(&bi->done);
+ } else if (s & BSC_S_DONE) {
+ bi->nmsgs--;
+
+- if (bi->msg->flags & I2C_M_RD)
++ if (bi->msg->flags & I2C_M_RD) {
+ bcm2708_bsc_fifo_drain(bi);
++ }
+
+ bcm2708_bsc_reset(bi);
+
+@@ -231,8 +248,19 @@ static irqreturn_t bcm2708_i2c_interrupt(int irq, void *dev_id)
+ /* advance to next message */
+ bi->msg++;
+ bi->pos = 0;
+- bcm2708_bsc_setup(bi);
++ ret = bcm2708_bsc_setup(bi);
++ if (ret < 0) {
++ bcm2708_bsc_reset(bi);
++ bi->error = true;
++ bi->msg = 0; /* to inform the that all work is done */
++ bi->nmsgs = 0;
++ /* wake up our bh */
++ complete(&bi->done);
++ goto early_exit;
++ }
+ } else {
++ bi->msg = 0; /* to inform the that all work is done */
++ bi->nmsgs = 0;
+ /* wake up our bh */
+ complete(&bi->done);
+ }
+@@ -265,21 +293,34 @@ static int bcm2708_i2c_master_xfer(struct i2c_adapter *adap,
+ bi->nmsgs = num;
+ bi->error = false;
+
++ ret = bcm2708_bsc_setup(bi);
+ spin_unlock_irqrestore(&bi->lock, flags);
+
+ bcm2708_bsc_setup(bi);
+
+- ret = wait_for_completion_timeout(&bi->done,
+- msecs_to_jiffies(I2C_TIMEOUT_MS));
++ /* check the result of the setup */
++ if (ret < 0)
++ {
++ dev_err(&adap->dev, "transfer setup timed out\n");
++ goto error_timeout;
++ }
++
++ ret = wait_for_completion_timeout(&bi->done, msecs_to_jiffies(I2C_TIMEOUT_MS));
+ if (ret == 0) {
+ dev_err(&adap->dev, "transfer timed out\n");
+- spin_lock_irqsave(&bi->lock, flags);
+- bcm2708_bsc_reset(bi);
+- spin_unlock_irqrestore(&bi->lock, flags);
+- return -ETIMEDOUT;
++ goto error_timeout;
+ }
+
+- return bi->error ? -EIO : num;
++ ret = bi->error ? -EIO : num;
++ return ret;
++
++error_timeout:
++ spin_lock_irqsave(&bi->lock, flags);
++ bcm2708_bsc_reset(bi);
++ bi->msg = 0; /* to inform the interrupt handler that there's nothing else to be done */
++ bi->nmsgs = 0;
++ spin_unlock_irqrestore(&bi->lock, flags);
++ return -ETIMEDOUT;
+ }
+
+ static u32 bcm2708_i2c_functionality(struct i2c_adapter *adap)
+@@ -382,6 +423,7 @@ static int bcm2708_i2c_probe(struct platform_device *pdev)
+ cdiv = 0xffff;
+ baudrate = bus_hz / cdiv;
+ }
++ bi->cdiv = cdiv;
+
+ dev_info(&pdev->dev, "BSC%d Controller at 0x%08lx (irq %d) (baudrate %d)\n",
+ pdev->id, (unsigned long)regs->start, irq, baudrate);
+--
+1.9.1
+
diff --git a/recipes-kernel/linux/linux-raspberrypi_3.14.bb b/recipes-kernel/linux/linux-raspberrypi_3.14.bb
new file mode 100644
index 0000000..2edba32
--- /dev/null
+++ b/recipes-kernel/linux/linux-raspberrypi_3.14.bb
@@ -0,0 +1,9 @@
+LINUX_VERSION ?= "3.14.28"
+
+SRCREV = "e294028d7733a30f3befacc41d473c251096a515"
+SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-3.14.y \
+ file://0001-ASoC-Add-BCM2708-fixes.patch \
+ file://0002-Fix-grabbing-lock-from-atomic-context-in-i2c-driver.patch \
+ "
+
+require linux-raspberrypi.inc
--
1.9.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [meta-raspberrypi][PATCH 4/5] linux-raspberrypi: Drop support for old kernel versions
2015-05-08 21:49 [meta-raspberrypi][PATCH 0/5] kernel fixes Petter Mabäcker
` (2 preceding siblings ...)
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 3/5] linux-raspberrypi: Add 3.14 support Petter Mabäcker
@ 2015-05-08 21:49 ` Petter Mabäcker
2015-05-17 22:51 ` Andrei Gherzan
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 5/5] linux-raspberrypi: Update 3.12 branch to latest Petter Mabäcker
4 siblings, 1 reply; 15+ messages in thread
From: Petter Mabäcker @ 2015-05-08 21:49 UTC (permalink / raw)
To: yocto
meta-raspberrypi currently supports too many versions in order to ensure
that all of them are frequently tested and updated. Change to only
support latest stable + 2 long term versions.
[Support #59]
Signed-off-by: Petter Mabäcker <petter@technux.se>
---
recipes-kernel/linux/linux-raspberrypi_3.10.bb | 8 --------
recipes-kernel/linux/linux-raspberrypi_3.16.bb | 8 --------
recipes-kernel/linux/linux-raspberrypi_3.6.bb | 8 --------
recipes-kernel/linux/linux-raspberrypi_3.8.bb | 8 --------
4 files changed, 32 deletions(-)
delete mode 100644 recipes-kernel/linux/linux-raspberrypi_3.10.bb
delete mode 100644 recipes-kernel/linux/linux-raspberrypi_3.16.bb
delete mode 100644 recipes-kernel/linux/linux-raspberrypi_3.6.bb
delete mode 100644 recipes-kernel/linux/linux-raspberrypi_3.8.bb
diff --git a/recipes-kernel/linux/linux-raspberrypi_3.10.bb b/recipes-kernel/linux/linux-raspberrypi_3.10.bb
deleted file mode 100644
index e5d5bf2..0000000
--- a/recipes-kernel/linux/linux-raspberrypi_3.10.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-LINUX_VERSION ?= "3.10.38"
-
-SRCREV = "1b49b450222df26e4abf7abb6d9302f72b2ed386"
-SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-3.10.y \
- file://sl030raspberrypii2ckernel.patch \
- "
-
-require linux-raspberrypi.inc
diff --git a/recipes-kernel/linux/linux-raspberrypi_3.16.bb b/recipes-kernel/linux/linux-raspberrypi_3.16.bb
deleted file mode 100644
index ccc414f..0000000
--- a/recipes-kernel/linux/linux-raspberrypi_3.16.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-LINUX_VERSION ?= "3.16.5"
-
-SRCREV = "377c82aa1d31b37f1096096b0e4c65beb0bc5c49"
-SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-3.16.y \
- file://sl030raspberrypii2ckernel.patch \
- "
-
-require linux-raspberrypi.inc
diff --git a/recipes-kernel/linux/linux-raspberrypi_3.6.bb b/recipes-kernel/linux/linux-raspberrypi_3.6.bb
deleted file mode 100644
index fc9ac89..0000000
--- a/recipes-kernel/linux/linux-raspberrypi_3.6.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-LINUX_VERSION ?= "3.6.11"
-
-SRCREV = "2a8d45ec0883e3cbdce920855b3461ac77308a5f"
-SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-3.6.y \
- file://sl030raspberrypii2ckernel.patch \
- "
-
-require linux-raspberrypi.inc
diff --git a/recipes-kernel/linux/linux-raspberrypi_3.8.bb b/recipes-kernel/linux/linux-raspberrypi_3.8.bb
deleted file mode 100644
index ae0dc99..0000000
--- a/recipes-kernel/linux/linux-raspberrypi_3.8.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-LINUX_VERSION ?= "3.8.13"
-
-SRCREV = "d996a1b91b2bf3dc06f4f4f822a56f4496457aa1"
-SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-3.8.y \
- file://sl030raspberrypii2ckernel.patch \
- "
-
-require linux-raspberrypi.inc
--
1.9.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [meta-raspberrypi][PATCH 5/5] linux-raspberrypi: Update 3.12 branch to latest
2015-05-08 21:49 [meta-raspberrypi][PATCH 0/5] kernel fixes Petter Mabäcker
` (3 preceding siblings ...)
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 4/5] linux-raspberrypi: Drop support for old kernel versions Petter Mabäcker
@ 2015-05-08 21:49 ` Petter Mabäcker
2015-05-17 22:53 ` Andrei Gherzan
4 siblings, 1 reply; 15+ messages in thread
From: Petter Mabäcker @ 2015-05-08 21:49 UTC (permalink / raw)
To: yocto
Update linux-raspberrypi_3.12 to latest revision.
Remove sl030raspberrypii2ckernel.patch since it will not apply anymore
and its content seems to be obsolite after
'558d0bf Fix grabbing lock from atomic context in i2c driver' was
merged to 3.12.
[Support #60]
Signed-off-by: Petter Mabäcker <petter@technux.se>
---
.../sl030raspberrypii2ckernel.patch | 32 ----------------------
recipes-kernel/linux/linux-raspberrypi_3.12.bb | 3 +-
2 files changed, 1 insertion(+), 34 deletions(-)
delete mode 100644 recipes-kernel/linux/linux-raspberrypi/sl030raspberrypii2ckernel.patch
diff --git a/recipes-kernel/linux/linux-raspberrypi/sl030raspberrypii2ckernel.patch b/recipes-kernel/linux/linux-raspberrypi/sl030raspberrypii2ckernel.patch
deleted file mode 100644
index 8534ecb..0000000
--- a/recipes-kernel/linux/linux-raspberrypi/sl030raspberrypii2ckernel.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Fix i2c timing errors.
-
-When Transmitting: Make SDA valid quarter of a cycle after the falling edge of SCL.
-When Receiving: Sample SDA Quarter of a cycle after the rising edge of SCL.
-
-Upstream-Status: Pending
-
-RP 2013/04/21
-
-Index: git/drivers/i2c/busses/i2c-bcm2708.c
-===================================================================
---- git.orig/drivers/i2c/busses/i2c-bcm2708.c 2013-01-06 17:15:00.754954587 +0000
-+++ git/drivers/i2c/busses/i2c-bcm2708.c 2013-01-06 17:50:09.794905741 +0000
-@@ -150,6 +150,7 @@
- unsigned long bus_hz;
- u32 cdiv;
- u32 c = BSC_C_I2CEN | BSC_C_INTD | BSC_C_ST | BSC_C_CLEAR_1;
-+ u32 cdel;
-
- bus_hz = clk_get_rate(bi->clk);
- cdiv = bus_hz / baudrate;
-@@ -163,6 +164,10 @@
- bcm2708_wr(bi, BSC_A, bi->msg->addr);
- bcm2708_wr(bi, BSC_DLEN, bi->msg->len);
- bcm2708_wr(bi, BSC_C, c);
-+
-+ cdel = (cdiv / 4) & 0xffff;
-+ cdel = cdel << 16 | cdel;
-+ bcm2708_wr(bi, BSC_DEL, cdel);
- }
-
- static irqreturn_t bcm2708_i2c_interrupt(int irq, void *dev_id)
diff --git a/recipes-kernel/linux/linux-raspberrypi_3.12.bb b/recipes-kernel/linux/linux-raspberrypi_3.12.bb
index 2952778..71fba49 100644
--- a/recipes-kernel/linux/linux-raspberrypi_3.12.bb
+++ b/recipes-kernel/linux/linux-raspberrypi_3.12.bb
@@ -1,8 +1,7 @@
LINUX_VERSION ?= "3.12.36"
-SRCREV = "90fa5df724d147564149c7b79cb1ffc571a345ec"
+SRCREV = "ee9b8c7d46f2b1787b1e64604acafc70f70191cf"
SRC_URI = "git://github.com/raspberrypi/linux.git;protocol=git;branch=rpi-3.12.y \
- file://sl030raspberrypii2ckernel.patch \
"
require linux-raspberrypi.inc
--
1.9.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [meta-raspberrypi][PATCH 1/5] devicetree: auto-disable dts for old kernels
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 1/5] devicetree: auto-disable dts for old kernels Petter Mabäcker
@ 2015-05-10 10:16 ` Andrei Gherzan
2015-05-10 14:20 ` Petter Mabäcker
2015-05-17 22:46 ` Andrei Gherzan
1 sibling, 1 reply; 15+ messages in thread
From: Andrei Gherzan @ 2015-05-10 10:16 UTC (permalink / raw)
To: Petter Mabäcker; +Cc: Yocto Project
[-- Attachment #1: Type: text/plain, Size: 4805 bytes --]
Hello Petter,
On Fri, May 8, 2015 at 11:49 PM, Petter Mabäcker <petter@technux.se> wrote:
> After '6392a63 rpi-base.inc: Use KERNEL_DEVICETREE by default' was
> introduced, kernel versions < 3.18 might not be buildable. Since full
> device tree support was introduced in 3.18 this change ensures that all
> kernel < 3.18 will automatically disable device tree.
>
> Signed-off-by: Petter Mabäcker <petter@technux.se>
> ---
> classes/linux-raspberrypi-base.bbclass | 29
> +++++++++++++++++++++++++++++
> classes/sdcard_image-rpi.bbclass | 6 ++++--
> recipes-kernel/linux/linux-raspberrypi.inc | 4 +++-
> 3 files changed, 36 insertions(+), 3 deletions(-)
> create mode 100644 classes/linux-raspberrypi-base.bbclass
>
> diff --git a/classes/linux-raspberrypi-base.bbclass
> b/classes/linux-raspberrypi-base.bbclass
> new file mode 100644
> index 0000000..4bcadd0
> --- /dev/null
> +++ b/classes/linux-raspberrypi-base.bbclass
> @@ -0,0 +1,29 @@
> +inherit linux-kernel-base
> +
> +
> +def get_dts(d, ver):
> + staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR", True)
> + dts = d.getVar("KERNEL_DEVICETREE", True)
> +
> + # d.getVar() might return 'None' as a normal string
> + # leading to 'is None' check isn't enough.
> + # TODO: Investigate if this is a bug in bitbake
> + if ver is None or ver == "None":
> + ''' if 'ver' isn't set try to grab the kernel version
> + from the kernel staging '''
> + ver = get_kernelversion_file(staging_dir)
> +
> + if ver is not None:
> + min_ver = ver.split('.', 3)
> + else:
> + return dts
> +
> + # Always turn off device tree support for kernel's < 3.18
> + try:
> + if int(min_ver[0]) <= 3:
> + if int(min_ver[1]) < 18:
> + dts = ""
> + except IndexError:
> + min_ver = None
> +
> + return dts
> diff --git a/classes/sdcard_image-rpi.bbclass
> b/classes/sdcard_image-rpi.bbclass
> index 1ff664d..ca94566 100644
> --- a/classes/sdcard_image-rpi.bbclass
> +++ b/classes/sdcard_image-rpi.bbclass
> @@ -1,4 +1,5 @@
> inherit image_types
> +inherit linux-raspberrypi-base
>
> #
> # Create an image that can by written onto a SD card using dd.
> @@ -88,7 +89,8 @@ IMAGE_CMD_rpi-sdimg () {
> ROOTFS_SIZE_ALIGNED=$(expr ${ROOTFS_SIZE_ALIGNED} -
> ${ROOTFS_SIZE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
> SDIMG_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} +
> ${BOOT_SPACE_ALIGNED} + ${ROOTFS_SIZE_ALIGNED})
>
> - echo "Creating filesystem with Boot partition
> ${BOOT_SPACE_ALIGNED} KiB and RootFS ${ROOTFS_SIZE_ALIGNED} KiB"
>
Why do you remove this line? Maybe by mistake?
> + # Check if we are building with device tree support
> + DTS="${@get_dts(d, None)}"
>
Aren't we able to use the same variable name, KERNEL_DEVICETREE? What that
be a little clearer?
>
> # Initialize sdcard image file
> dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE}
> @@ -112,7 +114,7 @@ IMAGE_CMD_rpi-sdimg () {
> mcopy -i ${WORKDIR}/boot.img -s
> ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin
> ::uImage
> ;;
> *)
> - if test -n "${KERNEL_DEVICETREE}"; then
> + if test -n "${DTS}"; then
> # Copy board device trees to root folder
> for DTB in ${DT_ROOT}; do
> DTB_BASE_NAME=`basename ${DTB} .dtb`
> diff --git a/recipes-kernel/linux/linux-raspberrypi.inc
> b/recipes-kernel/linux/linux-raspberrypi.inc
> index 84d4f9e..7e36408 100644
> --- a/recipes-kernel/linux/linux-raspberrypi.inc
> +++ b/recipes-kernel/linux/linux-raspberrypi.inc
> @@ -1,4 +1,5 @@
> require linux.inc
> +inherit linux-raspberrypi-base
>
> DESCRIPTION = "Linux Kernel for Raspberry Pi"
> SECTION = "kernel"
> @@ -26,7 +27,8 @@ UDEV_GE_141 ?= "1"
> # See
> http://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.html#anonymous-python-functions
> python __anonymous () {
> kerneltype = d.getVar('KERNEL_IMAGETYPE', True)
> - kerneldt = d.getVar('KERNEL_DEVICETREE', True)
> + kerneldt = get_dts(d, d.getVar('LINUX_VERSION', True))
> + d.setVar("KERNEL_DEVICETREE", kerneldt)
>
> # Add dependency to 'rpi-mkimage-native' package only if RPi
> bootloader is used with DT-enable kernel
> if kerneldt:
> --
> 1.9.1
>
> --
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>
--
*Andrei Gherzan*
*e: **andrei@gherzan.ro <andrei@gherzan.ro>*
*w: *www.gherzan.ro
[-- Attachment #2: Type: text/html, Size: 7285 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [meta-raspberrypi][PATCH 1/5] devicetree: auto-disable dts for old kernels
2015-05-10 10:16 ` Andrei Gherzan
@ 2015-05-10 14:20 ` Petter Mabäcker
2015-05-10 14:24 ` Andrei Gherzan
0 siblings, 1 reply; 15+ messages in thread
From: Petter Mabäcker @ 2015-05-10 14:20 UTC (permalink / raw)
To: Andrei Gherzan; +Cc: Yocto Project
[-- Attachment #1: Type: text/plain, Size: 6049 bytes --]
Hi Andrei,
See answers inline.
BR,
Petter
On 05/10/2015 12:16 PM, Andrei Gherzan wrote:
> Hello Petter,
>
> On Fri, May 8, 2015 at 11:49 PM, Petter Mabäcker <petter@technux.se
> <mailto:petter@technux.se>> wrote:
>
> After '6392a63 rpi-base.inc: Use KERNEL_DEVICETREE by default' was
> introduced, kernel versions < 3.18 might not be buildable. Since full
> device tree support was introduced in 3.18 this change ensures
> that all
> kernel < 3.18 will automatically disable device tree.
>
> Signed-off-by: Petter Mabäcker <petter@technux.se
> <mailto:petter@technux.se>>
> ---
> classes/linux-raspberrypi-base.bbclass | 29
> +++++++++++++++++++++++++++++
> classes/sdcard_image-rpi.bbclass | 6 ++++--
> recipes-kernel/linux/linux-raspberrypi.inc | 4 +++-
> 3 files changed, 36 insertions(+), 3 deletions(-)
> create mode 100644 classes/linux-raspberrypi-base.bbclass
>
> diff --git a/classes/linux-raspberrypi-base.bbclass
> b/classes/linux-raspberrypi-base.bbclass
> new file mode 100644
> index 0000000..4bcadd0
> --- /dev/null
> +++ b/classes/linux-raspberrypi-base.bbclass
> @@ -0,0 +1,29 @@
> +inherit linux-kernel-base
> +
> +
> +def get_dts(d, ver):
> + staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR", True)
> + dts = d.getVar("KERNEL_DEVICETREE", True)
> +
> + # d.getVar() might return 'None' as a normal string
> + # leading to 'is None' check isn't enough.
> + # TODO: Investigate if this is a bug in bitbake
> + if ver is None or ver == "None":
> + ''' if 'ver' isn't set try to grab the kernel version
> + from the kernel staging '''
> + ver = get_kernelversion_file(staging_dir)
> +
> + if ver is not None:
> + min_ver = ver.split('.', 3)
> + else:
> + return dts
> +
> + # Always turn off device tree support for kernel's < 3.18
> + try:
> + if int(min_ver[0]) <= 3:
> + if int(min_ver[1]) < 18:
> + dts = ""
> + except IndexError:
> + min_ver = None
> +
> + return dts
> diff --git a/classes/sdcard_image-rpi.bbclass
> b/classes/sdcard_image-rpi.bbclass
> index 1ff664d..ca94566 100644
> --- a/classes/sdcard_image-rpi.bbclass
> +++ b/classes/sdcard_image-rpi.bbclass
> @@ -1,4 +1,5 @@
> inherit image_types
> +inherit linux-raspberrypi-base
>
> #
> # Create an image that can by written onto a SD card using dd.
> @@ -88,7 +89,8 @@ IMAGE_CMD_rpi-sdimg () {
> ROOTFS_SIZE_ALIGNED=$(expr ${ROOTFS_SIZE_ALIGNED} -
> ${ROOTFS_SIZE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
> SDIMG_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} +
> ${BOOT_SPACE_ALIGNED} + ${ROOTFS_SIZE_ALIGNED})
>
> - echo "Creating filesystem with Boot partition
> ${BOOT_SPACE_ALIGNED} KiB and RootFS ${ROOTFS_SIZE_ALIGNED} KiB"
>
>
> Why do you remove this line? Maybe by mistake?
Yes this is by mistake, thanks for finding it. Will send up a new
version with this fixed.
>
> + # Check if we are building with device tree support
> + DTS="${@get_dts(d, None)}"
>
>
> Aren't we able to use the same variable name, KERNEL_DEVICETREE? What
> that be a little clearer?
No, at least i couldn't get this working. When trying to set the
environment variable KERNEL_DEVICETREE in this context the values was
only ignored. Don't know if the image recipe (or at least the IMAGE_CMD
func) are doing something special. Perhaps it's possible to use 'eval'
or something similar to enforce the expansion of the variable. If you
have any good advice please share them, otherwise I can at least write
some comment about this.
>
>
> # Initialize sdcard image file
> dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE}
> @@ -112,7 +114,7 @@ IMAGE_CMD_rpi-sdimg () {
> mcopy -i ${WORKDIR}/boot.img -s
> ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin
> ::uImage
> ;;
> *)
> - if test -n "${KERNEL_DEVICETREE}"; then
> + if test -n "${DTS}"; then
> # Copy board device trees to root folder
> for DTB in ${DT_ROOT}; do
> DTB_BASE_NAME=`basename ${DTB} .dtb`
> diff --git a/recipes-kernel/linux/linux-raspberrypi.inc
> b/recipes-kernel/linux/linux-raspberrypi.inc
> index 84d4f9e..7e36408 100644
> --- a/recipes-kernel/linux/linux-raspberrypi.inc
> +++ b/recipes-kernel/linux/linux-raspberrypi.inc
> @@ -1,4 +1,5 @@
> require linux.inc
> +inherit linux-raspberrypi-base
>
> DESCRIPTION = "Linux Kernel for Raspberry Pi"
> SECTION = "kernel"
> @@ -26,7 +27,8 @@ UDEV_GE_141 ?= "1"
> # See
> http://www.yoctoproject.org/docs/current/bitbake-user-manual/bitbake-user-manual.html#anonymous-python-functions
> python __anonymous () {
> kerneltype = d.getVar('KERNEL_IMAGETYPE', True)
> - kerneldt = d.getVar('KERNEL_DEVICETREE', True)
> + kerneldt = get_dts(d, d.getVar('LINUX_VERSION', True))
> + d.setVar("KERNEL_DEVICETREE", kerneldt)
>
> # Add dependency to 'rpi-mkimage-native' package only if RPi
> bootloader is used with DT-enable kernel
> if kerneldt:
> --
> 1.9.1
>
> --
> _______________________________________________
> yocto mailing list
> yocto@yoctoproject.org <mailto:yocto@yoctoproject.org>
> https://lists.yoctoproject.org/listinfo/yocto
>
>
>
>
> --
> *Andrei Gherzan*
> *e: */andrei@gherzan.ro <mailto:andrei@gherzan.ro>/
> /*w:* /www.gherzan.ro <http://www.gherzan.ro>
[-- Attachment #2: Type: text/html, Size: 11594 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [meta-raspberrypi][PATCH 1/5] devicetree: auto-disable dts for old kernels
2015-05-10 14:20 ` Petter Mabäcker
@ 2015-05-10 14:24 ` Andrei Gherzan
2015-05-10 17:07 ` Petter Mabäcker
0 siblings, 1 reply; 15+ messages in thread
From: Andrei Gherzan @ 2015-05-10 14:24 UTC (permalink / raw)
To: Petter Mabäcker; +Cc: Yocto Project
[-- Attachment #1: Type: text/plain, Size: 4037 bytes --]
On Sun, May 10, 2015 at 4:20 PM, Petter Mabäcker <petter@technux.se> wrote:
> Hi Andrei,
>
> See answers inline.
>
> BR,
> Petter
>
>
> On 05/10/2015 12:16 PM, Andrei Gherzan wrote:
>
> Hello Petter,
>
> On Fri, May 8, 2015 at 11:49 PM, Petter Mabäcker <petter@technux.se>
> wrote:
>
>> After '6392a63 rpi-base.inc: Use KERNEL_DEVICETREE by default' was
>> introduced, kernel versions < 3.18 might not be buildable. Since full
>> device tree support was introduced in 3.18 this change ensures that all
>> kernel < 3.18 will automatically disable device tree.
>>
>> Signed-off-by: Petter Mabäcker <petter@technux.se>
>> ---
>> classes/linux-raspberrypi-base.bbclass | 29
>> +++++++++++++++++++++++++++++
>> classes/sdcard_image-rpi.bbclass | 6 ++++--
>> recipes-kernel/linux/linux-raspberrypi.inc | 4 +++-
>> 3 files changed, 36 insertions(+), 3 deletions(-)
>> create mode 100644 classes/linux-raspberrypi-base.bbclass
>>
>> diff --git a/classes/linux-raspberrypi-base.bbclass
>> b/classes/linux-raspberrypi-base.bbclass
>> new file mode 100644
>> index 0000000..4bcadd0
>> --- /dev/null
>> +++ b/classes/linux-raspberrypi-base.bbclass
>> @@ -0,0 +1,29 @@
>> +inherit linux-kernel-base
>> +
>> +
>> +def get_dts(d, ver):
>> + staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR", True)
>> + dts = d.getVar("KERNEL_DEVICETREE", True)
>> +
>> + # d.getVar() might return 'None' as a normal string
>> + # leading to 'is None' check isn't enough.
>> + # TODO: Investigate if this is a bug in bitbake
>> + if ver is None or ver == "None":
>> + ''' if 'ver' isn't set try to grab the kernel version
>> + from the kernel staging '''
>> + ver = get_kernelversion_file(staging_dir)
>> +
>> + if ver is not None:
>> + min_ver = ver.split('.', 3)
>> + else:
>> + return dts
>> +
>> + # Always turn off device tree support for kernel's < 3.18
>> + try:
>> + if int(min_ver[0]) <= 3:
>> + if int(min_ver[1]) < 18:
>> + dts = ""
>> + except IndexError:
>> + min_ver = None
>> +
>> + return dts
>> diff --git a/classes/sdcard_image-rpi.bbclass
>> b/classes/sdcard_image-rpi.bbclass
>> index 1ff664d..ca94566 100644
>> --- a/classes/sdcard_image-rpi.bbclass
>> +++ b/classes/sdcard_image-rpi.bbclass
>> @@ -1,4 +1,5 @@
>> inherit image_types
>> +inherit linux-raspberrypi-base
>>
>> #
>> # Create an image that can by written onto a SD card using dd.
>> @@ -88,7 +89,8 @@ IMAGE_CMD_rpi-sdimg () {
>> ROOTFS_SIZE_ALIGNED=$(expr ${ROOTFS_SIZE_ALIGNED} -
>> ${ROOTFS_SIZE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
>> SDIMG_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} +
>> ${BOOT_SPACE_ALIGNED} + ${ROOTFS_SIZE_ALIGNED})
>>
>> - echo "Creating filesystem with Boot partition
>> ${BOOT_SPACE_ALIGNED} KiB and RootFS ${ROOTFS_SIZE_ALIGNED} KiB"
>>
>
> Why do you remove this line? Maybe by mistake?
>
> Yes this is by mistake, thanks for finding it. Will send up a new version
> with this fixed.
>
> Don't bother. I'll fix it before merging.
>
>
>> + # Check if we are building with device tree support
>> + DTS="${@get_dts(d, None)}"
>>
>
> Aren't we able to use the same variable name, KERNEL_DEVICETREE? What
> that be a little clearer?
>
> No, at least i couldn't get this working. When trying to set the
> environment variable KERNEL_DEVICETREE in this context the values was only
> ignored. Don't know if the image recipe (or at least the IMAGE_CMD func)
> are doing something special. Perhaps it's possible to use 'eval' or
> something similar to enforce the expansion of the variable. If you have any
> good advice please share them, otherwise I can at least write some comment
> about this.
>
I'll try it a little. But I didn't expect this. Will see. Otherwise this is
fine.
--
*Andrei Gherzan*
*e: **andrei@gherzan.ro <andrei@gherzan.ro>*
*w: *www.gherzan.ro
[-- Attachment #2: Type: text/html, Size: 8197 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [meta-raspberrypi][PATCH 1/5] devicetree: auto-disable dts for old kernels
2015-05-10 14:24 ` Andrei Gherzan
@ 2015-05-10 17:07 ` Petter Mabäcker
0 siblings, 0 replies; 15+ messages in thread
From: Petter Mabäcker @ 2015-05-10 17:07 UTC (permalink / raw)
To: Andrei Gherzan; +Cc: Yocto Project
[-- Attachment #1: Type: text/plain, Size: 4957 bytes --]
On 05/10/2015 04:24 PM, Andrei Gherzan wrote:
>
>
> On Sun, May 10, 2015 at 4:20 PM, Petter Mabäcker <petter@technux.se
> <mailto:petter@technux.se>> wrote:
>
> Hi Andrei,
>
> See answers inline.
>
> BR,
> Petter
>
>
> On 05/10/2015 12:16 PM, Andrei Gherzan wrote:
>> Hello Petter,
>>
>> On Fri, May 8, 2015 at 11:49 PM, Petter Mabäcker
>> <petter@technux.se <mailto:petter@technux.se>> wrote:
>>
>> After '6392a63 rpi-base.inc: Use KERNEL_DEVICETREE by
>> default' was
>> introduced, kernel versions < 3.18 might not be buildable.
>> Since full
>> device tree support was introduced in 3.18 this change
>> ensures that all
>> kernel < 3.18 will automatically disable device tree.
>>
>> Signed-off-by: Petter Mabäcker <petter@technux.se
>> <mailto:petter@technux.se>>
>> ---
>> classes/linux-raspberrypi-base.bbclass | 29
>> +++++++++++++++++++++++++++++
>> classes/sdcard_image-rpi.bbclass | 6 ++++--
>> recipes-kernel/linux/linux-raspberrypi.inc | 4 +++-
>> 3 files changed, 36 insertions(+), 3 deletions(-)
>> create mode 100644 classes/linux-raspberrypi-base.bbclass
>>
>> diff --git a/classes/linux-raspberrypi-base.bbclass
>> b/classes/linux-raspberrypi-base.bbclass
>> new file mode 100644
>> index 0000000..4bcadd0
>> --- /dev/null
>> +++ b/classes/linux-raspberrypi-base.bbclass
>> @@ -0,0 +1,29 @@
>> +inherit linux-kernel-base
>> +
>> +
>> +def get_dts(d, ver):
>> + staging_dir = d.getVar("STAGING_KERNEL_BUILDDIR", True)
>> + dts = d.getVar("KERNEL_DEVICETREE", True)
>> +
>> + # d.getVar() might return 'None' as a normal string
>> + # leading to 'is None' check isn't enough.
>> + # TODO: Investigate if this is a bug in bitbake
>> + if ver is None or ver == "None":
>> + ''' if 'ver' isn't set try to grab the kernel version
>> + from the kernel staging '''
>> + ver = get_kernelversion_file(staging_dir)
>> +
>> + if ver is not None:
>> + min_ver = ver.split('.', 3)
>> + else:
>> + return dts
>> +
>> + # Always turn off device tree support for kernel's < 3.18
>> + try:
>> + if int(min_ver[0]) <= 3:
>> + if int(min_ver[1]) < 18:
>> + dts = ""
>> + except IndexError:
>> + min_ver = None
>> +
>> + return dts
>> diff --git a/classes/sdcard_image-rpi.bbclass
>> b/classes/sdcard_image-rpi.bbclass
>> index 1ff664d..ca94566 100644
>> --- a/classes/sdcard_image-rpi.bbclass
>> +++ b/classes/sdcard_image-rpi.bbclass
>> @@ -1,4 +1,5 @@
>> inherit image_types
>> +inherit linux-raspberrypi-base
>>
>> #
>> # Create an image that can by written onto a SD card using dd.
>> @@ -88,7 +89,8 @@ IMAGE_CMD_rpi-sdimg () {
>> ROOTFS_SIZE_ALIGNED=$(expr ${ROOTFS_SIZE_ALIGNED} -
>> ${ROOTFS_SIZE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
>> SDIMG_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} +
>> ${BOOT_SPACE_ALIGNED} + ${ROOTFS_SIZE_ALIGNED})
>>
>> - echo "Creating filesystem with Boot partition
>> ${BOOT_SPACE_ALIGNED} KiB and RootFS ${ROOTFS_SIZE_ALIGNED} KiB"
>>
>>
>> Why do you remove this line? Maybe by mistake?
> Yes this is by mistake, thanks for finding it. Will send up a new
> version with this fixed.
>
> Don't bother. I'll fix it before merging.
Ok, thanks.
>
>> + # Check if we are building with device tree support
>> + DTS="${@get_dts(d, None)}"
>>
>>
>> Aren't we able to use the same variable name, KERNEL_DEVICETREE?
>> What that be a little clearer?
> No, at least i couldn't get this working. When trying to set the
> environment variable KERNEL_DEVICETREE in this context the values
> was only ignored. Don't know if the image recipe (or at least the
> IMAGE_CMD func) are doing something special. Perhaps it's possible
> to use 'eval' or something similar to enforce the expansion of the
> variable. If you have any good advice please share them, otherwise
> I can at least write some comment about this.
>
>
> I'll try it a little. But I didn't expect this. Will see. Otherwise
> this is fine.
Neither did I, let me know if you find anything interesting about this.
>
>
> --
> *Andrei Gherzan*
> *e: */andrei@gherzan.ro <mailto:andrei@gherzan.ro>/
> /*w:* /www.gherzan.ro <http://www.gherzan.ro>
[-- Attachment #2: Type: text/html, Size: 13108 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [meta-raspberrypi][PATCH 1/5] devicetree: auto-disable dts for old kernels
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 1/5] devicetree: auto-disable dts for old kernels Petter Mabäcker
2015-05-10 10:16 ` Andrei Gherzan
@ 2015-05-17 22:46 ` Andrei Gherzan
2015-05-25 14:48 ` Petter Mabäcker
1 sibling, 1 reply; 15+ messages in thread
From: Andrei Gherzan @ 2015-05-17 22:46 UTC (permalink / raw)
To: Petter Mabäcker; +Cc: Yocto Project
Hi Petter,
> + # Check if we are building with device tree support
> + DTS="${@get_dts(d, None)}"
>
> # Initialize sdcard image file
> dd if=/dev/zero of=${SDIMG} bs=1024 count=0 seek=${SDIMG_SIZE}
> @@ -112,7 +114,7 @@ IMAGE_CMD_rpi-sdimg () {
> mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin ::uImage
> ;;
> *)
> - if test -n "${KERNEL_DEVICETREE}"; then
> + if test -n "${DTS}"; then
> # Copy board device trees to root folder
> for DTB in ${DT_ROOT}; do
> DTB_BASE_NAME=`basename ${DTB} .dtb`
I started to review these patches and test. I have one concern related
to this patch. More specifically the fact that even though you check
for DTS now, we are still using DT_ROOT (and co) for the next loops
which use KERNEL_DEVICETREE. Maybe a better way to do it would be to
move
DT_ALL = "${@d.getVar('KERNEL_DEVICETREE', True) or ''}"
DT_OVERLAYS = "${@oe.utils.str_filter('\S+\-overlay\.dtb$',
'${DT_ALL}', d)}"
DT_ROOT = "${@oe.utils.str_filter_out('\S+\-overlay\.dtb$', '${DT_ALL}', d)}"
... after you define DTS and define these based on DTS variable.
Regards,
Andrei
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [meta-raspberrypi][PATCH 4/5] linux-raspberrypi: Drop support for old kernel versions
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 4/5] linux-raspberrypi: Drop support for old kernel versions Petter Mabäcker
@ 2015-05-17 22:51 ` Andrei Gherzan
0 siblings, 0 replies; 15+ messages in thread
From: Andrei Gherzan @ 2015-05-17 22:51 UTC (permalink / raw)
To: Petter Mabäcker; +Cc: yocto
On Fri, May 08, 2015 at 11:49:04PM +0200, Petter Mabäcker wrote:
> meta-raspberrypi currently supports too many versions in order to ensure
> that all of them are frequently tested and updated. Change to only
> support latest stable + 2 long term versions.
>
> [Support #59]
>
> Signed-off-by: Petter Mabäcker <petter@technux.se>
Patch merged to master. Thanks.
--
Andrei Gherzan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [meta-raspberrypi][PATCH 3/5] linux-raspberrypi: Add 3.14 support
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 3/5] linux-raspberrypi: Add 3.14 support Petter Mabäcker
@ 2015-05-17 22:53 ` Andrei Gherzan
0 siblings, 0 replies; 15+ messages in thread
From: Andrei Gherzan @ 2015-05-17 22:53 UTC (permalink / raw)
To: Petter Mabäcker; +Cc: yocto
On Fri, May 08, 2015 at 11:49:03PM +0200, Petter Mabäcker wrote:
> Add basic support for Linux 3.14, cherry-pick changes from 3.18.y in
> order to solve some debugfs warnings and get better support
> for i2s for BCM2708.
>
> - 3.14 lacks BCM2709 support and will not by default be able to use for
> raspberry pi 2.
>
> Below warnings still exists they are harmless and exists due to that
> snd_soc_pcm512x is triggered to be loaded twice. The problem is solved
> after device tree support for the driver was introduced in 3.18.y and no
> easy solution exists to solve this problem on older kernel versions (see
> https://github.com/raspberrypi/linux/issues/662 for more info).
>
> pcm512x 1-004c: Failed to reset device: -5
> pcm512x: probe of 1-004c failed with error
>
> Remove sl030raspberrypii2ckernel.patch since it will not apply anymore
> and its content seems to be obsolite after cherry-picking
> '558d0bf Fix grabbing lock from atomic context in i2c driver'.
>
> [Support #57]
Patch merged to master. Thanks.
--
Andrei Gherzan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [meta-raspberrypi][PATCH 5/5] linux-raspberrypi: Update 3.12 branch to latest
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 5/5] linux-raspberrypi: Update 3.12 branch to latest Petter Mabäcker
@ 2015-05-17 22:53 ` Andrei Gherzan
0 siblings, 0 replies; 15+ messages in thread
From: Andrei Gherzan @ 2015-05-17 22:53 UTC (permalink / raw)
To: Petter Mabäcker; +Cc: yocto
On Fri, May 08, 2015 at 11:49:05PM +0200, Petter Mabäcker wrote:
> Update linux-raspberrypi_3.12 to latest revision.
>
> Remove sl030raspberrypii2ckernel.patch since it will not apply anymore
> and its content seems to be obsolite after
> '558d0bf Fix grabbing lock from atomic context in i2c driver' was
> merged to 3.12.
>
> [Support #60]
>
> Signed-off-by: Petter Mabäcker <petter@technux.se>
Patch merged to master. Thanks.
--
Andrei Gherzan
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [meta-raspberrypi][PATCH 1/5] devicetree: auto-disable dts for old kernels
2015-05-17 22:46 ` Andrei Gherzan
@ 2015-05-25 14:48 ` Petter Mabäcker
0 siblings, 0 replies; 15+ messages in thread
From: Petter Mabäcker @ 2015-05-25 14:48 UTC (permalink / raw)
To: Andrei Gherzan; +Cc: Yocto Project
[-- Attachment #1: Type: text/plain, Size: 1697 bytes --]
2015-05-18 00:46 skrev Andrei Gherzan:
> Hi Petter,
>
>> + #
Check if we are building with device tree support + DTS="${@get_dts(d,
None)}" # Initialize sdcard image file dd if=/dev/zero of=${SDIMG}
bs=1024 count=0 seek=${SDIMG_SIZE} @@ -112,7 +114,7 @@
IMAGE_CMD_rpi-sdimg () { mcopy -i ${WORKDIR}/boot.img -s
${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}${KERNEL_INITRAMFS}-${MACHINE}.bin
::uImage ;; *) - if test -n "${KERNEL_DEVICETREE}"; then + if test -n
"${DTS}"; then # Copy board device trees to root folder for DTB in
${DT_ROOT}; do DTB_BASE_NAME=`basename ${DTB} .dtb`
>
> I started to
review these patches and test. I have one concern related
> to this
patch. More specifically the fact that even though you check
> for DTS
now, we are still using DT_ROOT (and co) for the next loops
> which use
KERNEL_DEVICETREE. Maybe a better way to do it would be to
> move
>
DT_ALL = "${@d.getVar('KERNEL_DEVICETREE', True) or ''}"
> DT_OVERLAYS =
"${@oe.utils.str_filter('S+-overlay.dtb$',
> '${DT_ALL}', d)}"
> DT_ROOT
= "${@oe.utils.str_filter_out('S+-overlay.dtb$', '${DT_ALL}', d)}"
> ...
after you define DTS and define these based on DTS variable.
>
>
Regards,
> Andrei
I Agree, it sounds reasonable. I have prepared a new
changeset for this. Have some final testing to do before sending it.
Biggest problem why I didn't fix this in first change was that the
IMAGE_CMD func seems to behave a little different then I thought. I had
problems to use some functionality and expand variables in some
situations, but I think I figured out a way forward...
Regards Petter
Petter Mabäcker
Technux <petter@technux.se>
www.technux.se
[-- Attachment #2: Type: text/html, Size: 2285 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2015-05-25 14:48 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-08 21:49 [meta-raspberrypi][PATCH 0/5] kernel fixes Petter Mabäcker
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 1/5] devicetree: auto-disable dts for old kernels Petter Mabäcker
2015-05-10 10:16 ` Andrei Gherzan
2015-05-10 14:20 ` Petter Mabäcker
2015-05-10 14:24 ` Andrei Gherzan
2015-05-10 17:07 ` Petter Mabäcker
2015-05-17 22:46 ` Andrei Gherzan
2015-05-25 14:48 ` Petter Mabäcker
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 2/5] README: fix outdated device tree info Petter Mabäcker
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 3/5] linux-raspberrypi: Add 3.14 support Petter Mabäcker
2015-05-17 22:53 ` Andrei Gherzan
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 4/5] linux-raspberrypi: Drop support for old kernel versions Petter Mabäcker
2015-05-17 22:51 ` Andrei Gherzan
2015-05-08 21:49 ` [meta-raspberrypi][PATCH 5/5] linux-raspberrypi: Update 3.12 branch to latest Petter Mabäcker
2015-05-17 22:53 ` Andrei Gherzan
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.