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 --- |