09 Mar, 2017

1 commit

  • The MTR_DRAM_WIDTH macro returns the data width. It is sometimes used
    as if it returned a boolean true if the width if 8. Fix the tests where
    MTR_DRAM_WIDTH is misused.

    Signed-off-by: Jérémy Lefaure
    Cc: linux-edac
    Link: http://lkml.kernel.org/r/20170309011809.8340-1-jeremy.lefaure@lse.epita.fr
    Signed-off-by: Borislav Petkov

    Jérémy Lefaure
     

15 Dec, 2016

1 commit


05 Apr, 2014

1 commit

  • Pull media updates from Mauro Carvalho Chehab:
    "The main set of series of patches for media subsystem, including:
    - document RC sysfs class
    - added an API to setup scancode to allow waking up systems using the
    Remote Controller
    - add API for SDR devices. Drivers are still on staging
    - some API improvements for getting EDID data from media
    inputs/outputs
    - new DVB frontend driver for drx-j (ATSC)
    - one driver (it913x/it9137) got removed, in favor of an improvement
    on another driver (af9035)
    - added a skeleton V4L2 PCI driver at documentation
    - added a dual flash driver (lm3646)
    - added a new IR driver (img-ir)
    - added an IR scancode decoder for the Sharp protocol
    - some improvements at the usbtv driver, to allow its core to be
    reused.
    - added a new SDR driver (rtl2832u_sdr)
    - added a new tuner driver (msi001)
    - several improvements at em28xx driver to fix PM support, device
    removal and to split the V4L2 specific bits into a separate
    sub-driver
    - one driver got converted to videobuf2 (s2255drv)
    - the e4000 tuner driver now follows an improved binding model
    - some fixes at V4L2 compat32 code
    - several fixes and enhancements at videobuf2 code
    - some cleanups at V4L2 API documentation
    - usual driver enhancements, new board additions and misc fixups"

    [ NOTE! This merge effective drops commit 4329b93b283c ("of: Reduce
    indentation in of_graph_get_next_endpoint").

    The of_graph_get_next_endpoint() function was moved and renamed by
    commit fd9fdb78a9bf ("[media] of: move graph helpers from
    drivers/media/v4l2-core to drivers/of"). It was originally called
    v4l2_of_get_next_endpoint() and lived in the file
    drivers/media/v4l2-core/v4l2-of.c.

    In that original location, it was then fixed to support empty port
    nodes by commit b9db140c1e46 ("[media] v4l: of: Support empty port
    nodes"), and that commit clashes badly with the dropped "Reduce
    intendation" commit. I had to choose one or the other, and decided
    that the "Support empty port nodes" commit was more important ]

    * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (426 commits)
    [media] em28xx-dvb: fix PCTV 461e tuner I2C binding
    Revert "[media] em28xx-dvb: fix PCTV 461e tuner I2C binding"
    [media] em28xx: fix PCTV 290e LNA oops
    [media] em28xx-dvb: fix PCTV 461e tuner I2C binding
    [media] m88ds3103: fix bug on .set_tone()
    [media] saa7134: fix WARN_ON during resume
    [media] v4l2-dv-timings: add module name, description, license
    [media] videodev2.h: add parenthesis around macro arguments
    [media] saa6752hs: depends on CRC32
    [media] si4713: fix Kconfig dependencies
    [media] Sensoray 2255 uses videobuf2
    [media] adv7180: free an interrupt on failure paths in init_device()
    [media] e4000: make VIDEO_V4L2 dependency optional
    [media] af9033: Don't export functions for the hardware filter
    [media] af9035: use af9033 PID filters
    [media] af9033: implement PID filter
    [media] rtl2832_sdr: do not use dynamic stack allocation
    [media] e4000: fix 32-bit build error
    [media] em28xx-audio: make sure audio is unmuted on open()
    [media] DocBook media: v4l2_format_sdr was renamed to v4l2_sdr_format
    ...

    Linus Torvalds
     

07 Feb, 2014

2 commits


06 Dec, 2013

1 commit

  • Currently, there is no other bus that has something like this macro for
    their device ids. Thus, DEFINE_PCI_DEVICE_TABLE macro should be removed.

    Signed-off-by: Jingoo Han
    Link: http://lkml.kernel.org/r/001c01ceefb3$5724d860$056e8920$%han@samsung.com
    [ Boris: swap commit message with better one. ]
    Signed-off-by: Borislav Petkov

    Jingoo Han
     

04 Jan, 2013

1 commit

  • CONFIG_HOTPLUG is going away as an option. As a result, the __dev*
    markings need to be removed.

    This change removes the use of __devinit, __devexit_p, and __devexit
    from these drivers.

    Based on patches originally written by Bill Pemberton, but redone by me
    in order to handle some of the coding style issues better, by hand.

    Cc: Bill Pemberton
    Cc: Doug Thompson
    Cc: Borislav Petkov
    Cc: Mark Gross
    Cc: Jason Uhlenkott
    Cc: Mauro Carvalho Chehab
    Cc: Tim Small
    Cc: Ranganathan Desikan
    Cc: "Arvind R."
    Cc: Ralf Baechle
    Cc: David Daney
    Cc: Egor Martovetsky
    Cc: Olof Johansson
    Cc: Chris Metcalf
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

27 Jun, 2012

1 commit


12 Jun, 2012

6 commits

  • In order to avoid loosing error events, it is desirable to group
    error events together and generate a single trace for several identical
    errors.

    The trace API already allows reporting multiple errors. Change the
    handle_error function to also allow that.

    The changes at the drivers were made by this small script:

    $file .=$_ while (<>);
    $file =~ s/(edac_mc_handle_error)\s*\(([^\,]+)\,([^\,]+)\,/$1($2,$3, 1,/g;
    print $file;

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Remove the arch-dependent parameter, as it were not used,
    as the MCE tracepoint weren't implemented. It probably doesn't
    make sense to have an MCE-specific tracepoint, as this will
    cost more bytes at the tracepoint, and tracepoint is not free.

    The changes at the EDAC drivers were done by this small perl script:

    $file .=$_ while (<>);
    $file =~ s/(edac_mc_handle_error)\s*\(([^\;]+)\,([^\,\)]+)\s*\)/$1($2)/g;
    print $file;

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Use a more common debugging style.

    Remove __FILE__ uses, add missing newlines,
    coalesce formats and align arguments.

    Signed-off-by: Joe Perches
    Signed-off-by: Mauro Carvalho Chehab

    Joe Perches
     
  • Convert macros to a simpler style and enforce appropriate
    format checking when not CONFIG_EDAC_DEBUG.

    Use fmt and __VA_ARGS__, neaten macros.

    Move some string arrays to the debugfx uses and remove the
    now unnecessary CONFIG_EDAC_DEBUG variable block definitions.

    Signed-off-by: Joe Perches
    Signed-off-by: Mauro Carvalho Chehab

    Joe Perches
     
  • The debug macro already adds that. Most of the work here was
    made by this small script:

    $f .=$_ while (<>);

    $f =~ s/(debugf[0-9]\s*\(\s*)__FILE__\s*": /\1"/g;
    $f =~ s/(debugf[0-9]\s*\(\s*)__FILE__\s*/\1/g;
    $f =~ s/(debugf[0-9]\s*\(\s*)__FILE__\s*"MC: /\1"/g;

    $f =~ s/(debugf[0-9]\s*\(\")\%s[\:\,\(\)]*\s*([^\"]*\s*[^\)]+)__func__\s*\,\s*/\1\2/g;
    $f =~ s/(debugf[0-9]\s*\(\")\%s[\:\,\(\)]*\s*([^\"]*\s*[^\)]+),\s*__func__\s*\)/\1\2)/g;
    $f =~ s/(debugf[0-9]\s*\(\"MC\:\s*)\%s[\:\,\(\)]*\s*([^\"]*\s*[^\)]+)__func__\s*\,\s*/\1\2/g;
    $f =~ s/(debugf[0-9]\s*\(\"MC\:\s*)\%s[\:\,\(\)]*\s*([^\"]*\s*[^\)]+),\s*__func__\s*\)/\1\2)/g;

    $f =~ s/\"MC\: \\n\"/"MC:\\n"/g;

    print $f;

    After running the script, manual cleanups were done to fix it the remaining
    places.

    While here, removed the __LINE__ on most places, as it doesn't actually give
    useful info on most places.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Kernel kobjects have rigid rules: each container object should be
    dynamically allocated, and can't be allocated into a single kmalloc.

    EDAC never obeyed this rule: it has a single malloc function that
    allocates all needed data into a single kzalloc.

    As this is not accepted anymore, change the allocation schema of the
    EDAC *_info structs to enforce this Kernel standard.

    Acked-by: Chris Metcalf
    Cc: Aristeu Rozanski
    Cc: Doug Thompson
    Cc: Greg K H
    Cc: Borislav Petkov
    Cc: Mark Gross
    Cc: Tim Small
    Cc: Ranganathan Desikan
    Cc: "Arvind R."
    Cc: Olof Johansson
    Cc: Egor Martovetsky
    Cc: Michal Marek
    Cc: Jiri Kosina
    Cc: Dmitry Eremin-Solenikov
    Cc: Benjamin Herrenschmidt
    Cc: Hitoshi Mitake
    Cc: Andrew Morton
    Cc: Shaohui Xie
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     

11 Jun, 2012

1 commit

  • As EDAC doesn't use struct device itself, it created a parent dev
    pointer called as "pdev". Now that we'll be converting it to use
    struct device, instead of struct devsys, this needs to be fixed.

    No functional changes.

    Reviewed-by: Aristeu Rozanski
    Acked-by: Chris Metcalf
    Cc: Doug Thompson
    Cc: Borislav Petkov
    Cc: Mark Gross
    Cc: Jason Uhlenkott
    Cc: Tim Small
    Cc: Ranganathan Desikan
    Cc: "Arvind R."
    Cc: Olof Johansson
    Cc: Egor Martovetsky
    Cc: Michal Marek
    Cc: Jiri Kosina
    Cc: Joe Perches
    Cc: Dmitry Eremin-Solenikov
    Cc: Benjamin Herrenschmidt
    Cc: Hitoshi Mitake
    Cc: Andrew Morton
    Cc: "Niklas Söderlund"
    Cc: Shaohui Xie
    Cc: Josh Boyer
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     

29 May, 2012

6 commits

  • Improves the debug output message, in order to better represent the
    memory controller hierarchy, when outputing the debug messages.

    No functional changes when debug is disabled.

    Reviewed-by: Aristeu Rozanski
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Now that all drivers got converted to use the new ABI, we can
    drop the old one.

    Acked-by: Chris Metcalf
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • The legacy edac ABI is going to be removed. Port the driver to use
    and benefit from the new API functionality.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • The number of pages is a dimm property. Move it to the dimm struct.

    After this change, it is possible to add sysfs nodes for the DIMM's that
    will properly represent the DIMM stick properties, including its size.

    A TODO fix here is to properly represent dual-rank/quad-rank DIMMs when
    the memory controller represents the memory via chip select rows.

    Reviewed-by: Aristeu Rozanski
    Acked-by: Borislav Petkov
    Acked-by: Chris Metcalf
    Cc: Doug Thompson
    Cc: Mark Gross
    Cc: Jason Uhlenkott
    Cc: Tim Small
    Cc: Ranganathan Desikan
    Cc: "Arvind R."
    Cc: Olof Johansson
    Cc: Egor Martovetsky
    Cc: Michal Marek
    Cc: Jiri Kosina
    Cc: Joe Perches
    Cc: Dmitry Eremin-Solenikov
    Cc: Benjamin Herrenschmidt
    Cc: Hitoshi Mitake
    Cc: Andrew Morton
    Cc: "Niklas Söderlund"
    Cc: Shaohui Xie
    Cc: Josh Boyer
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Almost all edac drivers initialize csrow_info->first_page,
    csrow_info->last_page and csrow_info->page_mask. Those vars are
    used inside the EDAC core, in order to calculate the csrow affected
    by an error, by using the routine edac_mc_find_csrow_by_page().

    However, very few drivers actually use it:
    e752x_edac.c
    e7xxx_edac.c
    i3000_edac.c
    i82443bxgx_edac.c
    i82860_edac.c
    i82875p_edac.c
    i82975x_edac.c
    r82600_edac.c

    There also a few other drivers that have their own calculus
    formula internally using those vars.

    All the others are just wasting time by initializing those
    data.

    While initializing data without using them won't cause any troubles, as
    those information is stored at the wrong place (at csrows structure), it
    is better to remove what is unused, in order to simplify the next patch.

    Reviewed-by: Aristeu Rozanski
    Acked-by: Borislav Petkov
    Acked-by: Chris Metcalf
    Cc: Doug Thompson
    Cc: Hitoshi Mitake
    Cc: Andrew Morton
    Cc: "Niklas Söderlund"
    Cc: Josh Boyer
    Cc: Jiri Kosina
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • On systems based on chip select rows, all channels need to use memories
    with the same properties, otherwise the memories on channels A and B
    won't be recognized.

    However, such assumption is not true for all types of memory
    controllers.

    Controllers for FB-DIMM's don't have such requirements.

    Also, modern Intel controllers seem to be capable of handling such
    differences.

    So, we need to get rid of storing the DIMM information into a per-csrow
    data, storing it, instead at the right place.

    The first step is to move grain, mtype, dtype and edac_mode to the
    per-dimm struct.

    Reviewed-by: Aristeu Rozanski
    Reviewed-by: Borislav Petkov
    Acked-by: Chris Metcalf
    Cc: Doug Thompson
    Cc: Borislav Petkov
    Cc: Mark Gross
    Cc: Jason Uhlenkott
    Cc: Tim Small
    Cc: Ranganathan Desikan
    Cc: "Arvind R."
    Cc: Olof Johansson
    Cc: Egor Martovetsky
    Cc: Michal Marek
    Cc: Jiri Kosina
    Cc: Joe Perches
    Cc: Dmitry Eremin-Solenikov
    Cc: Benjamin Herrenschmidt
    Cc: Hitoshi Mitake
    Cc: Andrew Morton
    Cc: James Bottomley
    Cc: "Niklas Söderlund"
    Cc: Shaohui Xie
    Cc: Josh Boyer
    Cc: Mike Williams
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     

29 Mar, 2012

1 commit

  • Pull EDAC fixes from Mauro Carvalho Chehab:
    "A series of EDAC driver fixes. It also has one core fix at the
    documentation, and a rename patch, fixing the name of the struct that
    contains the rank information."

    * 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac:
    edac: rename channel_info to rank_info
    i5400_edac: Avoid calling pci_put_device() twice
    edac: i5100 ack error detection register after each read
    edac: i5100 fix erroneous define for M1Err
    edac: sb_edac: Fix a wrong value setting for the previous value
    edac: sb_edac: Fix a INTERLEAVE_MODE() misuse
    edac: sb_edac: Let the driver depend on PCI_MMCONFIG
    edac: Improve the comments to better describe the memory concepts
    edac/ppc4xx_edac: Fix compilation
    Fix sb_edac compilation with 32 bits kernels

    Linus Torvalds
     

22 Mar, 2012

1 commit

  • When i5400_edac driver is removed and re-loaded a few times, it causes
    an OOPS, as it is currently decrementing some PCI device usage two
    times.

    When called inside a loop, pci_get_device() will call
    pci_put_device(). That mangles the error count. In this specific
    case, it seems easier to just duplicate the call.

    Also fixes the error logic when pci_get_device fails.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     

19 Mar, 2012

1 commit

  • These const tables are currently marked __devinitdata, but
    Documentation/PCI/pci.txt says:

    "o The ID table array should be marked __devinitconst; this is done
    automatically if the table is declared with DEFINE_PCI_DEVICE_TABLE()."

    So use DEFINE_PCI_DEVICE_TABLE(x).

    Based on PaX and earlier work by Andi Kleen.

    Signed-off-by: Lionel Debroux
    Signed-off-by: Borislav Petkov

    Lionel Debroux
     

27 May, 2011

1 commit

  • * 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6:
    gfs2: Drop __TIME__ usage
    isdn/diva: Drop __TIME__ usage
    atm: Drop __TIME__ usage
    dlm: Drop __TIME__ usage
    wan/pc300: Drop __TIME__ usage
    parport: Drop __TIME__ usage
    hdlcdrv: Drop __TIME__ usage
    baycom: Drop __TIME__ usage
    pmcraid: Drop __DATE__ usage
    edac: Drop __DATE__ usage
    rio: Drop __DATE__ usage
    scsi/wd33c93: Drop __TIME__ usage
    scsi/in2000: Drop __TIME__ usage
    aacraid: Drop __TIME__ usage
    media/cx231xx: Drop __TIME__ usage
    media/radio-maxiradio: Drop __TIME__ usage
    nozomi: Drop __TIME__ usage
    cyclades: Drop __TIME__ usage

    Linus Torvalds
     

19 Apr, 2011

1 commit

  • The kernel already prints its build timestamp during boot, no need to
    repeat it in random drivers and produce different object files each
    time.

    Cc: Doug Thompson
    Cc: bluesmoke-devel@lists.sourceforge.net
    Cc: linux-edac@vger.kernel.org
    Acked-by: Mauro Carvalho Chehab
    Signed-off-by: Michal Marek

    Michal Marek
     

31 Mar, 2011

1 commit


11 Aug, 2010

1 commit


28 May, 2010

1 commit


29 Oct, 2009

1 commit

  • The i5400 EDAC driver has several bugs with chip-select row computation
    which most likely lead to bugs in detailed error reporting. Attempts to
    contact the authors have gone mostly unanswered so I am presenting my diff
    here. I do not subscribe to lkml and would appreciate being kept in the
    cc.

    The most egregious problem was miscalculating the addresses of MTR
    registers after register 0 by assuming they are 32bit rather than 16.
    This caused the driver to miss half of the memories. Most motherboards
    tend to have only 8 dimm slots and not 16, so this may not have been
    noticed before.

    Further, the row calculations multiplied the number of dimms several
    times, ultimately ending up with a maximum row of 32. The chipset only
    supports 4 dimms in each of 4 channels, so csrow could not be higher than
    4 unless you use a row per-rank with dual-rank dimms. I opted to
    eliminate this behavior as it is confusing to the user and the error
    reporting works by slot and not rank. This gives a much clearer view of
    memory by slot and channel in /sys.

    Signed-off-by: Jeff Roberson
    Signed-off-by: Doug Thompson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Roberson
     

07 Jan, 2009

2 commits