linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: fainelli@broadcom.com (Florian Fainelli)
To: linux-arm-kernel@lists.infradead.org
Subject: [GIT PULL] Broadcom SoC changes for 4.2
Date: Wed, 20 May 2015 14:50:37 -0700	[thread overview]
Message-ID: <555D01AD.2040705@broadcom.com> (raw)
In-Reply-To: <26666329.i6kznPGNxa@wuerfel>

On 20/05/15 14:22, Arnd Bergmann wrote:
> On Wednesday 20 May 2015 14:05:35 Florian Fainelli wrote:
>> On 20/05/15 13:59, Arnd Bergmann wrote:
>>> On Wednesday 13 May 2015 15:34:13 Florian Fainelli wrote:
>>>>  arch/arm/include/asm/vfp.h          |   9 ++
>>>>  arch/arm/mach-bcm/Makefile          |   7 +-
>>>>  arch/arm/mach-bcm/bcm63xx_headsmp.S |  23 ++++
>>>>  arch/arm/mach-bcm/bcm63xx_pmb.c     | 221 ++++++++++++++++++++++++++++++++++++
>>>>  arch/arm/mach-bcm/bcm63xx_smp.c     | 170 +++++++++++++++++++++++++++
>>>>  arch/arm/mach-bcm/bcm63xx_smp.h     |   9 ++
>>>>  arch/arm/vfp/vfpmodule.c            |  13 +++
>>>>  include/linux/bcm63xx_pmb.h         |  76 +++++++++++++
>>>>
>>>
>>> And taken out again, sorry.
>>
>> No problem, Rafal reminded me of a patch I forgot to submit earlier, so
>> I will take that as an opportunity to re-do this pull request.
>>
>>>
>>> I got a build error in include/linux/bcm63xx_pmb.h and that triggered me to take
>>> a closer look. I tried to fix up the trivial error first, but then noticed
>>> several other things wrong with bcm63xx_pmb.h:
>>
>> What kind of build error? Do you have it handy?
> 
> I sent it to you on IRC earlier, here is the full error log:
> 
> /git/arm-soc/include/linux/bcm63xx_pmb.h: In function '__bpcm_do_op':
> /git/arm-soc/include/linux/bcm63xx_pmb.h:39:12: error: 'EIO' undeclared (first use in this function)
>     return -EIO;
>             ^
> /git/arm-soc/include/linux/bcm63xx_pmb.h:39:12: note: each undeclared identifier is reported only once for each function it appears in
> /git/arm-soc/include/linux/bcm63xx_pmb.h:42:12: error: 'ETIMEDOUT' undeclared (first use in this function)
>     return -ETIMEDOUT;
>             ^
> In file included from /git/arm-soc/arch/arm/mach-bcm/bcm63xx_pmb.c:15:0:
> /git/arm-soc/include/linux/bcm63xx_pmb.h:48:1: warning: control reaches end of non-void function [-Wreturn-type]
> 
> This is fixed by including linux/errno.h in the header.

Yes, thanks I just reproduced it, not sure how I could have missed that
before...

> 
>>> - it is in include/linux/ where it clearly does not belong, as no other component
>>>   should be including it. Even the function documentation in there mentions that
>>>   one must hold the pmb_lock before calling it, and that is defined statically
>>>   arch/arm/mach-bcm/bcm63xx_pmb.c, so it's impossible for other code to use.
>>>   Just move it all into bcm63xx_pmb.c.
>>
>> This header will later be used by the bcm63138 reset controller, and I
>> thought I had explained the reasoning behind that in either the commit
>> message or cover letter, I will make sure the commit message explains it.
> 
> I see. I still think it's a bit rude to place this header in the top-level
> include/linux directory though. I realize there are a lot of other headers
> like this, but I'm trying not to add too many more.

Would a lesser evil be to create include/linux/resets/ and place this
header file there?

> 
> Maybe a lesser evil would be to put the reset driver into
> arch/arm/mach-bcm/bcm63xx_pmb.c as well?
> 
> How big is it? And is there anything else besides that driver which would
> need these functions?

It is going to be (once feature complete) as big as
arch/arm/mach-bcm/bcm63xx_pmb.c except that it will also have to inspect
the client asking for the reset, e.g: the reset procedure for the SATA
block is a little different than the one for the PCIe PHY, or integrated
Ethernet switch, or USB controlers...

The way we power on a secondary CPU is code that is not shared with how
other on-chip peripherals are powered on, hence the idea behind the
separation.

> 
>> The lock issue is not much of a problem since we do not support CPU
>> hotplug and the reset controller subsystem is initialized later so there
>> is no possibility for these two pieces of code to conflict.
> 
> Ok
> 
> 	Arnd
> 


-- 
Florian

  reply	other threads:[~2015-05-20 21:50 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-13 22:34 [GIT PULL] Broadcom Device Tree changes for 4.2 Florian Fainelli
2015-05-13 22:34 ` [GIT PULL] Broadcom MAINTAINERS file update " Florian Fainelli
2015-05-20 15:44   ` Arnd Bergmann
2015-05-13 22:34 ` [GIT PULL] Broadcom SoC changes " Florian Fainelli
2015-05-20 15:42   ` Arnd Bergmann
2015-05-20 15:43   ` Arnd Bergmann
2015-05-20 20:59   ` Arnd Bergmann
2015-05-20 21:05     ` Florian Fainelli
2015-05-20 21:22       ` Arnd Bergmann
2015-05-20 21:50         ` Florian Fainelli [this message]
2015-05-20 22:02           ` Arnd Bergmann
2015-05-15 15:18 ` [GIT PULL] Broadcom Device Tree " Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=555D01AD.2040705@broadcom.com \
    --to=fainelli@broadcom.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).