ARM: OMAP: User GPLv2 for MMU, make checkpatch.pl happier
Subsystems (4)
Tony Lindgren
maintainerPATCH 1/3 ARM: OMAP: User GPLv2 for MMU, make checkpatch.pl happier
Hi Paul, Toshihiro & Hiroshi,
I'm preparing the MMU patches for submission to arm-linux mailing list, and Paul Mundt requested changing the MMU license to be GPLv2. Can you please take a look at the attached patch and ack?
Regards,
Tony
Quoted 1 line
From
35fee383a8d4d1e335f471cf12518d9b7ec2c9d1Mon Sep 17 00:00:00 2001
From: Tony Lindgren <[email protected]>
Date: Mon, 3 Dec 2007 10:57:01 -0800
Subject: [PATCH] ARM: OMAP: User GPLv2 for MMU, make checkpatch.pl happier
This patch changes MMU code to use GPLv2 as requested by Paul Mundt. It also does some minor formatting to make checkpatch.pl mostly happy, and removes dummy release function.
arch/arm/mach-omap1/mmu.c +13 -23
@@ -9,18 +9,8 @@* and Paul Mundt <[email protected]> * * 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 +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. */ #include <linux/types.h> #include <linux/init.h>
@@ -286,7 +276,7 @@ static void omap1_mmu_interrupt(struct omap_mmu *mmu)/* if the fault is masked, nothing to do */ if ((status &MMUFAULT_MASK ) ==0 ) { -pr_debug ("MMU interrupt, but ignoring.\n" ); +pr_debug ("MMU interrupt, but ignoring.\n" );/* * note: in OMAP1710, * when CACHE + DMA domain gets out of idle in DSP,
@@ -294,16 +284,16 @@ static void omap1_mmu_interrupt(struct omap_mmu *mmu)* in this case, we just ignore the interrupt. */ if (status) { -pr_debug ("%s%s%s%s\n" , - (status &OMAP_MMU_FAULT_ST_PREF )? -" (prefetch err)" :"" , - (status &OMAP_MMU_FAULT_ST_PERM )? -" (permission fault)" :"" , - (status &OMAP_MMU_FAULT_ST_TLB_MISS )? -" (TLB miss)" :"" , - (status &OMAP_MMU_FAULT_ST_TRANS ) ? -" (translation fault)" :"" ); -pr_debug ("fault address = %#08lx\n" , va); +pr_debug ("%s%s%s%s\n" , + (status &OMAP_MMU_FAULT_ST_PREF )? +" (prefetch err)" :"" , + (status &OMAP_MMU_FAULT_ST_PERM )? +" (permission fault)" :"" , + (status &OMAP_MMU_FAULT_ST_TLB_MISS )? +" (TLB miss)" :"" , + (status &OMAP_MMU_FAULT_ST_TRANS ) ? +" (translation fault)" :"" ); +pr_debug ("fault address = %#08lx\n" , va); }enable_irq (mmu->irq);return ;
arch/arm/mach-omap1/mmu.h +2 -2
@@ -76,7 +76,7 @@#define OMAP_MMU_LD_TLB_RD 0x0002 -#define INIT_TLB_ENTRY (ent,v,p,ps) \ +#define INIT_TLB_ENTRY (ent, v, p, ps) \ do { \ (ent)->va = (v); \ (ent)->pa = (p); \
@@ -86,7 +86,7 @@ do { \ (ent)->tlb =1 ; \ } while (0) -#define INIT_TLB_ENTRY_4KB_PRESERVED (ent,v,p) \ +#define INIT_TLB_ENTRY_4KB_PRESERVED (ent, v, p) \ do { \ (ent)->va = (v); \ (ent)->pa = (p); \
arch/arm/mach-omap2/mmu.c +2 -12
@@ -11,18 +11,8 @@* TWL support: Hiroshi DOYU <[email protected]> * * 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 +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. */ #include <linux/types.h> #include <linux/init.h>
arch/arm/mach-omap2/mmu.h +3 -3
@@ -59,7 +59,7 @@#define IOMAP_VAL 0x3f -#define INIT_TLB_ENTRY (ent,v,p,ps) \ +#define INIT_TLB_ENTRY (ent, v, p, ps) \ do { \ (ent)->va = (v); \ (ent)->pa = (p); \
@@ -71,7 +71,7 @@ do { \ (ent)->tlb =1 ; \ } while (0) -#define INIT_TLB_ENTRY_4KB_PRESERVED (ent,v,p) \ +#define INIT_TLB_ENTRY_4KB_PRESERVED (ent, v, p) \ do { \ (ent)->va = (v); \ (ent)->pa = (p); \
@@ -82,7 +82,7 @@ do { \ (ent)->mixed =0 ; \ } while (0) -#define INIT_TLB_ENTRY_4KB_ES32_PRESERVED (ent,v,p) \ +#define INIT_TLB_ENTRY_4KB_ES32_PRESERVED (ent, v, p) \ do { \ (ent)->va = (v); \ (ent)->pa = (p); \
arch/arm/plat-omap/mmu.c +2 -17
@@ -11,18 +11,8 @@* TWL support: Hiroshi DOYU <[email protected]> * * 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 +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. */ #include <linux/module.h> #include <linux/mempool.h>
@@ -1466,13 +1456,8 @@ static ssize_t mempool_show(struct class *class, char *buf) static CLASS_ATTR(mempool, S_IRUGO, mempool_show, NULL); -static void omap_mmu_class_dev_release (struct device *dev) -{ -} -static struct class omap_mmu_class = { .name ="mmu" , - .dev_release = omap_mmu_class_dev_release, };int omap_mmu_register (struct omap_mmu *mmu)
include/asm-arm/arch-omap/dsp_common.h +3 -14
@@ -5,20 +5,9 @@* * Contact: Toshihiro Kobayashi <[email protected]> * -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* version 2 as published by the Free Software Foundation. -* -* 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., 51 Franklin St, Fifth Floor, Boston, MA -* 02110-1301 USA -* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. */ #ifndef ASM_ARCH_DSP_COMMON_H
Tony Lindgren
maintainerPATCH 2/3 ARM: OMAP: Change MMU to use sysdev_class?
We could optionally change to use sysdev_class. But that changes the sysfs path to /sys/devices/system/mmu/mempool.
What do you guys think? Should we change it, or keep using class device?
Regards,
Tony
Quoted 1 line
From
0ca34f3a9f9e6859e8fbe6d206188b33f1f49c2aMon Sep 17 00:00:00 2001
From: Tony Lindgren <[email protected]>
Date: Mon, 3 Dec 2007 14:33:39 -0800
Subject: [PATCH] ARM: OMAP: Change MMU to use sysdev_class
ARM: OMAP: Change MMU to use sysdev_class.
arch/arm/plat-omap/mmu.c +13 -13
@@ -20,6 +20,7 @@#include <linux/delay.h> #include <linux/err.h> #include <linux/clk.h> +#include <linux/sysdev.h> #include <linux/device.h> #include <linux/interrupt.h> #include <asm/uaccess.h>
@@ -1429,7 +1430,7 @@ static ssize_t exmap_store(struct device *dev, struct device_attribute *attr, static DEVICE_ATTR(exmap, S_IRUGO | S_IWUSR, exmap_show, exmap_store); -static ssize_t mempool_show (struct class *class,char *buf) +static ssize_t mempool_show (struct sysdev_class *class,char *buf) {int min_nr_1M =0 , curr_nr_1M =0 ;int min_nr_64K =0 , curr_nr_64K =0 ;
@@ -1454,17 +1455,16 @@ static ssize_t mempool_show(struct class *class, char *buf) } -static CLASS_ATTR(mempool, S_IRUGO, mempool_show, NULL); +static SYSDEV_CLASS_ATTR(mempool, S_IRUGO, mempool_show, NULL); -static struct class omap_mmu_class = { - .name ="mmu" , +static struct sysdev_class omap_mmu = { +set_kset_name ("mmu" ), };int omap_mmu_register (struct omap_mmu *mmu) {int ret; - mmu->dev.class = &omap_mmu_class;strlcpy (mmu->dev.bus_id, mmu->name,KOBJ_NAME_LEN );dev_set_drvdata (&mmu->dev, mmu);
@@ -1548,22 +1548,22 @@ void omap_mmu_unregister(struct omap_mmu *mmu) }EXPORT_SYMBOL_GPL (omap_mmu_unregister); -static int __init omap_mmu_class_init (void ) +static int __init omap_mmu_sysdev_init (void ) { -int ret =class_register (&omap_mmu_class); +int ret =sysdev_class_register (&omap_mmu);if (!ret) - ret =class_create_file (&omap_mmu_class, &class_attr_mempool); + ret =sysdev_class_create_file (&omap_mmu, &attr_mempool);return ret; } -static void __exit omap_mmu_class_exit(void) +static void __exit omap_mmu_sysdev_exit(void) { -class_remove_file (&omap_mmu_class, &class_attr_mempool); -class_unregister (&omap_mmu_class); +sysdev_class_remove_file (&omap_mmu, &attr_mempool); +sysdev_class_unregister (&omap_mmu); } -subsys_initcall (omap_mmu_class_init); -module_exit (omap_mmu_class_exit); +subsys_initcall (omap_mmu_sysdev_init); +module_exit (omap_mmu_sysdev_exit);MODULE_LICENSE ("GPL" );
Tony Lindgren
maintainerPATCH 3/3 ARM: OMAP: Add MMU framework
And this is what the MMU patch against Linus' tree would look like. This on is without the previous sysdev_class patch until that's been decided.
Paul, Toshihiro & Hiroshi, are you OK sending this to linux-arm mailing list in general in this format?
Regards,
Tony
Quoted 1 line
From
0a1a943d244aae355052fa29f9dc7e7e992ea4dbMon Sep 17 00:00:00 2001
From: Paul Mundt <[email protected]>
Date: Wed, 28 Nov 2007 15:30:54 -0800
Subject: [PATCH] ARM: OMAP: Add MMU framework
ARM: OMAP: Add MMU framework
OMAP processors have an MMU for coprocessors such as DSP, IVA (Image Video Accelerator) and camera.
Various additional features added by Hiroshi DOYU.
--- arch/arm/mach-omap1/Makefile | 3 + arch/arm/mach-omap1/mmu.c | 361 ++++++++ arch/arm/mach-omap1/mmu.h | 119 +++ arch/arm/mach-omap2/Makefile | 3 + arch/arm/mach-omap2/mmu.c | 340 +++++++ arch/arm/mach-omap2/mmu.h | 117 +++ arch/arm/plat-omap/Kconfig | 8 + arch/arm/plat-omap/Makefile | 3 + arch/arm/plat-omap/mmu.c | 1584 ++++++++++++++++++++++++++++++++ include/asm-arm/arch-omap/dsp_common.h | 8 +- include/asm-arm/arch-omap/mmu.h | 211 +++++ include/asm-arm/pgtable.h | 1 + 12 files changed, 2756 insertions(+), 2 deletions(-) create mode 100644 arch/arm/mach-omap1/mmu.c create mode 100644 arch/arm/mach-omap1/mmu.h create mode 100644 arch/arm/mach-omap2/mmu.c create mode 100644 arch/arm/mach-omap2/mmu.h create mode 100644 arch/arm/plat-omap/mmu.c create mode 100644 include/asm-arm/arch-omap/mmu.h
arch/arm/mach-omap1/Makefile +3 -0
@@ -10,6 +10,9 @@ obj-$(CONFIG_OMAP_MPU_TIMER) += time.o # Power Management obj-$(CONFIG_PM) += pm.o sleep.o +obj-$(CONFIG_OMAP_MMU_FWK) += mmu_mach.o +mmu_mach-objs := mmu.o + led-y := leds.o # Specific board support
arch/arm/mach-omap1/mmu.c new file +351 -0
351 lines not on this page · raw message
arch/arm/mach-omap1/mmu.h new file +119 -0
119 lines not on this page · raw message
arch/arm/mach-omap2/Makefile +3 -0
@@ -11,6 +11,9 @@ obj-$(CONFIG_OMAP_MPU_TIMER) += timer-g # Power Management obj-$(CONFIG_PM) += pm.o pm-domain.o sleep.o +obj-$(CONFIG_OMAP_MMU_FWK) += mmu_mach.o +mmu_mach-objs := mmu.o + # Specific board support obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o
arch/arm/mach-omap2/mmu.c new file +330 -0
330 lines not on this page · raw message
arch/arm/mach-omap2/mmu.h new file +117 -0
117 lines not on this page · raw message
arch/arm/plat-omap/Kconfig +8 -0
@@ -76,6 +76,14 @@ config OMAP_MCBSP Say Y here if you want support for the OMAP Multichannel Buffered Serial Port. +config OMAP_MMU_FWK + tristate "MMU framework support" + depends on ARCH_OMAP + default n + help + Say Y here if you want to use OMAP MMU framework support for + DSP, IVA1.0 and Camera in OMAP1/2. + choice prompt "System timer" default OMAP_MPU_TIMER
arch/arm/plat-omap/Makefile +3 -0
@@ -19,3 +19,6 @@ obj-$(CONFIG_CPU_FREQ) += cpu-omap.o obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o + +# OMAP MMU framework +obj-$(CONFIG_OMAP_MMU_FWK) += mmu.o
arch/arm/plat-omap/mmu.c new file +1569 -0
1,569 lines not on this page · raw message
include/asm-arm/arch-omap/dsp_common.h +9 -16
@@ -5,20 +5,9 @@* * Contact: Toshihiro Kobayashi <[email protected]> * -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* version 2 as published by the Free Software Foundation. -* -* 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., 51 Franklin St, Fifth Floor, Boston, MA -* 02110-1301 USA -* +* This program is free software; you can redistribute it and/or modify +* it under the terms of the GNU General Public License version 2 as +* published by the Free Software Foundation. */ #ifndef ASM_ARCH_DSP_COMMON_H
@@ -27,8 +16,12 @@#ifdef CONFIG_ARCH_OMAP1 extern void omap_dsp_request_mpui (void );extern void omap_dsp_release_mpui (void ); -extern int omap_dsp_request_mem (void ); -extern int omap_dsp_release_mem (void );#endif +static inline int omap_dsp_request_mem (void ) +{ +return 0 ; +} +#define omap_dsp_release_mem () do {} while (0) +#endif /* ASM_ARCH_DSP_COMMON_H */
include/asm-arm/arch-omap/mmu.h new file +211 -0
211 lines not on this page · raw message
include/asm-arm/pgtable.h +1 -0
@@ -289,6 +289,7 @@ PTE_BIT_FUNC(mkyoung, |= L_PTE_YOUNG);#define pmd_none (pmd) (!pmd_val(pmd))#define pmd_present (pmd) (pmd_val(pmd))#define pmd_bad (pmd) (pmd_val(pmd) & 2) +#define pmd_table (pmd) ((pmd_val(pmd) & PMD_TYPE_MASK) == PMD_TYPE_TABLE)#define copy_pmd (pmdpd,pmdps) \ do { \
Re: [PATCH 2/3] ARM: OMAP: Change MMU to use sysdev_class?
In reply to Tony LindgrenQuoted 1 line
What do you guys think? Should we change it, or keep using class device?
"struct class_device" is going to vanish ... but what I saw here was "struct class", which won't ...
Tony Lindgren
maintainerRe: [PATCH 2/3] ARM: OMAP: Change MMU to use sysdev_class?
Quoted 4 lines · David Brownell
Quoted 1 line
What do you guys think? Should we change it, or keep using class device?
"struct
class_device" is going to vanish ... but what I saw here was "struct class", which won't ...
Yes sorry, "struct class", not "class_device". The "struct class_device" conversion to "struct device" was done a while back.
The reason why I'm thinking "struct class" may be still the way to go for general MMU stuff is that eventually some parts could be arch independent.
Regards,
Tony
Re: [PATCH 2/3] ARM: OMAP: Change MMU to use sysdev_class?
In reply to David BrownellQuoted 4 lines · David Brownell
Quoted 1 line
What do you guys think? Should we change it, or keep using class device?
"struct
class_device" is going to vanish ... but what I saw here was "struct class", which won't ...
If struct class is going to hang around, then it's certainly preferable to keep using that. It's really the best match for this particular problem.
Re: [PATCH 3/3] ARM: OMAP: Add MMU framework
In reply to Tony LindgrenQuoted 7 lines · Tony Lindgren
And this is what the MMU patch against Linus' tree would look like. This on is without the previous
sysdev_classpatch until that's been decided.Paul, Toshihiro & Hiroshi, are you OK sending this to linux-arm mailing list in general in this format?
Fine with me, let the flaming commence :-)
Tony Lindgren
maintainerRe: [PATCH 2/3] ARM: OMAP: Change MMU to use sysdev_class?
In reply to Paul MundtQuoted 9 lines · Paul Mundt
Quoted 4 lines · David Brownell
Quoted 1 line
What do you guys think? Should we change it, or keep using class device?
"struct
class_device" is going to vanish ... but what I saw here was "struct class", which won't ...If struct class is going to hang around, then it's certainly preferable to keep using that. It's really the best match for this particular problem.
OK, let's scrap the sysdev_class patch then.
Tony
Hi Tony,
Quoted 6 lines · Tony Lindgren
Hi Paul, Toshihiro & Hiroshi,
I'm preparing the MMU patches for submission to arm-linux mailing list, and Paul Mundt requested changing the MMU license to be GPLv2. Can you please take a look at the attached patch and ack?
Good to see that MMU fwk going mainline, but I am concerned about the users of MMU fwk
as of now, dspgw looks like may not be accepted to mainline yet, and OMAP2 camera driver
is still not using the MMU fwk for it's MMU and IVA driver is no where in sight, in this case
I don't know what purpose MMU fwk will serve in mainline code?
Signature · 1 line
--Trilok Soni
Quoted 11 lines · Trilok Soni
Quoted 3 lines · Tony Lindgren
I'm preparing the MMU patches for submission to arm-linux mailing list, and Paul Mundt requested changing the MMU license to be GPLv2. Can you please take a look at the attached patch and ack?
Good to see that MMU fwk going mainline, but I am concerned about the users of MMU fwk as of now, dspgw looks like may not be accepted to mainline yet, and OMAP2 camera driver is still not using the MMU fwk for it's MMU and IVA driver is no where in sight, in this case I don't know what purpose MMU fwk will serve in mainline code?
Whether the IVA stuff ever materializes or whether the dspgateway implementation and the camera driver ever become useful to the point of merging or not are pretty separate issues in this regard. The main thing here is that by exposing coherent interfaces for the MMUs in these parts, it's possible for people to actually do something with the underlying peripherals (as far as mapping things in and out of their respective address spaces, and so on). So I would consider it useful from a peripheral enabling point of view wholly independently from the rest.
Practically speaking, the toolchain mess for IVA and the DSP already mean that there are significant barriers for people being able to easily do anything with these blocks openly, and if there were actual motivation for that to happen by the vendors pushing this, it would have happened a long time ago. It's worth providing as much of an open interface to playing with these various blocks as possible just so people have the option of doing _something_ with them.
Additionally, if such a thing is never integrated, there's also zero push for getting the guilty parties (ie, OMAP2 camera driver) playing well with others. At this point I think the MMU framework stands by itself, and I think you're taking a fairly optimistic outlook if you believe the other drivers will get cleaned up first -- especially as the current situation is not so different from where things were a couple of years ago :-)
Hi Paul,
Quoted 12 lines · Paul Mundt
Quoted 11 lines · Trilok Soni
Quoted 3 lines · Tony Lindgren
I'm preparing the MMU patches for submission to arm-linux mailing list, and Paul Mundt requested changing the MMU license to be GPLv2. Can you please take a look at the attached patch and ack?
Good to see that MMU fwk going mainline, but I am concerned about the users of MMU fwk as of now, dspgw looks like may not be accepted to mainline yet, and OMAP2 camera driver is still not using the MMU fwk for it's MMU and IVA driver is no where in sight, in this case I don't know what purpose MMU fwk will serve in mainline code?
Quoted 8 lines
Whether the IVA stuff ever materializes or whether the dspgateway implementation and the camera driver ever become useful to the point of merging or not are pretty separate issues in this regard. The main thing here is that by exposing coherent interfaces for the MMUs in these parts, it's possible for people to actually do something with the underlying peripherals (as far as mapping things in and out of their respective address spaces, and so on). So I would consider it useful from a peripheral enabling point of view wholly independently from the rest.
Good. Agreed.
Quoted 8 lines
Practically speaking, the toolchain mess for IVA and the DSP already mean that there are significant barriers for people being able to easily do anything with these blocks openly, and if there were actual motivation for that to happen by the vendors pushing this, it would have happened a long time ago. It's worth providing as much of an open interface to playing with these various blocks as possible just so people have the option of doing _something_ with them.
During the TI Developer Conference and pre-conf business meetings, Bangalore last week
top TI guys gave a sign of releasing DSPBridge ARM kernel driver part, where DSP BIOS side will still be closed. If you relate this to the hints from Richard on
low-cost OMAP2/3 boards which are going to come in near future, it might happen that toolchains along with bridge driver for IVA2.0 + C64x DSP will be released along
with that boards, like it happened int the case of OMAP1 OSK kit.
Quoted 9 lines
Additionally, if such a thing is never integrated, there's also zero push for getting the guilty parties (ie, OMAP2 camera driver) playing well with others. At this point I think the MMU framework stands by itself, and I think you're taking a fairly optimistic outlook if you believe the other drivers will get cleaned up first -- especially as the current situation is not so different from where things were a couple of years ago :-)
True, not so different yet. Let's wait for TI to re-think on how their dsp's and baby
accelerators wants to get supported and maintained in future along with Linux community,
as OMAP is very much getting non-wireless move.
Signature · 1 line
--Trilok Soni