[PATCH] memstick: rtsx: fix ms card data transfer bug

2013-10-29 Thread micky_ching
From: Micky Ching unlike mspro card, ms card use normal read/write mode for DMA data transfer. Signed-off-by: Micky Ching --- drivers/memstick/host/rtsx_pci_ms.c | 87 --- 1 file changed, 81 insertions(+), 6 deletions(-) diff --git a/drivers/memstick/host/rts

[PATCH v2 2/8] staging: bcm: Replace CHAR with char

2013-10-29 Thread Lisa Nguyen
Replace user-defined data type CHAR with C defined char data type. Signed-off-by: Lisa Nguyen --- drivers/staging/bcm/Adapter.h | 2 +- drivers/staging/bcm/HandleControlPacket.c | 2 +- drivers/staging/bcm/Typedefs.h| 1 - 3 files changed, 2 insertions(+), 3 deletions(-)

[PATCH v2 3/8] staging: bcm: Remove user defined type SHORT

2013-10-29 Thread Lisa Nguyen
Remove user-defined data type SHORT since it is not used anywhere in the bcm driver. Signed-off-by: Lisa Nguyen --- drivers/staging/bcm/Typedefs.h | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/bcm/Typedefs.h b/drivers/staging/bcm/Typedefs.h index cc22d48..389850d 100644 ---

[PATCH 3/8] staging: bcm: Remove user defined type SHORT

2013-10-29 Thread Lisa Nguyen
Remove user-defined data type SHORT since it is not used anywhere in the bcm driver. Signed-off-by: Lisa Nguyen --- drivers/staging/bcm/Typedefs.h | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/bcm/Typedefs.h b/drivers/staging/bcm/Typedefs.h index cc22d48..389850d 100644 ---

[PATCH v2 8/8] staging: bcm: Remove user defined data type DWORD

2013-10-29 Thread Lisa Nguyen
Remove user-defined data type DWORD in Typedef.h since it is not used anywhere in the bcm driver. Signed-off-by: Lisa Nguyen --- drivers/staging/bcm/Typedefs.h | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/bcm/Typedefs.h b/drivers/staging/bcm/Typedefs.h index c2085cf..6a7fea

[PATCH 0/8] staging: bcm: Clean up user defined data types

2013-10-29 Thread Lisa Nguyen
This patch series reflects the first round of data type cleanups. There was no need to redefine existing data types, and some user defined data types were removed if they were not used anywhere in the bcm driver. Lisa Nguyen (8): staging: bcm: Replace PVOID with void * staging: bcm: Replace

[PATCH v2 7/8] staging: bcm: Replace VOID with void

2013-10-29 Thread Lisa Nguyen
Replace user-defined data type VOID with C defined data type void. Signed-off-by: Lisa Nguyen --- Changes since v2: - Corrected subject line and commit message drivers/staging/bcm/CmHost.c | 22 ++--- drivers/staging/bcm/HandleControlPacket.c | 2 +- drivers/stagin

[PATCH v2 5/8] staging: bcm: Remove user defined data type PSHORT

2013-10-29 Thread Lisa Nguyen
Remove user-defined data type PSHORT since it is not used anywhere in the bcm driver. Signed-off-by: Lisa Nguyen --- drivers/staging/bcm/Typedefs.h | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/bcm/Typedefs.h b/drivers/staging/bcm/Typedefs.h index 290b05f..afbb7aa 100644 ---

[PATCH v2 4/8] staging: bcm: Replace INT with int

2013-10-29 Thread Lisa Nguyen
Replace user-defined data type INT with C defined int data type. Signed-off-by: Lisa Nguyen --- drivers/staging/bcm/Bcmchar.c | 14 +++ drivers/staging/bcm/Bcmnet.c | 4 +- drivers/staging/bcm/HandleControlPacket.c | 2 +- drivers/staging/bcm/IPv6Protocol.c

[PATCH v2 1/8] staging: bcm: Replace PVOID with void *

2013-10-29 Thread Lisa Nguyen
Remove user-defined data type PVOID and replace it with void *. Signed-off-by: Lisa Nguyen --- drivers/staging/bcm/Adapter.h | 22 +++--- drivers/staging/bcm/Bcmchar.c | 6 +++--- drivers/staging/bcm/CmHost.c | 16 drivers/st

[PATCH v2 0/8] staging: bcm: Clean up user defined data types

2013-10-29 Thread Lisa Nguyen
This patch series reflects the first round of data type cleanups. There was no need to redefine existing data types, and some user defined data types were removed if they were not used anywhere in the bcm driver. Changes since v2: - Fix subject line and commit message Lisa Nguyen (8): staging

Re: [PATCH 0/8] staging: bcm: Clean up user defined data types

2013-10-29 Thread Lisa Nguyen
Greg, Sorry for top posting, but I just inserted the wrong commit message and subject for one of my patches in this series. Please drop this set. Will revise and submit v2 of this series. Thanks, Lisa On Tue, Oct 29, 2013 at 9:40 PM, Lisa Nguyen wrote: > This patch series reflects the first ro

[PATCH 5/8] staging: bcm: Remove user defined data type PSHORT

2013-10-29 Thread Lisa Nguyen
Remove user-defined data type PSHORT since it is not used anywhere in the bcm driver. Signed-off-by: Lisa Nguyen --- drivers/staging/bcm/Typedefs.h | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/bcm/Typedefs.h b/drivers/staging/bcm/Typedefs.h index 290b05f..afbb7aa 100644 ---

[PATCH 1/8] staging: bcm: Replace PVOID with void *

2013-10-29 Thread Lisa Nguyen
Remove user-defined data type PVOID and replace it with void *. Signed-off-by: Lisa Nguyen --- drivers/staging/bcm/Adapter.h | 22 +++--- drivers/staging/bcm/Bcmchar.c | 6 +++--- drivers/staging/bcm/CmHost.c | 16 drivers/st

[PATCH 7/8] staging: bcm: Replace LONG with long

2013-10-29 Thread Lisa Nguyen
Replace user-defined data type LONG with C defined data type long. Signed-off-by: Lisa Nguyen --- drivers/staging/bcm/CmHost.c | 22 ++--- drivers/staging/bcm/HandleControlPacket.c | 2 +- drivers/staging/bcm/IPv6Protocol.c| 6 +++--- drivers/staging/bcm/In

[PATCH 2/8] staging: bcm: Replace CHAR with char

2013-10-29 Thread Lisa Nguyen
Replace user-defined data type CHAR with C defined char data type. Signed-off-by: Lisa Nguyen --- drivers/staging/bcm/Adapter.h | 2 +- drivers/staging/bcm/HandleControlPacket.c | 2 +- drivers/staging/bcm/Typedefs.h| 1 - 3 files changed, 2 insertions(+), 3 deletions(-)

[PATCH 8/8] staging: bcm: Remove user defined data type DWORD

2013-10-29 Thread Lisa Nguyen
Remove user-defined data type DWORD in Typedef.h since it is not used anywhere in the bcm driver. Signed-off-by: Lisa Nguyen --- drivers/staging/bcm/Typedefs.h | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/bcm/Typedefs.h b/drivers/staging/bcm/Typedefs.h index c2085cf..6a7fea

[PATCH 4/8] staging: bcm: Replace INT with int

2013-10-29 Thread Lisa Nguyen
Replace user-defined data type INT with C defined int data type. Signed-off-by: Lisa Nguyen --- drivers/staging/bcm/Bcmchar.c | 14 +++ drivers/staging/bcm/Bcmnet.c | 4 +- drivers/staging/bcm/HandleControlPacket.c | 2 +- drivers/staging/bcm/IPv6Protocol.c

[PATCH -next] staging: drm/imx: fix return value check in ipu_add_subdevice_pdata()

2013-10-29 Thread Wei Yongjun
From: Wei Yongjun In case of error, the function platform_device_register_data() returns ERR_PTR() and never returns NULL. The NULL test in the return value check should be replaced with IS_ERR(). Signed-off-by: Wei Yongjun --- drivers/staging/imx-drm/ipu-v3/ipu-common.c | 2 +- 1 file changed

[PATCH 04/12 V3] Staging: bcm: Replaces UCHAR with u8 in Adapter.h

2013-10-29 Thread Kevin McKinney
This patch replaces "UCHAR" with "u8" in Adapter.h Signed-off-by: Kevin McKinney --- drivers/staging/bcm/Adapter.h | 82 - 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/drivers/staging/bcm/Adapter.h b/drivers/staging/bcm/Adapter.h index

[PATCH 09/12 V3] Staging: bcm: Replace UINT32 with u32 in Adapter.h

2013-10-29 Thread Kevin McKinney
This patch replaces "UINT32" with "u32" in Adapter.h Signed-off-by: Kevin McKinney --- drivers/staging/bcm/Adapter.h | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/staging/bcm/Adapter.h b/drivers/staging/bcm/Adapter.h index ad7b814..e4aee04 100644 --- a/

[PATCH 05/12 V3] Staging: bcm: Replace ULONG with unsigned long in Adapter.h

2013-10-29 Thread Kevin McKinney
This patch replaces "ULONG" with "unsigned long" in Adapter.h. Signed-off-by: Kevin McKinney --- drivers/staging/bcm/Adapter.h | 34 +- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/staging/bcm/Adapter.h b/drivers/staging/bcm/Adapter.h

[PATCH 06/12 V3] Staging: bcm: Replace ULONG with u32 in Adapter.h

2013-10-29 Thread Kevin McKinney
This patch replaces "ULONG" with "u32" for ipv4 addresses, in Adapter.h. In addition, all formating is change to match u32 definition. Signed-off-by: Kevin McKinney --- drivers/staging/bcm/Adapter.h |8 drivers/staging/bcm/Bcmchar.c |2 +- drivers/staging/bcm/CmHost.c |8 ++

[PATCH 11/12 V3] Staging: bcm: Replace PVOID with void * in Adapter.h

2013-10-29 Thread Kevin McKinney
This patch replaces "PVOID" with "void *" in Adapter.h Signed-off-by: Kevin McKinney --- drivers/staging/bcm/Adapter.h | 22 +++--- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/drivers/staging/bcm/Adapter.h b/drivers/staging/bcm/Adapter.h index b71f86f..db076

[PATCH 12/12 V3] Staging: bcm: Replace LARGE_INTEGER with u64 in Adapter.h

2013-10-29 Thread Kevin McKinney
This patch replaces "LARGE_INTEGER" with "u64" in Adapter.h Signed-off-by: Kevin McKinney --- drivers/staging/bcm/Adapter.h |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/bcm/Adapter.h b/drivers/staging/bcm/Adapter.h index db07672..c842bf9 100644 --- a

[PATCH 01/12 V3] Staging: bcm: Fix WARNING: space prohibited before semicolon.

2013-10-29 Thread Kevin McKinney
This patch removes a space before semicolon as specified by checkpatch.pl. Signed-off-by: Kevin McKinney --- drivers/staging/bcm/Adapter.h |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/bcm/Adapter.h b/drivers/staging/bcm/Adapter.h index d6c9630..11fd7f1 1

[PATCH 00/12 V3] Staging: bcm: cleanup patches Adapter.h

2013-10-29 Thread Kevin McKinney
Adapter.h cleanup patches. Kevin McKinney (12): Staging: bcm: Fix WARNING: space prohibited before semicolon. Staging: bcm: Remove typedef for _U_IP_ADDRESS and call directly. Staging: bcm: Replace USHORT with unsigned short in Adapter.h Staging: bcm: Replaces UCHAR with u8 in Adapter.h

[PATCH 07/12 V3] Staging: bcm: Replace B_UINT16 with u16 in Adapter.h

2013-10-29 Thread Kevin McKinney
This patch replaces "B_UINT16" with "u16" in Adapter.h Signed-off-by: Kevin McKinney --- drivers/staging/bcm/Adapter.h |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/bcm/Adapter.h b/drivers/staging/bcm/Adapter.h index 343b987..ff36739 100644 --- a/driv

[PATCH 02/12 V3] Staging: bcm: Remove typedef for _U_IP_ADDRESS and call directly.

2013-10-29 Thread Kevin McKinney
This patch removes typedef for _U_IP_ADDRESS, and changes the name of the struct to bcm_ip_address. In addition, any calls to struct "U_IP_ADDRESS" are changed to call directly. Signed-off-by: Kevin McKinney --- drivers/staging/bcm/Adapter.h |8 1 file changed, 4 insertions(+), 4 de

[PATCH 08/12 V3] Staging: bcm: Replace B_UINT8 with u8 in Adapter.h

2013-10-29 Thread Kevin McKinney
This patch replaces "B_UINT8" with "u8" in Adapter.h Signed-off-by: Kevin McKinney --- drivers/staging/bcm/Adapter.h |8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/staging/bcm/Adapter.h b/drivers/staging/bcm/Adapter.h index ff36739..ad7b814 100644 --- a/dr

[PATCH 10/12 V3] Staging: bcm: Replace UINT with unsigned int in Adapter.h

2013-10-29 Thread Kevin McKinney
This patch replaces "UINT" with "unsigned int" in Adapter.h Signed-off-by: Kevin McKinney --- drivers/staging/bcm/Adapter.h | 82 - 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/drivers/staging/bcm/Adapter.h b/drivers/staging/bcm/Adapte

[PATCH 03/12 V3] Staging: bcm: Replace USHORT with unsigned short in Adapter.h

2013-10-29 Thread Kevin McKinney
This patch replaces "USHORT" with "unsigned short" in Adapter.h Signed-off-by: Kevin McKinney --- drivers/staging/bcm/Adapter.h | 32 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/drivers/staging/bcm/Adapter.h b/drivers/staging/bcm/Adapter.h i

Re: [PATCH] mmc: rtsx: change phase searching method

2013-10-29 Thread micky
Hi Chris: Have you accepted this patch, I'm waiting a long time for your reply. Best Reagards. micky On 09/02/2013 05:16 PM, micky_ch...@realsil.com.cn wrote: From: Micky Ching The new phase searching method is more concise, and makes the code easier to understand. Signed-off-by: Micky Chi

Re: [PATCH v3] imx-drm: Add mx6 hdmi transmitter support

2013-10-29 Thread Fabio Estevam
On Tue, Oct 29, 2013 at 9:47 PM, Russell King - ARM Linux wrote: > The issues surrounding DT and DRM were given an airing last week at > kernel summit in a session chaired by David Airlie. > > The Kernel Summit session was to discuss issues surrounding DT and DRM, > or more specifically DT and co

Re: [PATCH] imx-drm: ipuv3-crtc: Invert IPU DI0 clock polarity

2013-10-29 Thread Fabio Estevam
Hi Russell, On Tue, Oct 29, 2013 at 9:25 PM, Russell King - ARM Linux wrote: > There's slightly more to this than that mail, and I have to raise the > issue about whether this is the correct fix or not. See: > > http://www.spinics.net/lists/arm-kernel/msg279902.html Today I also checked U-boot

Re: [PATCH v3] imx-drm: Add mx6 hdmi transmitter support

2013-10-29 Thread Russell King - ARM Linux
On Tue, Oct 29, 2013 at 08:01:46PM -0200, Fabio Estevam wrote: > Hi Greg, > > On Mon, Oct 28, 2013 at 7:03 PM, Greg KH wrote: > > And why is new support being added to this driver instead of working to > > get it out of staging? > > Philipp Zabel mentioned that he will submit the imx-drm driver

Re: [PATCH] imx-drm: ipuv3-crtc: Invert IPU DI0 clock polarity

2013-10-29 Thread Russell King - ARM Linux
On Tue, Oct 29, 2013 at 07:42:22PM -0200, Fabio Estevam wrote: > From: Fabio Estevam > > sig_cfg.clk_pol controls the 'di0_polarity_disp_clk' bit of register > IPUx_DI0_GENERAL through the following code in imx-drm/ipu-v3/ipu-di.c: > > if (!sig->clk_pol) > di_gen |= DI_GEN_PO

Re: [PATCH v3] imx-drm: Add mx6 hdmi transmitter support

2013-10-29 Thread Fabio Estevam
Hi Greg, On Mon, Oct 28, 2013 at 7:03 PM, Greg KH wrote: > On Mon, Oct 28, 2013 at 06:26:49PM -0200, Fabio Estevam wrote: >> From: Fabio Estevam >> >> This is based on the initial work done by Sascha Hauer and Tony Prisk. > > What is "this"? Ok, I will improve the commit log. > And why is new

[PATCH] imx-drm: ipuv3-crtc: Invert IPU DI0 clock polarity

2013-10-29 Thread Fabio Estevam
From: Fabio Estevam sig_cfg.clk_pol controls the 'di0_polarity_disp_clk' bit of register IPUx_DI0_GENERAL through the following code in imx-drm/ipu-v3/ipu-di.c: if (!sig->clk_pol) di_gen |= DI_GEN_POLARITY_DISP_CLK; With 'di0_polarity_disp_clk' bit set we do not have sta

[PATCH] staging: bcm: Remove unnecessary pointer casting

2013-10-29 Thread Lisa Nguyen
Some void pointers can be assigned to other pointer variables in functions without casting. Signed-off-by: Lisa Nguyen --- drivers/staging/bcm/CmHost.c | 10 +- drivers/staging/bcm/IPv6Protocol.c | 2 +- drivers/staging/bcm/InterfaceDld.c | 4 ++-- drivers/staging/bcm/InterfaceTx

[patch] Staging: sb105x: info leak in mp_get_count()

2013-10-29 Thread Dan Carpenter
The icount.reserved[] array isn't initialized so it leaks stack information to userspace. Reported-by: Nico Golde Reported-by: Fabian Yamaguchi Signed-off-by: Dan Carpenter diff --git a/drivers/staging/sb105x/sb_pci_mp.c b/drivers/staging/sb105x/sb_pci_mp.c index bc53b4e..bde28b9 100644 --- a

[patch] Staging: bcm: info leak in ioctl

2013-10-29 Thread Dan Carpenter
The DevInfo.u32Reserved[] array isn't initialized so it leaks kernel information to user space. Reported-by: Nico Golde Reported-by: Fabian Yamaguchi Signed-off-by: Dan Carpenter diff --git a/drivers/staging/bcm/Bcmchar.c b/drivers/staging/bcm/Bcmchar.c index f91bc1f..639ba96 100644 --- a/driv

[patch] staging: wlags49_h2: buffer overflow setting station name

2013-10-29 Thread Dan Carpenter
We need to check the length parameter before doing the memcpy(). I've actually changed it to strlcpy() as well so that it's NUL terminated. You need CAP_NET_ADMIN to trigger these so it's not the end of the world. Reported-by: Nico Golde Reported-by: Fabian Yamaguchi Signed-off-by: Dan Carpent

Re: [PATCH] staging: octeon: drop redundant mac address check

2013-10-29 Thread David Daney
On 10/28/2013 06:24 PM, Luka Perkov wrote: Checking if MAC address is valid using is_valid_ether_addr() is already done in of_get_mac_address(). Signed-off-by: Luka Perkov Acked-by: David Daney --- drivers/staging/octeon/ethernet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)

[patch] staging: ozwpan: prevent overflow in oz_cdev_write()

2013-10-29 Thread Dan Carpenter
We need to check "count" so we don't overflow the ei->data buffer. Reported-by: Nico Golde Reported-by: Fabian Yamaguchi Signed-off-by: Dan Carpenter diff --git a/drivers/staging/ozwpan/ozcdev.c b/drivers/staging/ozwpan/ozcdev.c index 6ccb64f..6ce0af9 100644 --- a/drivers/staging/ozwpan/ozcdev

Re: [PATCH v3] imx-drm: Add mx6 hdmi transmitter support

2013-10-29 Thread Russell King - ARM Linux
On Tue, Oct 29, 2013 at 01:45:50PM -0200, Fabio Estevam wrote: > On Tue, Oct 29, 2013 at 1:00 PM, Fabio Estevam wrote: > > > Today I was able to get access to a wandboard solo and the HDMI image > > does look different compared to a wandboard quad board: > > > > - The Linux logo penguins are stea

Re: [PATCH 02/11 V2] Staging: bcm: Remove typedef for _U_IP_ADDRESS and call directly.

2013-10-29 Thread Greg KH
On Tue, Oct 29, 2013 at 01:10:07PM -0400, Kevin McKinney wrote: > On Tue, Oct 29, 2013 at 1:04 PM, Greg KH wrote: > > On Tue, Oct 29, 2013 at 01:01:39PM -0400, Kevin McKinney wrote: > > Sure, I will resend these patches.  I tried to be careful, and apply all > other > > patches be

Re: [PATCH 02/11 V2] Staging: bcm: Remove typedef for _U_IP_ADDRESS and call directly.

2013-10-29 Thread Greg KH
On Tue, Oct 29, 2013 at 01:01:39PM -0400, Kevin McKinney wrote: > Sure, I will resend these patches.  I tried to be careful, and apply all other > patches before I re-did mine. I must have missed something. I will resend. In > the past I developed my patches against the linux-next branch.  Is this

Re: [PATCH 02/11 V2] Staging: bcm: Remove typedef for _U_IP_ADDRESS and call directly.

2013-10-29 Thread Greg KH
On Tue, Oct 29, 2013 at 09:01:48AM -0700, Greg KH wrote: > On Mon, Oct 28, 2013 at 11:51:39PM -0400, Kevin McKinney wrote: > > This patch removes typedef for _U_IP_ADDRESS, and > > changes the name of the struct to bcm_ip_address. In > > addition, any calls to struct "U_IP_ADDRESS" are > > changed

Re: [PATCH 02/11 V2] Staging: bcm: Remove typedef for _U_IP_ADDRESS and call directly.

2013-10-29 Thread Greg KH
On Mon, Oct 28, 2013 at 11:51:39PM -0400, Kevin McKinney wrote: > This patch removes typedef for _U_IP_ADDRESS, and > changes the name of the struct to bcm_ip_address. In > addition, any calls to struct "U_IP_ADDRESS" are > changed to call directly. > > Signed-off-by: Kevin McKinney Someone alre

Re: [PATCH] drivers: staging: bcm: Removed a developer debug statement.

2013-10-29 Thread Greg KH
On Thu, Oct 24, 2013 at 01:02:45AM +0300, Dan Carpenter wrote: > On Wed, Oct 23, 2013 at 03:11:20PM -0400, Chuong Ngo wrote: > > Removed a developer debug statement per the TODO list. Additionally, > > removed braces for the if-statement to match coding style. > > Line wrap the changelog at 72 c

Re: [PATCH v3] imx-drm: Add mx6 hdmi transmitter support

2013-10-29 Thread Fabio Estevam
On Tue, Oct 29, 2013 at 1:00 PM, Fabio Estevam wrote: > Today I was able to get access to a wandboard solo and the HDMI image > does look different compared to a wandboard quad board: > > - The Linux logo penguins are steady on mx6q, but on mx6solo the > contour lines look like they flicker. > -

Re: [PATCH 1/2] staging: media: davinci_vpfe: Rewrite return statement in vpfe_video.c

2013-10-29 Thread Greg KH
On Tue, Oct 29, 2013 at 12:14:14AM +0100, Andi Shyti wrote: > Hi Greg, > > > > If you write it like this: > > > > > > return !ret ? ret : -ETIMEDOUT; > > > > > > checkpatch shouldn't complain. > > > > No, but I will. > > > > That's horrid code, please be specific and readable, no one should

Re: [PATCH v3] imx-drm: Add mx6 hdmi transmitter support

2013-10-29 Thread Fabio Estevam
On Mon, Oct 28, 2013 at 7:19 PM, Russell King - ARM Linux wrote: > On Mon, Oct 28, 2013 at 06:26:49PM -0200, Fabio Estevam wrote: >> From: Fabio Estevam >> >> This is based on the initial work done by Sascha Hauer and Tony Prisk. > > It looks like you've also taken some of the suggestions I've ma