mbox

[GIT,PULL] Broadcom STB GISB bus driver for 3.19 (v2)

Message ID 1417220370-469-1-git-send-email-f.fainelli@gmail.com
State Accepted, archived
Headers show

Pull-request

https://github.com/brcm/linux.git tags/arm-soc/for-3.19/brcmstb-drivers

Message

Florian Fainelli Nov. 29, 2014, 12:19 a.m. UTC
The following changes since commit f114040e3ea6e07372334ade75d1ee0775c355e1:

  Linux 3.18-rc1 (2014-10-19 18:08:38 -0700)

are available in the git repository at:

  https://github.com/brcm/linux.git tags/arm-soc/for-3.19/brcmstb-drivers

for you to fetch changes up to d1d6786846e1c40f780edb83569597a8a7769e95:

  bus: brcmstb_gisb: Add register offset tables for older chips (2014-11-28 15:44:44 -0800)

----------------------------------------------------------------
This pull request contains the following changes to the Broadcom GISB bus
arbiter from Kevin Cernekee:

- Extend brcmstb GISB bus driver to work on MIPS (currently ARM-only) and support
  65nm and 40nm MIPS-based chips such as: BCM7038, BCM7400 and BCM7435

----------------------------------------------------------------
Changes in v2:
- drop bus: brcmstb_gisb: Honor the "big-endian" and "native-endian" DT properties
  since it depends on of_device_is_big_endian which is not merged yet

Kevin Cernekee (4):
      bus: brcmstb_gisb: Make the driver buildable on MIPS
      bus: brcmstb_gisb: Introduce wrapper functions for MMIO accesses
      bus: brcmstb_gisb: Look up register offsets in a table
      bus: brcmstb_gisb: Add register offset tables for older chips

 .../devicetree/bindings/bus/brcm,gisb-arb.txt      |   6 +-
 drivers/bus/Kconfig                                |   2 +-
 drivers/bus/brcmstb_gisb.c                         | 118 +++++++++++++++++----
 3 files changed, 105 insertions(+), 21 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Arnd Bergmann Dec. 4, 2014, 3:44 p.m. UTC | #1
On Friday 28 November 2014 16:19:30 Florian Fainelli wrote:
> This pull request contains the following changes to the Broadcom GISB bus
> arbiter from Kevin Cernekee:
> 
> - Extend brcmstb GISB bus driver to work on MIPS (currently ARM-only) and support
>   65nm and 40nm MIPS-based chips such as: BCM7038, BCM7400 and BCM7435

Pulled into next/drivers, thanks!

	Arnd
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Florian Fainelli Dec. 5, 2014, 7:23 a.m. UTC | #2
Le 04/12/2014 07:44, Arnd Bergmann a écrit :
> On Friday 28 November 2014 16:19:30 Florian Fainelli wrote:
>> This pull request contains the following changes to the Broadcom GISB bus
>> arbiter from Kevin Cernekee:
>>
>> - Extend brcmstb GISB bus driver to work on MIPS (currently ARM-only) and support
>>   65nm and 40nm MIPS-based chips such as: BCM7038, BCM7400 and BCM7435
> 
> Pulled into next/drivers, thanks!

Thanks! You may have to resolve a conflict when you merge
brcm/stb-smp-uart with next/drivers for this file, especially with the
commit below:

203bb85ed605e43eadca62afb3a8cd128a8ec10a ("bus: brcmstb_gisb: save and
restore GISB timeout")

for brcmstb_gisb_arb_suspend() and
brcmstb_gisb_arb_resume_noirq() which still use the ioread32/iowrite32
accessors instead of those introduced later on by Kevin: gisb_read() and
gisb_write. The merge resolution looks like this:


#ifdef CONFIG_PM_SLEEP
static int brcmstb_gisb_arb_suspend(struct device *dev)
{
        struct platform_device *pdev = to_platform_device(dev);
        struct brcmstb_gisb_arb_device *gdev = platform_get_drvdata(pdev);

        gdev->saved_timeout = gisb_read(gdev, ARB_TIMER);

        return 0;
}

/* Make sure we provide the same timeout value that was configured
before, and
 * do this before the GISB timeout interrupt handler has any chance to run.
 */
static int brcmstb_gisb_arb_resume_noirq(struct device *dev)
{
        struct platform_device *pdev = to_platform_device(dev);
        struct brcmstb_gisb_arb_device *gdev = platform_get_drvdata(pdev);

        gisb_write(gdev, gdev->saved_timeout, ARB_TIMER);

        return 0;
}

--
Florian
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Arnd Bergmann Dec. 5, 2014, 9:54 a.m. UTC | #3
On Thursday 04 December 2014 23:23:49 Florian Fainelli wrote:
> Le 04/12/2014 07:44, Arnd Bergmann a écrit :
> > On Friday 28 November 2014 16:19:30 Florian Fainelli wrote:
> >> This pull request contains the following changes to the Broadcom GISB bus
> >> arbiter from Kevin Cernekee:
> >>
> >> - Extend brcmstb GISB bus driver to work on MIPS (currently ARM-only) and support
> >>   65nm and 40nm MIPS-based chips such as: BCM7038, BCM7400 and BCM7435
> > 
> > Pulled into next/drivers, thanks!
> 
> Thanks! You may have to resolve a conflict when you merge
> brcm/stb-smp-uart with next/drivers for this file, especially with the
> commit below:
> 
> 203bb85ed605e43eadca62afb3a8cd128a8ec10a ("bus: brcmstb_gisb: save and
> restore GISB timeout")
> 
> for brcmstb_gisb_arb_suspend() and
> brcmstb_gisb_arb_resume_noirq() which still use the ioread32/iowrite32
> accessors instead of those introduced later on by Kevin: gisb_read() and
> gisb_write. The merge resolution looks like this:
> 
> 
> #ifdef CONFIG_PM_SLEEP
> static int brcmstb_gisb_arb_suspend(struct device *dev)
> {
>         struct platform_device *pdev = to_platform_device(dev);
>         struct brcmstb_gisb_arb_device *gdev = platform_get_drvdata(pdev);
> 
>         gdev->saved_timeout = gisb_read(gdev, ARB_TIMER);
> 
>         return 0;
> }
> 
> /* Make sure we provide the same timeout value that was configured
> before, and
>  * do this before the GISB timeout interrupt handler has any chance to run.
>  */
> static int brcmstb_gisb_arb_resume_noirq(struct device *dev)
> {
>         struct platform_device *pdev = to_platform_device(dev);
>         struct brcmstb_gisb_arb_device *gdev = platform_get_drvdata(pdev);
> 
>         gisb_write(gdev, gdev->saved_timeout, ARB_TIMER);
> 
>         return 0;
> }

I ended up mismerging it actually, but Olof fixed it up. If you have the
time, please check that the contents of our for-next branch are correct
now.

Thanks,

	Arnd
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Florian Fainelli Dec. 5, 2014, 7:18 p.m. UTC | #4
On 05/12/14 01:54, Arnd Bergmann wrote:
> On Thursday 04 December 2014 23:23:49 Florian Fainelli wrote:
>> Le 04/12/2014 07:44, Arnd Bergmann a écrit :
>>> On Friday 28 November 2014 16:19:30 Florian Fainelli wrote:
>>>> This pull request contains the following changes to the Broadcom GISB bus
>>>> arbiter from Kevin Cernekee:
>>>>
>>>> - Extend brcmstb GISB bus driver to work on MIPS (currently ARM-only) and support
>>>>   65nm and 40nm MIPS-based chips such as: BCM7038, BCM7400 and BCM7435
>>>
>>> Pulled into next/drivers, thanks!
>>
>> Thanks! You may have to resolve a conflict when you merge
>> brcm/stb-smp-uart with next/drivers for this file, especially with the
>> commit below:
>>
>> 203bb85ed605e43eadca62afb3a8cd128a8ec10a ("bus: brcmstb_gisb: save and
>> restore GISB timeout")
>>
>> for brcmstb_gisb_arb_suspend() and
>> brcmstb_gisb_arb_resume_noirq() which still use the ioread32/iowrite32
>> accessors instead of those introduced later on by Kevin: gisb_read() and
>> gisb_write. The merge resolution looks like this:
>>
>>
>> #ifdef CONFIG_PM_SLEEP
>> static int brcmstb_gisb_arb_suspend(struct device *dev)
>> {
>>         struct platform_device *pdev = to_platform_device(dev);
>>         struct brcmstb_gisb_arb_device *gdev = platform_get_drvdata(pdev);
>>
>>         gdev->saved_timeout = gisb_read(gdev, ARB_TIMER);
>>
>>         return 0;
>> }
>>
>> /* Make sure we provide the same timeout value that was configured
>> before, and
>>  * do this before the GISB timeout interrupt handler has any chance to run.
>>  */
>> static int brcmstb_gisb_arb_resume_noirq(struct device *dev)
>> {
>>         struct platform_device *pdev = to_platform_device(dev);
>>         struct brcmstb_gisb_arb_device *gdev = platform_get_drvdata(pdev);
>>
>>         gisb_write(gdev, gdev->saved_timeout, ARB_TIMER);
>>
>>         return 0;
>> }
> 
> I ended up mismerging it actually, but Olof fixed it up. If you have the
> time, please check that the contents of our for-next branch are correct
> now.

I just sent you a fix applying on top of your for-next branch that
resolves this: 1417806943-1200-1-git-send-email-f.fainelli@gmail.com

I will put all the brcmstb_gisb in the same branch next time so you
don't have to resolve conflicts like these anymore.

Thanks!

> 
> Thanks,
> 
> 	Arnd
> 

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html