main.c (9ef64cb4320df821638b508f79aa8b858cca99f0) main.c (ffc7689ddae5cbe12bde437ae0f2b386d568b5cd)
1/*
2 * Sonics Silicon Backplane
3 * Subsystem core
4 *
5 * Copyright 2005, Broadcom Corporation
6 * Copyright 2006, 2007, Michael Buesch <mb@bu3sch.de>
7 *
8 * Licensed under the GNU/GPL. See COPYING for details.

--- 491 unchanged lines hidden (view full) ---

500 continue;
501 }
502 list_move_tail(&bus->list, &buses);
503 }
504
505 return err;
506}
507
1/*
2 * Sonics Silicon Backplane
3 * Subsystem core
4 *
5 * Copyright 2005, Broadcom Corporation
6 * Copyright 2006, 2007, Michael Buesch <mb@bu3sch.de>
7 *
8 * Licensed under the GNU/GPL. See COPYING for details.

--- 491 unchanged lines hidden (view full) ---

500 continue;
501 }
502 list_move_tail(&bus->list, &buses);
503 }
504
505 return err;
506}
507
508static u8 ssb_ssb_read8(struct ssb_device *dev, u16 offset)
509{
510 struct ssb_bus *bus = dev->bus;
511
512 offset += dev->core_index * SSB_CORE_SIZE;
513 return readb(bus->mmio + offset);
514}
515
508static u16 ssb_ssb_read16(struct ssb_device *dev, u16 offset)
509{
510 struct ssb_bus *bus = dev->bus;
511
512 offset += dev->core_index * SSB_CORE_SIZE;
513 return readw(bus->mmio + offset);
514}
515
516static u32 ssb_ssb_read32(struct ssb_device *dev, u16 offset)
517{
518 struct ssb_bus *bus = dev->bus;
519
520 offset += dev->core_index * SSB_CORE_SIZE;
521 return readl(bus->mmio + offset);
522}
523
516static u16 ssb_ssb_read16(struct ssb_device *dev, u16 offset)
517{
518 struct ssb_bus *bus = dev->bus;
519
520 offset += dev->core_index * SSB_CORE_SIZE;
521 return readw(bus->mmio + offset);
522}
523
524static u32 ssb_ssb_read32(struct ssb_device *dev, u16 offset)
525{
526 struct ssb_bus *bus = dev->bus;
527
528 offset += dev->core_index * SSB_CORE_SIZE;
529 return readl(bus->mmio + offset);
530}
531
532static void ssb_ssb_write8(struct ssb_device *dev, u16 offset, u8 value)
533{
534 struct ssb_bus *bus = dev->bus;
535
536 offset += dev->core_index * SSB_CORE_SIZE;
537 writeb(value, bus->mmio + offset);
538}
539
524static void ssb_ssb_write16(struct ssb_device *dev, u16 offset, u16 value)
525{
526 struct ssb_bus *bus = dev->bus;
527
528 offset += dev->core_index * SSB_CORE_SIZE;
529 writew(value, bus->mmio + offset);
530}
531
532static void ssb_ssb_write32(struct ssb_device *dev, u16 offset, u32 value)
533{
534 struct ssb_bus *bus = dev->bus;
535
536 offset += dev->core_index * SSB_CORE_SIZE;
537 writel(value, bus->mmio + offset);
538}
539
540/* Ops for the plain SSB bus without a host-device (no PCI or PCMCIA). */
541static const struct ssb_bus_ops ssb_ssb_ops = {
540static void ssb_ssb_write16(struct ssb_device *dev, u16 offset, u16 value)
541{
542 struct ssb_bus *bus = dev->bus;
543
544 offset += dev->core_index * SSB_CORE_SIZE;
545 writew(value, bus->mmio + offset);
546}
547
548static void ssb_ssb_write32(struct ssb_device *dev, u16 offset, u32 value)
549{
550 struct ssb_bus *bus = dev->bus;
551
552 offset += dev->core_index * SSB_CORE_SIZE;
553 writel(value, bus->mmio + offset);
554}
555
556/* Ops for the plain SSB bus without a host-device (no PCI or PCMCIA). */
557static const struct ssb_bus_ops ssb_ssb_ops = {
558 .read8 = ssb_ssb_read8,
542 .read16 = ssb_ssb_read16,
543 .read32 = ssb_ssb_read32,
559 .read16 = ssb_ssb_read16,
560 .read32 = ssb_ssb_read32,
561 .write8 = ssb_ssb_write8,
544 .write16 = ssb_ssb_write16,
545 .write32 = ssb_ssb_write32,
546};
547
548static int ssb_fetch_invariants(struct ssb_bus *bus,
549 ssb_invariants_func_t get_invariants)
550{
551 struct ssb_init_invariants iv;

--- 622 unchanged lines hidden ---
562 .write16 = ssb_ssb_write16,
563 .write32 = ssb_ssb_write32,
564};
565
566static int ssb_fetch_invariants(struct ssb_bus *bus,
567 ssb_invariants_func_t get_invariants)
568{
569 struct ssb_init_invariants iv;

--- 622 unchanged lines hidden ---