01 Nov, 2011

1 commit


26 Jul, 2011

1 commit

  • Remove custom implementation of hex_to_bin().

    Signed-off-by: Andy Shevchenko
    Cc: Ralf Baechle
    Cc: linux-mips@linux-mips.org
    To: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/1580/
    Acked-by: Florian Fainelli
    Signed-off-by: Ralf Baechle

    Andy Shevchenko
     

18 May, 2011

1 commit


29 Mar, 2011

1 commit


26 Mar, 2011

1 commit


07 Oct, 2010

1 commit

  • Add missing #inclusions of to a whole bunch of files that should
    really include it. Note that this can replace #inclusions of .

    This is required for the patch to sort out irqflags handling function naming to
    compile on MIPS.

    The problem is that these files require access to things like setup_irq() -
    which isn't available by #including

    Signed-off-by: David Howells
    Acked-by: Ralf Baechle

    David Howells
     

05 Aug, 2010

1 commit


30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

17 Dec, 2009

1 commit


03 Dec, 2009

1 commit


14 Nov, 2009

1 commit

  • Since commit 22242681cff52bfb7cba5d2a37b91802be7a4e4c ("MIPS: Extend
    COMMAND_LINE_SIZE"), CL_SIZE is 4096 and local array variables with this
    size will cause an build failure with default CONFIG_FRAME_WARN settings.

    Although current users of such array variables are all early bootstrap
    code and not likely to cause real stack overflow (thread_info corruption),
    it is preferable to to declare these arrays static with __initdata.

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     

17 Jun, 2009

1 commit


10 Mar, 2009

1 commit

  • Mikrotik's Routerboard 532 has two builtin buttons, from which one
    triggers a hardware reset. The other one is accessible through GPIO
    pin 1. Sadly, this pin is being multiplexed with UART0 input, so
    enabling it as interrupt source (as implied by the gpio-keys driver)
    is not possible unless UART0 has been turned off. The later one though
    is a rather bad idea as the Routerboard is an embedded device with
    only a single serial port, so it's almost always used as serial
    console device.

    This patch adds a driver based on INPUT_POLLDEV, which disables the
    UART and reconfigures GPIO pin 1 temporarily while reading the button
    state. This procedure works fine and has been tested as part of
    another, unpublished driver for this device.

    Signed-off-by: Phil Sutter
    Signed-off-by: Dmitry Torokhov

    Phil Sutter
     

31 Jan, 2009

12 commits

  • This kernel symbol provides a way for drivers to switch on alternate
    function for a certain GPIO pin. Turning it off is done implicitly when
    changing the GPIO direction, as that would be fixed when using the given
    pin als alternate function.

    Signed-off-by: Phil Sutter
    Signed-off-by: Ralf Baechle

    Phil Sutter
     
  • As rb532_dev3_ctl_res is not used by any platform device, it can be dropped
    when not used for holding the physical address of the device 3 controller.

    Also a size of one byte should suffice when ioremapping the physical
    address mentioned above, as only a single byte is being read from and
    written to it.

    Signed-off-by: Phil Sutter
    Signed-off-by: Ralf Baechle

    Phil Sutter
     
  • These kernel symbols are unused. Also, since dev3 init has been moved to
    devices.c, set_434_reg() breaks compiling as it uses dev3.

    Signed-off-by: Phil Sutter
    Signed-off-by: Ralf Baechle

    Phil Sutter
     
  • This code doesn't belong to gpio.c, as it's completely unrelated to
    GPIO. As dev1 and dev2 init code is in devices.c, it seems to be a more
    adequate place.

    Signed-off-by: Phil Sutter
    Signed-off-by: Ralf Baechle

    Phil Sutter
     
  • The data to be written is just a byte, so use writeb instead of writel.
    Also, dev3.base contains the address, not the data so referencing here
    is wrong.

    Signed-off-by: Phil Sutter
    Signed-off-by: Ralf Baechle

    Phil Sutter
     
  • This register just contains the address of the actual resource, so
    initialisation has to be the same as cf_slot0_res and nand_slot0_res.

    Signed-off-by: Phil Sutter
    Signed-off-by: Ralf Baechle

    Phil Sutter
     
  • As the korina ethernet driver uses platform_get_drvdata() to extract the
    driver specific data from the platform device, driver_data has to be
    used here.

    Signed-off-by: Phil Sutter
    Signed-off-by: Ralf Baechle

    Phil Sutter
     
  • Auto-detection works just fine, so use it instead of specifying the type
    manually. Also define a platform device for the uart, as suggested by
    David Daney.

    Signed-off-by: Phil Sutter
    Signed-off-by: Ralf Baechle

    Phil Sutter
     
  • As the pata-rb532-cf driver calls gpio_direction_input(), the calls to
    rb532_gpio_set_func() and rb532_gpio_direction_input() are not needed since
    the alternate function is automatically being disabled when changing the
    GPIO pin direction.
    The later two calls to rb532_gpio_set_{ilevel,istat}() are implicitly being
    done by the IRQ initialisation of pata-rb532-cf.

    Signed-off-by: Phil Sutter
    Signed-off-by: Ralf Baechle

    Phil Sutter
     
  • When a driver calls gpio_set_direction_{input,output}(), it obviously
    doesn't want the alternate function for that pin to be active (as the
    direction would not matter in that case). This patch ensures alternate
    function is disabled when the direction is being changed.

    Signed-off-by: Phil Sutter
    Signed-off-by: Ralf Baechle

    Phil Sutter
     
  • Interrupt Group 4 mapps the GPIO pins enabled as interrupt sources;
    add defines to make this clear when addressing them later in code.

    The mapped GPIOs support triggering on either level high or low. To
    achieve this, the set_type() function calls rb532_gpio_set_ilevel() for
    interrupts of the above mentioned group.

    As there is no way to alter the triggering characteristics of the other
    interrupts, accept level triggering on status high only. (This is just a
    guess; but as the system boots fine and interrupt-driven devices (e.g.
    serial console) work with no implications, it seems to be right.)

    To clear a GPIO mapped IRQ, the source has to be cleared (i.e., the
    interrupt status bit of the corresponding GPIO pin). This is done inside
    rb532_disable_irq().

    After applying these changes I could undo most of my former "fixes" to
    pata-rb532-cf. Particularly all interrupt handling can be done
    generically via set_irq_type() as it was before.

    Signed-off-by: Phil Sutter
    Signed-off-by: Ralf Baechle

    Phil Sutter
     
  • The algorithm works unconditionally. If bitval is one, the first line is
    a no op and the second line sets the bit at offset position. Vice versa,
    if bitval is zero, the first line clears the bit at offset position and
    the second line is a no op.

    Signed-off-by: Phil Sutter
    Signed-off-by: Ralf Baechle

    Phil Sutter
     

21 Nov, 2008

2 commits

  • As gpiolib doesn't support pin multiplexing, it provides no way to
    access the GPIOFUNC register. Also there is no support for setting
    interrupt status and level. These functions provide access to them and
    are needed by the CompactFlash driver.

    Signed-off-by: Phil Sutter
    Signed-off-by: Ralf Baechle

    Phil Sutter
     
  • This patch fixes the wrong use of GPIO register offsets
    in devices.c. To avoid further problems, use gpio_get_value
    to return the NAND status instead of our own expanded code.

    Also define the zero offset of the alternate function register to allow
    consistent access.

    Signed-off-by: Florian Fainelli
    Signed-off-by: Phil Sutter
    Signed-off-by: Ralf Baechle

    Florian Fainelli
     

28 Oct, 2008

2 commits


15 Oct, 2008

1 commit


11 Oct, 2008

8 commits


26 Aug, 2008

1 commit


31 Jul, 2008

1 commit

  • A recent generic change now catches such bugs:

    ...
    CC arch/mips/rb532/time.o
    cc1: warnings being treated as errors
    /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/mips/rb532/time.c: In function 'plat_time_init':
    /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/mips/rb532/time.c:55: error: comparison of distinct pointer types lacks a cast
    /home/bunk/linux/kernel-2.6/git/linux-2.6/arch/mips/rb532/time.c:66: error: comparison of distinct pointer types lacks a cast
    make[2]: *** [arch/mips/rb532/time.o] Error 1

    Reported-by: Adrian Bunk
    Signed-off-by: Adrian Bunk
    Signed-off-by: Ralf Baechle

    Adrian Bunk