[PATCH 1/1] ARM:OMAP: fix driver MODULE_ALIAS()

2008-06-12 Thread Hiroshi DOYU
Add a correct MODULE_ALIAS() entry for this driver to enable udev module
loading.

Signed-off-by: Hiroshi DOYU [EMAIL PROTECTED]
---
 drivers/input/keyboard/omap-twl4030keypad.c |2 ++
 drivers/input/touchscreen/tsc2005.c |2 +-
 drivers/mmc/host/omap_hsmmc.c   |3 ++-
 drivers/rtc/rtc-twl4030.c   |2 +-
 4 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/input/keyboard/omap-twl4030keypad.c 
b/drivers/input/keyboard/omap-twl4030keypad.c
index 0344b4c..fc5d44e 100644
--- a/drivers/input/keyboard/omap-twl4030keypad.c
+++ b/drivers/input/keyboard/omap-twl4030keypad.c
@@ -350,6 +350,7 @@ static struct platform_driver omap_kp_driver = {
.remove = omap_kp_remove,
.driver = {
.name   = omap_twl4030keypad,
+   .owner  = THIS_MODULE,
},
 };
 
@@ -371,3 +372,4 @@ module_exit(omap_kp_exit);
 MODULE_AUTHOR(Texas Instruments);
 MODULE_DESCRIPTION(OMAP TWL4030 Keypad Driver);
 MODULE_LICENSE(GPL);
+MODULE_ALIAS(platform:omap_twl4030keypad);
diff --git a/drivers/input/touchscreen/tsc2005.c 
b/drivers/input/touchscreen/tsc2005.c
index fa01799..93dc3c5 100644
--- a/drivers/input/touchscreen/tsc2005.c
+++ b/drivers/input/touchscreen/tsc2005.c
@@ -734,4 +734,4 @@ module_exit(tsc2005_exit);
 
 MODULE_AUTHOR(Lauri Leukkunen [EMAIL PROTECTED]);
 MODULE_LICENSE(GPL);
-
+MODULE_ALIAS(platform:tsc2005);
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 9c18c15..d399dca 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1106,6 +1106,7 @@ static struct platform_driver omap_mmc_driver = {
.resume = omap_mmc_resume,
.driver = {
.name = DRIVER_NAME,
+   .owner = THIS_MODULE,
},
 };
 
@@ -1126,5 +1127,5 @@ module_exit(omap_mmc_cleanup);
 
 MODULE_DESCRIPTION(OMAP High Speed Multimedia Card driver);
 MODULE_LICENSE(GPL);
-MODULE_ALIAS(DRIVER_NAME);
+MODULE_ALIAS(platform: DRIVER_NAME);
 MODULE_AUTHOR(Texas Instruments Inc);
diff --git a/drivers/rtc/rtc-twl4030.c b/drivers/rtc/rtc-twl4030.c
index ef0e175..7b0a4c5 100644
--- a/drivers/rtc/rtc-twl4030.c
+++ b/drivers/rtc/rtc-twl4030.c
@@ -624,7 +624,7 @@ static int twl4030_rtc_resume(struct platform_device *pdev)
 #define twl4030_rtc_resume  NULL
 #endif
 
-MODULE_ALIAS(twl4030_rtc);
+MODULE_ALIAS(platform:twl4030_rtc);
 static struct platform_driver twl4030rtc_driver = {
.probe  = twl4030_rtc_probe,
.remove = __devexit_p(twl4030_rtc_remove),
-- 
1.5.5.1.357.g1af8b

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH] Added sleep support to UART

2008-06-12 Thread Tero.Kristo
Hi, 

A few minor comments based on a quick look.

In terms of the OMAP3 code, is that for retention-idle only, 
or does it work with off-idle also?  

That patch should basically work in off-mode also, however it requires
correct settings in the padconfig registers which are currently done in
the boot code. Also, currently I have not had any chance to actually
test this in off-mode, I am still trying to get the off-mode work on my
HW.


On Tue, 10 Jun 2008, Tero Kristo wrote:

 +const u32 omap2_uart_wk_bit[OMAP_MAX_NR_PORTS] = {
 +   OMAP24XX_ST_UART1, OMAP24XX_ST_UART2, OMAP24XX_ST_UART3 };

Looks like that can be static.  

True.


 +/* UART padconfig registers, these may differ if 
non-default padconfig
 +   is used */
 +#define CONTROL_PADCONF_UART1_RX 0x48002182 #define 
 +CONTROL_PADCONF_UART2_RX 0x4800217A #define 
CONTROL_PADCONF_UART3_RX 
 +0x4800219E #define PADCONF_WAKEUP_ST 0x8000

Please use omap_ctrl_read{b,w,l}() rather than 
omap_read{b,w,l}() for SCM addresses.

Hmm yea, could do.

Also, the above are register addresses + 2.  Is it possible to 
use the actual register addresses (ideally they should be 
defined in include/asm-arm/arch-omap/control.h), do long 
reads, and simply shift the register contents for the serial 
ports that need it?

These registers are currently not defined anywhere and I did not feel
like wanting to put all the padconfig register definitions somewhere
(all 200+ of them) I don't think it is currently very clear how we
want to handle these registers in general. Also, this fix is more or
less temporary anyway while we are waiting for a real driver that
handles UART clocks properly (the final solution will most likely use
some of the elements of this though.)

Also, the spec says that these registers can be accessed in either 8, 16
or 32 bit modes so why make it unnecessarily complicated and potentially
buggy with shifts (race conditions)?

-Tero
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] Separate out 3430 LCD panel support from 2430 file

2008-06-12 Thread iqbal
From: Iqbal Shareef [EMAIL PROTECTED]

Separate out 3430 LCD panel support from 2430 SDP.

Currently the support for the LCD on 3430SDP is added in the lcd_2430sdp.c
file. This patch separates it out to a new file.

Signed-off-by: Iqbal Shareef  [EMAIL PROTECTED]

---
 arch/arm/mach-omap2/board-3430sdp.c |2 +-
 drivers/video/omap/Makefile |2 +-
 drivers/video/omap/lcd_3430sdp.c|  161 +++
 3 files changed, 163 insertions(+), 2 deletions(-)
 create mode 100644 drivers/video/omap/lcd_3430sdp.c

diff --git a/arch/arm/mach-omap2/board-3430sdp.c 
b/arch/arm/mach-omap2/board-3430sdp.c
index f6cd08b..7a216cc 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -204,7 +204,7 @@ static struct spi_board_info sdp3430_spi_board_info[] 
__initdata = {
 };
 
 static struct platform_device sdp3430_lcd_device = {
-   .name   = sdp2430_lcd,
+   .name   = sdp3430_lcd,
.id = -1,
 };
 
diff --git a/drivers/video/omap/Makefile b/drivers/video/omap/Makefile
index fe7ee5d..a72a2d9 100644
--- a/drivers/video/omap/Makefile
+++ b/drivers/video/omap/Makefile
@@ -30,7 +30,7 @@ objs-y$(CONFIG_MACH_SX1) += lcd_sx1.o
 
 objs-y$(CONFIG_MACH_OMAP_APOLLON) += lcd_apollon.o
 objs-y$(CONFIG_MACH_OMAP_2430SDP) += lcd_2430sdp.o
-objs-y$(CONFIG_MACH_OMAP_3430SDP) += lcd_2430sdp.o
+objs-y$(CONFIG_MACH_OMAP_3430SDP) += lcd_3430sdp.o
 objs-y$(CONFIG_MACH_OMAP3EVM) += lcd_omap3evm.o
 objs-y$(CONFIG_MACH_OMAP3_BEAGLE) += lcd_omap3beagle.o
 objs-y$(CONFIG_FB_OMAP_LCD_MIPID) += lcd_mipid.o
diff --git a/drivers/video/omap/lcd_3430sdp.c b/drivers/video/omap/lcd_3430sdp.c
new file mode 100644
index 000..a8e4366
--- /dev/null
+++ b/drivers/video/omap/lcd_3430sdp.c
@@ -0,0 +1,161 @@
+/*
+ * LCD panel support for the TI 3430SDP board
+ *
+ * Copyright (C) 2008 Texas Instruments
+ * Author: Iqbal Shareef [EMAIL PROTECTED]
+ *
+ * Derived from drivers/video/omap/lcd_2430sdp.c
+ * Copyright (C) 2007 MontaVista
+ * Author: Hunyue Yau [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.
+ */
+
+#include linux/module.h
+#include linux/platform_device.h
+#include linux/i2c/twl4030.h
+
+#include asm/arch/gpio.h
+#include asm/arch/omapfb.h
+
+#define SDP3430_LCD_PANEL_BACKLIGHT_GPIO   8
+#define SDP3430_LCD_PANEL_ENABLE_GPIO  5
+
+static unsigned backlight_gpio;
+static unsigned enable_gpio;
+
+#define LCD_PIXCLOCK_MAX   167000
+#define PM_RECEIVERTWL4030_MODULE_PM_RECEIVER
+#define ENABLE_VAUX2_DEDICATED 0x03
+#define ENABLE_VAUX2_DEV_GRP   0x20
+#define ENABLE_VAUX3_DEDICATED 0x05
+#define ENABLE_VAUX3_DEV_GRP   0xE0
+
+static int sdp3430_panel_init(struct lcd_panel *panel,
+   struct omapfb_device *fbdev)
+{
+   enable_gpio= SDP3430_LCD_PANEL_ENABLE_GPIO;
+   backlight_gpio = SDP3430_LCD_PANEL_BACKLIGHT_GPIO;
+
+   omap_request_gpio(enable_gpio); /* LCD panel */
+   omap_request_gpio(backlight_gpio);  /* LCD backlight */
+   omap_set_gpio_direction(enable_gpio, 0);/* output */
+   omap_set_gpio_direction(backlight_gpio, 0); /* output */
+
+   return 0;
+}
+
+static void sdp3430_panel_cleanup(struct lcd_panel *panel)
+{
+   omap_free_gpio(backlight_gpio);
+   omap_free_gpio(enable_gpio);
+}
+
+static int sdp3430_panel_enable(struct lcd_panel *panel)
+{
+   omap_set_gpio_dataout(enable_gpio, 1);
+   omap_set_gpio_dataout(backlight_gpio, 1);
+
+   if (0 != twl4030_i2c_write_u8(PM_RECEIVER, ENABLE_VAUX3_DEDICATED,
+   TWL4030_VAUX3_DEDICATED))
+   return -EIO;
+   if (0 != twl4030_i2c_write_u8(PM_RECEIVER, ENABLE_VAUX3_DEV_GRP,
+   TWL4030_VAUX3_DEV_GRP))
+   return -EIO;
+
+   return 0;
+}
+
+static void sdp3430_panel_disable(struct lcd_panel *panel)
+{
+   omap_set_gpio_dataout(enable_gpio, 0);
+   omap_set_gpio_dataout(backlight_gpio, 0);
+}
+
+static unsigned long sdp3430_panel_get_caps(struct lcd_panel *panel)
+{
+   return 0;
+}
+
+struct lcd_panel sdp3430_panel = {
+   .name

Re: [PATCH] Separate out 3430 LCD panel support from 2430 file

2008-06-12 Thread Felipe Balbi


On Thu, 12 Jun 2008 05:24:32 -0500, [EMAIL PROTECTED] wrote:
 From: Iqbal Shareef [EMAIL PROTECTED]
 
 Separate out 3430 LCD panel support from 2430 SDP.
 
 Currently the support for the LCD on 3430SDP is added in the
lcd_2430sdp.c
 file. This patch separates it out to a new file.

You're at least missing 3430sdp defconfig updates, Kconfig changes
in drivers/media/video/omap and the removal of conditional code in
lcd_2430sdp.c

Some more comments below

 
 Signed-off-by: Iqbal Shareef  [EMAIL PROTECTED]
 
 ---
  arch/arm/mach-omap2/board-3430sdp.c |2 +-
  drivers/video/omap/Makefile |2 +-
  drivers/video/omap/lcd_3430sdp.c|  161
 +++
  3 files changed, 163 insertions(+), 2 deletions(-)
  create mode 100644 drivers/video/omap/lcd_3430sdp.c
 
 diff --git a/arch/arm/mach-omap2/board-3430sdp.c
 b/arch/arm/mach-omap2/board-3430sdp.c
 index f6cd08b..7a216cc 100644
 --- a/arch/arm/mach-omap2/board-3430sdp.c
 +++ b/arch/arm/mach-omap2/board-3430sdp.c
 @@ -204,7 +204,7 @@ static struct spi_board_info sdp3430_spi_board_info[]
 __initdata = {
  };
 
  static struct platform_device sdp3430_lcd_device = {
 - .name   = sdp2430_lcd,
 + .name   = sdp3430_lcd,
   .id = -1,
  };
 
 diff --git a/drivers/video/omap/Makefile b/drivers/video/omap/Makefile
 index fe7ee5d..a72a2d9 100644
 --- a/drivers/video/omap/Makefile
 +++ b/drivers/video/omap/Makefile
 @@ -30,7 +30,7 @@ objs-y$(CONFIG_MACH_SX1) += lcd_sx1.o
 
  objs-y$(CONFIG_MACH_OMAP_APOLLON) += lcd_apollon.o
  objs-y$(CONFIG_MACH_OMAP_2430SDP) += lcd_2430sdp.o
 -objs-y$(CONFIG_MACH_OMAP_3430SDP) += lcd_2430sdp.o
 +objs-y$(CONFIG_MACH_OMAP_3430SDP) += lcd_3430sdp.o
  objs-y$(CONFIG_MACH_OMAP3EVM) += lcd_omap3evm.o
  objs-y$(CONFIG_MACH_OMAP3_BEAGLE) += lcd_omap3beagle.o
  objs-y$(CONFIG_FB_OMAP_LCD_MIPID) += lcd_mipid.o
 diff --git a/drivers/video/omap/lcd_3430sdp.c
 b/drivers/video/omap/lcd_3430sdp.c
 new file mode 100644
 index 000..a8e4366
 --- /dev/null
 +++ b/drivers/video/omap/lcd_3430sdp.c
 @@ -0,0 +1,161 @@
 +/*
 + * LCD panel support for the TI 3430SDP board
 + *
 + * Copyright (C) 2008 Texas Instruments
 + * Author: Iqbal Shareef [EMAIL PROTECTED]
 + *
 + * Derived from drivers/video/omap/lcd_2430sdp.c
 + * Copyright (C) 2007 MontaVista
 + * Author: Hunyue Yau [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.
 + */
 +
 +#include linux/module.h
 +#include linux/platform_device.h
 +#include linux/i2c/twl4030.h
 +
 +#include asm/arch/gpio.h
 +#include asm/arch/omapfb.h
 +
 +#define SDP3430_LCD_PANEL_BACKLIGHT_GPIO 8
 +#define SDP3430_LCD_PANEL_ENABLE_GPIO5
 +
 +static unsigned backlight_gpio;
 +static unsigned enable_gpio;
 +
 +#define LCD_PIXCLOCK_MAX 167000
 +#define PM_RECEIVER  TWL4030_MODULE_PM_RECEIVER

PM_RECEIVER has no prefix. It's better to use TWL4030_MODULE_PM_RECEIVER
to avoid namespace conflicts

 +#define ENABLE_VAUX2_DEDICATED   0x03
 +#define ENABLE_VAUX2_DEV_GRP 0x20
 +#define ENABLE_VAUX3_DEDICATED   0x05
 +#define ENABLE_VAUX3_DEV_GRP 0xE0
 +
 +static int sdp3430_panel_init(struct lcd_panel *panel,
 + struct omapfb_device *fbdev)
 +{
 + enable_gpio= SDP3430_LCD_PANEL_ENABLE_GPIO;
 + backlight_gpio = SDP3430_LCD_PANEL_BACKLIGHT_GPIO;
 +
 + omap_request_gpio(enable_gpio); /* LCD panel */
 + omap_request_gpio(backlight_gpio);  /* LCD backlight */
 + omap_set_gpio_direction(enable_gpio, 0);/* output */
 + omap_set_gpio_direction(backlight_gpio, 0); /* output */

better using gpiolib

 +
 + return 0;
 +}
 +
 +static void sdp3430_panel_cleanup(struct lcd_panel *panel)
 +{
 + omap_free_gpio(backlight_gpio);
 + omap_free_gpio(enable_gpio);

gpiolib

 +}
 +
 +static int sdp3430_panel_enable(struct lcd_panel *panel)
 +{
 + omap_set_gpio_dataout(enable_gpio, 1);
 + omap_set_gpio_dataout(backlight_gpio, 1);

gpiolib

 +
 + if (0 != twl4030_i2c_write_u8(PM_RECEIVER, ENABLE_VAUX3_DEDICATED,
 + TWL4030_VAUX3_DEDICATED))
 + return -EIO;
 + if (0 != 

RE: [PATCH] Separate out 3430 LCD panel support from 2430 file

2008-06-12 Thread Felipe Balbi


On Thu, 12 Jun 2008 17:24:49 +0530, Gadiyar, Anand [EMAIL PROTECTED]
wrote:
  Separate out 3430 LCD panel support from 2430 SDP.
 
  Currently the support for the LCD on 3430SDP is added in the
 lcd_2430sdp.c
  file. This patch separates it out to a new file.

 You're at least missing 3430sdp defconfig updates, Kconfig changes
 in drivers/media/video/omap and the removal of conditional code in
 lcd_2430sdp.c
 
 Er... Why Kconfig in drivers/media/video/omap?

brainfart :-p
It uses CONFIG_MACH_OMAP_XXX :-)

forget about the Kconfig :-)

-- 
Best Regards,

Felipe Balbi
http://felipebalbi.com
[EMAIL PROTECTED]

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/4] Updates on mcbsp driver (take #2)

2008-06-12 Thread Steve Sakoman
Jarkko,

I've been using this patch with good results while developing an alsa
soc driver for the 35XX EVM and beagleboard.

Do you have plans to to officially submit this patch (or a more recent
version of it)?

Steve

On Tue, May 20, 2008 at 4:21 AM, Jarkko Nikula [EMAIL PROTECTED] wrote:
 On Mon, 19 May 2008 11:09:43 -0400
 ext Eduardo Valentin [EMAIL PROTECTED] wrote:

 Hi Steve,

 This series is basically a simple transformation of currect mcbsp code
 to a platform
 driver and a separation of machine specific code.

 It should work for omap1 and omap2 (what is currently supported). But
 it should add basic support  for omap3
 mcbps 1 and 2. Chandra will send his patches on top of this series to
 add more features for omap3.

 For those who are keen to try ASoC on OMAP3 might want to try attached
 patch on top of Eduardo's set.

 I'll prepare better one when there are more ports defined. E.g.
 there is no need to separe omap34xx_dma_regs table since request
 numbers are the same between OMAP2 and OMAP3.


 Jarkko

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


SDMA, RAM to RAM transfer issue

2008-06-12 Thread Somnt
Hi! All

I am new to OMAP3430,
I am trying to do DMA transfer from one Memory location to another on RAM.
First Scenario is
I am Allocating 1024bytes (KMALLOC) for both SRC  DEST
and after taking physical address (__pa) of allocated addresses I am
passing it to DMA tarnsfer.

in this case first 64bytes are not reflecting transfer in destination
(DST), rest are fine.

Second case:
I am doing everything else same but allocated size of memory is
X=(64+1024) bytes,
and passed address to DMA is X+64,
in this case eveything is fine, Transfer is complete for 1024bytes.

any body can please shed some light, what is wrong in my approach?
or why in first case tarnsffer is not reflected in first 64 bytes?
is it memory addressing issue or DMA setting issue.
I have tried with different channel but result is same.
Address returned by Kmalloc is on 32/64 byte boundary.

A quick reply will be appreciable!

with wishes
Somz
-
end
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: SDMA, RAM to RAM transfer issue

2008-06-12 Thread Azbell, Brandon
Somz,

I'm not sure I quite comprehend the two transfers you mention.

Regardless, please send your System DMA parameters for the
transfer.

Did you perform a cache invalidate of the DEST buffer to ensure
you are seeing new data when performing a read by the CPU from DEST to
verify the transfer?

A cache flush would be probably needed on SRC buffer if you had
just initialized SRC with data.  This would ensure the contents in SRC
are actually out in physical memory.

Brandon Azbell 

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Somnt
Sent: Thursday, June 12, 2008 8:35 PM
To: linux-omap@vger.kernel.org
Subject: SDMA, RAM to RAM transfer issue

Hi! All

I am new to OMAP3430,
I am trying to do DMA transfer from one Memory location to another on
RAM.
First Scenario is
I am Allocating 1024bytes (KMALLOC) for both SRC  DEST
and after taking physical address (__pa) of allocated addresses I am
passing it to DMA tarnsfer.

in this case first 64bytes are not reflecting transfer in destination
(DST), rest are fine.

Second case:
I am doing everything else same but allocated size of memory is
X=(64+1024) bytes,
and passed address to DMA is X+64,
in this case eveything is fine, Transfer is complete for 1024bytes.

any body can please shed some light, what is wrong in my approach?
or why in first case tarnsffer is not reflected in first 64 bytes?
is it memory addressing issue or DMA setting issue.
I have tried with different channel but result is same.
Address returned by Kmalloc is on 32/64 byte boundary.

A quick reply will be appreciable!

with wishes
Somz
-
end
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: Sharing buffers between ARM-DSP on OMAP3430 over Bridge

2008-06-12 Thread Kanigeri, Hari
Viraj,

I think in order to read the tags you have to be in secure mode,
so this approach might not be possible.

Thank you,
Best regards,
Hari
 

 -Original Message-
 From: Viraj Karandikar [mailto:[EMAIL PROTECTED] 
 Sent: Tuesday, June 10, 2008 11:33 PM
 To: Kanigeri, Hari; Gupta, Ramesh; linux-omap@vger.kernel.org
 Cc: Ameet U. Kalagi
 Subject: RE: Sharing buffers between ARM-DSP on OMAP3430 over Bridge
 
 Hari,
 Yes, performance of other applications will be impacted if we 
 flush entire cache.
 Can we do something like, scan through cache entries and 
 flush entries belonging to the buffer requested for flush?
 This can be done only while flushing huge buffers, so that 
 flushing small buffers will not be affected.
 I am not sure how exactly cache operations are done in linux. 
 But I think this could be done.
 
 
 Regards,
 Viraj
 
 
 -Original Message-
 From: Kanigeri, Hari [mailto:[EMAIL PROTECTED]
 Sent: Wednesday, June 11, 2008 12:38 AM
 To: Viraj Karandikar; Gupta, Ramesh; linux-omap@vger.kernel.org
 Subject: RE: Sharing buffers between ARM-DSP on OMAP3430 over Bridge
 
 Hi Viraj,
 
  I took these changes and built new bridgedriver.ko.
  I could see 50% reduction in time taken to queue a buffer 
 of size of 
  3MB. (old time: 28 ms, new time: 13 ms).
  
  Nice to hear the optimization worked for you.
 
  But actually the L2 cache is only 256Kb. So a small part of 
 the buffer 
  might be in cache ( 256Kb).
  This will add unnecessary overhead for huge (my buffer size is 3MB) 
  buffers.
  Is there any way so that I can flush full cache to avoid overhead?
 
  I did benchmark the flush part and the number I got 
 is very close to what you observed. We are looking into the 
 issue of reducing the flush time. I will inform once I find 
 any improvements to this.
 As far as your question regarding flushing the entire cache, 
 I am not sure if this is the best approach as this will have 
 an impact on the performance of other applications running in 
 the system.
 
 Thank you,
 Best regards,
 Hari
 
  -Original Message-
  From: Viraj Karandikar [mailto:[EMAIL PROTECTED]
  Sent: Tuesday, June 10, 2008 10:51 AM
  To: Kanigeri, Hari; Gupta, Ramesh; linux-omap@vger.kernel.org
  Subject: RE: Sharing buffers between ARM-DSP on OMAP3430 over Bridge
  
  Thanks Hari,
  I took these changes and built new bridgedriver.ko.
  I could see 50% reduction in time taken to queue a buffer 
 of size of 
  3MB. (old time: 28 ms, new time: 13 ms).
  
  If I reserve and map a buffer only once and use the mapped 
 address for 
  future (avoiding map/unmap every time) I get better numbers (9 ms).
  So only thing which I am doing is flushing the buffer for 
 consistency 
  since this buffer is input to codec on DSP.
  
  But 9ms only for flushing seems very high.
  I am not 100% sure, but it seems like the kernel flush code is
 scanning
  through all the virtual addresses of the buffer and flush if any of 
  those are cached.
  But actually the L2 cache is only 256Kb. So a small part of 
 the buffer 
  might be in cache ( 256Kb).
  This will add unnecessary overhead for huge (my buffer size is 3MB) 
  buffers.
  Is there any way so that I can flush full cache to avoid overhead?
  
  
  Regards,
  Viraj
  
  
  
  
  
  -Original Message-
  From: Kanigeri, Hari [mailto:[EMAIL PROTECTED]
  Sent: Monday, June 09, 2008 10:51 PM
  To: Viraj Karandikar; Gupta, Ramesh; linux-omap@vger.kernel.org
  Subject: RE: Sharing buffers between ARM-DSP on OMAP3430 over Bridge
  
  Hi Viraj,
  
  You can use the attached file to get the DMM optimimzation
 that
  Ramesh is referring to.
  
  The location of this file is mpu_driver\src\wmd\omap\3430
  
  
  Thank you,
  Best regards,
  Hari
  
  
   -Original Message-
   From: [EMAIL PROTECTED] 
   [mailto:[EMAIL PROTECTED] On Behalf Of Viraj 
   Karandikar
   Sent: Monday, June 09, 2008 10:18 AM
   To: Gupta, Ramesh; linux-omap@vger.kernel.org
   Subject: RE: Sharing buffers between ARM-DSP on OMAP3430 
 over Bridge
  
   Thanks Ramesh.
   I was reserving and mapping buffers every time. This was not 
   required.
   I modified the code to reserve and map a buffer only once and use
 the
   mapped address for future.
   This modification reduced the overhead.
  
   I have one more doubt.
   Does DSP use virtual-to-physical mapping for all the addresses it 
   accesses (including DSP's local buffers)?
   Or it uses this mapping only to access shared buffers?
   Wont it be a big overhead if DSP accesses all the 
 memories through 
   virtual-to-physical mapping?
  
   Regards,
   Viraj
  
  
  
   -Original Message-
   From: Ramesh Gupta G [mailto:[EMAIL PROTECTED]
   Sent: Monday, June 09, 2008 11:03 AM
   To: Viraj Karandikar; [EMAIL PROTECTED]
   Subject: Re: Sharing buffers between ARM-DSP on OMAP3430 
 over Bridge
  
   Hi Vijay,
  
   - Original Message -
   From: Viraj Karandikar [EMAIL PROTECTED]