Skip to content
Permalink
Tag: sunxi-clk-for-…
Commits on Nov 10, 2013
  1. drivers: clk: sunxi: Fix memory leakage in clk-sunxi.c

    m0nad authored and mripard committed Oct 18, 2013
    Fix a possible memory leak in sun4i_osc_clk_setup().
    Moved clock-frequency check to save superfluous allocation.
    
    Signed-off-by: Victor N. Ramos Mello <victornrm@gmail.com>
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
  2. clk: sunxi: protect core clocks from accidental shutdown

    elopez authored and mripard committed Sep 21, 2013
    Some important clocks may get disabled as a side effect of another clock
    being disabled, because they have no consumers. This patch implements a
    mechanism so those clocks can be claimed by the driver and therefore
    remain enabled at all times.
    
    Signed-off-by: Emilio López <emilio@elopez.com.ar>
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
  3. clk: sunxi: factors: clear variables before using them

    elopez authored and mripard committed Sep 21, 2013
    Random bits may get into our factors if we don't clear n, k, m and p.
    
    Signed-off-by: Emilio López <emilio@elopez.com.ar>
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
  4. clk: sunxi: factors: fix off-by-one masks

    elopez authored and mripard committed Sep 21, 2013
    The previous code would generate one bit too long masks, and was
    needlessly complicated. This patch replaces it by simpler code that can
    generate the masks correctly.
    
    Signed-off-by: Emilio López <emilio@elopez.com.ar>
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
  5. clk: composite: .determine_rate support

    elopez authored and mripard committed Sep 15, 2013
    This commit adds .determine_rate support to the composite clock. It will
    use the .determine_rate callback from the rate component if available,
    and fall back on the mux component otherwise. This allows composite
    clocks to enjoy the benefits of automatic clock reparenting.
    
    Signed-off-by: Emilio López <emilio@elopez.com.ar>
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Commits on Sep 16, 2013
  1. Linux 3.12-rc1

    torvalds committed Sep 16, 2013
  2. Merge branch 'timers/core' of git://git.kernel.org/pub/scm/linux/kern…

    torvalds committed Sep 16, 2013
    …el/git/tip/tip
    
    Pull timer code update from Thomas Gleixner:
     - armada SoC clocksource overhaul with a trivial merge conflict
     - Minor improvements to various SoC clocksource drivers
    
    * 'timers/core' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      clocksource: armada-370-xp: Add detailed clock requirements in devicetree binding
      clocksource: armada-370-xp: Get reference fixed-clock by name
      clocksource: armada-370-xp: Replace WARN_ON with BUG_ON
      clocksource: armada-370-xp: Fix device-tree binding
      clocksource: armada-370-xp: Introduce new compatibles
      clocksource: armada-370-xp: Use CLOCKSOURCE_OF_DECLARE
      clocksource: armada-370-xp: Simplify TIMER_CTRL register access
      clocksource: armada-370-xp: Use BIT()
      ARM: timer-sp: Set dynamic irq affinity
      ARM: nomadik: add dynamic irq flag to the timer
      clocksource: sh_cmt: 32-bit control register support
      clocksource: em_sti: Convert to devm_* managed helpers
  3. Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6

    torvalds committed Sep 16, 2013
    Pull CIFS fixes from Steve French:
     "Two minor cifs fixes and a minor documentation cleanup for cifs.txt"
    
    * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
      cifs: update cifs.txt and remove some outdated infos
      cifs: Avoid calling unlock_page() twice in cifs_readpage() when using fscache
      cifs: Do not take a reference to the page in cifs_readpage_worker()
  4. Merge tag 'upstream-3.12-rc1' of git://git.infradead.org/linux-ubi

    torvalds committed Sep 16, 2013
    Pull UBI fixes from Artem Bityutskiy:
     "Just a single fastmap fix plus a regression fix"
    
    * tag 'upstream-3.12-rc1' of git://git.infradead.org/linux-ubi:
      UBI: Fix invalidate_fastmap()
      UBI: Fix PEB leak in wear_leveling_worker()
  5. Merge tag 'upstream-3.12-rc1' of git://git.infradead.org/linux-ubifs

    torvalds committed Sep 16, 2013
    Pull ubifs fix from Artem Bityutskiy:
     "Just one patch which fixes the power-cut recovery testing mode.
    
      I'll start using a single UBI/UBIFS tree instead of 2 trees from now
      on.  So in the future you'll get 1 small pull request instead of 2
      tiny ones"
    
    * tag 'upstream-3.12-rc1' of git://git.infradead.org/linux-ubifs:
      UBIFS: remove invalid warn msg with tst_recovery enabled
Commits on Sep 15, 2013
  1. Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upst…

    torvalds committed Sep 15, 2013
    …ream-linus
    
    Pull MIPS fixes from Ralf Baechle:
     "These are four patches for three construction sites:
    
       - Fix register decoding for the combination of multi-core processors
         and multi-threading.
    
       - Two more fixes that are part of the ongoing DECstation resurrection
         work.  One of these touches a DECstation-only network driver.
    
       - Finally Markos' trivial build fix for the AP/SP support.
    
      (With this applied now all MIPS defconfigs are building again)"
    
    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
      MIPS: kernel: vpe: Make vpe_attrs an array of pointers.
      MIPS: Fix SMP core calculations when using MT support.
      MIPS: DECstation I/O ASIC DMA interrupt handling fix
      MIPS: DECstation HRT initialization rearrangement
  2. Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers…

    torvalds committed Sep 15, 2013
    …-x86
    
    Pull x86 platform updates from Matthew Garrett:
     "Nothing amazing here, almost entirely cleanups and minor bugfixes and
      one bit of hardware enablement in the amilo-rfkill driver"
    
    * 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86:
      platform/x86: panasonic-laptop: reuse module_acpi_driver
      samsung-laptop: fix config build error
      platform: x86: remove unnecessary platform_set_drvdata()
      amilo-rfkill: Enable using amilo-rfkill with the FSC Amilo L1310.
      wmi: parse_wdg() should return kernel error codes
      hp_wmi: Fix unregister order in hp_wmi_rfkill_setup()
      platform: replace strict_strto*() with kstrto*()
      x86: irst: use module_acpi_driver to simplify the code
      x86: smartconnect: use module_acpi_driver to simplify the code
      platform samsung-q10: use ACPI instead of direct EC calls
      thinkpad_acpi: add the ability setting TPACPI_LED_NONE by quirk
      thinkpad_acpi: return -NODEV while operating uninitialized LEDs
  3. Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    torvalds committed Sep 15, 2013
    …t/jejb/scsi
    
    Pull misc SCSI driver updates from James Bottomley:
     "This patch set is a set of driver updates (megaraid_sas, fnic, lpfc,
      ufs, hpsa) we also have a couple of bug fixes (sd out of bounds and
      ibmvfc error handling) and the first round of esas2r checker fixes and
      finally the much anticipated big endian additions for megaraid_sas"
    
    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (47 commits)
      [SCSI] fnic: fnic Driver Tuneables Exposed through CLI
      [SCSI] fnic: Kernel panic while running sh/nosh with max lun cfg
      [SCSI] fnic: Hitting BUG_ON(io_req->abts_done) in fnic_rport_exch_reset
      [SCSI] fnic: Remove QUEUE_FULL handling code
      [SCSI] fnic: On system with >1.1TB RAM, VIC fails multipath after boot up
      [SCSI] fnic: FC stat param seconds_since_last_reset not getting updated
      [SCSI] sd: Fix potential out-of-bounds access
      [SCSI] lpfc 8.3.42: Update lpfc version to driver version 8.3.42
      [SCSI] lpfc 8.3.42: Fixed issue of task management commands having a fixed timeout
      [SCSI] lpfc 8.3.42: Fixed inconsistent spin lock usage.
      [SCSI] lpfc 8.3.42: Fix driver's abort loop functionality to skip IOs already getting aborted
      [SCSI] lpfc 8.3.42: Fixed failure to allocate SCSI buffer on PPC64 platform for SLI4 devices
      [SCSI] lpfc 8.3.42: Fix WARN_ON when driver unloads
      [SCSI] lpfc 8.3.42: Avoided making pci bar ioremap call during dual-chute WQ/RQ pci bar selection
      [SCSI] lpfc 8.3.42: Fixed driver iocbq structure's iocb_flag field running out of space
      [SCSI] lpfc 8.3.42: Fix crash on driver load due to cpu affinity logic
      [SCSI] lpfc 8.3.42: Fixed logging format of setting driver sysfs attributes hard to interpret
      [SCSI] lpfc 8.3.42: Fixed back to back RSCNs discovery failure.
      [SCSI] lpfc 8.3.42: Fixed race condition between BSG I/O dispatch and timeout handling
      [SCSI] lpfc 8.3.42: Fixed function mode field defined too small for not recognizing dual-chute mode
      ...
  4. Merge branch 'slab/next' of git://git.kernel.org/pub/scm/linux/kernel…

    torvalds committed Sep 15, 2013
    …/git/penberg/linux
    
    Pull SLAB update from Pekka Enberg:
     "Nothing terribly exciting here apart from Christoph's kmalloc
      unification patches that brings sl[aou]b implementations closer to
      each other"
    
    * 'slab/next' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/linux:
      slab: Use correct GFP_DMA constant
      slub: remove verify_mem_not_deleted()
      mm/sl[aou]b: Move kmallocXXX functions to common code
      mm, slab_common: add 'unlikely' to size check of kmalloc_slab()
      mm/slub.c: beautify code for removing redundancy 'break' statement.
      slub: Remove unnecessary page NULL check
      slub: don't use cpu partial pages on UP
      mm/slub: beautify code for 80 column limitation and tab alignment
      mm/slub: remove 'per_cpu' which is useless variable
  5. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    torvalds committed Sep 15, 2013
    …/git/dtor/input
    
    Pull input update from Dmitry Torokhov:
     "The only change is David Hermann's new EVIOCREVOKE evdev ioctl that
      allows safely passing file descriptors to input devices to session
      processes and later being able to stop delivery of events through
      these fds so that inactive sessions will no longer receive user input
      that does not belong to them"
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
      Input: evdev - add EVIOCREVOKE ioctl
  6. vfs: fix typo in comment in recent dentry work

    torvalds committed Sep 15, 2013
    Sedat points out that I transposed some letters in "LRU" and wrote "RLU"
    instead in one of the new comments explaining the flow.  Let's just fix
    it.
    
    Reported-by: Sedat Dilek <sedat.dilek@jpberlin.de>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  7. partitions/efi: loosen check fot pmbr size in lba

    Davidlohr Bueso authored and torvalds committed Sep 13, 2013
    Matt found that commit 27a7c64 ("partitions/efi: account for pmbr
    size in lba") caused his GPT formatted eMMC device not to boot.  The
    reason is that this commit enforced Linux to always check the lesser of
    the whole disk or 2Tib for the pMBR size in LBA.  While most disk
    partitioning tools out there create a pMBR with these characteristics,
    Microsoft does not, as it always sets the entry to the maximum 32-bit
    limitation - even though a drive may be smaller than that[1].
    
    Loosen this check and only verify that the size is either the whole disk
    or 0xFFFFFFFF.  No tool in its right mind would set it to any value
    other than these.
    
    [1] http://thestarman.pcministry.com/asm/mbr/GPT.htm#GPTPT
    
    Reported-and-tested-by: Matt Porter <matt.porter@linaro.org>
    Signed-off-by: Davidlohr Bueso <davidlohr@hp.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Commits on Sep 14, 2013
  1. Merge tag 'writeback-fixes' of git://git.kernel.org/pub/scm/linux/ker…

    torvalds committed Sep 14, 2013
    …nel/git/wfg/linux
    
    Pull writeback fix from Wu Fengguang:
     "A trivial writeback fix"
    
    * tag 'writeback-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux:
      writeback: Do not sort b_io list only because of block device inode
  2. vfs: fix dentry LRU list handling and nr_dentry_unused accounting

    torvalds committed Sep 14, 2013
    The LRU list changes interacted badly with our nr_dentry_unused
    accounting, and even worse with the new DCACHE_LRU_LIST bit logic.
    
    This introduces helper functions to make sure everything follows the
    proper dcache d_lru list rules: the dentry cache is complicated by the
    fact that some of the hotpaths don't even want to look at the LRU list
    at all, and the fact that we use the same list entry in the dentry for
    both the LRU list and for our temporary shrinking lists when removing
    things from the LRU.
    
    The helper functions temporarily have some extra sanity checking for the
    flag bits that have to match the current LRU state of the dentry.  We'll
    remove that before the final 3.12 release, but considering how easy it
    is to get wrong, this first cleanup version has some very particular
    sanity checking.
    
    Acked-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Commits on Sep 13, 2013
  1. cifs: update cifs.txt and remove some outdated infos

    Björn Jacke authored and smfrench committed Sep 10, 2013
    Acked-by: Jeff Layton <jlayton@redhat.com>
    Signed-off-by: Björn JACKE <bj@sernet.de>
    Signed-off-by: Steve French <smfrench@gmail.com>
  2. cifs: Avoid calling unlock_page() twice in cifs_readpage() when using…

    Sachin Prabhu authored and smfrench committed Sep 13, 2013
    … fscache
    
    When reading a single page with cifs_readpage(), we make a call to
    fscache_read_or_alloc_page() which once done, asynchronously calls
    the completion function cifs_readpage_from_fscache_complete(). This
    completion function unlocks the page once it has been populated from
    cache. The module then attempts to unlock the page a second time in
    cifs_readpage() which leads to warning messages.
    
    In case of a successful call to fscache_read_or_alloc_page() we should skip
    the second unlock_page() since this will be called by the
    cifs_readpage_from_fscache_complete() once the page has been populated by
    fscache.
    
    With the modifications to cifs_readpage_worker(), we will need to re-grab the
    page lock in cifs_write_begin().
    
    The problem was first noticed when testing new fscache patches for cifs.
    https://bugzilla.redhat.com/show_bug.cgi?id=1005737
    
    Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
    Reviewed-by: Jeff Layton <jlayton@redhat.com>
    Signed-off-by: Steve French <smfrench@gmail.com>
  3. cifs: Do not take a reference to the page in cifs_readpage_worker()

    Sachin Prabhu authored and smfrench committed Sep 13, 2013
    We do not need to take a reference to the pagecache in
    cifs_readpage_worker() since the calling function will have already
    taken one before passing the pointer to the page as an argument to the
    function.
    
    Signed-off-by: Sachin Prabhu <sprabhu@redhat.com>
    Reviewed-by: Jeff Layton <jlayton@redhat.com>
    Signed-off-by: Steve French <smfrench@gmail.com>
  4. Merge tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/ker…

    torvalds committed Sep 13, 2013
    …nel/git/groeck/linux-staging
    
    Pull hwmon fixes from Guenter Roeck:
     "Some more low risk cleanup patches:
    
       - Remove unnecessary pci_set_drvdata in k10temp driver from Jingoo Han
       - Fix return values in several drivers from Sachin Kamat
       - Remove redundant break in amc6821 driver from Sachin Kamat"
    
    * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
      hwmon: (k10temp) remove unnecessary pci_set_drvdata()
      hwmon: (tmp421) Fix return value
      hwmon: (amc6821) Remove redundant break
      hwmon: (amc6821) Fix return value
      hwmon: (ibmaem) Fix return value
      hwmon: (emc2103) Fix return value
  5. Merge tag 'xtensa-next-20130912' of git://github.com/czankel/xtensa-l…

    torvalds committed Sep 13, 2013
    …inux
    
    Pull Xtensa updates from Chris Zankel.
    
    * tag 'xtensa-next-20130912' of git://github.com/czankel/xtensa-linux:
      xtensa: Fix broken allmodconfig build
      xtensa: remove CCOUNT_PER_JIFFY
      xtensa: fix !CONFIG_XTENSA_CALIBRATE_CCOUNT build failure
      xtensa: don't use echo -e needlessly
      xtensa: new fast_alloca handler
      xtensa: keep a3 and excsave1 on entry to exception handlers
      xtensa: enable kernel preemption
      xtensa: check thread flags atomically on return from user exception
  6. Merge git://git.kvack.org/~bcrl/aio-next

    torvalds committed Sep 13, 2013
    Pull aio changes from Ben LaHaise:
     "First off, sorry for this pull request being late in the merge window.
      Al had raised a couple of concerns about 2 items in the series below.
      I addressed the first issue (the race introduced by Gu's use of
      mm_populate()), but he has not provided any further details on how he
      wants to rework the anon_inode.c changes (which were sent out months
      ago but have yet to be commented on).
    
      The bulk of the changes have been sitting in the -next tree for a few
      months, with all the issues raised being addressed"
    
    * git://git.kvack.org/~bcrl/aio-next: (22 commits)
      aio: rcu_read_lock protection for new rcu_dereference calls
      aio: fix race in ring buffer page lookup introduced by page migration support
      aio: fix rcu sparse warnings introduced by ioctx table lookup patch
      aio: remove unnecessary debugging from aio_free_ring()
      aio: table lookup: verify ctx pointer
      staging/lustre: kiocb->ki_left is removed
      aio: fix error handling and rcu usage in "convert the ioctx list to table lookup v3"
      aio: be defensive to ensure request batching is non-zero instead of BUG_ON()
      aio: convert the ioctx list to table lookup v3
      aio: double aio_max_nr in calculations
      aio: Kill ki_dtor
      aio: Kill ki_users
      aio: Kill unneeded kiocb members
      aio: Kill aio_rw_vect_retry()
      aio: Don't use ctx->tail unnecessarily
      aio: io_cancel() no longer returns the io_event
      aio: percpu ioctx refcount
      aio: percpu reqs_available
      aio: reqs_active -> reqs_available
      aio: fix build when migration is disabled
      ...
  7. Merge branch 'genirq' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    torvalds committed Sep 13, 2013
    …t/s390/linux
    
    Pull generic hardirq option removal from Martin Schwidefsky:
     "All architectures now use generic hardirqs, s390 has been last to
      switch.
    
      With that the code under !CONFIG_GENERIC_HARDIRQS and the related
      HAVE_GENERIC_HARDIRQS and GENERIC_HARDIRQS config options can be
      removed.  Yay!"
    
    * 'genirq' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
      Remove GENERIC_HARDIRQ config option
  8. Merge branch 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/g…

    torvalds committed Sep 13, 2013
    …it/mmarek/kbuild
    
    Pull kconfig fix from Michal Marek:
     "This is a fix for a regression caused by my previous pull request.
    
      A sed command in scripts/config that used colons as separator was
      accidentally changed to use slashes, which fails when you use slashes
      in a value.  Changing it back to colons is of course not a proper fix,
      but at least it will be broken in the same way it had been for four
      years.  A proper fix is pending"
    
    * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
      scripts/config: fix variable substitution command
  9. Merge tag 'blackfin-for-linus' of git://git.kernel.org/pub/scm/linux/…

    torvalds committed Sep 13, 2013
    …kernel/git/realmz6/blackfin-linux
    
    Pull blackfin updates from Steven Miao.
    
    * tag 'blackfin-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/realmz6/blackfin-linux:
      blackfin: Ignore generated uImages
      blackfin: Add STMMAC platform data to enable dwmac1000 driver on BF60x.
      bf609: adv7343: add S-Video and Component output support
      bf609: add adv7343 video encoder support
      clock: add stmmac clock for ethernet driver
      blackfin: scb: Add SCB1 to SCB9 config options and data.
      blackfin: scb: Add system crossbar init code.
  10. Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6

    torvalds committed Sep 13, 2013
    Pull crypto fixes from Herbert Xu:
     "This fixes a 7+ year race condition in the crypto API that causes
      sporadic crashes when multiple threads load the same algorithm.
    
      It also fixes the crct10dif algorithm again to prevent boot failures
      on systems where the initramfs tool ignores module softdeps"
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
      crypto: crct10dif - Add fallback for broken initrds
      crypto: api - Fix race condition in larval lookup
  11. MIPS: kernel: vpe: Make vpe_attrs an array of pointers.

    Markos Chandras authored and ralfbaechle committed Sep 11, 2013
    Commit 567b21e
    "mips: convert vpe_class to use dev_groups"
    
    broke the build on MIPS since vpe_attrs should be an array
    of 'struct device_attribute' pointers.
    
    Fixes the following build problem:
    arch/mips/kernel/vpe.c:1372:2: error: missing braces around initializer
    [-Werror=missing-braces]
    arch/mips/kernel/vpe.c:1372:2: error: (near initialization for 'vpe_attrs[0]')
    [-Werror=missing-braces]
    
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: John Crispin <blogic@openwrt.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/5819/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  12. Remove GENERIC_HARDIRQ config option

    Martin Schwidefsky
    Martin Schwidefsky committed Aug 30, 2013
    After the last architecture switched to generic hard irqs the config
    options HAVE_GENERIC_HARDIRQS & GENERIC_HARDIRQS and the related code
    for !CONFIG_GENERIC_HARDIRQS can be removed.
    
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
  13. scripts/config: fix variable substitution command

    chauplac authored and michal42 committed Sep 13, 2013
    Commit 229455bc02b87f7128f190c4491b4ceffff38648 accidentally changed the
    separator between sed `s' command and its parameters from ':' to '/'.
    
    Revert this change.
    
    Reported-and-tested-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Clement Chauplannaz <chauplac@gmail.com>
    Signed-off-by: Michal Marek <mmarek@suse.cz>
  14. MIPS: Fix SMP core calculations when using MT support.

    Leonid Yegoshin authored and ralfbaechle committed Sep 11, 2013
    The TCBIND register is only available if the core has MT support. It
    should not be read otherwise. Secondly, the number of TCs (siblings)
    are calculated differently depending on if the kernel is configured
    as SMVP or SMTC.
    
    Signed-off-by: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com>
    Signed-off-by: Steven J. Hill <Steven.Hill@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/5822/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  15. MIPS: DECstation I/O ASIC DMA interrupt handling fix

    Maciej W. Rozycki authored and ralfbaechle committed Sep 12, 2013
    This change complements commit d0da7c0
    and brings clear_ioasic_irq back, renaming it to clear_ioasic_dma_irq at
    the same time, to make I/O ASIC DMA interrupts functional.
    
    Unlike ordinary I/O ASIC interrupts DMA interrupts need to be deasserted
    by software by writing 0 to the respective bit in I/O ASIC's System
    Interrupt Register (SIR), similarly to how CP0.Cause.IP0 and CP0.Cause.IP1
    bits are handled in the CPU (the difference is SIR DMA interrupt bits are
    R/W0C so there's no need for an RMW cycle).  Otherwise the handler is
    reentered over and over again.
    
    The only current user is the DEC LANCE Ethernet driver and its extremely
    uncommon DMA memory error handler that does not care when exactly the
    interrupt is cleared.  Anticipating the use of DMA interrupts by the Zilog
    SCC driver this change however exports clear_ioasic_dma_irq for device
    drivers to choose the right application-specific sequence to clear the
    request explicitly rather than calling it implicitly in the .irq_eoi
    handler of `struct irq_chip'.  Previously these interrupts were cleared in
    the .end handler of the said structure, before it was removed.
    
    Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/5826/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  16. MIPS: DECstation HRT initialization rearrangement

    Maciej W. Rozycki authored and ralfbaechle committed Sep 12, 2013
    Not all I/O ASIC versions have the free-running counter implemented, an
    early revision used in the 5000/1xx models aka 3MIN and 4MIN did not have
    it.  Therefore we cannot unconditionally use it as a clock source.
    Fortunately if not implemented its register slot has a fixed value so it
    is enough if we check for the value at the end of the calibration period
    being the same as at the beginning.
    
    This also means we need to look for another high-precision clock source on
    the systems affected.  The 5000/1xx can have an R4000SC processor
    installed where the CP0 Count register can be used as a clock source.
    Unfortunately all the R4k DECstations suffer from the missed timer
    interrupt on CP0 Count reads erratum, so we cannot use the CP0 timer as a
    clock source and a clock event both at a time.  However we never need an
    R4k clock event device because all DECstations have a DS1287A RTC chip
    whose periodic interrupt can be used as a clock source.
    
    This gives us the following four configuration possibilities for I/O ASIC
    DECstations:
    
    1. No I/O ASIC counter and no CP0 timer, e.g. R3k 5000/1xx (3MIN).
    
    2. No I/O ASIC counter but the CP0 timer, i.e. R4k 5000/150 (4MIN).
    
    3. The I/O ASIC counter but no CP0 timer, e.g. R3k 5000/240 (3MAX+).
    
    4. The I/O ASIC counter and the CP0 timer, e.g. R4k 5000/260 (4MAX+).
    
    For #1 and #2 this change stops the I/O ASIC free-running counter from
    being installed as a clock source of a 0Hz frequency.  For #2 it also
    arranges for the CP0 timer to be used as a clock source rather than a
    clock event device, because having an accurate wall clock is more
    important than a high-precision interval timer.  For #3 there is no
    change.  For #4 the change makes the I/O ASIC free-running counter
    installed as a clock source so that the CP0 timer can be used as a clock
    event device.
    
    Unfortunately the use of the CP0 timer as a clock event device relies on a
    succesful completion of c0_compare_interrupt.  That never happens, because
    while waiting for a CP0 Compare interrupt to happen the function spins in
    a loop reading the CP0 Count register.  This makes the CP0 Count erratum
    trigger reliably causing the interrupt waited for to be lost in all cases.
    As a result #4 resorts to using the CP0 timer as a clock source as well,
    just as #2.  However we want to keep this separate arrangement in case
    (hope) c0_compare_interrupt is eventually rewritten such that it avoids
    the erratum.
    
    Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/5825/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Older
You can’t perform that action at this time.