LinuxPPC-Dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [git pull] Please pull powerpc.git next branch
From: Benjamin Herrenschmidt @ 2012-01-06  3:42 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linuxppc-dev list, Andrew Morton, Linux Kernel list

Hi Linus !

Here's my powerpc batch for this merge window. In addition to the usual
mixed bag of small fixes & improvements, the bigger highlights are:

 - Reworked the freescale .dts (device-tree) files to use the new
".dtsi" include mechanism so board files just include the SoC definition
rather than duplicating it
 - cpuidle framework support on pseries
 - Various time management fixes & cleanups
 - hugetlb support for FSL BookE embedded chips
 - p7ioc IO chip support for powernv platform
 - Cleanup of MPIC init code

And I'm probably forgetting some...

Cheers,
Ben.


The following changes since commit caca6a03d365883564885f2c1da3e88dcf65d139:

  Linux 3.2-rc3 (2011-11-23 20:20:28 -0800)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc.git next

Alexandre Rusev (1):
      powerpc/fsl-lbc: Fix for fsl_upm

Ananth N Mavinakayanahalli (1):
      powerpc: Export PIR data through sysfs

Andreas Schwab (1):
      powerpc: Fix wrong divisor in usecs_to_cputime

Andy Fleming (1):
      powerpc: Add TBI PHY node to first MDIO bus

Anton Blanchard (22):
      powerpc/time: Handle wrapping of decrementer
      powerpc/time: Use clockevents_calc_mult_shift
      powerpc/time: Use clocksource_register_hz
      powerpc/time: Remove unnecessary sanity check of decrementer expiration
      powerpc/time: Fix some style issues
      powerpc/time: Optimise decrementer_check_overflow
      powerpc: Decode correct MSR bits in oops output
      powerpc/xics: Harden xics hypervisor backend
      powerpc: Give us time to get all oopses out before panicking
      powerpc: Remove broken and complicated kdump system reset code
      powerpc/kdump: Use setjmp/longjmp to handle kdump and system reset recursion
      powerpc: Cleanup crash/kexec code
      powerpc: Rework die()
      powerpc: Reduce pseries panic timeout from 180s to 10s
      powerpc/xics: Reset the CPPR if H_EOI fails
      powerpc/kdump: Delay before sending IPI on a system reset
      powerpc/kdump: Only save CPU state first time through the secondary CPU capture code
      powerpc/pseries: Increase minimum RMO size from 64MB to 256MB
      powerpc/nvram: Add spinlock to oops_to_nvram to prevent oops in compression code.
      powerpc: Enable squashfs as a module
      powerpc: POWER7 optimised copy_to_user/copy_from_user using VMX
      powerpc: Fix comment explaining our VSID layout

Becky Bruce (13):
      powerpc: Only define HAVE_ARCH_HUGETLB_UNMAPPED_AREA if PPC_MM_SLICES
      powerpc: hugetlb: fix huge_ptep_set_access_flags return value
      powerpc: Fix booke hugetlb preload code for PPC_MM_SLICES and 64-bit
      powerpc: Update hugetlb huge_pte_alloc and tablewalk code for FSL BOOKE
      powerpc: hugetlb: modify include usage for FSL BookE code
      powerpc: Whitespace/comment changes to tlb_low_64e.S
      powerpc: Add hugepage support to 64-bit tablewalk code for FSL_BOOK3E
      powerpc: Add gpages reservation code for 64-bit FSL BOOKE
      powerpc: Kconfig updates for FSL BookE HUGETLB 64-bit
      powerpc: Enable Hugetlb by default for 32-bit 85xx/corenet
      powerpc: Enable hugetlb by default for corenet64 platforms
      powerpc/book3e: Change hugetlb preload to take vma argument
      powerpc: Define/use HUGETLB_NEED_PRELOAD insead of complicated #if

Benjamin Herrenschmidt (24):
      powerpc/pci: Add a platform hook after probe and before resource survey
      powerpc/pci: Change how re-assigning resouces work
      powerpc/powernv: Add TCE SW invalidation support
      powerpc/powernv: Fixup p7ioc PCIe root complex class code
      powerpc/powernv: PCI support for p7IOC under OPAL v2
      Merge remote-tracking branch 'kumar/next' into next
      powerpc/powernv: Update OPAL interfaces
      powerpc/powernv: Display diag data on p7ioc EEH errors
      powerpc/powernv: Workaround OFW issues in prom_init.c
      powerpc/pci: Make pci_read_irq_line() static
      Merge branch 'mpic' into next
      Merge branch 'booke-hugetlb' into next
      powerpc: Add support for OpenBlockS 600
      Merge branch 'cpuidle' into next
      Merge branch 'ps3' into next
      Merge branch 'kexec' into next
      tty/serial/pmac_zilog: Fix suspend & resume
      powerpc/pmac: Simplify old pmac PIC interrupt handling
      powerpc/pmac: Fix SMP kernels on pre-core99 UP machines
      Merge remote-tracking branch 'jwb/next' into next
      powerpc: Fix old bug in prom_init setting of the color
      offb: Fix bug in calculating requested vram size
      offb: Add palette hack for qemu "standard vga" framebuffer
      offb: Fix setting of the pseudo-palette for >8bpp
po
Christoph Egger (1):
      powerpc/44x: Removing dead CONFIG_PPC47x

Chuck Meade (1):
      drivers/serial/ucc_uart.c: Add missing call to init UCC UART port timeout

Dan McGee (1):
      powerpc+sparc64/mm: Remove hack in mmap randomize layout

David Rientjes (2):
      powerpc/mm: Fix section mismatch for mark_reserved_regions_for_nid
      powerpc/mm: Fix section mismatch for read_n_cells

Deepthi Dharwar (4):
      powerpc/cpuidle: Add cpu_idle_wait() to allow switching of idle routines
      powerpc/cpuidle: cpuidle driver for pSeries
      powerpc/cpuidle: Enable cpuidle and directly call cpuidle_idle_call() for pSeries
      powerpc/cpuidle: Handle power_save=off

Dmitry Eremin-Solenikov (7):
      powerpc/83xx: consolidate init_IRQ functions
      powerpc/83xx: consolidate of_platform_bus_probe calls
      powerpc/83xx: merge PCI bridge additions
      powerpc/83xx: make mpc830x_rdb use mpc83xx_setup_pci
      powerpc/85xx: separate cpm2 pic init
      powerpc/85xx: consolidate of_platform_bus_probe calls
      powerpc/maple: Enable access to HT Host-Bridge on Maple

Finn Thain (1):
      pmac_zilog: Fix unexpected irq

Florian Fainelli (1):
      perf/powerpc: Fix build for PowerPC with uclibc toolchains

Geoff Levand (8):
      powerpc/ps3: Interrupt code cleanup
      powerpc/ps3: Fix hcall lv1_net_stop_rx_dma
      powerpc/ps3: Fix hcall lv1_get_virtual_address_space_id_of_ppe
      powerpc/ps3: Fix hcall lv1_get_version_info
      powerpc/ps3: Fix hcall lv1_read_repository_node
      powerpc/ps3: Fix PS3 repository build warnings
      powerpc/ps3: Add __init to ps3_smp_probe
      powerpc/ps3: Update ps3_defconfig

Geoff Thorpe (1):
      powerpc: Add pgprot_cached_noncoherent()

Jason Jin (1):
      powerpc/fsl-pci: Don't hide resource for pci/e when configured as Agent/EP

Jia Hongtao (1):
      powerpc/85xx: Add lbc suspend support for PM

Jimi Xenidis (6):
      powerpc: Split ICSWX ACOP and PID processing
      powerpc/book3e: Add ICSWX/ACOP support to Book3e cores like A2
      powerpc/icswx: Simple ACOP fault handler
      powerpc/xmon: Fix the 'u' command description
      powerpc/xmon: Fix #if typo for systems without MSR[RI]
      powerpc/book3e: Add Chroma as a new WSP/PowerEN platform.

Joakim Tjernlund (1):
      powerpc/qe: Fixup QE_General4 errata

Josh Boyer (2):
      MAINTAINERS: Update PowerPC 4xx git tree
      powerpc/44x: Fix build error on currituck platform

Julia Lawall (4):
      arch/powerpc/sysdev/ehv_pic.c: add missing kfree
      powerpc/cell/iommu: Add missing of_node_put
      powerpc/powermac: Add missing of_node_put
      arch/powerpc/sysdev/fsl_rmu.c: introduce missing kfree

Justin P. Mattock (1):
      powerpc/mpic: Remove extra semicolon.

Kai Jiang (1):
      powerpc/8xxx: Update device tree bus probe for new RapidIO node binding

Kumar Gala (36):
      powerpc/85xx: Fix compile error on p3060_qds.c
      powerpc/85xx: Simplify P1020RDB CAMP dts using includes
      powerpc/85xx: Rework PCI nodes on P1020RDB
      powerpc/85xx: Update SPI binding to match binding spec for P1020RDB
      powerpc/85xx: Update P1020 SEC3.3 node to match actual SoC HW
      powerpc/85xx: Add ethernet magic packet property to P1020 device tree
      powerpc/85xx: p1020si.dtsi update interrupt handling
      powerpc/85xx: create dts components to build up an SoC
      powerpc/85xx: Rework MPC8536DS device trees
      powerpc/85xx: Rework MPC8544DS device tree
      powerpc/85xx: Rework MPC8548CDS device trees
      powerpc/85xx: Rework MPC8568MDS device tree
      powerpc/85xx: Rework MPC8569MDS device tree
      powerpc/85xx: Rework MPC8572DS device tree
      powerpc/85xx: Rework P1010RDB and P1010 device tree
      powerpc/85xx: Add RTC to P1010RDB device tree
      powerpc/85xx: Add crypto engine to P1010 SoC device tree
      powerpc/85xx: Add a P1010RDB 36-bit address map device tree
      powerpc/85xx: Rework P1020RDB device tree
      powerpc/85xx: Add P1020RDB 36-bit address map device tree
      powerpc/85xx: Rework P1021MDS device tree
      powerpc/85xx: Rework P1022DS device tree
      powerpc/85xx: Rework P1023RDS device tree
      powerpc/85xx: Rework P2020DS device tree
      powerpc/85xx: Rework P2020RDB device tree
      powerpc/85xx: Rework P2041RDB device tree
      powerpc/85xx: Rework P3041DS device tree
      powerpc/85xx: Rework P3060QDS device tree
      powerpc/85xx: Rework P4080DS device trees
      powerpc/85xx: Rework P5020DS device tree
      powerpc/85xx: Update SRIO device tree nodes
      powerpc/85xx: Additional consolidate of_platform_bus_probe calls
      powerpc/85xx: Renamed mpc85xx_common.c to common.c
      powerpc/fsl-pci: Allow 64-bit PCIe devices to DMA to any memory address
      powerpc/fsl: Update defconfigs to enable some standard FSL HW features
      powerpc/fsl: update compatiable on fsl 16550 uart nodes

Kyle Moffett (10):
      powerpc/85xx: Move mpc85xx_smp_init() decl to a new "smp.h"
      powerpc: Consolidate mpic_alloc() OF address translation
      powerpc/mpic: Assume a device-node was passed in mpic_alloc()
      powerpc/mpic: Save computed phys_addr for board-specific code
      powerpc/mpic: Search for open-pic device-tree node if NULL
      powerpc/mpic: Invert the meaning of MPIC_PRIMARY
      powerpc/mpic: Don't open-code dcr_resource_start
      powerpc/mpic: Put "pic-no-reset" test back into the MPIC code
      powerpc/mpic: Cache the device-tree node in "struct mpic"
      powerpc/mpic: Add in-core support for cascaded MPICs

Li Zhong (1):
      powerpc: Fix unpaired probe_hcall_entry and probe_hcall_exit

Liu Gang (3):
      powerpc/fsl: Document rapidio node binding-information
      fsl-rio: Split rio driver into two parts, RapidIO endpoint and message unit
      fsl-rio: Add two ports and rapidio message units support

Matt Evans (1):
      powerpc: Add __SANE_USERSPACE_TYPES__ to asm/types.h for LL64

Matthew McClintock (1):
      arch/powerpc: Remove duplicate/redundant Altivec entries

Michael Neuling (1):
      powerpc: fix compile error with 85xx/p1023_rds.c

Milton Miller (1):
      powerpc/pseries: Software invalidatation of TCEs

Paul Bolle (1):
      powerpc/p3060qds: Fix select of 'MPC8xxx_GPIO'

Paul Gortmaker (1):
      sbc834x: put full compat string in board match check

Paul Mackerras (3):
      powerpc/powernv: Fix problems in onlining CPUs
      powerpc: Provide a way for KVM to indicate that NV GPR values are lost
      powerpc: Only use initrd_end as the limit for alloc_bottom if it's inside the RMO.

Prabhakar Kushwaha (1):
      powerpc/fsl: Add support for Integrated Flash Controller

Ravi K. Nittala (1):
      powerpc/pseries: Cancel RTAS event scan before firmware flash

Richard Kuo (1):
      powerpc: Use rwsem.h from generic location

Roy Zang (1):
      powerpc/p1023: set IRQ[4:6,11] to active-high level sensitive for PCIe

Shaohui Xie (1):
      drivers/edac/mpc85xx_edac.c: fix memory controller compatible for edac

Suzuki Poulose (8):
      powerpc: Rename mapping based RELOCATABLE to DYNAMIC_MEMSTART for BookE
      powerpc/44x: Enable DYNAMIC_MEMSTART for 440x
      powerpc: Process dynamic relocations for kernel
      powerpc: Define virtual-physical translations for RELOCATABLE
      powerpc/44x: Enable CONFIG_RELOCATABLE for PPC44x
      powerpc/44x: Enable CRASH_DUMP for 440x
      powerpc/boot: Change the load address for the wrapper to fit the kernel
      powerpc/boot: Change the WARN to INFO for boot wrapper overlap message

Tanmay Inamdar (1):
      powerpc/40x: Add APM8018X SOC support

Thomas Gleixner (4):
      powerpc/85xx: Mark cascade irq IRQF_NO_THREAD
      powerpc/wsp: Mark opb cascade handler IRQF_NO_THREAD
      powerpc: Mark IPI interrupts IRQF_NO_THREAD
      powerpc: Allow irq threading

Timur Tabi (5):
      powerpc/85xx: add pixis indirect mode device tree node
      powerpc/fsl_msi: add support for the fsl, msi property in PCI nodes
      powerpc/85xx: re-enable ePAPR byte channel driver in corenet32_smp_defconfig
      powerpc/85xx: fix PCI and localbus properties in p1022ds.dts
      powerpc/fsl: add MSI support for the Freescale hypervisor

Tony Breeds (8):
      powerpc/44x: pci: Use PCI_BASE_ADDRESS_MEM_PREFETCH rather than magic value.
      powerpc/44x: pci: Add a want_sdr flag into ppc4xx_pciex_hwops
      powerpc/44x: pci: Setup the dma_window properties for each pci_controller
      powerpc/boot: Add extended precision shifts to the boot wrapper.
      powerpc/boot: Add mfdcrx
      powerpc/476fpe: Add 476fpe SoC code
      powerpc/47x: Add support for the new IBM currituck platform
      powerpc: fix compile error with 85xx/p1010rdb.c

sukadev@linux.vnet.ibm.com (2):
      powerpc: Implement CONFIG_STRICT_DEVMEM
      powerpc: Punch a hole in /dev/mem for librtas

 .../devicetree/bindings/powerpc/fsl/srio-rmu.txt   |  163 +++
 .../devicetree/bindings/powerpc/fsl/srio.txt       |  103 ++
 MAINTAINERS                                        |    2 +-
 arch/powerpc/Kconfig                               |   54 +-
 arch/powerpc/Kconfig.debug                         |   12 +
 arch/powerpc/Makefile                              |   11 +-
 arch/powerpc/boot/Makefile                         |   12 +-
 arch/powerpc/boot/dcr.h                            |    6 +
 arch/powerpc/boot/div64.S                          |   52 +
 arch/powerpc/boot/dts/asp834x-redboot.dts          |    4 +-
 arch/powerpc/boot/dts/currituck.dts                |  237 +++
 arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi      |  248 ++++
 arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi       |   63 +
 arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi      |  191 +++
 arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi       |   63 +
 arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi      |  143 ++
 arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi       |   62 +
 arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi      |  270 ++++
 arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi       |   65 +
 arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi      |  304 ++++
 arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi       |   64 +
 arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi      |  196 +++
 arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi       |   70 +
 arch/powerpc/boot/dts/fsl/p1010si-post.dtsi        |  198 +++
 arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi         |   64 +
 arch/powerpc/boot/dts/fsl/p1020si-post.dtsi        |  174 +++
 arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi         |   68 +
 arch/powerpc/boot/dts/fsl/p1021si-post.dtsi        |  225 +++
 arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi         |   68 +
 arch/powerpc/boot/dts/fsl/p1022si-post.dtsi        |  235 +++
 arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi         |   68 +
 arch/powerpc/boot/dts/fsl/p1023si-post.dtsi        |  224 +++
 arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi         |   76 +
 arch/powerpc/boot/dts/fsl/p2020si-post.dtsi        |  194 +++
 arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi         |   69 +
 arch/powerpc/boot/dts/fsl/p2041si-post.dtsi        |  325 +++++
 arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi         |  111 ++
 arch/powerpc/boot/dts/fsl/p3041si-post.dtsi        |  352 +++++
 arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi         |  112 ++
 arch/powerpc/boot/dts/fsl/p3060si-post.dtsi        |  296 ++++
 arch/powerpc/boot/dts/fsl/p3060si-pre.dtsi         |  125 ++
 arch/powerpc/boot/dts/fsl/p4080si-post.dtsi        |  350 +++++
 arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi         |  143 ++
 arch/powerpc/boot/dts/fsl/p5020si-post.dtsi        |  355 +++++
 arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi         |   96 ++
 arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi           |   66 +
 arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi           |   66 +
 arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi         |   51 +
 arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi         |   41 +
 arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi          |   41 +
 arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi        |   53 +
 arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi        |   53 +
 arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi        |   53 +
 arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi        |   53 +
 arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi  |   39 +
 arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi        |   60 +
 arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi        |   60 +
 arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi        |   59 +
 arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi   |   42 +
 arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi   |   42 +
 arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi   |   42 +
 arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi          |   41 +
 arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi           |   43 +
 arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi           |   43 +
 arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi    |   42 +
 arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi            |   66 +
 arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi           |   68 +
 arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi         |   40 +
 arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi         |   40 +
 arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi        |   43 +
 arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi        |   45 +
 arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi        |   45 +
 arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi        |   45 +
 arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi        |   65 +
 arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi       |   41 +
 arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi       |   41 +
 arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi         |   66 +
 arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi         |   66 +
 arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi       |   51 +
 arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi       |   51 +
 arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi       |   40 +
 arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi        |   41 +
 arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi        |   41 +
 arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi         |   53 +
 arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi         |   53 +
 arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi          |  106 ++
 arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi         |   68 +
 arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi       |   39 +
 arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi       |   39 +
 arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi      |  100 ++
 arch/powerpc/boot/dts/fsl/qoriq-sec4.1-0.dtsi      |  109 ++
 arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi      |  109 ++
 arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi     |   41 +
 arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi    |   41 +
 arch/powerpc/boot/dts/gef_ppc9a.dts                |    4 +-
 arch/powerpc/boot/dts/gef_sbc310.dts               |    4 +-
 arch/powerpc/boot/dts/gef_sbc610.dts               |    4 +-
 arch/powerpc/boot/dts/klondike.dts                 |  227 +++
 arch/powerpc/boot/dts/kmeter1.dts                  |    2 +-
 arch/powerpc/boot/dts/kuroboxHD.dts                |    4 +-
 arch/powerpc/boot/dts/kuroboxHG.dts                |    4 +-
 arch/powerpc/boot/dts/mpc8308_p1m.dts              |    4 +-
 arch/powerpc/boot/dts/mpc8308rdb.dts               |    4 +-
 arch/powerpc/boot/dts/mpc8313erdb.dts              |    4 +-
 arch/powerpc/boot/dts/mpc8315erdb.dts              |    4 +-
 arch/powerpc/boot/dts/mpc832x_mds.dts              |    4 +-
 arch/powerpc/boot/dts/mpc832x_rdb.dts              |    4 +-
 arch/powerpc/boot/dts/mpc8349emitx.dts             |    4 +-
 arch/powerpc/boot/dts/mpc8349emitxgp.dts           |    4 +-
 arch/powerpc/boot/dts/mpc834x_mds.dts              |    4 +-
 arch/powerpc/boot/dts/mpc836x_mds.dts              |    4 +-
 arch/powerpc/boot/dts/mpc836x_rdk.dts              |    4 +-
 arch/powerpc/boot/dts/mpc8377_mds.dts              |    4 +-
 arch/powerpc/boot/dts/mpc8377_rdb.dts              |    4 +-
 arch/powerpc/boot/dts/mpc8377_wlan.dts             |    4 +-
 arch/powerpc/boot/dts/mpc8378_mds.dts              |    4 +-
 arch/powerpc/boot/dts/mpc8378_rdb.dts              |    4 +-
 arch/powerpc/boot/dts/mpc8379_mds.dts              |    4 +-
 arch/powerpc/boot/dts/mpc8379_rdb.dts              |    4 +-
 arch/powerpc/boot/dts/mpc8536ds.dts                |  456 +------
 arch/powerpc/boot/dts/mpc8536ds.dtsi               |  141 ++
 arch/powerpc/boot/dts/mpc8536ds_36b.dts            |  410 +-----
 arch/powerpc/boot/dts/mpc8540ads.dts               |    4 +-
 arch/powerpc/boot/dts/mpc8541cds.dts               |    4 +-
 arch/powerpc/boot/dts/mpc8544ds.dts                |  473 +------
 arch/powerpc/boot/dts/mpc8544ds.dtsi               |  161 +++
 arch/powerpc/boot/dts/mpc8548cds.dts               |  505 ++-----
 arch/powerpc/boot/dts/mpc8555cds.dts               |    4 +-
 arch/powerpc/boot/dts/mpc8568mds.dts               |  482 +------
 arch/powerpc/boot/dts/mpc8569mds.dts               |  414 +-----
 arch/powerpc/boot/dts/mpc8572ds.dts                |  757 +----------
 arch/powerpc/boot/dts/mpc8572ds.dtsi               |  397 +++++
 arch/powerpc/boot/dts/mpc8572ds_36b.dts            |  746 +----------
 arch/powerpc/boot/dts/mpc8572ds_camp_core0.dts     |  487 +------
 arch/powerpc/boot/dts/mpc8572ds_camp_core1.dts     |  245 +---
 arch/powerpc/boot/dts/mpc8610_hpcd.dts             |    4 +-
 arch/powerpc/boot/dts/mpc8641_hpcn.dts             |   73 +-
 arch/powerpc/boot/dts/mpc8641_hpcn_36b.dts         |    4 +-
 arch/powerpc/boot/dts/obs600.dts                   |  314 ++++
 arch/powerpc/boot/dts/p1010rdb.dts                 |  228 +---
 arch/powerpc/boot/dts/p1010rdb.dtsi                |  234 +++
 arch/powerpc/boot/dts/p1010rdb_36b.dts             |   89 ++
 arch/powerpc/boot/dts/p1010si.dtsi                 |  374 -----
 arch/powerpc/boot/dts/p1020rdb.dts                 |  262 +----
 arch/powerpc/boot/dts/p1020rdb.dtsi                |  247 ++++
 arch/powerpc/boot/dts/p1020rdb_36b.dts             |   66 +
 arch/powerpc/boot/dts/p1020rdb_camp_core0.dts      |  154 +--
 arch/powerpc/boot/dts/p1020rdb_camp_core1.dts      |   11 +-
 arch/powerpc/boot/dts/p1020si.dtsi                 |  377 -----
 arch/powerpc/boot/dts/p1021mds.dts                 |  425 +-----
 arch/powerpc/boot/dts/p1022ds.dts                  |  459 +------
 arch/powerpc/boot/dts/p1023rds.dts                 |  383 +-----
 arch/powerpc/boot/dts/p2020ds.dts                  |  353 +-----
 arch/powerpc/boot/dts/p2020ds.dtsi                 |  316 ++++
 arch/powerpc/boot/dts/p2020rdb.dts                 |   71 +-
 arch/powerpc/boot/dts/p2020rdb_camp_core0.dts      |  141 +--
 arch/powerpc/boot/dts/p2020rdb_camp_core1.dts      |  107 +--
 arch/powerpc/boot/dts/p2020si.dtsi                 |  382 -----
 arch/powerpc/boot/dts/p2041rdb.dts                 |   22 +-
 arch/powerpc/boot/dts/p2041si.dtsi                 |  692 ---------
 arch/powerpc/boot/dts/p3041ds.dts                  |   23 +-
 arch/powerpc/boot/dts/p3041si.dtsi                 |  729 ----------
 arch/powerpc/boot/dts/p3060qds.dts                 |   12 +-
 arch/powerpc/boot/dts/p3060si.dtsi                 |  719 ---------
 arch/powerpc/boot/dts/p4080ds.dts                  |   24 +-
 arch/powerpc/boot/dts/p4080si.dtsi                 |  755 ----------
 arch/powerpc/boot/dts/p5020ds.dts                  |   24 +-
 arch/powerpc/boot/dts/p5020si.dtsi                 |  716 ---------
 arch/powerpc/boot/dts/sbc8349.dts                  |    4 +-
 arch/powerpc/boot/dts/sbc8548.dts                  |    4 +-
 arch/powerpc/boot/dts/sbc8641d.dts                 |    4 +-
 arch/powerpc/boot/dts/socrates.dts                 |    4 +-
 arch/powerpc/boot/dts/storcenter.dts               |    4 +-
 arch/powerpc/boot/dts/stxssa8555.dts               |    4 +-
 arch/powerpc/boot/dts/tqm8540.dts                  |    4 +-
 arch/powerpc/boot/dts/tqm8541.dts                  |    4 +-
 arch/powerpc/boot/dts/tqm8548-bigflash.dts         |    4 +-
 arch/powerpc/boot/dts/tqm8548.dts                  |    4 +-
 arch/powerpc/boot/dts/tqm8555.dts                  |    4 +-
 arch/powerpc/boot/dts/xcalibur1501.dts             |    4 +-
 arch/powerpc/boot/dts/xpedite5200.dts              |    4 +-
 arch/powerpc/boot/dts/xpedite5200_xmon.dts         |    4 +-
 arch/powerpc/boot/dts/xpedite5301.dts              |    4 +-
 arch/powerpc/boot/dts/xpedite5330.dts              |    4 +-
 arch/powerpc/boot/dts/xpedite5370.dts              |    4 +-
 arch/powerpc/boot/treeboot-currituck.c             |  119 ++
 arch/powerpc/boot/wrapper                          |   45 +-
 arch/powerpc/configs/40x/klondike_defconfig        |   55 +
 arch/powerpc/configs/40x/obs600_defconfig          |   83 ++
 arch/powerpc/configs/44x/currituck_defconfig       |  110 ++
 arch/powerpc/configs/44x/iss476-smp_defconfig      |    3 +-
 arch/powerpc/configs/chroma_defconfig              |  307 ++++
 arch/powerpc/configs/corenet32_smp_defconfig       |   11 +-
 arch/powerpc/configs/corenet64_smp_defconfig       |    4 +-
 arch/powerpc/configs/mpc85xx_defconfig             |   17 +-
 arch/powerpc/configs/mpc85xx_smp_defconfig         |   18 +-
 arch/powerpc/configs/ppc64_defconfig               |    5 +
 arch/powerpc/configs/ps3_defconfig                 |   39 +-
 arch/powerpc/configs/pseries_defconfig             |    5 +
 arch/powerpc/include/asm/Kbuild                    |    2 +
 arch/powerpc/include/asm/cputable.h                |    5 +-
 arch/powerpc/include/asm/cputime.h                 |    6 +-
 arch/powerpc/include/asm/fsl_ifc.h                 |  834 +++++++++++
 arch/powerpc/include/asm/fsl_lbc.h                 |    7 +-
 arch/powerpc/include/asm/hugetlb.h                 |   38 +-
 arch/powerpc/include/asm/kdump.h                   |    4 +-
 arch/powerpc/include/asm/kexec.h                   |    7 -
 arch/powerpc/include/asm/lv1call.h                 |   10 +-
 arch/powerpc/include/asm/machdep.h                 |    3 +
 arch/powerpc/include/asm/mmu-book3e.h              |   11 +
 arch/powerpc/include/asm/mmu-hash64.h              |    7 +-
 arch/powerpc/include/asm/mpic.h                    |   14 +-
 arch/powerpc/include/asm/opal.h                    |  131 ++-
 arch/powerpc/include/asm/paca.h                    |    1 +
 arch/powerpc/include/asm/page.h                    |   90 ++-
 arch/powerpc/include/asm/page_64.h                 |    2 +
 arch/powerpc/include/asm/pci-bridge.h              |    6 +-
 arch/powerpc/include/asm/pci.h                     |    2 -
 arch/powerpc/include/asm/pgtable.h                 |    3 +
 arch/powerpc/include/asm/processor.h               |    3 +
 arch/powerpc/include/asm/reg.h                     |    1 +
 arch/powerpc/include/asm/reg_booke.h               |    4 +
 arch/powerpc/include/asm/rtas.h                    |   18 +
 arch/powerpc/include/asm/rwsem.h                   |  132 --
 arch/powerpc/include/asm/system.h                  |   11 +-
 arch/powerpc/include/asm/tce.h                     |   10 +-
 arch/powerpc/include/asm/time.h                    |    2 +
 arch/powerpc/include/asm/types.h                   |    5 +-
 arch/powerpc/kernel/Makefile                       |    2 +
 arch/powerpc/kernel/asm-offsets.c                  |    1 +
 arch/powerpc/kernel/cpu_setup_a2.S                 |   10 +-
 arch/powerpc/kernel/cputable.c                     |   27 +
 arch/powerpc/kernel/crash.c                        |  220 ++--
 arch/powerpc/kernel/crash_dump.c                   |    4 +-
 arch/powerpc/kernel/exceptions-64s.S               |    2 +-
 arch/powerpc/kernel/head_44x.S                     |  107 ++
 arch/powerpc/kernel/head_fsl_booke.S               |    2 +-
 arch/powerpc/kernel/idle.c                         |   27 +
 arch/powerpc/kernel/idle_power7.S                  |    4 +
 arch/powerpc/kernel/irq.c                          |   28 +-
 arch/powerpc/kernel/machine_kexec.c                |    2 +-
 arch/powerpc/kernel/pci-common.c                   |   78 +-
 arch/powerpc/kernel/pci_dn.c                       |    3 +
 arch/powerpc/kernel/process.c                      |   22 +-
 arch/powerpc/kernel/prom_init.c                    |   37 +-
 arch/powerpc/kernel/reloc_32.S                     |  208 +++
 arch/powerpc/kernel/rtas_flash.c                   |    6 +
 arch/powerpc/kernel/rtasd.c                        |    7 +
 arch/powerpc/kernel/setup_64.c                     |   10 +
 arch/powerpc/kernel/smp.c                          |    3 +-
 arch/powerpc/kernel/sysfs.c                        |   10 +
 arch/powerpc/kernel/time.c                         |  105 +-
 arch/powerpc/kernel/traps.c                        |  173 ++-
 arch/powerpc/kernel/vmlinux.lds.S                  |    8 +-
 arch/powerpc/kvm/book3s_hv_rmhandlers.S            |    3 +
 arch/powerpc/lib/Makefile                          |    4 +-
 arch/powerpc/lib/copyuser_64.S                     |    6 +
 arch/powerpc/lib/copyuser_power7.S                 |  683 +++++++++
 arch/powerpc/lib/copyuser_power7_vmx.c             |   50 +
 arch/powerpc/mm/44x_mmu.c                          |    6 +-
 arch/powerpc/mm/Makefile                           |    2 +
 arch/powerpc/mm/fault.c                            |   17 +
 arch/powerpc/mm/hugetlbpage-book3e.c               |   21 +-
 arch/powerpc/mm/hugetlbpage.c                      |  116 +-
 arch/powerpc/mm/icswx.c                            |  273 ++++
 arch/powerpc/mm/icswx.h                            |   62 +
 arch/powerpc/mm/icswx_pid.c                        |   87 ++
 arch/powerpc/mm/init_32.c                          |    7 +
 arch/powerpc/mm/mem.c                              |   23 +-
 arch/powerpc/mm/mmap_64.c                          |   14 +-
 arch/powerpc/mm/mmu_context_hash64.c               |  195 +---
 arch/powerpc/mm/numa.c                             |    4 +-
 arch/powerpc/mm/tlb_low_64e.S                      |   36 +-
 arch/powerpc/mm/tlb_nohash.c                       |    2 +-
 arch/powerpc/platforms/40x/Kconfig                 |   21 +
 arch/powerpc/platforms/40x/ppc40x_simple.c         |    4 +-
 arch/powerpc/platforms/44x/Kconfig                 |   14 +
 arch/powerpc/platforms/44x/Makefile                |    1 +
 arch/powerpc/platforms/44x/currituck.c             |  204 +++
 arch/powerpc/platforms/44x/iss4xx.c                |    2 +-
 arch/powerpc/platforms/83xx/asp834x.c              |   35 +-
 arch/powerpc/platforms/83xx/km83xx.c               |   58 +-
 arch/powerpc/platforms/83xx/misc.c                 |   77 +
 arch/powerpc/platforms/83xx/mpc830x_rdb.c          |   40 +-
 arch/powerpc/platforms/83xx/mpc831x_rdb.c          |   43 +-
 arch/powerpc/platforms/83xx/mpc832x_mds.c          |   53 +-
 arch/powerpc/platforms/83xx/mpc832x_rdb.c          |   56 +-
 arch/powerpc/platforms/83xx/mpc834x_itx.c          |   30 +-
 arch/powerpc/platforms/83xx/mpc834x_mds.c          |   42 +-
 arch/powerpc/platforms/83xx/mpc836x_mds.c          |   53 +-
 arch/powerpc/platforms/83xx/mpc836x_rdk.c          |   48 +-
 arch/powerpc/platforms/83xx/mpc837x_mds.c          |   46 +-
 arch/powerpc/platforms/83xx/mpc837x_rdb.c          |   47 +-
 arch/powerpc/platforms/83xx/mpc83xx.h              |   16 +
 arch/powerpc/platforms/83xx/sbc834x.c              |   49 +-
 arch/powerpc/platforms/85xx/Kconfig                |    2 +-
 arch/powerpc/platforms/85xx/Makefile               |    2 +
 arch/powerpc/platforms/85xx/common.c               |   66 +
 arch/powerpc/platforms/85xx/corenet_ds.c           |   28 +-
 arch/powerpc/platforms/85xx/ksi8560.c              |   69 +-
 arch/powerpc/platforms/85xx/mpc8536_ds.c           |   38 +-
 arch/powerpc/platforms/85xx/mpc85xx.h              |   11 +
 arch/powerpc/platforms/85xx/mpc85xx_ads.c          |   74 +-
 arch/powerpc/platforms/85xx/mpc85xx_cds.c          |   42 +-
 arch/powerpc/platforms/85xx/mpc85xx_ds.c           |   50 +-
 arch/powerpc/platforms/85xx/mpc85xx_mds.c          |   73 +-
 arch/powerpc/platforms/85xx/mpc85xx_rdb.c          |   49 +-
 arch/powerpc/platforms/85xx/p1010rdb.c             |   38 +-
 arch/powerpc/platforms/85xx/p1022_ds.c             |   37 +-
 arch/powerpc/platforms/85xx/p1023_rds.c            |   47 +-
 arch/powerpc/platforms/85xx/p3060_qds.c            |    2 +-
 arch/powerpc/platforms/85xx/sbc8548.c              |   43 +-
 arch/powerpc/platforms/85xx/sbc8560.c              |   74 +-
 arch/powerpc/platforms/85xx/smp.c                  |    1 +
 arch/powerpc/platforms/85xx/smp.h                  |   15 +
 arch/powerpc/platforms/85xx/socrates.c             |   33 +-
 arch/powerpc/platforms/85xx/stx_gp3.c              |   73 +-
 arch/powerpc/platforms/85xx/tqm85xx.c              |   73 +-
 arch/powerpc/platforms/85xx/xes_mpc85xx.c          |   48 +-
 arch/powerpc/platforms/86xx/mpc86xx_hpcn.c         |    2 +-
 arch/powerpc/platforms/86xx/pic.c                  |   18 +-
 arch/powerpc/platforms/Kconfig                     |    6 +
 arch/powerpc/platforms/Kconfig.cputype             |   25 +-
 arch/powerpc/platforms/cell/iommu.c                |    2 +
 arch/powerpc/platforms/cell/setup.c                |   25 +-
 arch/powerpc/platforms/chrp/setup.c                |    3 +-
 arch/powerpc/platforms/embedded6xx/holly.c         |   23 +-
 arch/powerpc/platforms/embedded6xx/linkstation.c   |   20 +-
 arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c  |   24 +-
 arch/powerpc/platforms/embedded6xx/storcenter.c    |   26 +-
 arch/powerpc/platforms/maple/pci.c                 |   55 +
 arch/powerpc/platforms/maple/setup.c               |    2 +-
 arch/powerpc/platforms/pasemi/setup.c              |    4 +-
 arch/powerpc/platforms/powermac/pic.c              |   80 +-
 arch/powerpc/platforms/powermac/setup.c            |    8 +-
 arch/powerpc/platforms/powermac/smp.c              |    6 +-
 arch/powerpc/platforms/powernv/Makefile            |    2 +-
 arch/powerpc/platforms/powernv/opal-wrappers.S     |    8 +
 arch/powerpc/platforms/powernv/pci-ioda.c          | 1330 +++++++++++++++++
 arch/powerpc/platforms/powernv/pci-p5ioc2.c        |    1 +
 arch/powerpc/platforms/powernv/pci.c               |  228 +++-
 arch/powerpc/platforms/powernv/pci.h               |  100 ++
 arch/powerpc/platforms/powernv/smp.c               |    2 +-
 arch/powerpc/platforms/ps3/interrupt.c             |  103 +-
 arch/powerpc/platforms/ps3/repository.c            |  137 +-
 arch/powerpc/platforms/ps3/setup.c                 |    4 +-
 arch/powerpc/platforms/ps3/smp.c                   |    2 +-
 arch/powerpc/platforms/ps3/spu.c                   |    2 +-
 arch/powerpc/platforms/pseries/Kconfig             |    9 +
 arch/powerpc/platforms/pseries/Makefile            |    1 +
 arch/powerpc/platforms/pseries/hvCall_inst.c       |    4 +-
 arch/powerpc/platforms/pseries/iommu.c             |   61 +-
 arch/powerpc/platforms/pseries/lpar.c              |    2 +
 arch/powerpc/platforms/pseries/nvram.c             |    7 +
 arch/powerpc/platforms/pseries/processor_idle.c    |  329 +++++
 arch/powerpc/platforms/pseries/pseries.h           |    3 +
 arch/powerpc/platforms/pseries/setup.c             |  109 +--
 arch/powerpc/platforms/pseries/smp.c               |    1 +
 arch/powerpc/platforms/wsp/Kconfig                 |   12 +-
 arch/powerpc/platforms/wsp/Makefile                |    8 +-
 arch/powerpc/platforms/wsp/chroma.c                |   56 +
 arch/powerpc/platforms/wsp/h8.c                    |  134 ++
 arch/powerpc/platforms/wsp/opb_pic.c               |    3 +-
 arch/powerpc/platforms/wsp/psr2.c                  |   56 +-
 arch/powerpc/platforms/wsp/wsp.c                   |  115 ++
 arch/powerpc/platforms/wsp/wsp.h                   |   16 +-
 arch/powerpc/relocs_check.pl                       |   14 +-
 arch/powerpc/sysdev/Makefile                       |    3 +-
 arch/powerpc/sysdev/ehv_pic.c                      |    1 +
 arch/powerpc/sysdev/fsl_ifc.c                      |  310 ++++
 arch/powerpc/sysdev/fsl_lbc.c                      |   37 +
 arch/powerpc/sysdev/fsl_msi.c                      |   99 ++-
 arch/powerpc/sysdev/fsl_msi.h                      |   10 +-
 arch/powerpc/sysdev/fsl_pci.c                      |   84 ++
 arch/powerpc/sysdev/fsl_rio.c                      | 1519 ++++----------------
 arch/powerpc/sysdev/fsl_rio.h                      |  135 ++
 arch/powerpc/sysdev/fsl_rmu.c                      | 1104 ++++++++++++++
 arch/powerpc/sysdev/mpic.c                         |  201 ++-
 arch/powerpc/sysdev/ppc4xx_pci.c                   |   85 +-
 arch/powerpc/sysdev/ppc4xx_pci.h                   |    7 +
 arch/powerpc/sysdev/qe_lib/qe.c                    |    2 +-
 arch/powerpc/sysdev/xics/icp-hv.c                  |   47 +-
 arch/powerpc/sysdev/xics/xics-common.c             |    2 +-
 arch/powerpc/xmon/xmon.c                           |   16 +-
 arch/sparc/kernel/sys_sparc_64.c                   |    6 +-
 drivers/edac/mpc85xx_edac.c                        |    2 +-
 drivers/net/ethernet/toshiba/ps3_gelic_net.c       |    4 +-
 drivers/tty/serial/pmac_zilog.c                    |  423 ++----
 drivers/tty/serial/pmac_zilog.h                    |   19 +-
 drivers/tty/serial/ucc_uart.c                      |    3 +
 drivers/video/offb.c                               |   71 +-
 include/linux/cpuidle.h                            |    2 -
 tools/perf/arch/powerpc/util/dwarf-regs.c          |    3 +
 393 files changed, 21769 insertions(+), 16279 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/powerpc/fsl/srio-rmu.txt
 create mode 100644 Documentation/devicetree/bindings/powerpc/fsl/srio.txt
 create mode 100644 arch/powerpc/boot/dts/currituck.dts
 create mode 100644 arch/powerpc/boot/dts/fsl/mpc8536si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/mpc8536si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/mpc8544si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/mpc8544si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/mpc8548si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/mpc8548si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/mpc8568si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/mpc8568si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/mpc8569si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/mpc8569si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/mpc8572si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/mpc8572si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p1010si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p1010si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p1020si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p1021si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p1021si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p1022si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p1022si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p1023si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p1023si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p2020si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p2020si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p2041si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p2041si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p3041si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p3041si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p3060si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p3060si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p4080si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p4080si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p5020si-post.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/p5020si-pre.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-dma-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-dma-1.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-esdhc-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-espi-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec1-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec1-1.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec1-2.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec1-3.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec1-timer-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec2-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec2-1.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec2-2.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-1.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-etsec2-grp2-2.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-gpio-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-i2c-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-i2c-1.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-mpic-timer-B.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-mpic.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-rmu-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-sata2-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-sata2-1.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-sec2.1-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-sec3.0-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-sec3.1-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-sec3.3-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-sec4.4-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-usb2-dr-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/pq3-usb2-dr-1.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-dma-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-dma-1.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-esdhc-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-espi-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-gpio-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-i2c-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-i2c-1.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-mpic.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-rmu-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-sata2-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-sata2-1.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-sec4.0-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-sec4.1-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-sec4.2-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-usb2-dr-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/fsl/qoriq-usb2-mph-0.dtsi
 create mode 100644 arch/powerpc/boot/dts/klondike.dts
 create mode 100644 arch/powerpc/boot/dts/mpc8536ds.dtsi
 create mode 100644 arch/powerpc/boot/dts/mpc8544ds.dtsi
 create mode 100644 arch/powerpc/boot/dts/mpc8572ds.dtsi
 create mode 100644 arch/powerpc/boot/dts/obs600.dts
 create mode 100644 arch/powerpc/boot/dts/p1010rdb.dtsi
 create mode 100644 arch/powerpc/boot/dts/p1010rdb_36b.dts
 delete mode 100644 arch/powerpc/boot/dts/p1010si.dtsi
 create mode 100644 arch/powerpc/boot/dts/p1020rdb.dtsi
 create mode 100644 arch/powerpc/boot/dts/p1020rdb_36b.dts
 delete mode 100644 arch/powerpc/boot/dts/p1020si.dtsi
 create mode 100644 arch/powerpc/boot/dts/p2020ds.dtsi
 delete mode 100644 arch/powerpc/boot/dts/p2020si.dtsi
 delete mode 100644 arch/powerpc/boot/dts/p2041si.dtsi
 delete mode 100644 arch/powerpc/boot/dts/p3041si.dtsi
 delete mode 100644 arch/powerpc/boot/dts/p3060si.dtsi
 delete mode 100644 arch/powerpc/boot/dts/p4080si.dtsi
 delete mode 100644 arch/powerpc/boot/dts/p5020si.dtsi
 create mode 100644 arch/powerpc/boot/treeboot-currituck.c
 create mode 100644 arch/powerpc/configs/40x/klondike_defconfig
 create mode 100644 arch/powerpc/configs/40x/obs600_defconfig
 create mode 100644 arch/powerpc/configs/44x/currituck_defconfig
 create mode 100644 arch/powerpc/configs/chroma_defconfig
 create mode 100644 arch/powerpc/include/asm/fsl_ifc.h
 delete mode 100644 arch/powerpc/include/asm/rwsem.h
 create mode 100644 arch/powerpc/kernel/reloc_32.S
 create mode 100644 arch/powerpc/lib/copyuser_power7.S
 create mode 100644 arch/powerpc/lib/copyuser_power7_vmx.c
 create mode 100644 arch/powerpc/mm/icswx.c
 create mode 100644 arch/powerpc/mm/icswx.h
 create mode 100644 arch/powerpc/mm/icswx_pid.c
 create mode 100644 arch/powerpc/platforms/44x/currituck.c
 create mode 100644 arch/powerpc/platforms/85xx/common.c
 create mode 100644 arch/powerpc/platforms/85xx/mpc85xx.h
 create mode 100644 arch/powerpc/platforms/85xx/smp.h
 create mode 100644 arch/powerpc/platforms/powernv/pci-ioda.c
 create mode 100644 arch/powerpc/platforms/pseries/processor_idle.c
 create mode 100644 arch/powerpc/platforms/wsp/chroma.c
 create mode 100644 arch/powerpc/platforms/wsp/h8.c
 create mode 100644 arch/powerpc/platforms/wsp/wsp.c
 create mode 100644 arch/powerpc/sysdev/fsl_ifc.c
 create mode 100644 arch/powerpc/sysdev/fsl_rio.h
 create mode 100644 arch/powerpc/sysdev/fsl_rmu.c

^ permalink raw reply

* RE: [PATCH][v2] mmc:sdhci: restore the enabled dma when do reset all
From: Xie Shaohui-B21989 @ 2012-01-06  7:57 UTC (permalink / raw)
  To: cjb@laptop.org, linux-mmc@vger.kernel.org
  Cc: linuxppc-dev@lists.ozlabs.org, Xie Shaohui-B21989
In-Reply-To: <1325147580-31281-1-git-send-email-Shaohui.Xie@freescale.com>

Hello, Chris,

Do you have any concern for this patch?


Best Regards,=20
Shaohui Xie=20

>-----Original Message-----
>From: Xie Shaohui-B21989
>Sent: Thursday, December 29, 2011 4:33 PM
>To: linux-mmc@vger.kernel.org
>Cc: linuxppc-dev@lists.ozlabs.org; Xie Shaohui-B21989
>Subject: [PATCH][v2] mmc:sdhci: restore the enabled dma when do reset all
>
>If dma is enabled, it'll be cleared when reset all is performed, this can
>be observed on some platforms, such as P2041 which has a version 2.3
>controller, but platform like P4080 which has a version 2.2 controller,
>does not suffer this, so we will check if the dma is enabled, we should
>restore it after reset all.
>
>Signed-off-by: Shaohui Xie <Shaohui.Xie@freescale.com>
>---
>based on http://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc.git,
>branch 'for-linus'.
>
>changes for v2:
>call the wrapper API instead of access the register directly.
>
> drivers/mmc/host/sdhci.c |    5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
>diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index
>19ed580..cf6a048 100644
>--- a/drivers/mmc/host/sdhci.c
>+++ b/drivers/mmc/host/sdhci.c
>@@ -214,6 +214,11 @@ static void sdhci_reset(struct sdhci_host *host, u8
>mask)
>
> 	if (host->quirks & SDHCI_QUIRK_RESTORE_IRQS_AFTER_RESET)
> 		sdhci_clear_set_irqs(host, SDHCI_INT_ALL_MASK, ier);
>+
>+	if (host->flags & (SDHCI_USE_SDMA | SDHCI_USE_ADMA)) {
>+		if ((host->ops->enable_dma) && (mask & SDHCI_RESET_ALL))
>+			host->ops->enable_dma(host);
>+	}
> }
>
> static void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios);
>--
>1.6.4

^ permalink raw reply

* Re: Problem with full speed devices on PowerPC MPC5121 host port
From: Matthias Fuchs @ 2012-01-06 11:55 UTC (permalink / raw)
  To: Greg KH; +Cc: linuxppc-dev, linux-usb
In-Reply-To: <20111222173900.GD28856@kroah.com>

On 22.12.2011 18:39, Greg KH wrote:
> On Thu, Dec 22, 2011 at 12:48:45PM +0100, Matthias Fuchs wrote:
>> Hi,
>>
>> I ran into trouble when using the MPC5121 with full speed
>> USB devices. I've seen the issue with USB serial converters
>> based on FTDI and Prolific chips.
>>
>> After connecting the device they first work fine. But when
>> I stress the converter communications stalls. I can even force
>> this behavior when doing a flood ping against the device.
>> Then it only takes a few seconds until USB gets weird.
>>
>> After some time and several CTRL-C to stop the application
>> that uses the ttyUSBx port I get a kernel message:
>>
>> 	ftdi_sio ttyUSB0: error from flowcontrol urb
>>
>> The only thing that reanimates the USB port is doing a reboot.
> 
> Not removing and inserting the device again?  unloading the ftdi_sio
> driver and reloading it?
Right. First I used a monolithic kernel with ftdi_sio and ehci_hcd build
in. Now I did the test again with fsl_mph_dr_of, ehci_hcd, usbserial and
ftdi_sio loaded as modules. After the error occured, I
removed the device and unloaded the modules. After reloading them
USB is still weird.

usb 1-1: new full-speed USB device number 2 using fsl-ehci
usb 1-1: device descriptor read/64, error -110
usb 1-1: device descriptor read/64, error -110
usb 1-1: new full-speed USB device number 3 using fsl-ehci
usb 1-1: device descriptor read/64, error -110

> If you look at the data using usbmon, does anything look odd?
As long as everything works fine usbmon outputs data like this. It stops
a short time after I started the flood ping to the board.
df9c16c0 697164417 C Bi:1:002:1 0 2 = 0160
df9c16c0 697164436 S Bi:1:002:1 -115 512 <
df9c16c0 697165417 C Bi:1:002:1 0 2 = 0160
df9c16c0 697165441 S Bi:1:002:1 -115 512 <
df9c16c0 697166417 C Bi:1:002:1 0 2 = 0160
df9c16c0 697166435 S Bi:1:002:1 -115 512 <
df9c16c0 697167417 C Bi:1:002:1 0 9 = 01605f54 48452051 55
df9c16c0 697167450 S Bi:1:002:1 -115 512 <
df9c16c0 697168417 C Bi:1:002:1 0 14 = 01604943 4b204252 4f574e20 464f
df9c16c0 697168450 S Bi:1:002:1 -115 512 <
df9c16c0 697169420 C Bi:1:002:1 0 13 = 01605820 4a554d50 53204f56 45
df9c16c0 697169453 S Bi:1:002:1 -115 512 <
df9c16c0 697170418 C Bi:1:002:1 0 14 = 01605220 54484520 4c415a59 2044
df9c16c0 697170451 S Bi:1:002:1 -115 512 <
df9c16c0 697171417 C Bi:1:002:1 0 14 = 01604f47 20313233 34353637 3839
df9c16c0 697171450 S Bi:1:002:1 -115 512 <

Then I try to abort my application. This result in

df9c1340 712766944 S Co:1:002:0 s 40 02 0000 0000 0000 0
df9c1340 717776208 C Co:1:002:0 -2 0
df9c1340 717776503 S Co:1:002:0 s 40 01 0300 0000 0000 0
df9c1340 722786213 C Co:1:002:0 -2 8 >
df9c16c0 722796202 C Bi:1:002:1 -2 0

And finally I try to restart my application:

df9c12c0 791192447 S Co:1:002:0 s 40 00 0000 0000 0000 0
df9c12c0 796202240 C Co:1:002:0 -2 0
df9c12c0 796203289 S Co:1:002:0 s 40 02 0000 0000 0000 0
df9c12c0 801213213 C Co:1:002:0 -2 0
df9c16c0 801213518 S Bi:1:002:1 -115 512 <
df9c12c0 801213560 S Co:1:002:0 s 40 01 0303 0000 0000 0
df9c12c0 806223208 C Co:1:002:0 -2 0
df9c12c0 806223411 S Co:1:002:0 s 40 02 0000 0000 0000 0
df9c12c0 811233210 C Co:1:002:0 -2 0
df9c1440 821344904 S Co:1:002:0 s 40 02 0000 0000 0000 0
df9c1440 826354209 C Co:1:002:0 -2 8 >
df9c1440 826354515 S Co:1:002:0 s 40 01 0300 0000 0000 0
df9c1440 831364204 C Co:1:002:0 -2 0
df9c16c0 831374203 C Bi:1:002:1 -2 0

> And what kernel version are you using here?
Now I switched to 3.2.0 with only minimal changes for our hardware.
But (as expected) I get the same problems.

For my eyes it does not really look like a general USB issue.
It looks like a problem with the Freescale EHCI implementation that is
influenced by high interrupt or internal bus load caused by the flood ping.

I put linuxppc-dev on CC. Perhaps soneone in that community can double
check it on a Freescale evaluation board.

Matthias

^ permalink raw reply

* Re: [RFC PATCH 0/9] Remove useless on_each_cpu return value
From: Peter Zijlstra @ 2012-01-06 13:03 UTC (permalink / raw)
  To: Gilad Ben-Yossef
  Cc: linux-ia64, David Airlie, Will Deacon, dri-devel, Paul Mackerras,
	H. Peter Anvin, Russell King, x86, Ingo Molnar,
	Arnaldo Carvalho de Melo, Matt Turner, Fenghua Yu,
	devicetree-discuss, Michal Nazarewicz, Ivan Kokshaysky,
	Rob Herring, Thomas Gleixner, linux-arm-kernel, Richard Henderson,
	Tony Luck, linux-kernel, linux-alpha, linuxppc-dev
In-Reply-To: <1325600353-10895-1-git-send-email-gilad@benyossef.com>

On Tue, 2012-01-03 at 16:19 +0200, Gilad Ben-Yossef wrote:
> on_each_cpu() returns as its own return value the return value of=20
> smp_call_function(). smp_call_function() in turn returns a hard=20
> coded value of zero.
>=20
> Some callers to on_each_cpu() waste cycles and bloat code space
> by checking the return value to on_each_cpu(), probably for=20
> historical reasons.

hysterical raisins,, yumm! :-)

> This patch set refactors callers to not test on_each_cpu()
> (fixed) return value and then refactors on_each_cpu to
> return void to avoid confusing future users.
>=20

Seems sane enough, fwiw:

Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>

^ permalink raw reply

* Re: Cannot wake-up from standby with MPC8313
From: Norbert van Bolhuis @ 2012-01-06 13:53 UTC (permalink / raw)
  To: Scott Wood; +Cc: linuxppc-dev@ozlabs.org
In-Reply-To: <4F05EA6B.9040902@freescale.com>

On 01/05/12 19:22, Scott Wood wrote:
> On 01/05/2012 09:58 AM, Norbert van Bolhuis wrote:
>> thanks for your response.
>>
>> not setting MSR_POW gives same result.
>
> OK, so you're not getting an interrupt regardless of low-power state.
>
> Check whether the interrupt is getting masked during standby preparation.
>
> Does the interrupt handler run when you're not trying to enter standby?
>


The GPIO/UART interrupt nor the PMC interrupt are being masked during standby
preperation.
The GPIO/UART interrupt works fine in "operational" mode.
The PMC interrupt I do not know, is it possible to to get PMC interrupt
without going to standby or deep-sleep ?
In anyway there is no PMC interrupt for NAP mode (if kernel.powersave-nap=1).


>> if I set kernel.powersave-nap=1 it works fine,
>
> What is "it"?  Do you mean that powersave-nap doesn't break things, or
> that standby works when you specify that?
>


I mean powersave-nap itself seems to work and does not break things.


>> so apparently NAP/DOZE mode does work (if CPU is idle). This saves almost no
>> power though. Standby mode saves about 300-500 mW.
>>
>> The problem could well be our board though, today I learned it does
>> work by connecting an (inactive) JTAG debugger.
>> Also, on another board it always works.
>
> You mean connecting a JTAG but not doing anything with it made
> wake-from-standby work?
>
> There was a bug like that on early revisions of the mpc8313erdb board --
> though in that case if you had a bad board the system would hang
> whenever you access any PMC register.  I'm not sure what the mechanism
> of failure was; IIRC the fix was adding a resistor.
>


yes, connecting a JTAG but not doing anything with it makes
wake-from-standby work.

I don't know what's wrong with (some of) our boards... it looks
like external interrupts are blocked and/or core stays in reset..

I doubt there's a SW PMC race/deadlock that causes this.


---
NvBolhuis

^ permalink raw reply

* Re: Problem with full speed devices on PowerPC MPC5121 host port
From: Alan Stern @ 2012-01-06 18:03 UTC (permalink / raw)
  To: Matthias Fuchs; +Cc: Greg KH, linux-usb, linuxppc-dev
In-Reply-To: <4F06E132.5070905@esd.eu>

On Fri, 6 Jan 2012, Matthias Fuchs wrote:

> For my eyes it does not really look like a general USB issue.
> It looks like a problem with the Freescale EHCI implementation that is
> influenced by high interrupt or internal bus load caused by the flood ping.

Indeed, it might be a problem with the built-in Transaction Translator.  
That would explain why it affect full-speed devices.

However, I would expect the resetting the controller hardware (which 
happens when you reload the ehci-fsl driver) would fix any such issues.  
It's hard to imagine how a problem could survive a reset like that.

Alan Stern

^ permalink raw reply

* [PATCH/RFC] gianfar: Add support for byte queue limits.
From: Paul Gortmaker @ 2012-01-06 20:24 UTC (permalink / raw)
  To: eric.dumazet, therbert; +Cc: netdev, linuxppc-dev, Paul Gortmaker

Add support for byte queue limits (BQL), based on the similar
modifications made to intel/igb/igb_main.c from Eric Dumazet
in commit bdbc063129e811264cd6c311d8c2d9b95de01231.

A local variable for tx_queue->qindex was introduced in
gfar_clean_tx_ring, since it is now used often enough to warrant it,
and it cleans up the readability somewhat as well.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---

[Too late for 3.3, but I figured I might as well get feedback from people
 in the interim.  Passes basic boot test with NFS root on sbc8548 board.]

diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c
index e01cdaa..7d86d38 100644
--- a/drivers/net/ethernet/freescale/gianfar.c
+++ b/drivers/net/ethernet/freescale/gianfar.c
@@ -1755,9 +1755,12 @@ static void free_skb_resources(struct gfar_private *priv)
 
 	/* Go through all the buffer descriptors and free their data buffers */
 	for (i = 0; i < priv->num_tx_queues; i++) {
+		struct netdev_queue *txq;
 		tx_queue = priv->tx_queue[i];
+		txq = netdev_get_tx_queue(tx_queue->dev, tx_queue->qindex);
 		if(tx_queue->tx_skbuff)
 			free_skb_tx_queue(tx_queue);
+		netdev_tx_reset_queue(txq);
 	}
 
 	for (i = 0; i < priv->num_rx_queues; i++) {
@@ -2204,6 +2207,8 @@ static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev)
 		lstatus |= BD_LFLAG(TXBD_CRC | TXBD_READY) | skb_headlen(skb);
 	}
 
+	netdev_tx_sent_queue(txq, skb->len);
+
 	/*
 	 * We can work in parallel with gfar_clean_tx_ring(), except
 	 * when modifying num_txbdfree. Note that we didn't grab the lock
@@ -2447,6 +2452,7 @@ static void gfar_align_skb(struct sk_buff *skb)
 static int gfar_clean_tx_ring(struct gfar_priv_tx_q *tx_queue)
 {
 	struct net_device *dev = tx_queue->dev;
+	struct netdev_queue *txq;
 	struct gfar_private *priv = netdev_priv(dev);
 	struct gfar_priv_rx_q *rx_queue = NULL;
 	struct txbd8 *bdp, *next = NULL;
@@ -2458,10 +2464,13 @@ static int gfar_clean_tx_ring(struct gfar_priv_tx_q *tx_queue)
 	int frags = 0, nr_txbds = 0;
 	int i;
 	int howmany = 0;
+	int tqi = tx_queue->qindex;
+	unsigned int bytes_sent = 0;
 	u32 lstatus;
 	size_t buflen;
 
-	rx_queue = priv->rx_queue[tx_queue->qindex];
+	rx_queue = priv->rx_queue[tqi];
+	txq = netdev_get_tx_queue(dev, tqi);
 	bdp = tx_queue->dirty_tx;
 	skb_dirtytx = tx_queue->skb_dirtytx;
 
@@ -2519,6 +2528,8 @@ static int gfar_clean_tx_ring(struct gfar_priv_tx_q *tx_queue)
 			bdp = next_txbd(bdp, base, tx_ring_size);
 		}
 
+		bytes_sent += skb->len;
+
 		/*
 		 * If there's room in the queue (limit it to rx_buffer_size)
 		 * we add this skb back into the pool, if it's the right size
@@ -2543,13 +2554,15 @@ static int gfar_clean_tx_ring(struct gfar_priv_tx_q *tx_queue)
 	}
 
 	/* If we freed a buffer, we can restart transmission, if necessary */
-	if (__netif_subqueue_stopped(dev, tx_queue->qindex) && tx_queue->num_txbdfree)
-		netif_wake_subqueue(dev, tx_queue->qindex);
+	if (__netif_subqueue_stopped(dev, tqi) && tx_queue->num_txbdfree)
+		netif_wake_subqueue(dev, tqi);
 
 	/* Update dirty indicators */
 	tx_queue->skb_dirtytx = skb_dirtytx;
 	tx_queue->dirty_tx = bdp;
 
+	netdev_tx_completed_queue(txq, howmany, bytes_sent);
+
 	return howmany;
 }
 
-- 
1.7.4.4

^ permalink raw reply related

* Re: Cannot wake-up from standby with MPC8313
From: Scott Wood @ 2012-01-06 21:03 UTC (permalink / raw)
  To: Norbert van Bolhuis; +Cc: linuxppc-dev@ozlabs.org
In-Reply-To: <4F06FCBC.4090302@aimvalley.nl>

On 01/06/2012 07:53 AM, Norbert van Bolhuis wrote:
> On 01/05/12 19:22, Scott Wood wrote:
>> On 01/05/2012 09:58 AM, Norbert van Bolhuis wrote:
>>> thanks for your response.
>>>
>>> not setting MSR_POW gives same result.
>>
>> OK, so you're not getting an interrupt regardless of low-power state.
>>
>> Check whether the interrupt is getting masked during standby preparation.
>>
>> Does the interrupt handler run when you're not trying to enter standby?
>>
> 
> 
> The GPIO/UART interrupt nor the PMC interrupt are being masked during
> standby
> preperation.
> The GPIO/UART interrupt works fine in "operational" mode.
> The PMC interrupt I do not know, is it possible to to get PMC interrupt
> without going to standby or deep-sleep ?

The PMC interrupt is mainly of interest when running as a PCI agent, to
be notified when the host changed the desired suspend state in config space.

What changes from operational mode to the test where you omit setting
MSR_POW?

Try dumping SIPNR/SIMSR and GPIER/GPIMR/GPDAT at various points.

-Scott

^ permalink raw reply

* [PATCH] powerpc: fix kernel log of oops/panic instruction dump
From: Ira W. Snyder @ 2012-01-06 22:34 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Paul Mackerras

A kernel oops/panic prints an instruction dump showing several
instructions before and after the instruction which caused the
oops/panic.

The code intended that the faulting instruction be enclosed in angle
brackets, however a bug caused the faulting instruction to be
interpreted by printk() as the message log level.

To fix this, the KERN_CONT log level is added before the actualy text of
the printed message.

=== Before the patch ===

[ 1081.587266] Instruction dump:
[ 1081.590236] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
[ 1081.598034] 3d20c03a 9009a114 7c0004ac 39200000
[ 1081.602500]  4e800020 3803ffd0 2b800009

<4>[ 1081.587266] Instruction dump:
<4>[ 1081.590236] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
<4>[ 1081.598034] 3d20c03a 9009a114 7c0004ac 39200000
<98090000>[ 1081.602500]  4e800020 3803ffd0 2b800009

=== After the patch ===

[   51.385216] Instruction dump:
[   51.388186] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
[   51.395986] 3d20c03a 9009a114 7c0004ac 39200000 <98090000> 4e800020 3803ffd0 2b800009

<4>[   51.385216] Instruction dump:
<4>[   51.388186] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
<4>[   51.395986] 3d20c03a 9009a114 7c0004ac 39200000 <98090000> 4e800020 3803ffd0 2b800009

Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: linuxppc-dev@lists.ozlabs.org
---

In the above examples, the first block is what is shown on the serial
console as the machine dies. The second block is the dump as captured by
mtdoops.

 arch/powerpc/kernel/process.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
index 6457574..271f809 100644
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -566,12 +566,12 @@ static void show_instructions(struct pt_regs *regs)
 		 */
 		if (!__kernel_text_address(pc) ||
 		     __get_user(instr, (unsigned int __user *)pc)) {
-			printk("XXXXXXXX ");
+			printk(KERN_CONT "XXXXXXXX ");
 		} else {
 			if (regs->nip == pc)
-				printk("<%08x> ", instr);
+				printk(KERN_CONT "<%08x> ", instr);
 			else
-				printk("%08x ", instr);
+				printk(KERN_CONT "%08x ", instr);
 		}
 
 		pc += sizeof(int);
-- 
1.7.3.4

^ permalink raw reply related

* Re: [PATCH] powerpc: fix kernel log of oops/panic instruction dump
From: Benjamin Herrenschmidt @ 2012-01-06 22:50 UTC (permalink / raw)
  To: Ira W. Snyder; +Cc: Paul Mackerras, linuxppc-dev
In-Reply-To: <1325889247-17205-1-git-send-email-iws@ovro.caltech.edu>

On Fri, 2012-01-06 at 14:34 -0800, Ira W. Snyder wrote:
> A kernel oops/panic prints an instruction dump showing several
> instructions before and after the instruction which caused the
> oops/panic.
> 
> The code intended that the faulting instruction be enclosed in angle
> brackets, however a bug caused the faulting instruction to be
> interpreted by printk() as the message log level.
> 
> To fix this, the KERN_CONT log level is added before the actualy text of
> the printed message.

Nice one, thanks.

Cheers,
Ben.

> === Before the patch ===
> 
> [ 1081.587266] Instruction dump:
> [ 1081.590236] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
> [ 1081.598034] 3d20c03a 9009a114 7c0004ac 39200000
> [ 1081.602500]  4e800020 3803ffd0 2b800009
> 
> <4>[ 1081.587266] Instruction dump:
> <4>[ 1081.590236] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
> <4>[ 1081.598034] 3d20c03a 9009a114 7c0004ac 39200000
> <98090000>[ 1081.602500]  4e800020 3803ffd0 2b800009
> 
> === After the patch ===
> 
> [   51.385216] Instruction dump:
> [   51.388186] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
> [   51.395986] 3d20c03a 9009a114 7c0004ac 39200000 <98090000> 4e800020 3803ffd0 2b800009
> 
> <4>[   51.385216] Instruction dump:
> <4>[   51.388186] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
> <4>[   51.395986] 3d20c03a 9009a114 7c0004ac 39200000 <98090000> 4e800020 3803ffd0 2b800009
> 
> Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> Cc: linuxppc-dev@lists.ozlabs.org
> ---
> 
> In the above examples, the first block is what is shown on the serial
> console as the machine dies. The second block is the dump as captured by
> mtdoops.
> 
>  arch/powerpc/kernel/process.c |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
> index 6457574..271f809 100644
> --- a/arch/powerpc/kernel/process.c
> +++ b/arch/powerpc/kernel/process.c
> @@ -566,12 +566,12 @@ static void show_instructions(struct pt_regs *regs)
>  		 */
>  		if (!__kernel_text_address(pc) ||
>  		     __get_user(instr, (unsigned int __user *)pc)) {
> -			printk("XXXXXXXX ");
> +			printk(KERN_CONT "XXXXXXXX ");
>  		} else {
>  			if (regs->nip == pc)
> -				printk("<%08x> ", instr);
> +				printk(KERN_CONT "<%08x> ", instr);
>  			else
> -				printk("%08x ", instr);
> +				printk(KERN_CONT "%08x ", instr);
>  		}
>  
>  		pc += sizeof(int);

^ permalink raw reply

* Re: [PATCH] powerpc: fix kernel log of oops/panic instruction dump
From: Ira W. Snyder @ 2012-01-06 23:26 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: Paul Mackerras, linuxppc-dev
In-Reply-To: <1325890210.23910.29.camel@pasglop>

On Sat, Jan 07, 2012 at 09:50:10AM +1100, Benjamin Herrenschmidt wrote:
> On Fri, 2012-01-06 at 14:34 -0800, Ira W. Snyder wrote:
> > A kernel oops/panic prints an instruction dump showing several
> > instructions before and after the instruction which caused the
> > oops/panic.
> > 
> > The code intended that the faulting instruction be enclosed in angle
> > brackets, however a bug caused the faulting instruction to be
> > interpreted by printk() as the message log level.
> > 
> > To fix this, the KERN_CONT log level is added before the actualy text of

If you could fix the text above to say 'actual' (instead of 'actualy')
when you commit this, that would be great. Darn typos. :)

> > the printed message.
> 
> Nice one, thanks.
> 
> Cheers,
> Ben.
> 
> > === Before the patch ===
> > 
> > [ 1081.587266] Instruction dump:
> > [ 1081.590236] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
> > [ 1081.598034] 3d20c03a 9009a114 7c0004ac 39200000
> > [ 1081.602500]  4e800020 3803ffd0 2b800009
> > 
> > <4>[ 1081.587266] Instruction dump:
> > <4>[ 1081.590236] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
> > <4>[ 1081.598034] 3d20c03a 9009a114 7c0004ac 39200000
> > <98090000>[ 1081.602500]  4e800020 3803ffd0 2b800009
> > 
> > === After the patch ===
> > 
> > [   51.385216] Instruction dump:
> > [   51.388186] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
> > [   51.395986] 3d20c03a 9009a114 7c0004ac 39200000 <98090000> 4e800020 3803ffd0 2b800009
> > 
> > <4>[   51.385216] Instruction dump:
> > <4>[   51.388186] 7c000110 7c0000f8 5400077c 552907f6 7d290378 992b0003 4e800020 38000001
> > <4>[   51.395986] 3d20c03a 9009a114 7c0004ac 39200000 <98090000> 4e800020 3803ffd0 2b800009
> > 
> > Signed-off-by: Ira W. Snyder <iws@ovro.caltech.edu>
> > Cc: Paul Mackerras <paulus@samba.org>
> > Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> > Cc: linuxppc-dev@lists.ozlabs.org
> > ---
> > 
> > In the above examples, the first block is what is shown on the serial
> > console as the machine dies. The second block is the dump as captured by
> > mtdoops.
> > 
> >  arch/powerpc/kernel/process.c |    6 +++---
> >  1 files changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
> > index 6457574..271f809 100644
> > --- a/arch/powerpc/kernel/process.c
> > +++ b/arch/powerpc/kernel/process.c
> > @@ -566,12 +566,12 @@ static void show_instructions(struct pt_regs *regs)
> >  		 */
> >  		if (!__kernel_text_address(pc) ||
> >  		     __get_user(instr, (unsigned int __user *)pc)) {
> > -			printk("XXXXXXXX ");
> > +			printk(KERN_CONT "XXXXXXXX ");
> >  		} else {
> >  			if (regs->nip == pc)
> > -				printk("<%08x> ", instr);
> > +				printk(KERN_CONT "<%08x> ", instr);
> >  			else
> > -				printk("%08x ", instr);
> > +				printk(KERN_CONT "%08x ", instr);
> >  		}
> >  
> >  		pc += sizeof(int);
> 
> 

^ permalink raw reply

* Re: [PATCH v2] of: Change logic to overwrite cmd_line with CONFIG_CMDLINE
From: Doug Anderson @ 2012-01-07  0:48 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: devicetree-discuss, linuxppc-dev
In-Reply-To: <20110920045510.GA31886@ponder.secretlab.ca>

I know this is a long-dead thread, but I was a little curious about
the motivation here.

I'm looking at trying to support CONFIG_CMDLINE_EXTEND (an ARM
Kconfig) in this function and don't know in which cases I should look
at the CONFIG_CMDLINE and in which cases I should use whatever
happened to be in data before the function was called.

Here's the=A0definition in the KConfig:
<http://git.kernel.org/?p=3Dlinux/kernel/git/next/linux-next.git;a=3Dblob;f=
=3Darch/arm/Kconfig;h=3D24626b0419ee97e963e68329a8eb6769360b46ea;hb=3DHEAD#=
l1984>

Which case do you have=A0CONFIG_CMDLINE defined but not CMDLINE_FORCE?
In those cases, do you happen to have=A0CONFIG_CMDLINE_EXTEND or
CMDLINE_FROM_BOOTLOADER defined?

Thanks much!

-Doug

---

On Mon, Sep 19, 2011 at 9:55 PM, Grant Likely <grant.likely@secretlab.ca> w=
rote:
>
> On Tue, Sep 20, 2011 at 02:50:15PM +1000, Benjamin Herrenschmidt wrote:
> > We used to overwrite with CONFIG_CMDLINE if we found a chosen
> > node but failed to get bootargs out of it or they were empty,
> > unless CONFIG_CMDLINE_FORCE is set.
> >
> > Instead change that to overwrite if "data" is non empty after
> > the bootargs check. It allows arch code to have other mechanisms
> > to retrieve the command line prior to parsing the device-tree.
> >
> > Note: CONFIG_CMDLINE_FORCE case should ideally be handled elsewhere
> > as it won't work as it-is if the device-tree has no /chosen node
> >
> > Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> > CC: devicetree-discuss@lists-ozlabs.org
> > CC: Grant Likely <grant.likely@secretlab.ca>
>
> Looks okay to me.
>
> Acked-by: Grant Likely <grant.likely@secretlab.ca>
>
> > ---
> > =A0drivers/of/fdt.c | =A0 =A07 ++++++-
> > =A01 files changed, 6 insertions(+), 1 deletions(-)
> >
> > v2. Use "data" instead of "cmd_line" so it works on archs like
> > mips who don't pass cmd_line to that function to start with, also
> > add a comment explaining the mechanism.
> >
> > (resent with right list address as well while at it)
> >
> > diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
> > index 65200af..323b722 100644
> > --- a/drivers/of/fdt.c
> > +++ b/drivers/of/fdt.c
> > @@ -681,9 +681,14 @@ int __init early_init_dt_scan_chosen(unsigned long=
 node, const char *uname,
> > =A0 =A0 =A0 if (p !=3D NULL && l > 0)
> > =A0 =A0 =A0 =A0 =A0 =A0 =A0 strlcpy(data, p, min((int)l, COMMAND_LINE_S=
IZE));
> >
> > + =A0 =A0 /*
> > + =A0 =A0 =A0* CONFIG_CMDLINE is meant to be a default in case nothing =
else
> > + =A0 =A0 =A0* managed to set the command line, unless CONFIG_CMDLINE_F=
ORCE
> > + =A0 =A0 =A0* is set in which case we override whatever was found earl=
ier.
> > + =A0 =A0 =A0*/
> > =A0#ifdef CONFIG_CMDLINE
> > =A0#ifndef CONFIG_CMDLINE_FORCE
> > - =A0 =A0 if (p =3D=3D NULL || l =3D=3D 0 || (l =3D=3D 1 && (*p) =3D=3D=
 0))
> > + =A0 =A0 if (!data[0])
> > =A0#endif
> > =A0 =A0 =A0 =A0 =A0 =A0 =A0 strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_=
SIZE);
> > =A0#endif /* CONFIG_CMDLINE */
> > --
> > 1.7.4.1
> >
> >
> >
> >
> _______________________________________________
> devicetree-discuss mailing list
> devicetree-discuss@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/devicetree-discuss

^ permalink raw reply

* Driver(s) for Synopsys' DesignWare USB OTG
From: Nikolai Zhubr @ 2012-01-07 17:30 UTC (permalink / raw)
  To: linux-usb, openwrt-devel, linuxppc-dev, support

Hello developers,

I'm trying to find/combine/fix a driver for Synopsys' DesignWare USB 
controller. This thing is USB 2.0 host/slave/otg capable and is used in 
various SoCs including Amlogic 8726M, Ralink RT305x, and probably more.

There is some code floating around, partly usable, but all I could see 
for now is really not perfect. I also saw commit logs on linuxppc-dev, 
but failed to find out what repository they are related to. I'd like to 
know if someone is currently developing/testing/maintaining the driver 
or is planning to do so in the near future (in a FOSS-friendly manner - 
making development results public immediately and with eventual goal of 
inclusion into mainline) in order to avoid duplicate/uncoordinated work 
and waste of effort.

I'm currently examining 2 versions (That is, 2 sets of files):

1. From android kernel for 8726m-based tablets (like the one I own). 
Usable to some extent, but there are issues (e.g. it looks like certain 
packets get corrupted, reproducibly, relevant dumps are available)

2. From openwrt kernel for RT305x-based routers. The code looks a bit 
more tidy, but not quite well updated (slave-mode parts are unused in 
openwrt and they can not even be compiled for modern kernels without 
certain patching; have not tried host-mode on the hardware yet)

Quite obviously both versions originated from the same code initially, 
but subsequently were apparently tested/corrected/updated by separate 
teams. It is not quite clear if all bugfixes were cross-applied 
carefully (if at all). I was initially hoping that compare and bisect 
will just do the job, but the driver is quite huge... and some files 
have diverged substantially in the 2 versions, so at the moment I'm a 
bit fed up and will probably resume a bit later. Meanwhile, I'd be happy 
to discuss the subject with whoever interested in order to plan my 
further steps.

Please CC me, I'm not subscribed to the lists.

Thank you.
Nikolai.

^ permalink raw reply

* Re: Driver(s) for Synopsys' DesignWare USB OTG
From: Peter Chen @ 2012-01-08  3:12 UTC (permalink / raw)
  To: Nikolai Zhubr; +Cc: support, linux-usb, linuxppc-dev, openwrt-devel
In-Reply-To: <4F088122.4080505@yandex.ru>

2012/1/8 Nikolai Zhubr <n-a-zhubr@yandex.ru>:
> Hello developers,
>
> I'm trying to find/combine/fix a driver for Synopsys' DesignWare USB
> controller. This thing is USB 2.0 host/slave/otg capable and is used in
> various SoCs including Amlogic 8726M, Ralink RT305x, and probably more.
>
> There is some code floating around, partly usable, but all I could see fo=
r
> now is really not perfect. I also saw commit logs on linuxppc-dev, but
> failed to find out what repository they are related to. I'd like to know =
if
> someone is currently developing/testing/maintaining the driver or is
> planning to do so in the near future (in a FOSS-friendly manner - making
> development results public immediately and with eventual goal of inclusio=
n
> into mainline) in order to avoid duplicate/uncoordinated work and waste o=
f
> effort.
>
> I'm currently examining 2 versions (That is, 2 sets of files):
>
> 1. From android kernel for 8726m-based tablets (like the one I own). Usab=
le
> to some extent, but there are issues (e.g. it looks like certain packets =
get
> corrupted, reproducibly, relevant dumps are available)
>
> 2. From openwrt kernel for RT305x-based routers. The code looks a bit mor=
e
> tidy, but not quite well updated (slave-mode parts are unused in openwrt =
and
> they can not even be compiled for modern kernels without certain patching=
;
> have not tried host-mode on the hardware yet)
>
> Quite obviously both versions originated from the same code initially, bu=
t
> subsequently were apparently tested/corrected/updated by separate teams. =
It
> is not quite clear if all bugfixes were cross-applied carefully (if at al=
l).
> I was initially hoping that compare and bisect will just do the job, but =
the
> driver is quite huge... and some files have diverged substantially in the=
 2
> versions, so at the moment I'm a bit fed up and will probably resume a bi=
t
> later. Meanwhile, I'd be happy to discuss the subject with whoever
> interested in order to plan my further steps.

Please see:
http://marc.info/?l=3Dlinux-usb&m=3D129906859817430&w=3D2

I am not sure we can combine all Synopsys USB drivers to single file, but w=
e
can try combine similar IP versions to one file, this work may need all Syn=
opsys
USB IP driver maintainer work together.


> Thank you.
> Nikolai.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at =A0http://vger.kernel.org/majordomo-info.html



--=20
BR,
Peter Chen

^ permalink raw reply

* Re: [PATCH v2 powerpc] fix unpaired __trace_hcall_entry and __trace_hcall_exit
From: Li Zhong @ 2012-01-08  3:54 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: PowerPC email list, Paul E. McKenney, Paul Mackerras, LKML,
	Anton Blanchard
In-Reply-To: <1325552057.23910.5.camel@pasglop>

On Tue, 2012-01-03 at 11:54 +1100, Benjamin Herrenschmidt wrote:
> On Mon, 2011-12-19 at 10:06 +0800, Li Zhong wrote:
> > Unpaired calling of __trace_hcall_entry and __trace_hcall_exit could
> > cause incorrect preempt count. And it might happen as the global
> > variable hcall_tracepoint_refcount is checked separately before calling
> > them. 
> > 
> > I don't know much about the powerpc arch. But the idea here is to store
> > the hcall_tracepoint_refcount locally, so __trace_hcall_entry and
> > __trace_hcall_exit will be called or not called in pair by checking the
> > same value. 
> 
> Can you re-use an existing spot in the stack frame rather than adding
> this entry ? There's plenty of unused spots :-) For example the link
> editor doubleword is never going to be used in that function, we could
> hijack it safely. It would make the patch (and the code) simpler.
> 
> Cheers,
> Ben.

Hi Ben, 

Thank you for the suggestion. Below is the updated version, much less
code changes :) Would you please help review again to see whether my
understanding is correct? 

Thanks,
Zhong

Reported-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Li Zhong <zhong@linux.vnet.ibm.com>
Tested-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
 arch/powerpc/platforms/pseries/hvCall.S |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/hvCall.S
b/arch/powerpc/platforms/pseries/hvCall.S
index fd05fde..3ce73d0 100644
--- a/arch/powerpc/platforms/pseries/hvCall.S
+++ b/arch/powerpc/platforms/pseries/hvCall.S
@@ -36,6 +36,7 @@ BEGIN_FTR_SECTION;						\
 	b	1f;						\
 END_FTR_SECTION(0, 1);						\
 	ld      r12,hcall_tracepoint_refcount@toc(r2);		\
+	std	r12,32(r1);					\
 	cmpdi	r12,0;						\
 	beq+	1f;						\
 	mflr	r0;						\
@@ -74,7 +75,7 @@ END_FTR_SECTION(0, 1);						\
 BEGIN_FTR_SECTION;						\
 	b	1f;						\
 END_FTR_SECTION(0, 1);						\
-	ld      r12,hcall_tracepoint_refcount@toc(r2);		\
+	ld      r12,32(r1);					\
 	cmpdi	r12,0;						\
 	beq+	1f;						\
 	mflr	r0;						\
-- 
1.7.5.4

^ permalink raw reply related

* Re: Driver(s) for Synopsys' DesignWare USB OTG
From: Nikolai Zhubr @ 2012-01-08 12:56 UTC (permalink / raw)
  To: Peter Chen; +Cc: support, linux-usb, linuxppc-dev, openwrt-devel
In-Reply-To: <CAL411-riz_Cf1hYMYwEKrJKNHTV3EYup4u5DjmBhdpH+4xcd7g@mail.gmail.com>

Hello Piter,

08.01.2012 7:12, you wrote:
> 2012/1/8 Nikolai Zhubr<n-a-zhubr@yandex.ru>:
>> Hello developers,
>>
>> I'm trying to find/combine/fix a driver for Synopsys' DesignWare USB
>> controller. This thing is USB 2.0 host/slave/otg capable and is used in
>> various SoCs including Amlogic 8726M, Ralink RT305x, and probably more.
>>
[...trim...]
>
> Please see:
> http://marc.info/?l=linux-usb&m=129906859817430&w=2
Ah, thanks. So sadly uncoordinated work in this area is quite common. 
However, in case of Synopsys the situation is even more disappointing 
because initially it _was_ a single driver! What probably lacked was 
some shared repository and proper communication between developers to 
stay in sync. Maybe there were also licensing issues at some point, 
though currently file headers contain rather reasonable (imho) 
permissive license from Synopsys.

> I am not sure we can combine all Synopsys USB drivers to single file, but we

Synopsys driver which I examine consists of 16 files (each of 2 
versions), 200k lines total. I've already perpared some few smaller 
files for version merging. So probably it is doable, but quite a lot of 
work, therefore I wouldn't like it to be wasted.

> can try combine similar IP versions to one file, this work may need all Synopsys
> USB IP driver maintainer work together.

Exactly. This is why I'm now trying to find all relevant people to begin 
with.

Thank you.
Nikolai.

Please CC me, I'm not subscribed to the lists.


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

^ permalink raw reply

* [RFC PATCH v2 0/9] Remove useless on_each_cpu return value
From: Gilad Ben-Yossef @ 2012-01-08 13:32 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-ia64, David Airlie, Will Deacon, dri-devel, Paul Mackerras,
	H. Peter Anvin, Russell King, x86, Ingo Molnar,
	Arnaldo Carvalho de Melo, Matt Turner, Fenghua Yu, Peter Zijlstra,
	devicetree-discuss, Michal Nazarewicz, Gilad Ben-Yossef,
	Ivan Kokshaysky, Rob Herring, Thomas Gleixner, linux-arm-kernel,
	Richard Henderson, Tony Luck, linux-alpha, linuxppc-dev

on_each_cpu() returns as its own return value the return value of
smp_call_function(). smp_call_function() in turn returns a hard
coded value of zero.

Some callers to on_each_cpu() waste cycles and bloat code space
by checking the return value to on_each_cpu(), probably for
historical reasons.

This patch set refactors callers to not test on_each_cpu()
(fixed) return value and then refactors on_each_cpu to
return void to avoid confusing future users.

In other words, this patch aims to delete 18 source code lines
while not changing any functionality :-)

I tested as best as I could the x86 changes and compiled some
of the others, but I don't have access to all the needed hardware
for testing. Reviewers and testers welcome!

The only change from the first version is the addition of a 
proper Signed-off-by line.

This patch set is also available on branch on_each_cpu_ret_v2
at git://github.com/gby/linux.git

Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
CC: Michal Nazarewicz <mina86@mina86.com>
CC: David Airlie <airlied@linux.ie>
CC: dri-devel@lists.freedesktop.org
CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
CC: Paul Mackerras <paulus@samba.org>
CC: Grant Likely <grant.likely@secretlab.ca>
CC: Rob Herring <rob.herring@calxeda.com>
CC: linuxppc-dev@lists.ozlabs.org
CC: devicetree-discuss@lists.ozlabs.org
CC: Richard Henderson <rth@twiddle.net>
CC: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
CC: Matt Turner <mattst88@gmail.com>
CC: linux-alpha@vger.kernel.org
CC: Thomas Gleixner <tglx@linutronix.de>
CC: Ingo Molnar <mingo@redhat.com>
CC: "H. Peter Anvin" <hpa@zytor.com>
CC: x86@kernel.org
CC: Tony Luck <tony.luck@intel.com>
CC: Fenghua Yu <fenghua.yu@intel.com>
CC: linux-ia64@vger.kernel.org
CC: Will Deacon <will.deacon@arm.com>
CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
CC: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
CC: Russell King <linux@arm.linux.org.uk>
CC: linux-arm-kernel@lists.infradead.org


Gilad Ben-Yossef (9):
  arm: avoid using on_each_cpu hard coded ret value
  ia64: avoid using on_each_cpu hard coded ret value
  x86: avoid using on_each_cpu hard coded ret value
  alpha: avoid using on_each_cpu hard coded ret value
  ppc: avoid using on_each_cpu hard coded ret value
  agp: avoid using on_each_cpu hard coded ret value
  drm: avoid using on_each_cpu hard coded ret value
  smp: refactor on_each_cpu to void returning func
  x86: refactor wbinvd_on_all_cpus to void function

 arch/alpha/kernel/smp.c      |    7 ++-----
 arch/arm/kernel/perf_event.c |    2 +-
 arch/ia64/kernel/perfmon.c   |   12 ++----------
 arch/powerpc/kernel/rtas.c   |    3 +--
 arch/x86/include/asm/smp.h   |    5 ++---
 arch/x86/lib/cache-smp.c     |    4 ++--
 drivers/char/agp/generic.c   |    3 +--
 drivers/gpu/drm/drm_cache.c  |    3 +--
 include/linux/smp.h          |    7 +++----
 kernel/smp.c                 |    6 ++----
 10 files changed, 17 insertions(+), 35 deletions(-)

^ permalink raw reply

* [RFC PATCH v2 5/9] ppc: avoid using on_each_cpu hard coded ret value
From: Gilad Ben-Yossef @ 2012-01-08 13:32 UTC (permalink / raw)
  To: linux-kernel
  Cc: devicetree-discuss, Rob Herring, Gilad Ben-Yossef, Paul Mackerras,
	linuxppc-dev
In-Reply-To: <1326029549-2794-1-git-send-email-gilad@benyossef.com>

on_each_cpu always returns a hard coded return code of zero.

Removing all tests based on this return value saves run time
cycles for compares and code bloat for branches.

Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
CC: Paul Mackerras <paulus@samba.org>
CC: Grant Likely <grant.likely@secretlab.ca>
CC: Rob Herring <rob.herring@calxeda.com>
CC: linuxppc-dev@lists.ozlabs.org
CC: devicetree-discuss@lists.ozlabs.org
---
 arch/powerpc/kernel/rtas.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
index 517b1d8..829629e 100644
--- a/arch/powerpc/kernel/rtas.c
+++ b/arch/powerpc/kernel/rtas.c
@@ -850,8 +850,7 @@ int rtas_ibm_suspend_me(struct rtas_args *args)
 	/* Call function on all CPUs.  One of us will make the
 	 * rtas call
 	 */
-	if (on_each_cpu(rtas_percpu_suspend_me, &data, 0))
-		atomic_set(&data.error, -EINVAL);
+	on_each_cpu(rtas_percpu_suspend_me, &data, 0);
 
 	wait_for_completion(&done);
 
-- 
1.7.0.4

^ permalink raw reply related

* [RFC PATCH v2 8/9] smp: refactor on_each_cpu to void returning func
From: Gilad Ben-Yossef @ 2012-01-08 13:32 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-ia64, David Airlie, Will Deacon, dri-devel, Paul Mackerras,
	H. Peter Anvin, Russell King, x86, Ingo Molnar,
	Arnaldo Carvalho de Melo, Matt Turner, Fenghua Yu, Peter Zijlstra,
	devicetree-discuss, Rob Herring, Gilad Ben-Yossef,
	Ivan Kokshaysky, Thomas Gleixner, linux-arm-kernel,
	Richard Henderson, Tony Luck, linux-alpha, linuxppc-dev
In-Reply-To: <1326029549-2794-1-git-send-email-gilad@benyossef.com>

on_each_cpu returns the retunr value of smp_call_function
which is hard coded to 0.

Refactor on_each_cpu to a void function and the few callers
that check the return value to save compares and branches.

Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
CC: David Airlie <airlied@linux.ie>
CC: dri-devel@lists.freedesktop.org
CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
CC: Paul Mackerras <paulus@samba.org>
CC: Grant Likely <grant.likely@secretlab.ca>
CC: Rob Herring <rob.herring@calxeda.com>
CC: linuxppc-dev@lists.ozlabs.org
CC: devicetree-discuss@lists.ozlabs.org
CC: Richard Henderson <rth@twiddle.net>
CC: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
CC: Matt Turner <mattst88@gmail.com>
CC: linux-alpha@vger.kernel.org
CC: Thomas Gleixner <tglx@linutronix.de>
CC: Ingo Molnar <mingo@redhat.com>
CC: "H. Peter Anvin" <hpa@zytor.com>
CC: x86@kernel.org
CC: Tony Luck <tony.luck@intel.com>
CC: Fenghua Yu <fenghua.yu@intel.com>
CC: linux-ia64@vger.kernel.org
CC: Will Deacon <will.deacon@arm.com>
CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
CC: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
CC: Russell King <linux@arm.linux.org.uk>
CC: linux-arm-kernel@lists.infradead.org
---
 include/linux/smp.h |    7 +++----
 kernel/smp.c        |    6 ++----
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/include/linux/smp.h b/include/linux/smp.h
index 8cc38d3..050ddd4 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -99,7 +99,7 @@ static inline void call_function_init(void) { }
 /*
  * Call a function on all processors
  */
-int on_each_cpu(smp_call_func_t func, void *info, int wait);
+void on_each_cpu(smp_call_func_t func, void *info, int wait);
 
 /*
  * Mark the boot cpu "online" so that it can call console drivers in
@@ -126,12 +126,11 @@ static inline int up_smp_call_function(smp_call_func_t func, void *info)
 #define smp_call_function(func, info, wait) \
 			(up_smp_call_function(func, info))
 #define on_each_cpu(func,info,wait)		\
-	({					\
+	{					\
 		local_irq_disable();		\
 		func(info);			\
 		local_irq_enable();		\
-		0;				\
-	})
+	}
 static inline void smp_send_reschedule(int cpu) { }
 #define num_booting_cpus()			1
 #define smp_prepare_boot_cpu()			do {} while (0)
diff --git a/kernel/smp.c b/kernel/smp.c
index db197d6..f66a1b2 100644
--- a/kernel/smp.c
+++ b/kernel/smp.c
@@ -687,17 +687,15 @@ void __init smp_init(void)
  * early_boot_irqs_disabled is set.  Use local_irq_save/restore() instead
  * of local_irq_disable/enable().
  */
-int on_each_cpu(void (*func) (void *info), void *info, int wait)
+void on_each_cpu(void (*func) (void *info), void *info, int wait)
 {
 	unsigned long flags;
-	int ret = 0;
 
 	preempt_disable();
-	ret = smp_call_function(func, info, wait);
+	smp_call_function(func, info, wait);
 	local_irq_save(flags);
 	func(info);
 	local_irq_restore(flags);
 	preempt_enable();
-	return ret;
 }
 EXPORT_SYMBOL(on_each_cpu);
-- 
1.7.0.4

^ permalink raw reply related

* Re: [RFC PATCH 0/9] Remove useless on_each_cpu return value
From: Gilad Ben-Yossef @ 2012-01-08 16:10 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: linux-ia64, David Airlie, Will Deacon, dri-devel, Paul Mackerras,
	H. Peter Anvin, Russell King, x86, Ingo Molnar,
	Arnaldo Carvalho de Melo, Matt Turner, Fenghua Yu,
	devicetree-discuss, Michal Nazarewicz, Ivan Kokshaysky,
	Rob Herring, Thomas Gleixner, linux-arm-kernel, Richard Henderson,
	Tony Luck, linux-kernel, linux-alpha, linuxppc-dev
In-Reply-To: <1325854981.2442.25.camel@twins>

On Fri, Jan 6, 2012 at 3:03 PM, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
> On Tue, 2012-01-03 at 16:19 +0200, Gilad Ben-Yossef wrote:
>> on_each_cpu() returns as its own return value the return value of
>> smp_call_function(). smp_call_function() in turn returns a hard
>> coded value of zero.
>>
>> Some callers to on_each_cpu() waste cycles and bloat code space
>> by checking the return value to on_each_cpu(), probably for
>> historical reasons.
>
> hysterical raisins,, yumm! :-)
>
>> This patch set refactors callers to not test on_each_cpu()
>> (fixed) return value and then refactors on_each_cpu to
>> return void to avoid confusing future users.
>>
>
> Seems sane enough, fwiw:
>
> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>

Thanks for the review :-)

I just sent out a V2. No changes except I've added the needed signed-off-by.

Gilad


-- 
Gilad Ben-Yossef
Chief Coffee Drinker
gilad@benyossef.com
Israel Cell: +972-52-8260388
US Cell: +1-973-8260388
http://benyossef.com

"Unfortunately, cache misses are an equal opportunity pain provider."
-- Mike Galbraith, LKML

^ permalink raw reply

* Re: [RFC PATCH v2 8/9] smp: refactor on_each_cpu to void returning func
From: Russell King - ARM Linux @ 2012-01-08 16:14 UTC (permalink / raw)
  To: Gilad Ben-Yossef
  Cc: linux-ia64, David Airlie, Will Deacon, dri-devel, Paul Mackerras,
	H. Peter Anvin, x86, Ingo Molnar, Arnaldo Carvalho de Melo,
	Matt Turner, Fenghua Yu, Peter Zijlstra, devicetree-discuss,
	Rob Herring, Ivan Kokshaysky, Thomas Gleixner, linux-arm-kernel,
	Richard Henderson, Tony Luck, linux-kernel, linux-alpha,
	linuxppc-dev
In-Reply-To: <1326029549-2794-9-git-send-email-gilad@benyossef.com>

On Sun, Jan 08, 2012 at 03:32:28PM +0200, Gilad Ben-Yossef wrote:
> on_each_cpu returns the retunr value of smp_call_function
> which is hard coded to 0.
> 
> Refactor on_each_cpu to a void function and the few callers
> that check the return value to save compares and branches.
> 
> Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Reviewed-by: Michal Nazarewicz <mina86@mina86.com>
> CC: David Airlie <airlied@linux.ie>
> CC: dri-devel@lists.freedesktop.org
> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> CC: Paul Mackerras <paulus@samba.org>
> CC: Grant Likely <grant.likely@secretlab.ca>
> CC: Rob Herring <rob.herring@calxeda.com>
> CC: linuxppc-dev@lists.ozlabs.org
> CC: devicetree-discuss@lists.ozlabs.org
> CC: Richard Henderson <rth@twiddle.net>
> CC: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
> CC: Matt Turner <mattst88@gmail.com>
> CC: linux-alpha@vger.kernel.org
> CC: Thomas Gleixner <tglx@linutronix.de>
> CC: Ingo Molnar <mingo@redhat.com>
> CC: "H. Peter Anvin" <hpa@zytor.com>
> CC: x86@kernel.org
> CC: Tony Luck <tony.luck@intel.com>
> CC: Fenghua Yu <fenghua.yu@intel.com>
> CC: linux-ia64@vger.kernel.org
> CC: Will Deacon <will.deacon@arm.com>
> CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
> CC: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
> CC: Russell King <linux@arm.linux.org.uk>

As there's only one place in the ARM code where we look at the return
value, and you've patched that away in patch 1, this looks fine.  I've
not checked for users outside of arch/arm, so:

Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>

Thanks.

^ permalink raw reply

* Re: [git pull] Please pull powerpc.git next branch
From: Michael Neuling @ 2012-01-08 23:58 UTC (permalink / raw)
  To: Kumar Gala; +Cc: linuxppc-dev
In-Reply-To: <alpine.LFD.2.00.1201041605230.15492@right.am.freescale.net>

Kumar,

Can you pick up this one too.  Current Linus tree breaks compiling
mpc85xx_defconfig

  powerpc: fix compile error with 85xx/p1022_ds.c
  http://patchwork.ozlabs.org/patch/130620/

Mikey

In message <alpine.LFD.2.00.1201041605230.15492@right.am.freescale.net> you wro
te:
> The following changes since commit e4f387d8db3ba3c2dae4d8bdfe7bb5f4fe1bcb0d:
> 
>   powerpc: Fix unpaired probe_hcall_entry and probe_hcall_exit (2012-01-03 12:09:27 +1100)
> 
> are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc.git next
> 
> Andy Fleming (1):
>       powerpc: Add TBI PHY node to first MDIO bus
> 
> Julia Lawall (1):
>       arch/powerpc/sysdev/fsl_rmu.c: introduce missing kfree
> 
> Kumar Gala (3):
>       powerpc/fsl-pci: Allow 64-bit PCIe devices to DMA to any memory address
>       powerpc/fsl: Update defconfigs to enable some standard FSL HW features
>       powerpc/fsl: update compatiable on fsl 16550 uart nodes
> 
> Michael Neuling (1):
>       powerpc: fix compile error with 85xx/p1023_rds.c
> 
> Paul Gortmaker (1):
>       sbc834x: put full compat string in board match check
> 
> Prabhakar Kushwaha (1):
>       powerpc/fsl: Add support for Integrated Flash Controller
> 
> Timur Tabi (3):
>       powerpc/85xx: re-enable ePAPR byte channel driver in corenet32_smp_defc
onfig
>       powerpc/85xx: fix PCI and localbus properties in p1022ds.dts
>       powerpc/fsl: add MSI support for the Freescale hypervisor
> 
> Tony Breeds (1):
>       powerpc: fix compile error with 85xx/p1010rdb.c
> 
>  arch/powerpc/Kconfig                         |    4 +
>  arch/powerpc/boot/dts/asp834x-redboot.dts    |    4 +-
>  arch/powerpc/boot/dts/fsl/pq3-duart-0.dtsi   |    4 +-
>  arch/powerpc/boot/dts/fsl/qoriq-duart-0.dtsi |    4 +-
>  arch/powerpc/boot/dts/fsl/qoriq-duart-1.dtsi |    4 +-
>  arch/powerpc/boot/dts/gef_ppc9a.dts          |    4 +-
>  arch/powerpc/boot/dts/gef_sbc310.dts         |    4 +-
>  arch/powerpc/boot/dts/gef_sbc610.dts         |    4 +-
>  arch/powerpc/boot/dts/kmeter1.dts            |    2 +-
>  arch/powerpc/boot/dts/kuroboxHD.dts          |    4 +-
>  arch/powerpc/boot/dts/kuroboxHG.dts          |    4 +-
>  arch/powerpc/boot/dts/mpc8308_p1m.dts        |    4 +-
>  arch/powerpc/boot/dts/mpc8308rdb.dts         |    4 +-
>  arch/powerpc/boot/dts/mpc8313erdb.dts        |    4 +-
>  arch/powerpc/boot/dts/mpc8315erdb.dts        |    4 +-
>  arch/powerpc/boot/dts/mpc832x_mds.dts        |    4 +-
>  arch/powerpc/boot/dts/mpc832x_rdb.dts        |    4 +-
>  arch/powerpc/boot/dts/mpc8349emitx.dts       |    4 +-
>  arch/powerpc/boot/dts/mpc8349emitxgp.dts     |    4 +-
>  arch/powerpc/boot/dts/mpc834x_mds.dts        |    4 +-
>  arch/powerpc/boot/dts/mpc836x_mds.dts        |    4 +-
>  arch/powerpc/boot/dts/mpc836x_rdk.dts        |    4 +-
>  arch/powerpc/boot/dts/mpc8377_mds.dts        |    4 +-
>  arch/powerpc/boot/dts/mpc8377_rdb.dts        |    4 +-
>  arch/powerpc/boot/dts/mpc8377_wlan.dts       |    4 +-
>  arch/powerpc/boot/dts/mpc8378_mds.dts        |    4 +-
>  arch/powerpc/boot/dts/mpc8378_rdb.dts        |    4 +-
>  arch/powerpc/boot/dts/mpc8379_mds.dts        |    4 +-
>  arch/powerpc/boot/dts/mpc8379_rdb.dts        |    4 +-
>  arch/powerpc/boot/dts/mpc8540ads.dts         |    4 +-
>  arch/powerpc/boot/dts/mpc8541cds.dts         |    4 +-
>  arch/powerpc/boot/dts/mpc8555cds.dts         |    4 +-
>  arch/powerpc/boot/dts/mpc8610_hpcd.dts       |    4 +-
>  arch/powerpc/boot/dts/mpc8641_hpcn.dts       |    4 +-
>  arch/powerpc/boot/dts/mpc8641_hpcn_36b.dts   |    4 +-
>  arch/powerpc/boot/dts/p1010rdb.dtsi          |    5 +
>  arch/powerpc/boot/dts/p1020rdb.dtsi          |    5 +
>  arch/powerpc/boot/dts/p1021mds.dts           |    4 +
>  arch/powerpc/boot/dts/p1022ds.dts            |   12 +-
>  arch/powerpc/boot/dts/p2020rdb.dts           |    8 +-
>  arch/powerpc/boot/dts/sbc8349.dts            |    4 +-
>  arch/powerpc/boot/dts/sbc8548.dts            |    4 +-
>  arch/powerpc/boot/dts/sbc8641d.dts           |    4 +-
>  arch/powerpc/boot/dts/socrates.dts           |    4 +-
>  arch/powerpc/boot/dts/storcenter.dts         |    4 +-
>  arch/powerpc/boot/dts/stxssa8555.dts         |    4 +-
>  arch/powerpc/boot/dts/tqm8540.dts            |    4 +-
>  arch/powerpc/boot/dts/tqm8541.dts            |    4 +-
>  arch/powerpc/boot/dts/tqm8548-bigflash.dts   |    4 +-
>  arch/powerpc/boot/dts/tqm8548.dts            |    4 +-
>  arch/powerpc/boot/dts/tqm8555.dts            |    4 +-
>  arch/powerpc/boot/dts/xcalibur1501.dts       |    4 +-
>  arch/powerpc/boot/dts/xpedite5200.dts        |    4 +-
>  arch/powerpc/boot/dts/xpedite5200_xmon.dts   |    4 +-
>  arch/powerpc/boot/dts/xpedite5301.dts        |    4 +-
>  arch/powerpc/boot/dts/xpedite5330.dts        |    4 +-
>  arch/powerpc/boot/dts/xpedite5370.dts        |    4 +-
>  arch/powerpc/configs/corenet32_smp_defconfig |   10 +-
>  arch/powerpc/configs/corenet64_smp_defconfig |    3 +-
>  arch/powerpc/configs/mpc85xx_defconfig       |   16 +-
>  arch/powerpc/configs/mpc85xx_smp_defconfig   |   17 +-
>  arch/powerpc/include/asm/fsl_ifc.h           |  834 ++++++++++++++++++++++++
++
>  arch/powerpc/platforms/83xx/sbc834x.c        |    4 +-
>  arch/powerpc/platforms/85xx/p1010rdb.c       |    2 -
>  arch/powerpc/platforms/85xx/p1023_rds.c      |    1 -
>  arch/powerpc/sysdev/Makefile                 |    1 +
>  arch/powerpc/sysdev/fsl_ifc.c                |  310 ++++++++++
>  arch/powerpc/sysdev/fsl_msi.c                |   68 ++-
>  arch/powerpc/sysdev/fsl_msi.h                |    7 +-
>  arch/powerpc/sysdev/fsl_pci.c                |   84 +++
>  arch/powerpc/sysdev/fsl_rmu.c                |    1 +
>  71 files changed, 1448 insertions(+), 150 deletions(-)
>  create mode 100644 arch/powerpc/include/asm/fsl_ifc.h
>  create mode 100644 arch/powerpc/sysdev/fsl_ifc.c
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
> 

^ permalink raw reply

* Re: Driver(s) for Synopsys' DesignWare USB OTG
From: Peter Chen @ 2012-01-09  2:12 UTC (permalink / raw)
  To: Nikolai Zhubr; +Cc: support, linux-usb, linuxppc-dev, openwrt-devel, Peter Chen
In-Reply-To: <4F099291.6060803@yandex.ru>

On Sun, Jan 08, 2012 at 04:56:49PM +0400, Nikolai Zhubr wrote:
> Hello Piter,
> 
> 08.01.2012 7:12, you wrote:
> >2012/1/8 Nikolai Zhubr<n-a-zhubr@yandex.ru>:
> >
> >Please see:
> >http://marc.info/?l=linux-usb&m=129906859817430&w=2
> Ah, thanks. So sadly uncoordinated work in this area is quite
> common. However, in case of Synopsys the situation is even more
> disappointing because initially it _was_ a single driver! What
> probably lacked was some shared repository and proper communication
> between developers to stay in sync. Maybe there were also licensing
> issues at some point, though currently file headers contain rather
> reasonable (imho) permissive license from Synopsys.
> 
> >I am not sure we can combine all Synopsys USB drivers to single file, but we
> 
> Synopsys driver which I examine consists of 16 files (each of 2
> versions), 200k lines total. I've already perpared some few smaller
> files for version merging. So probably it is doable, but quite a lot
> of work, therefore I wouldn't like it to be wasted.
I mean one file is just a common udc driver for all Synopsys, not all usb file.
For ehci, I think it will be easier to use single file as well as 
some specific SoC's quirks if needed.
For udc, as there is no standard spec for how usb device should be designed,
maybe different Synopsys IPs have a little different for work flow.
For otg, it  should be not difficult after we split PHY's operation
from the otg, as common otg operation is the same.
> 
> >can try combine similar IP versions to one file, this work may need all Synopsys
> >USB IP driver maintainer work together.
> 
> Exactly. This is why I'm now trying to find all relevant people to
> begin with.
I know someone(@Pengutronix and @linux.intel.com) is doing that. I think first
we should find which driver file at current code base is most capable and
compatible. I would like to help it, and verify it at Freescale i.MX SoCs.
> 
> Thank you.
> Nikolai.
> 
> Please CC me, I'm not subscribed to the lists.
> 
> 
> >
> >
> >>Thank you.
> >>Nikolai.
> >>--
> >>To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> >>the body of a message to majordomo@vger.kernel.org
> >>More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >
> >
> >
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

-- 

Best Regards,
Peter Chen

^ permalink raw reply

* Re: Driver(s) for Synopsys' DesignWare USB OTG
From: Leo Li @ 2012-01-09  5:17 UTC (permalink / raw)
  To: Nikolai Zhubr; +Cc: support, linux-usb, linuxppc-dev, openwrt-devel, Peter Chen
In-Reply-To: <4F099291.6060803@yandex.ru>

On Sun, Jan 8, 2012 at 8:56 PM, Nikolai Zhubr <n-a-zhubr@yandex.ru> wrote:
> Hello Piter,
>
>
> 08.01.2012 7:12, you wrote:
>>
>> 2012/1/8 Nikolai Zhubr<n-a-zhubr@yandex.ru>:
>>>
>>> Hello developers,
>>>
>>> I'm trying to find/combine/fix a driver for Synopsys' DesignWare USB
>>> controller. This thing is USB 2.0 host/slave/otg capable and is used in
>>> various SoCs including Amlogic 8726M, Ralink RT305x, and probably more.
>>>
> [...trim...]
>>
>>
>> Please see:
>> http://marc.info/?l=linux-usb&m=129906859817430&w=2
>
> Ah, thanks. So sadly uncoordinated work in this area is quite common.
> However, in case of Synopsys the situation is even more disappointing
> because initially it _was_ a single driver! What probably lacked was some
> shared repository and proper communication between developers to stay in
> sync. Maybe there were also licensing issues at some point, though currently
> file headers contain rather reasonable (imho) permissive license from
> Synopsys.

I think the challenge of cooperation in situation like this is that
most companies don't like to advertise the source of the licensed IP
block.  Even the owner of the IP block doesn't list all users of the
block(maybe business requirement). It was really hard to find out if
the same IP has been used by anyone else.  Also the owner of this USB
IP block has been changed for several times(ARC, TDI, ChipIdea, and
Synopsys) which made it even more difficult to tell.

>
>
>> I am not sure we can combine all Synopsys USB drivers to single file, but
>> we
>
>
> Synopsys driver which I examine consists of 16 files (each of 2 versions),
> 200k lines total. I've already perpared some few smaller files for version
> merging. So probably it is doable, but quite a lot of work, therefore I
> wouldn't like it to be wasted.

I didn't examine the Synopsys driver myself.  But if it is so complex
as you described, it might be better to start with the in-tree drivers
IMO.

- Leo

^ permalink raw reply

* [PATCH] powerpc/85xx: check the return value of fsl_add_bridge
From: r66093 @ 2012-01-09  5:45 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Jerry Huang

From: Jerry Huang <Chang-Ming.Huang@freescale.com>

For all mpc85xx DS/MDS boards, we should check the return value from
function "fsl_add_bridge", otherwise, when pcie node status is disabled,
the kernel will panic when perform the function "pci_find_hose_for_OF_device"
because the hose controller is NULL.

below is the call trace log:
NIP: c05bca80 LR: c05bca78 CTR: c000ec54
REGS: c0615eb0 TRAP: 0300   Not tainted  (3.2.0-rc3-00090-gfa8cbaa-dirty)
MSR: 00021000 <CE,ME>  CR: 84044022  XER: 20000000
DEAR: 00000110, ESR: 00000000
TASK = c05e8380[0] 'swapper' THREAD: c0614000
GPR00: c05bca70 c0615f60 c05e8380 00000000 c0550a08 ffffffff c0613140 c061314c
GPR08: 00000000 00000000 00000286 c0620000 84044022 1009d368 00000000 00000000
GPR16: c0000a00 00000014 3fffffff 03ff9000 00000015 7ff3a724 c0614000 00000000
GPR24: 00000000 00000000 00008000 c0550a08 c0534808 efbe3834 00000000 ffffffff
NIP [c05bca80] p1022_ds_setup_arch+0xa8/0x1ac
LR [c05bca78] p1022_ds_setup_arch+0xa0/0x1ac
Call Trace:
[c0615f60] [c05bca70] p1022_ds_setup_arch+0x98/0x1ac (unreliable)
[c0615fb0] [c05b88e0] setup_arch+0x1e8/0x224
[c0615fc0] [c05b4524] start_kernel+0x84/0x2d8
[c0615ff0] [c00003c4] skpinv+0x2b0/0x2ec
Instruction dump:
5400033e 7f80d000 7fa3eb78 40be0010 38800001 4bffedf1 48000008 4bffede9
7fa3eb78 4ba53119 7f64db78 7c691b78
81830114 7f85e378 8149010c
---[ end trace 31fd0ba7d8756001 ]---
Kernel panic - not syncing: Attempted to kill the idle task!
Call Trace:
[c0615d90] [c0007b74] show_stack+0x44/0x154 (unreliable)
[c0615dd0] [c04495b8] panic+0xa4/0x1d4
[c0615e20] [c003e7b8] do_exit+0x588/0x614
[c0615e70] [c000a00c] die+0xc8/0x198
[c0615e90] [c0011a1c] bad_page_fault+0xb4/0xfc
[c0615ea0] [c000e2e0] handle_page_fault+0x7c/0x80
--- Exception: 300 at p1022_ds_setup_arch+0xa8/0x1ac
    LR = p1022_ds_setup_arch+0xa0/0x1ac
[c0615f60] [c05bca70] p1022_ds_setup_arch+0x98/0x1ac (unreliable)
[c0615fb0] [c05b88e0] setup_arch+0x1e8/0x224
[c0615fc0] [c05b4524] start_kernel+0x84/0x2d8
[c0615ff0] [c00003c4] skpinv+0x2b0/0x2ec

Signed-off-by: Jerry Huang <Chang-Ming.Huang@freescale.com>
---
 arch/powerpc/platforms/85xx/corenet_ds.c   |    5 ++++-
 arch/powerpc/platforms/85xx/mpc8536_ds.c   |   13 +++++++++----
 arch/powerpc/platforms/85xx/mpc85xx_ds.c   |   13 +++++++++----
 arch/powerpc/platforms/85xx/mpc85xx_mds.c  |   13 +++++++++----
 arch/powerpc/platforms/85xx/p1022_ds.c     |   13 +++++++++----
 arch/powerpc/platforms/86xx/mpc86xx_hpcn.c |   14 ++++++++++----
 6 files changed, 50 insertions(+), 21 deletions(-)

diff --git a/arch/powerpc/platforms/85xx/corenet_ds.c b/arch/powerpc/platforms/85xx/corenet_ds.c
index c48b661..9d72e3a 100644
--- a/arch/powerpc/platforms/85xx/corenet_ds.c
+++ b/arch/powerpc/platforms/85xx/corenet_ds.c
@@ -85,8 +85,11 @@ void __init corenet_ds_setup_arch(void)
 	for_each_node_by_type(np, "pci") {
 		if (of_device_is_compatible(np, "fsl,p4080-pcie") ||
 		    of_device_is_compatible(np, "fsl,qoriq-pcie-v2.2")) {
-			fsl_add_bridge(np, 0);
+			if (fsl_add_bridge(np, 0) < 0)
+				continue;
 			hose = pci_find_hose_for_OF_device(np);
+			if (!hose)
+				continue;
 			max = min(max, hose->dma_window_base_cur +
 					hose->dma_window_size);
 		}
diff --git a/arch/powerpc/platforms/85xx/mpc8536_ds.c b/arch/powerpc/platforms/85xx/mpc8536_ds.c
index 9ee6455..ee2ebbb 100644
--- a/arch/powerpc/platforms/85xx/mpc8536_ds.c
+++ b/arch/powerpc/platforms/85xx/mpc8536_ds.c
@@ -82,12 +82,17 @@ static void __init mpc8536_ds_setup_arch(void)
 		    of_device_is_compatible(np, "fsl,mpc8548-pcie")) {
 			struct resource rsrc;
 			of_address_to_resource(np, 0, &rsrc);
-			if ((rsrc.start & 0xfffff) == 0x8000)
-				fsl_add_bridge(np, 1);
-			else
-				fsl_add_bridge(np, 0);
+			if ((rsrc.start & 0xfffff) == 0x8000) {
+				if (fsl_add_bridge(np, 1) < 0)
+					continue;
+			} else {
+				if (fsl_add_bridge(np, 0) < 0)
+					continue;
+			}
 
 			hose = pci_find_hose_for_OF_device(np);
+			if (!hose)
+				continue;
 			max = min(max, hose->dma_window_base_cur +
 					hose->dma_window_size);
 		}
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_ds.c b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
index 2113120..5eba5f0 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_ds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_ds.c
@@ -175,12 +175,17 @@ static void __init mpc85xx_ds_setup_arch(void)
 		    of_device_is_compatible(np, "fsl,p2020-pcie")) {
 			struct resource rsrc;
 			of_address_to_resource(np, 0, &rsrc);
-			if ((rsrc.start & 0xfffff) == primary_phb_addr)
-				fsl_add_bridge(np, 1);
-			else
-				fsl_add_bridge(np, 0);
+			if ((rsrc.start & 0xfffff) == primary_phb_addr) {
+				if (fsl_add_bridge(np, 1) < 0)
+					continue;
+			} else {
+				if (fsl_add_bridge(np, 0) < 0)
+					continue;
+			}
 
 			hose = pci_find_hose_for_OF_device(np);
+			if (!hose)
+				continue;
 			max = min(max, hose->dma_window_base_cur +
 					hose->dma_window_size);
 		}
diff --git a/arch/powerpc/platforms/85xx/mpc85xx_mds.c b/arch/powerpc/platforms/85xx/mpc85xx_mds.c
index 495cfd9..3a68122 100644
--- a/arch/powerpc/platforms/85xx/mpc85xx_mds.c
+++ b/arch/powerpc/platforms/85xx/mpc85xx_mds.c
@@ -351,12 +351,17 @@ static void __init mpc85xx_mds_setup_arch(void)
 		    of_device_is_compatible(np, "fsl,mpc8548-pcie")) {
 			struct resource rsrc;
 			of_address_to_resource(np, 0, &rsrc);
-			if ((rsrc.start & 0xfffff) == 0x8000)
-				fsl_add_bridge(np, 1);
-			else
-				fsl_add_bridge(np, 0);
+			if ((rsrc.start & 0xfffff) == 0x8000) {
+				if (fsl_add_bridge(np, 1) < 0)
+					continue;
+			} else {
+				if (fsl_add_bridge(np, 0) < 0)
+					continue;
+			}
 
 			hose = pci_find_hose_for_OF_device(np);
+			if (!hose)
+				continue;
 			max = min(max, hose->dma_window_base_cur +
 					hose->dma_window_size);
 		}
diff --git a/arch/powerpc/platforms/85xx/p1022_ds.c b/arch/powerpc/platforms/85xx/p1022_ds.c
index 2bf4342..614768b 100644
--- a/arch/powerpc/platforms/85xx/p1022_ds.c
+++ b/arch/powerpc/platforms/85xx/p1022_ds.c
@@ -292,12 +292,17 @@ static void __init p1022_ds_setup_arch(void)
 
 		of_address_to_resource(np, 0, &rsrc);
 
-		if ((rsrc.start & 0xfffff) == 0x8000)
-			fsl_add_bridge(np, 1);
-		else
-			fsl_add_bridge(np, 0);
+		if ((rsrc.start & 0xfffff) == 0x8000) {
+			if (fsl_add_bridge(np, 1) < 0)
+				continue;
+		} else {
+			if (fsl_add_bridge(np, 0) < 0)
+				continue;
+		}
 
 		hose = pci_find_hose_for_OF_device(np);
+		if (!hose)
+			continue;
 		max = min(max, hose->dma_window_base_cur +
 			  hose->dma_window_size);
 	}
diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
index 569262c..819f29b 100644
--- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
+++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
@@ -83,11 +83,17 @@ mpc86xx_hpcn_setup_arch(void)
 	for_each_compatible_node(np, "pci", "fsl,mpc8641-pcie") {
 		struct resource rsrc;
 		of_address_to_resource(np, 0, &rsrc);
-		if ((rsrc.start & 0xfffff) == 0x8000)
-			fsl_add_bridge(np, 1);
-		else
-			fsl_add_bridge(np, 0);
+		if ((rsrc.start & 0xfffff) == 0x8000) {
+			if (fsl_add_bridge(np, 1) < 0)
+				continue;
+		} else {
+			if (fsl_add_bridge(np, 0) < 0)
+				continue;
+		}
+
 		hose = pci_find_hose_for_OF_device(np);
+		if (!hose)
+			continue;
 		max = min(max, hose->dma_window_base_cur +
 			  hose->dma_window_size);
 	}
-- 
1.7.5.4

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox