From 888ea3744402acafa40e746a92bbca81a8b5a317 Mon Sep 17 00:00:00 2001 From: Enric Balletbo i Serra Date: Wed, 8 Oct 2014 19:47:45 +0000 Subject: [PATCH] ti-dsplink: Fix irq mismatch for kernel versions greater than 3.7.0. Commit 7d7e1eb (ARM: OMAP2+: Prepare for irqs.h removal) and commit ec2c082 (ARM: OMAP2+: Remove hardcoded IRQs and enable SPARSE_IRQ) from kernel updated the way interrupts for OMAP2/3 devices are defined. Fix irq number as dsplink misses to add the NR_IRQS relative offset. Signed-off-by: Enric Balletbo i Serra Signed-off-by: Denys Dmytriyenko --- recipes-ti/dsplink/ti-dsplink.inc | 2 +- ...link_1_65_kernel_3_7_0_fix-irq-mismatch.patch | 16 ++++++++++++++++ recipes-ti/dsplink/ti-dsplink_1.65.00.03.bb | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 recipes-ti/dsplink/ti-dsplink/dsplink_1_65_kernel_3_7_0_fix-irq-mismatch.patch diff --git a/recipes-ti/dsplink/ti-dsplink.inc b/recipes-ti/dsplink/ti-dsplink.inc index fa1c9ddc..78b53cf0 100644 --- a/recipes-ti/dsplink/ti-dsplink.inc +++ b/recipes-ti/dsplink/ti-dsplink.inc @@ -21,7 +21,7 @@ PROVIDES += "ti-dsplink-examples" # This package builds a kernel module, use kernel PR as base and append a local version PR = "${MACHINE_KERNEL_PR}" -PR_append = "j" +PR_append = "h" S = "${WORKDIR}/dsplink_linux_${PV}" diff --git a/recipes-ti/dsplink/ti-dsplink/dsplink_1_65_kernel_3_7_0_fix-irq-mismatch.patch b/recipes-ti/dsplink/ti-dsplink/dsplink_1_65_kernel_3_7_0_fix-irq-mismatch.patch new file mode 100644 index 00000000..787c22e1 --- /dev/null +++ b/recipes-ti/dsplink/ti-dsplink/dsplink_1_65_kernel_3_7_0_fix-irq-mismatch.patch @@ -0,0 +1,16 @@ +Index: dsplink_linux_1_65_00_03/dsplink/gpp/src/osal/Linux/2.6.18/isr.c +=================================================================== +--- dsplink_linux_1_65_00_03.orig/dsplink/gpp/src/osal/Linux/2.6.18/isr.c ++++ dsplink_linux_1_65_00_03/dsplink/gpp/src/osal/Linux/2.6.18/isr.c +@@ -286,7 +286,11 @@ ISR_Create (IN IsrProc fnIS + + if (DSP_SUCCEEDED (status)) { + (*isrObj)->signature = SIGN_ISR ; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0) + (*isrObj)->irq = intObj->intId ; ++#else ++ (*isrObj)->irq = intObj->intId + NR_IRQS ; ++#endif + (*isrObj)->enabled = FALSE ; + (*isrObj)->dspId = intObj->dspId ; + (*isrObj)->checkFunc = intObj->checkFunc ; diff --git a/recipes-ti/dsplink/ti-dsplink_1.65.00.03.bb b/recipes-ti/dsplink/ti-dsplink_1.65.00.03.bb index 1d6fb009..2606cfc6 100644 --- a/recipes-ti/dsplink/ti-dsplink_1.65.00.03.bb +++ b/recipes-ti/dsplink/ti-dsplink_1.65.00.03.bb @@ -9,6 +9,7 @@ PV_DL_PATH = "DSPLink/${PV_major}/${PV}/${PV_dot}" SRC_URI += "file://dsplink-BKL-fix.patch \ file://0001-remove-check-for-make-version-3.85-works-fine.patch \ + file://dsplink_1_65_kernel_3_7_0_fix-irq-mismatch.patch \ " SRC_URI[dsplinktarball.md5sum] = "1bda596b631bd2f517edc70f6be4f2ca"