linux-hardened/drivers/bcma
Linus Torvalds 28f3d71761 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull more networking updates from David Miller:
 "Ok, everything from here on out will be bug fixes."

1) One final sync of wireless and bluetooth stuff from John Linville.
   These changes have all been in his tree for more than a week, and
   therefore have had the necessary -next exposure.  John was just away
   on a trip and didn't have a change to send the pull request until a
   day or two ago.

2) Put back some defines in user exposed header file areas that were
   removed during the tokenring purge.  From Stephen Hemminger and Paul
   Gortmaker.

3) A bug fix for UDP hash table allocation got lost in the pile due to
   one of those "you got it..  no I've got it.." situations.  :-)

   From Tim Bird.

4) SKB coalescing in TCP needs to have stricter checks, otherwise we'll
   try to coalesce overlapping frags and crash.  Fix from Eric Dumazet.

5) RCU routing table lookups can race with free_fib_info(), causing
   crashes when we deref the device pointers in the route.  Fix by
   releasing the net device in the RCU callback.  From Yanmin Zhang.

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (293 commits)
  tcp: take care of overlaps in tcp_try_coalesce()
  ipv4: fix the rcu race between free_fib_info and ip_route_output_slow
  mm: add a low limit to alloc_large_system_hash
  ipx: restore token ring define to include/linux/ipx.h
  if: restore token ring ARP type to header
  xen: do not disable netfront in dom0
  phy/micrel: Fix ID of KSZ9021
  mISDN: Add X-Tensions USB ISDN TA XC-525
  gianfar:don't add FCB length to hard_header_len
  Bluetooth: Report proper error number in disconnection
  Bluetooth: Create flags for bt_sk()
  Bluetooth: report the right security level in getsockopt
  Bluetooth: Lock the L2CAP channel when sending
  Bluetooth: Restore locking semantics when looking up L2CAP channels
  Bluetooth: Fix a redundant and problematic incoming MTU check
  Bluetooth: Add support for Foxconn/Hon Hai AR5BBU22 0489:E03C
  Bluetooth: Fix EIR data generation for mgmt_device_found
  Bluetooth: Fix Inquiry with RSSI event mask
  Bluetooth: improve readability of l2cap_seq_list code
  Bluetooth: Fix skb length calculation
  ...
2012-05-24 11:54:29 -07:00
..
bcma_private.h bcma: add PCIe host controller 2012-02-06 14:53:04 -05:00
core.c bcma: Add flush for BCMA_RESET_CTL write 2012-05-16 12:46:04 -04:00
driver_chipcommon.c bcma: fix implicit use of export.h contents 2011-10-31 19:32:02 -04:00
driver_chipcommon_pmu.c bcma: silence PMU warning for BCM4331 2012-03-07 13:56:37 -05:00
driver_mips.c bcma: get CPU clock 2011-08-08 14:29:29 -04:00
driver_pci.c bcma: add bcma_core_pci_config_fixup() 2012-05-16 12:45:22 -04:00
driver_pci_host.c bcma: reads/writes are always 4 bytes, so always map 4 bytes 2012-05-16 12:46:04 -04:00
host_pci.c bcma: Add __devexit to bcma_host_pci_remove 2012-05-16 12:46:04 -04:00
host_soc.c bcma: add SOC bus 2011-08-08 14:29:25 -04:00
Kconfig bcma: fix build error on MIPS; implicit pcibios_enable_device 2012-04-10 14:13:30 -04:00
main.c bcma: export bcma_find_core 2012-03-05 15:20:50 -05:00
Makefile bcma: add mips driver 2011-08-08 14:29:26 -04:00
README bcma: add Broadcom specific AMBA bus driver 2011-05-10 15:54:54 -04:00
scan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-05-24 11:54:29 -07:00
scan.h bcma: add Broadcom specific AMBA bus driver 2011-05-10 15:54:54 -04:00
sprom.c bcma/ssb: parse new attributes from sprom 2012-05-16 12:45:22 -04:00
TODO bcma: add Broadcom specific AMBA bus driver 2011-05-10 15:54:54 -04:00

Broadcom introduced new bus as replacement for older SSB. It is based on AMBA,
however from programming point of view there is nothing AMBA specific we use.

Standard AMBA drivers are platform specific, have hardcoded addresses and use
AMBA standard fields like CID and PID.

In case of Broadcom's cards every device consists of:
1) Broadcom specific AMBA device. It is put on AMBA bus, but can not be treated
   as standard AMBA device. Reading it's CID or PID can cause machine lockup.
2) AMBA standard devices called ports or wrappers. They have CIDs (AMBA_CID)
   and PIDs (0x103BB369), but we do not use that info for anything. One of that
   devices is used for managing Broadcom specific core.

Addresses of AMBA devices are not hardcoded in driver and have to be read from
EPROM.

In this situation we decided to introduce separated bus. It can contain up to
16 devices identified by Broadcom specific fields: manufacturer, id, revision
and class.