[PATCH v5 4/4] powerpc/85xx: add sysfs for pw20 state and altivec idle

Dongsheng.Wang at freescale.com Dongsheng.Wang at freescale.com
Mon Dec 16 16:53:19 EST 2013



> -----Original Message-----
> From: Bhushan Bharat-R65777
> Sent: Monday, November 11, 2013 12:11 PM
> To: Wang Dongsheng-B40534; Wood Scott-B07421
> Cc: linuxppc-dev at lists.ozlabs.org
> Subject: RE: [PATCH v5 4/4] powerpc/85xx: add sysfs for pw20 state and altivec
> idle
> 
> > > Those codes just for discuss with Bharat. He want to make one flow at
> > > "show_pw20_wait_time"/" show_altivec_idle_wait_time" function. If we
> > > do that, we need to initialize pw20_wt/altivec_idle_wt.
> > >
> > I will keep this stuff at "show_pw20_wait_time"/"show_altivec_idle_wait_time"
> > and add a comment before our discussion.
> >
> > /*
> >  * If the "value" less than 10, this will overflow.
> >  * From benchmark test, the default wait bit will not be set less than 10bit.
> >  * Because 10 bit corresponds to the wait entry time is 439375573401999609(ns),
> >  * for wait-entry-idle time this value looks too long, and we cannot use those
> >  * "long" time as a default wait-entry time. So overflow could not have
> happened
> >  * and we use this calculation method to get wait-entry-idle time.
> >  */
> 
> I think now we will use same calculation code for default value and user set
> value, so adding the comment is not sufficient, we should error out from the
> code if value is less than 10. As default value is not less than 10 so this will
> always work with default value but if user tries to set less than 10 then error
> out and ask user to try more than 9.
> 
Again, once the user has set up a time, the code will go to another branch.

else {
	time = pw20_wt;
}

We do so much for this a little function processing is not worth it. If we can't
agree on this sys interface. I will change this sys interface to show_pw20_wait_bit. :)

code e.g:
static ssize_t show_pw20_wait_bit(struct device *dev,
                                struct device_attribute *attr, char *buf)
{
        u32 entry_bit;
        unsigned int cpu = dev->id;

        smp_call_function_single(cpu, do_show_pwrmgtcr0, &entry_bit, 1);
        entry_bit = (entry_bit & PWRMGTCR0_PW20_ENT) >>
                PWRMGTCR0_PW20_ENT_SHIFT;

        return sprintf(buf, "%u\n", entry_bit);
}

-dongsheng

> -Bharat


More information about the Linuxppc-dev mailing list