Re: FOR COMMENT: void __iomem * and similar casts are Bad News

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Russel,

Sorry for late reply.

I applied the patch and tested, but it didn't resolves my problem.

I found that  code hangs at this point.
File : arch/arm/plat-omap/mcbsp.c
Function: omap_mcbsp_request

if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->request)
                mcbsp->pdata->ops->request(id);

I am requesting mcbsp1.

Arun KS

On Thu, Sep 4, 2008 at 4:26 AM, Russell King - ARM Linux
<linux@xxxxxxxxxxxxxxxx> wrote:
> On Wed, Sep 03, 2008 at 03:05:59PM -0700, David Brownell wrote:
>> According to Mr. Grep, there are at least 10 ARMs that work
>> like that in mainline.  Maybe Russell can recommend one of
>> them as a preferred model.
>
> As I've been trying to say, I see this as a separate issue for the near
> future.  At the moment, I'm trying to concentrate on one aspect only.
>
> That is, getting OMAP to the point that we're using the compiler to
> warn us when we do something silly, like passing a virtual address
> to a function which takes a physical address, and fixing the places
> which are currently wrong.
>
> Anything else like changing the ioremap behaviour is actually
> completely orthogonal to that, and *is* a distraction.  Rather than
> actually fixing the mcbsp.c issue, I've spent the last hour or so
> composing various replies to Richard's emails, and then postponing
> them, reading more of this thread, creating more replies, postponing
> those as well, etc.
>
> Anyway, what I've done now is committed the minimal set of fixes so
> far to go into mainline for the current -rc so we can at least improve
> the situation there.  That's not to say that the other patch won't be
> going in - it will in some form or other.
>
> It can also be applied to the omap tree by saving this message as
> "whateverpatchfile", running:
>
> sed -i 's,\[id\]\.,->,' whateverpatchfile
>
> and then applying "whateverpatchfile".  Expect some offsets.
>
> Arun - can you please test this patch on your 5912 OSK board to see if
> it resolves your problem please?
>
> diff --git a/arch/arm/mach-omap1/mcbsp.c b/arch/arm/mach-omap1/mcbsp.c
> index 826010d..b6ffbab 100644
> --- a/arch/arm/mach-omap1/mcbsp.c
> +++ b/arch/arm/mach-omap1/mcbsp.c
> @@ -184,7 +184,7 @@ static struct omap_mcbsp_platform_data omap730_mcbsp_pdata[] = {
>  #ifdef CONFIG_ARCH_OMAP15XX
>  static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
>        {
> -               .virt_base      = OMAP1510_MCBSP1_BASE,
> +               .virt_base      = io_p2v(OMAP1510_MCBSP1_BASE),
>                .dma_rx_sync    = OMAP_DMA_MCBSP1_RX,
>                .dma_tx_sync    = OMAP_DMA_MCBSP1_TX,
>                .rx_irq         = INT_McBSP1RX,
> @@ -201,7 +201,7 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
>                .ops            = &omap1_mcbsp_ops,
>        },
>        {
> -               .virt_base      = OMAP1510_MCBSP3_BASE,
> +               .virt_base      = io_p2v(OMAP1510_MCBSP3_BASE),
>                .dma_rx_sync    = OMAP_DMA_MCBSP3_RX,
>                .dma_tx_sync    = OMAP_DMA_MCBSP3_TX,
>                .rx_irq         = INT_McBSP3RX,
> @@ -219,7 +219,7 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
>  #ifdef CONFIG_ARCH_OMAP16XX
>  static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
>        {
> -               .virt_base      = OMAP1610_MCBSP1_BASE,
> +               .virt_base      = io_p2v(OMAP1610_MCBSP1_BASE),
>                .dma_rx_sync    = OMAP_DMA_MCBSP1_RX,
>                .dma_tx_sync    = OMAP_DMA_MCBSP1_TX,
>                .rx_irq         = INT_McBSP1RX,
> @@ -236,7 +236,7 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
>                .ops            = &omap1_mcbsp_ops,
>        },
>        {
> -               .virt_base      = OMAP1610_MCBSP3_BASE,
> +               .virt_base      = io_p2v(OMAP1610_MCBSP3_BASE),
>                .dma_rx_sync    = OMAP_DMA_MCBSP3_RX,
>                .dma_tx_sync    = OMAP_DMA_MCBSP3_TX,
>                .rx_irq         = INT_McBSP3RX,
> diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
> index d084405..5245a2a 100644
> --- a/arch/arm/plat-omap/mcbsp.c
> +++ b/arch/arm/plat-omap/mcbsp.c
> @@ -651,7 +651,7 @@ int omap_mcbsp_xmit_buffer(unsigned int id, dma_addr_t buffer,
>        omap_set_dma_dest_params(mcbsp[id].dma_tx_lch,
>                                 src_port,
>                                 OMAP_DMA_AMODE_CONSTANT,
> -                                mcbsp[id].io_base + OMAP_MCBSP_REG_DXR1,
> +                                io_v2p(mcbsp[id].io_base + OMAP_MCBSP_REG_DXR1),
>                                 0, 0);
>
>        omap_set_dma_src_params(mcbsp[id].dma_tx_lch,
> @@ -712,7 +712,7 @@ int omap_mcbsp_recv_buffer(unsigned int id, dma_addr_t buffer,
>        omap_set_dma_src_params(mcbsp[id].dma_rx_lch,
>                                src_port,
>                                OMAP_DMA_AMODE_CONSTANT,
> -                               mcbsp[id].io_base + OMAP_MCBSP_REG_DRR1,
> +                               io_v2p(mcbsp[id].io_base + OMAP_MCBSP_REG_DRR1),
>                                0, 0);
>
>        omap_set_dma_dest_params(mcbsp[id].dma_rx_lch,
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux