[RFC] using amba_pl08x driver for s3c64xx SoCs

Alim Akhtar alim.akhtar at gmail.com
Mon Aug 8 00:51:53 EDT 2011


On Mon, Aug 8, 2011 at 9:55 AM, viresh kumar <viresh.kumar at st.com> wrote:
> On 08/05/2011 06:49 PM, Linus Walleij wrote:
>> Alter pl08x_phy_channel_busy() to return false immediately if
>> ch->serving == NULL?
>>
>> Please make a separate patch for this, since it's an obvious bug that
>> should be fixed ASAP.
>
> On 08/08/2011 09:39 AM, viresh kumar wrote:
>> Sorry, but i couldn't get why will we get a crash here.
>>
>> pl08x_phy_channel_busy() looks like this:
>>
>> static int pl08x_phy_channel_busy(struct pl08x_phy_chan *ch)
>> {
>>       unsigned int val;
>>
>>       val = readl(ch->base + PL080_CH_CONFIG);
>>       return val & PL080_CONFIG_ACTIVE;
>> }
>>
>> ch->base is already initialized and clock is enabled by amba layer.
>>
>> Sorry if I am missing something Obvious.
>
> Sorry, i saw your patch now only. So you have updated this routine and now
> occurs a new issue.
>
> @Linus: The bug isn't present currently, but is introduced with Alim's patch only.
> So probably he isn't required to send this change separately, but can include this
> in his patch only. What do you say?
>
yes, that is introduced by my patch only, and I have fixed like below:

static int pl08x_phy_channel_busy(struct pl08x_phy_chan *ch)
{
        struct pl08x_dma_chan *plchan = ch->serving;
        struct pl08x_driver_data *pl08x;
        unsigned int val;

        if(plchan == NULL)
                return false;

        pl08x = plchan->host;

        if(pl08x->vd->is_pl080_s3c)
                val = readl(ch->base + PL080S_CH_CONFIG);
        else
                val = readl(ch->base + PL080_CH_CONFIG);

        return val & PL080_CONFIG_ACTIVE;
}
> --
> viresh
>

Regards,
Alim



More information about the linux-arm-kernel mailing list