On 04-11-20, 17:54, Nicola Mazzucato wrote: > Initially I thought to place a comment right there but I ended up with an > explanation of this case at the top of this function (the corner-case). It > probably also needs more details.. I read it earlier as well but yeah, that wasn't good enough for me to understand what you are doing. > Basically, on this case - empty opp table & opp-shared - we limit the scope of > opp-shared to *only* tell us about hw description, and not marking the opp > points as shared, since they are not present in DT. It doesn't matter where the OPP table entries are coming from. The OPP table should be marked shared if it is found to be shared. > It would be the equivalent > of describing that devices share clock/voltage lines, but we can't tell anything > about opp points cause they are not there (in DT). Its okay, even then we should set the right flags here. It is really confusing that we blindly set it as exclusive, even though it may be shared. > OTOH If we don't set shared_opp to OPP_TABLE_ACCESS_EXCLUSIVE for that specific > case, we won't be able to add opps for the remaining cpus as the opp core > will find the opps as duplicated. This is a corner case, really. Hmm, I am not sure where you fail and how but this should be set to OPP_TABLE_ACCESS_EXCLUSIVE only if the OPP table isn't shared. else it should be OPP_TABLE_ACCESS_SHARED. -- viresh