summaryrefslogtreecommitdiff
path: root/recipes
diff options
context:
space:
mode:
authorKoen Kooi <koen@openembedded.org>2009-04-06 15:21:25 +0200
committerKoen Kooi <koen@openembedded.org>2009-04-06 15:39:24 +0200
commit616a026e640dc5b322a3f4ba6f8de757f389f127 (patch)
tree23c799d4b30cfceaed2876483b5baefa6eddf007 /recipes
parentc273263b147da671b5ee105eb85d4302daf33555 (diff)
linux-omap 2.6.29: fixes
* add patch to fix leds * tweak ISP patches to handle new API * tweak beagleboard defconfig
Diffstat (limited to 'recipes')
-rw-r--r--recipes/linux/linux-omap-2.6.29/0124-leds-gpio-broken-with-current-git.patch79
-rw-r--r--recipes/linux/linux-omap-2.6.29/beagleboard/defconfig12
-rw-r--r--recipes/linux/linux-omap-2.6.29/isp/standalone/0001-Resizer-and-Previewer-driver-added-to-commit.patch16
-rw-r--r--recipes/linux/linux-omap-2.6.29/isp/standalone/0002-Resizer-bug-fixes-on-top-of-1.0.2-release.patch14
-rw-r--r--recipes/linux/linux-omap_2.6.29.bb1
5 files changed, 104 insertions, 18 deletions
diff --git a/recipes/linux/linux-omap-2.6.29/0124-leds-gpio-broken-with-current-git.patch b/recipes/linux/linux-omap-2.6.29/0124-leds-gpio-broken-with-current-git.patch
new file mode 100644
index 0000000000..dc6e190e89
--- /dev/null
+++ b/recipes/linux/linux-omap-2.6.29/0124-leds-gpio-broken-with-current-git.patch
@@ -0,0 +1,79 @@
+From c810e850d830330cf04225a4cff8e981e153f269 Mon Sep 17 00:00:00 2001
+From: David Brownell <david-b@pacbell.net>
+Date: Mon, 23 Feb 2009 14:08:14 -0800
+Subject: [PATCH 124/133] leds-gpio broken with current git?
+MIME-Version: 1.0
+Content-Type: text/plain; charset=utf-8
+Content-Transfer-Encoding: 8bit
+
+On Monday 23 February 2009, David Brownell wrote:
+>
+> > Perhaps something broke with Tony's RC1 merge?
+> > The LEDs are broken for me as well.
+>
+> Still works for me.  Did you maybe not enable the twl4030
+> GPIO support in Kconfig?
+
+Oh, and if you did *not*, please give this patch a try.
+I've been meaning to test it.
+
+- Dave
+
+==============
+Sometimes it's awkward to make sure that the array in the
+platform_data handed to the leds-gpio driver has only valid
+data ... some leds may not be always available, and coping
+with that currently requires patching or rebuilding the array.
+
+This patch fixes that by making it be OK to pass an invalid
+GPIO (such as "-EINVAL") ... such table entries are skipped.
+---
+ drivers/leds/leds-gpio.c | 12 +++++++++++-
+ 1 files changed, 11 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c
+index b13bd29..83737e6 100644
+--- a/drivers/leds/leds-gpio.c
++++ b/drivers/leds/leds-gpio.c
+@@ -90,13 +90,19 @@ static int gpio_led_probe(struct platform_device *pdev)
+ cur_led = &pdata->leds[i];
+ led_dat = &leds_data[i];
+
++ /* skip leds that aren't available */
++ led_dat->gpio = cur_led->gpio;
++ if (!gpio_is_valid(led_dat->gpio)) {
++ dev_dbg(&pdev->dev, "skipping %s\n", cur_led->name);
++ continue;
++ }
++
+ ret = gpio_request(cur_led->gpio, cur_led->name);
+ if (ret < 0)
+ goto err;
+
+ led_dat->cdev.name = cur_led->name;
+ led_dat->cdev.default_trigger = cur_led->default_trigger;
+- led_dat->gpio = cur_led->gpio;
+ led_dat->can_sleep = gpio_cansleep(cur_led->gpio);
+ led_dat->active_low = cur_led->active_low;
+ if (pdata->gpio_blink_set) {
+@@ -124,6 +130,8 @@ static int gpio_led_probe(struct platform_device *pdev)
+ err:
+ if (i > 0) {
+ for (i = i - 1; i >= 0; i--) {
++ if (!gpio_is_valid(leds_data[i].gpio))
++ continue;
+ led_classdev_unregister(&leds_data[i].cdev);
+ cancel_work_sync(&leds_data[i].work);
+ gpio_free(leds_data[i].gpio);
+@@ -144,6 +152,8 @@ static int __devexit gpio_led_remove(struct platform_device *pdev)
+ leds_data = platform_get_drvdata(pdev);
+
+ for (i = 0; i < pdata->num_leds; i++) {
++ if (!gpio_is_valid(leds_data[i].gpio))
++ continue;
+ led_classdev_unregister(&leds_data[i].cdev);
+ cancel_work_sync(&leds_data[i].work);
+ gpio_free(leds_data[i].gpio);
+--
+1.6.0.4.790.gaa14a
+
diff --git a/recipes/linux/linux-omap-2.6.29/beagleboard/defconfig b/recipes/linux/linux-omap-2.6.29/beagleboard/defconfig
index eb36c0d481..fcbe27c803 100644
--- a/recipes/linux/linux-omap-2.6.29/beagleboard/defconfig
+++ b/recipes/linux/linux-omap-2.6.29/beagleboard/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.29-omap1
-# Sat Apr 4 14:17:07 2009
+# Mon Apr 6 15:31:26 2009
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -200,6 +200,7 @@ CONFIG_OMAP_BOOT_REASON=y
# CONFIG_OMAP_MUX is not set
CONFIG_OMAP_MCBSP=y
# CONFIG_OMAP_MBOX_FWK is not set
+# CONFIG_OMAP_IOMMU is not set
# CONFIG_OMAP_MPU_TIMER is not set
CONFIG_OMAP_32K_TIMER=y
CONFIG_OMAP_32K_TIMER_HZ=128
@@ -1157,6 +1158,7 @@ CONFIG_VIDEO_CX2341X=m
# CONFIG_VIDEO_SAA5246A is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_VIDEO_AU0828 is not set
+# CONFIG_VIDEO_OMAP3 is not set
# CONFIG_SOC_CAMERA is not set
CONFIG_V4L_USB_DRIVERS=y
CONFIG_USB_VIDEO_CLASS=m
@@ -1392,7 +1394,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
CONFIG_OMAP2_DSS=y
-CONFIG_OMAP2_DSS_VRAM_SIZE=4
+CONFIG_OMAP2_DSS_VRAM_SIZE=14
CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
# CONFIG_OMAP2_DSS_RFBI is not set
CONFIG_OMAP2_DSS_VENC=y
@@ -1467,7 +1469,7 @@ CONFIG_SND_DRIVERS=y
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
-CONFIG_SND_ARM=y
+# CONFIG_SND_ARM is not set
CONFIG_SND_SPI=y
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=y
@@ -1475,8 +1477,11 @@ CONFIG_SND_USB_CAIAQ=m
CONFIG_SND_USB_CAIAQ_INPUT=y
CONFIG_SND_SOC=y
CONFIG_SND_OMAP_SOC=y
+CONFIG_SND_OMAP_SOC_MCBSP=y
+CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=y
CONFIG_SND_SOC_I2C_AND_SPI=y
# CONFIG_SND_SOC_ALL_CODECS is not set
+CONFIG_SND_SOC_TWL4030=y
# CONFIG_SOUND_PRIME is not set
CONFIG_HID_SUPPORT=y
CONFIG_HID=y
@@ -1733,6 +1738,7 @@ CONFIG_USB_OTG_UTILS=y
CONFIG_USB_GPIO_VBUS=y
# CONFIG_ISP1301_OMAP is not set
CONFIG_TWL4030_USB=y
+# CONFIG_NOP_USB_XCEIV is not set
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_UNSAFE_RESUME=y
diff --git a/recipes/linux/linux-omap-2.6.29/isp/standalone/0001-Resizer-and-Previewer-driver-added-to-commit.patch b/recipes/linux/linux-omap-2.6.29/isp/standalone/0001-Resizer-and-Previewer-driver-added-to-commit.patch
index 77b273c789..f796ce8346 100644
--- a/recipes/linux/linux-omap-2.6.29/isp/standalone/0001-Resizer-and-Previewer-driver-added-to-commit.patch
+++ b/recipes/linux/linux-omap-2.6.29/isp/standalone/0001-Resizer-and-Previewer-driver-added-to-commit.patch
@@ -443,7 +443,7 @@ index 0000000..634a056
+ wait_for_completion_interruptible(&device->wfc);
+
+ if (device->isp_addr_read) {
-+ ispmmu_unmap(device->isp_addr_read);
++ ispmmu_vunmap(device->isp_addr_read);
+ device->isp_addr_read = 0;
+ }
+
@@ -465,7 +465,7 @@ index 0000000..634a056
+ struct prev_fh *fh = q->priv_data;
+ struct prev_device *device = fh->device;
+
-+ ispmmu_unmap(device->isp_addr_read);
++ ispmmu_vunmap(device->isp_addr_read);
+ device->isp_addr_read = 0;
+ spin_lock(&device->vbq_lock);
+ vb->state = VIDEOBUF_NEEDS_INIT;
@@ -550,7 +550,7 @@ index 0000000..634a056
+ if (vb->state == VIDEOBUF_NEEDS_INIT) {
+ err = videobuf_iolock(q, vb, NULL);
+ if (!err) {
-+ isp_addr = ispmmu_map_sg(dma->sglist, dma->sglen);
++ isp_addr = ispmmu_vmap(dma->sglist, dma->sglen);
+ if (!isp_addr)
+ err = -EIO;
+ else
@@ -1450,11 +1450,11 @@ index 0000000..54bc425
+ }
+
+ if (fh->isp_addr_read) {
-+ ispmmu_unmap(fh->isp_addr_read);
++ ispmmu_vunmap(fh->isp_addr_read);
+ fh->isp_addr_read = 0;
+ }
+ if (fh->isp_addr_write) {
-+ ispmmu_unmap(fh->isp_addr_write);
++ ispmmu_vunmap(fh->isp_addr_write);
+ fh->isp_addr_write = 0;
+ }
+
@@ -2128,8 +2128,8 @@ index 0000000..54bc425
+ videobuf_dma_free(dma);
+ }
+
-+ ispmmu_unmap(fh->isp_addr_read);
-+ ispmmu_unmap(fh->isp_addr_write);
++ ispmmu_vunmap(fh->isp_addr_read);
++ ispmmu_vunmap(fh->isp_addr_write);
+ fh->isp_addr_read = 0;
+ fh->isp_addr_write = 0;
+ spin_lock(&fh->vbq_lock);
@@ -2231,7 +2231,7 @@ index 0000000..54bc425
+ if (vb->state == VIDEOBUF_NEEDS_INIT) {
+ err = videobuf_iolock(q, vb, NULL);
+ if (!err) {
-+ isp_addr = ispmmu_map_sg(dma->sglist, dma->sglen);
++ isp_addr = ispmmu_vmap(dma->sglist, dma->sglen);
+ if (!isp_addr)
+ err = -EIO;
+ else {
diff --git a/recipes/linux/linux-omap-2.6.29/isp/standalone/0002-Resizer-bug-fixes-on-top-of-1.0.2-release.patch b/recipes/linux/linux-omap-2.6.29/isp/standalone/0002-Resizer-bug-fixes-on-top-of-1.0.2-release.patch
index e14da9986a..631b05f417 100644
--- a/recipes/linux/linux-omap-2.6.29/isp/standalone/0002-Resizer-bug-fixes-on-top-of-1.0.2-release.patch
+++ b/recipes/linux/linux-omap-2.6.29/isp/standalone/0002-Resizer-bug-fixes-on-top-of-1.0.2-release.patch
@@ -125,11 +125,11 @@ index 54bc425..8059c70 100644
}
- if (fh->isp_addr_read) {
-- ispmmu_unmap(fh->isp_addr_read);
+- ispmmu_vunmap(fh->isp_addr_read);
- fh->isp_addr_read = 0;
- }
- if (fh->isp_addr_write) {
-- ispmmu_unmap(fh->isp_addr_write);
+- ispmmu_vunmap(fh->isp_addr_write);
- fh->isp_addr_write = 0;
- }
-
@@ -270,11 +270,11 @@ index 54bc425..8059c70 100644
+ dma = videobuf_to_dma(q->bufs[vb->i]);
+ videobuf_dma_unmap(q, dma);
+ videobuf_dma_free(dma);
-+ ispmmu_unmap(fh->config->buf_address[vb->i]);
++ ispmmu_vunmap(fh->config->buf_address[vb->i]);
+ fh->config->buf_address[vb->i] = 0;
-- ispmmu_unmap(fh->isp_addr_read);
-- ispmmu_unmap(fh->isp_addr_write);
+- ispmmu_vunmap(fh->isp_addr_read);
+- ispmmu_vunmap(fh->isp_addr_write);
- fh->isp_addr_read = 0;
- fh->isp_addr_write = 0;
spin_lock(&fh->vbq_lock);
@@ -429,7 +429,7 @@ index 54bc425..8059c70 100644
if (vb->state == VIDEOBUF_NEEDS_INIT) {
- err = videobuf_iolock(q, vb, NULL);
- if (!err) {
-- isp_addr = ispmmu_map_sg(dma->sglist, dma->sglen);
+- isp_addr = ispmmu_vmap(dma->sglist, dma->sglen);
- if (!isp_addr)
- err = -EIO;
- else {
@@ -491,7 +491,7 @@ index 54bc425..8059c70 100644
+ goto buf_release;
+ spin_unlock(&fh->vbq_lock);
+ }
-+ isp_addr = ispmmu_map_sg(dma->sglist, dma->sglen);
++ isp_addr = ispmmu_vmap(dma->sglist, dma->sglen);
+ if (!isp_addr)
+ err = -EIO;
+ else {
diff --git a/recipes/linux/linux-omap_2.6.29.bb b/recipes/linux/linux-omap_2.6.29.bb
index 6300e0d708..23768690c6 100644
--- a/recipes/linux/linux-omap_2.6.29.bb
+++ b/recipes/linux/linux-omap_2.6.29.bb
@@ -94,6 +94,7 @@ SRC_URI_append = " \
# file://isp/base/0001-omap3-Add-base-address-definitions-and-resources-fo.patch;patch=1 \
# file://isp/standalone/0001-Resizer-and-Previewer-driver-added-to-commit.patch;patch=1 \
# file://isp/standalone/0002-Resizer-bug-fixes-on-top-of-1.0.2-release.patch;patch=1 \
+ file://0124-leds-gpio-broken-with-current-git.patch;patch=1 \
"