> -----Original Message-----
> From: [email protected] [mailto:linux-omap-
> [email protected]] On Behalf Of Datta, Shubhrajyoti
> Sent: Tuesday, November 02, 2010 3:55 PM
> To: [email protected]
> Cc: Datta, Shubhrajyoti
> Subject: [PATCH v2] McBSP: Fix the free variable update at remove.
>
> From: Shubhrajyoti D <[email protected]>
>
> At remove the free variable is wrongly updated.Attempting to solve the
> same.
>
> Signed-off-by: Shubhrajyoti D <[email protected]>
> ---
> -[v2] Instead of using 0/1 use a macro
>
> arch/arm/plat-omap/include/plat/mcbsp.h | 3 +++
> arch/arm/plat-omap/mcbsp.c | 10 +++++-----
> 2 files changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/plat-omap/include/plat/mcbsp.h b/arch/arm/plat-
> omap/include/plat/mcbsp.h
> index b87d83c..8988733 100644
> --- a/arch/arm/plat-omap/include/plat/mcbsp.h
> +++ b/arch/arm/plat-omap/include/plat/mcbsp.h
> @@ -37,6 +37,9 @@ static struct platform_device omap_mcbsp##port_nr = {
> \
> .id = OMAP_MCBSP##port_nr, \
> }
>
> +#define TRUE 1
> +#define FALSE 0
> +
Why do you redefine them? They are already available.
> #define OMAP7XX_MCBSP1_BASE 0xfffb1000
> #define OMAP7XX_MCBSP2_BASE 0xfffb1800
>
> diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
> index eac4b97..438b3c7 100644
> --- a/arch/arm/plat-omap/mcbsp.c
> +++ b/arch/arm/plat-omap/mcbsp.c
> @@ -755,7 +755,7 @@ int omap_mcbsp_request(unsigned int id)
> goto err_kfree;
> }
>
> - mcbsp->free = 0;
> + mcbsp->free = FALSE;
> mcbsp->reg_cache = reg_cache;
> spin_unlock(&mcbsp->lock);
>
> @@ -815,7 +815,7 @@ err_clk_disable:
> clk_disable(mcbsp->iclk);
>
> spin_lock(&mcbsp->lock);
> - mcbsp->free = 1;
> + mcbsp->free = TRUE;
> mcbsp->reg_cache = NULL;
> err_kfree:
> spin_unlock(&mcbsp->lock);
> @@ -858,7 +858,7 @@ void omap_mcbsp_free(unsigned int id)
> if (mcbsp->free)
> dev_err(mcbsp->dev, "McBSP%d was not reserved\n", mcbsp->id);
> else
> - mcbsp->free = 1;
> + mcbsp->free = TRUE;
> mcbsp->reg_cache = NULL;
> spin_unlock(&mcbsp->lock);
>
> @@ -1771,7 +1771,7 @@ static int __devinit omap_mcbsp_probe(struct
> platform_device *pdev)
>
> spin_lock_init(&mcbsp->lock);
> mcbsp->id = id + 1;
> - mcbsp->free = 1;
> + mcbsp->free = TRUE;
During probe this should not be TRUE as it becomes TRUE during
a omap_mcbsp_request().
The changes should actually make this flag a boolean one and then
do these changes. You might also need to consider changing the code
in places where this flag is being used.
example:
if (mcbsp->free == TRUE)
....
> mcbsp->dma_tx_lch = -1;
> mcbsp->dma_rx_lch = -1;
>
> @@ -1845,7 +1845,7 @@ static int __devexit omap_mcbsp_remove(struct
> platform_device *pdev)
>
> mcbsp->fclk = NULL;
> mcbsp->iclk = NULL;
> - mcbsp->free = 0;
> + mcbsp->free = TRUE;
> mcbsp->dev = NULL;
> }
>
> --
> 1.7.0.4
>
> --
> 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