07 Oct, 2016

1 commit


26 Sep, 2016

3 commits

  • Update the copyright notice with the current year and add a note
    about values for controlling the Dualshock 4 reporting rate.

    Processing reports at the default full rate of 1000hz can be too
    demanding for some low-power embedded processors so noting
    alternate values for people working with this hardware can be useful.

    Thanks to Rostislav Pehlivanov for finding these values.

    Signed-off-by: Frank Praznik
    Signed-off-by: Jiri Kosina

    Frank Praznik
     
  • When initially connected via USB the Sixaxis isn't fully initialized
    until the PS logo button is pressed and won't send any input reports
    nor will any state set by output reports be retained.

    This adds a 'defer_initialization' flag to the sony_sc struct which,
    when set, will delay sending any output reports until the first input
    report has arrived. This flag is used with the USB Sixaxis to ensure
    that any state sent will persist since, until the PS button is pushed,
    any changes sent to the controller via an output report will be lost
    after a couple of seconds.

    The initial state of the controller is still configured at the time
    of the initial connection and won't be internally modified after that,
    so any state set by the user between that time and the recepit of the
    first input report won't be lost.

    Signed-off-by: Frank Praznik
    Signed-off-by: Jiri Kosina

    Frank Praznik
     
  • Some USB-only devices which masquerade as Sixaxis controllers report the
    same generic Bluetooth address for all hardware when queried via the HID
    report. This causes these devices to be wrongly rejected as duplicates
    when more than one is connected at once.

    This introduces a connection type comparison when checking for duplicates
    and only rejects the newly connected device if the existing matching
    device is connected using a different connection protocol.

    The results of the connection type comparison are also used when
    registering power supply info as the device Bluetooth address is used
    as the unique identifier string. In cases where more than one valid
    device has the same Bluetooth address the device ID is now appended
    to the power supply name string to avoid name collisions when
    registering the power supply information.

    Signed-off-by: Frank Praznik
    Signed-off-by: Jiri Kosina

    Frank Praznik
     

02 Aug, 2016

1 commit


17 Mar, 2016

1 commit


10 Feb, 2016

3 commits

  • Double-underscore prefixed types are unnecessary in pure kernel code,
    replace them with the non prefixed equivalents.

    Signed-off-by: Pavel Machek
    Signed-off-by: Antonio Ospite
    Acked-by: Frank Praznik
    Signed-off-by: Jiri Kosina

    Pavel Machek
     
  • WARNING: Block comments use a trailing */ on a separate line
    #822: FILE: drivers/hid/hid-sony.c:822:
    + * number but it's not needed for correct operation */

    WARNING: Block comments use a trailing */ on a separate line
    #828: FILE: drivers/hid/hid-sony.c:828:
    + * buttons multiple keypresses are allowed */

    WARNING: Block comments use a trailing */ on a separate line
    #854: FILE: drivers/hid/hid-sony.c:854:
    + * 0xff and 11th is for press indication */

    WARNING: Missing a blank line after declarations
    #1930: FILE: drivers/hid/hid-sony.c:1930:
    + struct sony_sc *sc = container_of(work, struct sony_sc, state_worker);
    + sc->send_output_report(sc);

    WARNING: Block comments use a trailing */ on a separate line
    #2510: FILE: drivers/hid/hid-sony.c:2510:
    + * Logitech joystick from the device descriptor. */

    Signed-off-by: Antonio Ospite
    Acked-by: Frank Praznik
    Signed-off-by: Jiri Kosina

    Antonio Ospite
     
  • ./scripts/checkpatch.pl \
    --types "SPACING,TRAILING_WHITESPACE,POINTER_LOCATION,CODE_INDENT" \
    -f drivers/hid/hid-sony.c

    ERROR: trailing whitespace
    #933: FILE: drivers/hid/hid-sony.c:933:
    +^I * $

    ERROR: space prohibited after that open square bracket '['
    #947: FILE: drivers/hid/hid-sony.c:947:
    + [ 1] = BTN_TRIGGER_HAPPY1,

    ERROR: space prohibited after that open square bracket '['
    #948: FILE: drivers/hid/hid-sony.c:948:
    + [ 2] = BTN_TRIGGER_HAPPY2,

    ERROR: space prohibited after that open square bracket '['
    #949: FILE: drivers/hid/hid-sony.c:949:
    + [ 3] = BTN_TRIGGER_HAPPY3,

    ERROR: space prohibited after that open square bracket '['
    #950: FILE: drivers/hid/hid-sony.c:950:
    + [ 4] = BTN_TRIGGER_HAPPY4,

    ERROR: space prohibited after that open square bracket '['
    #951: FILE: drivers/hid/hid-sony.c:951:
    + [ 5] = BTN_TRIGGER_HAPPY5,

    ERROR: space prohibited after that open square bracket '['
    #952: FILE: drivers/hid/hid-sony.c:952:
    + [ 6] = BTN_TRIGGER_HAPPY6,

    ERROR: space prohibited after that open square bracket '['
    #953: FILE: drivers/hid/hid-sony.c:953:
    + [ 7] = BTN_TRIGGER_HAPPY7,

    ERROR: space prohibited after that open square bracket '['
    #954: FILE: drivers/hid/hid-sony.c:954:
    + [ 8] = BTN_TRIGGER_HAPPY8,

    ERROR: space prohibited after that open square bracket '['
    #955: FILE: drivers/hid/hid-sony.c:955:
    + [ 9] = BTN_TRIGGER_HAPPY9,

    ERROR: "(foo*)" should be "(foo *)"
    #1032: FILE: drivers/hid/hid-sony.c:1032:
    + void(*send_output_report)(struct sony_sc*);

    WARNING: missing space after return type
    #1032: FILE: drivers/hid/hid-sony.c:1032:
    + void(*send_output_report)(struct sony_sc*);

    ERROR: "(foo*)" should be "(foo *)"
    #2261: FILE: drivers/hid/hid-sony.c:2261:
    + void(*send_output_report)(struct sony_sc*))

    WARNING: missing space after return type
    #2261: FILE: drivers/hid/hid-sony.c:2261:
    + void(*send_output_report)(struct sony_sc*))

    ERROR: code indent should use tabs where possible
    #2449: FILE: drivers/hid/hid-sony.c:2449:
    + */$

    total: 13 errors, 2 warnings, 2570 lines checked

    Signed-off-by: Antonio Ospite
    Acked-by: Frank Praznik
    Signed-off-by: Jiri Kosina

    Antonio Ospite
     

30 Jan, 2016

1 commit


19 Jan, 2016

3 commits

  • The nyko core controller uses the same output report format as the
    sixaxis controllers, but it expects the report id at offset 1.

    This does not interfere with the official controllers as this byte
    is considered a padding byte by the current code.

    Signed-off-by: Scott Moreau
    Acked-by: Antonio Ospite
    Signed-off-by: Jiri Kosina

    Scott Moreau
     
  • This adds rumble and LED support for nyko core controllers
    using the sino lite chip vendor:1345 product:3008, for PS3.

    Setting operational mode and output reports are the same as
    sixaxis but the input report has a different format since the
    PS3 accepts HID usb devices. For it to work, an exception is
    needed to skip overriding the report descriptor and use the
    original one.

    Signed-off-by: Scott Moreau
    Acked-by: Antonio Ospite
    Signed-off-by: Jiri Kosina

    Scott Moreau
     
  • When setting the operational mode, some third party (Speedlink Strike-FX)
    gamepads refuse the output report. Failing here means we refuse to
    initialize the gamepad while this should be harmless.

    The weird part is that the initial commit that added this: a7de9b8
    ("HID: sony: Enable Gasia third-party PS3 controllers") mentions this
    very same controller as one requiring this output report.
    Anyway, it's broken for one user at least, so let's change it.
    We will report an error, but at least the controller should work.

    And no, these devices present themselves as legacy Sony controllers
    (VID:PID of 054C:0268, as in the official ones) so there are no ways
    of discriminating them from the official ones.

    https://bugzilla.redhat.com/show_bug.cgi?id=1255325

    Reported-and-tested-by: Max Fedotov
    Signed-off-by: Benjamin Tissoires
    Signed-off-by: Jiri Kosina

    Benjamin Tissoires
     

14 Jan, 2016

1 commit


28 Dec, 2015

1 commit


19 Nov, 2015

3 commits

  • Sony has modified the HID descriptor in new revisions of the Dualshock 4 which
    causes the size check in the descriptor replacement function to fail. Remove it
    so that new revisions of the controller will work correctly.

    The module is completely replacing the descriptor instead of patching it, so the
    size check isn't really necessary anyways.

    Signed-off-by: Frank Praznik
    Signed-off-by: Jiri Kosina

    Frank Praznik
     
  • On hardware which provides standby power for charging devices the state of the
    LEDs and force-feedback on controllers can persist even when the system is in
    standby. Additionally, the state of the controllers on resume may be different
    from the state they were in at the time when they were suspended (ie. LEDs are
    cleared on resume).

    This implements the suspend and resume callbacks which saves and clears the
    state of the LEDs on suspend and restores them on resume. Force-feedback is
    stopped on suspend but not automatically restored on resume until a new event is
    received to avoid potentially damaging hardware.

    USB Sixaxis and navigation controllers must be reinitialized when the hardware
    is reset on resume or they won't send any input reports.

    Signed-off-by: Frank Praznik
    Signed-off-by: Jiri Kosina

    Frank Praznik
     
  • Refactor the output report sending functions to allow for the sending of output
    reports without enqueuing a work item. Output reports for any device can now be
    sent via the send_output_report function pointer in the sony_sc struct which
    points to the appropriate output function. The individual state worker
    functions have been replaced with a universal sony_state_worker function which
    uses this function pointer.

    Signed-off-by: Frank Praznik
    Signed-off-by: Jiri Kosina

    Frank Praznik
     

06 Nov, 2015

1 commit

  • When configuring input device via input_configured callback we may
    encounter errors (for example input_mt_init_slots() may fail). Instead
    of continuing with half-initialized input device let's allow driver
    indicate failures.

    Signed-off-by: Jaikumar Ganesh
    Signed-off-by: Arve Hjønnevåg
    Reviewed-by: Benjamin Tissoires
    Reviewed-by: David Herrmann
    Acked-by: Nikolai Kondrashov
    Acked-by: Andrew Duggan
    Signed-off-by: Dmitry Torokhov
    Signed-off-by: Jiri Kosina

    Dmitry Torokhov
     

31 Jul, 2015

1 commit

  • This commit removes the cap on the DualShock 4 controller reporting rate when
    connected using Bluetooth. The previous value of '0xB0' capped the rate to only
    20.83 Hz which many userspace utilities mistook as a sign of a bad signal.
    Since a 'B' and an '8' can look similar it's possible that someone mistook the
    one for another. The new value of '0x80' enables the full 1000 Hz peak
    reporting rate that the controller is capable of.

    Frank adds: "Back when the original code was written the purpose of that value
    was unknown and 0xB0 seemed to work so that's what ended up being used. Now
    that we know what it actually does and that 0x80 is a better choice I support
    this patch."

    [jkosina@suse.com: update changelog]
    Signed-off-by: Rostislav Pehlivanov
    Acked-by: Frank Praznik
    Signed-off-by: Jiri Kosina

    Rostislav Pehlivanov
     

24 Jul, 2015

1 commit

  • When connected via Bluetooth the sixaxis periodically sends reports with an ID
    of 1, the second byte 0xff and the rest zeroed. These reports are not related
    to the controller state and must be dropped to avoid generating false input
    events.

    Link: http://www.spinics.net/lists/linux-bluetooth/msg63028.html
    Signed-off-by: Frank Praznik
    Signed-off-by: Jiri Kosina

    Frank Praznik
     

13 Jul, 2015

1 commit


18 Jun, 2015

3 commits

  • Patch report descriptor to remove unused and ramdomly changing axis.

    Original report descriptor (via BT) was as follows:
    00000000 05 01 09 04 a1 01 a1 02 85 01 75 08 95 01 15 00 |..........u.....|
    00000010 26 ff 00 81 03 75 01 95 13 15 00 25 01 35 00 45 |&....u.....%.5.E|
    00000020 01 05 09 19 01 29 13 81 02 75 01 95 0d 06 00 ff |.....)...u......|
    00000030 81 03 15 00 26 ff 00 05 01 09 01 a1 00 75 08 95 |....&........u..|
    00000040 04 35 00 46 ff 00 09 30 09 31 09 32 09 35 81 02 |.5.F...0.1.2.5..|
    00000050 c0 05 01 75 08 95 27 09 01 81 02 75 08 95 30 09 |...u..'....u..0.|
    00000060 01 91 02 75 08 95 30 09 01 b1 02 c0 a1 02 85 02 |...u..0.........|
    00000070 75 08 95 30 09 01 b1 02 c0 a1 02 85 ee 75 08 95 |u..0.........u..|
    00000080 30 09 01 b1 02 c0 a1 02 85 ef 75 08 95 30 09 01 |0.........u..0..|
    00000090 b1 02 c0 c0 00 |.....|
    00000095

    Signed-off-by: Simon Wood
    Signed-off-by: Jiri Kosina

    Simon Wood
     
  • Signed-off-by: Simon Wood
    Signed-off-by: Jiri Kosina

    Simon Wood
     
  • Signed-off-by: Simon Wood
    Signed-off-by: Jiri Kosina

    Simon Wood
     

12 Jun, 2015

5 commits


07 May, 2015

4 commits

  • Correct a spelling mistake in the Sixaxis HID descriptor comment.

    Add an explanation as to why the Sixaxis has so many analog axes and why
    some of them are seen as multi-touch axes.

    Signed-off-by: Frank Praznik
    Acked-by: Pavel Machek
    Signed-off-by: Jiri Kosina

    Frank Praznik
     
  • Directly set the initial LED states in the device state struct instead
    of copying them from a temporary array.

    This allows for the removal of a redundant "x = x" copy loop in
    sony_set_leds() that was taking place any time an LED was updated.

    It also allows for the simplifying of the parameters in functions dealing
    with LED initialization and updates since only a pointer to the sony_sc
    struct is needed now.

    Signed-off-by: Frank Praznik
    Acked-by: Pavel Machek
    Signed-off-by: Jiri Kosina

    Frank Praznik
     
  • Add a fixed-up HID descriptor for the Sony motion controller and enable
    controls for the LED light as well as force-feedback.

    The LED is multi-colored (red, green, blue).

    The motion controller has a single rumble motor so the higher of the left
    and right values is used to set the speed.

    Signed-off-by: Pavel Machek
    Signed-off-by: Frank Praznik
    Acked-by: Pavel Machek
    Signed-off-by: Jiri Kosina

    Frank Praznik
     
  • sony_allocate_output_report() was being called before sony_set_device_id()
    which meant that an unallocated ida value was was freed if the output
    report allocation failed and the probe function jumped to err_stop.

    Do the device ID allocation before the output report allocation to avoid
    freeing an unallocated value in case of a failure.

    Signed-off-by: Frank Praznik
    Acked-by: Pavel Machek
    Signed-off-by: Jiri Kosina

    Frank Praznik
     

15 Apr, 2015

1 commit

  • Pull HID updates from Jiri Kosina:

    - quite a few firmware fixes for RMI driver by Andrew Duggan

    - huion and uclogic drivers have been substantially overlaping in
    functionality laterly. This redundancy is fixed by hid-huion driver
    being merged into hid-uclogic; work done by Benjamin Tissoires and
    Nikolai Kondrashov

    - i2c-hid now supports ACPI GPIO interrupts; patch from Mika Westerberg

    - Some of the quirks, that got separated into individual drivers, have
    historically had EXPERT dependency. As HID subsystem matured (as
    well as the individual drivers), this made less and less sense. This
    dependency is now being removed by patch from Jean Delvare

    - Logitech lg4ff driver received a couple of improvements for mode
    switching, by Michal Malý

    - multitouch driver now supports clickpads, patches by Benjamin
    Tissoires and Seth Forshee

    - hid-sensor framework received a substantial update; namely support
    for Custom and Generic pages is being added; work done by Srinivas
    Pandruvada

    - wacom driver received substantial update; it now supports
    i2c-conntected devices (Mika Westerberg), Bamboo PADs are now
    properly supported (Benjamin Tissoires), much improved battery
    reporting (Jason Gerecke) and pen proximity cleanups (Ping Cheng)

    - small assorted fixes and device ID additions

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (68 commits)
    HID: sensor: Update document for custom sensor
    HID: sensor: Custom and Generic sensor support
    HID: debug: fix error handling in hid_debug_events_read()
    Input - mt: Fix input_mt_get_slot_by_key
    HID: logitech-hidpp: fix error return code
    HID: wacom: Add support for Cintiq 13HD Touch
    HID: logitech-hidpp: add a module parameter to keep firmware gestures
    HID: usbhid: yet another mouse with ALWAYS_POLL
    HID: usbhid: more mice with ALWAYS_POLL
    HID: wacom: set stylus_in_proximity before checking touch_down
    HID: wacom: use wacom_wac_finger_count_touches to set touch_down
    HID: wacom: remove hardcoded WACOM_QUIRK_MULTI_INPUT
    HID: pidff: effect can't be NULL
    HID: add quirk for PIXART OEM mouse used by HP
    HID: add HP OEM mouse to quirk ALWAYS_POLL
    HID: wacom: ask for a in-prox report when it was missed
    HID: hid-sensor-hub: Fix sparse warning
    HID: hid-sensor-hub: fix attribute read for logical usage id
    HID: plantronics: fix Kconfig default
    HID: pidff: support more than one concurrent effect
    ...

    Linus Torvalds
     

14 Apr, 2015

2 commits

  • Pull power supply and reset changes from Sebastian Reichel:

    - new API for safe access of power supply function attrs

    - devres support for power supply (un)registration

    - new drivers / chips:
    - generic syscon based poweroff driver
    - iio & charger driver for da9150
    - fuel gauge driver for axp288
    - bq27x00: add support for bq27510
    - bq2415x: add support for bq24157s

    - twl4030-madc-battery: convert to iio consumer

    - misc fixes

    * tag 'for-v4.1' of git://git.infradead.org/battery-2.6: (66 commits)
    power: twl4030_madc_battery: Add missing MODULE_ALIAS
    power: twl4030-madc-battery: Convert to iio consumer.
    dt: power: Add docs for generic SYSCON poweroff driver.
    power: reset: Add generic SYSCON register mapped poweroff.
    power: max17042_battery: add missed blank
    power: max17042_battery: Use reg type instead of chip type
    power/reset: at91: big endian fixes for atsama5d3x
    power_supply: charger-manager: Fix dereferencing of ERR_PTR
    HID: input: Fix NULL pointer dereference when power_supply_register fails
    power: constify of_device_id array
    power/reset/rmobile-reset.c: Fix !HAS_IOMEM build
    power_supply: 88pm860x_charger: Fix possible NULL pointer dereference and use of initialized variable
    arm: mach-pxa: Decrement the power supply's device reference counter
    mfd: ab8500: Decrement the power supply's device reference counter
    power_supply: bq2415x_charger: Decrement the power supply's device reference counter
    power_supply: 88pm860x_charger: Decrement the power supply's device reference counter
    x86/olpc/xo15/sci: Use newly added power_supply_put API
    x86/olpc/xo1/sci: Use newly added power_supply_put API
    power_supply: charger-manager: Decrement the power supply's device reference counter
    power_supply: Increment power supply use counter when obtaining references
    ...

    Linus Torvalds
     
  • …c-merge', 'for-4.1/i2c-hid', 'for-4.1/kconfig-drop-expert-dependency', 'for-4.1/logitech', 'for-4.1/multitouch', 'for-4.1/rmi', 'for-4.1/sony', 'for-4.1/upstream' and 'for-4.1/wacom' into for-linus

    Jiri Kosina
     

14 Mar, 2015

2 commits

  • Change the ownership of power_supply structure from each driver
    implementing the class to the power supply core.

    The patch changes power_supply_register() function thus all drivers
    implementing power supply class are adjusted.

    Each driver provides the implementation of power supply. However it
    should not be the owner of power supply class instance because it is
    exposed by core to other subsystems with power_supply_get_by_name().
    These other subsystems have no knowledge when the driver will unregister
    the power supply. This leads to several issues when driver is unbound -
    mostly because user of power supply accesses freed memory.

    Instead let the core own the instance of struct 'power_supply'. Other
    users of this power supply will still access valid memory because it
    will be freed when device reference count reaches 0. Currently this
    means "it will leak" but power_supply_put() call in next patches will
    solve it.

    This solves invalid memory references in following race condition
    scenario:

    Thread 1: charger manager
    Thread 2: power supply driver, used by charger manager

    THREAD 1 (charger manager) THREAD 2 (power supply driver)
    ========================== ==============================
    psy = power_supply_get_by_name()
    Driver unbind, .remove
    power_supply_unregister()
    Device fully removed
    psy->get_property()

    The 'get_property' call is executed in invalid context because the driver was
    unbound and struct 'power_supply' memory was freed.

    This could be observed easily with charger manager driver (here compiled
    with max17040 fuel gauge):

    $ cat /sys/devices/virtual/power_supply/cm-battery/capacity &
    $ echo "1-0036" > /sys/bus/i2c/drivers/max17040/unbind
    [ 55.725123] Unable to handle kernel NULL pointer dereference at virtual address 00000000
    [ 55.732584] pgd = d98d4000
    [ 55.734060] [00000000] *pgd=5afa2831, *pte=00000000, *ppte=00000000
    [ 55.740318] Internal error: Oops: 80000007 [#1] PREEMPT SMP ARM
    [ 55.746210] Modules linked in:
    [ 55.749259] CPU: 1 PID: 2936 Comm: cat Tainted: G W 3.19.0-rc1-next-20141226-00048-gf79f475f3c44-dirty #1496
    [ 55.760190] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
    [ 55.766270] task: d9b76f00 ti: daf54000 task.ti: daf54000
    [ 55.771647] PC is at 0x0
    [ 55.774182] LR is at charger_get_property+0x2f4/0x36c
    [ 55.779201] pc : [] lr : [] psr: 60000013
    [ 55.779201] sp : daf55e90 ip : 00000003 fp : 00000000
    [ 55.790657] r10: 00000000 r9 : c06e2878 r8 : d9b26c68
    [ 55.795865] r7 : dad81610 r6 : daec7410 r5 : daf55ebc r4 : 00000000
    [ 55.802367] r3 : 00000000 r2 : daf55ebc r1 : 0000002a r0 : d9b26c68
    [ 55.808879] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
    [ 55.815994] Control: 10c5387d Table: 598d406a DAC: 00000015
    [ 55.821723] Process cat (pid: 2936, stack limit = 0xdaf54210)
    [ 55.827451] Stack: (0xdaf55e90 to 0xdaf56000)
    [ 55.831795] 5e80: 60000013 c01459c4 0000002a c06f8ef8
    [ 55.839956] 5ea0: db651000 c06f8ef8 daebac00 c04cb668 daebac08 c0346864 00000000 c01459c4
    [ 55.848115] 5ec0: d99eaa80 c06f8ef8 00000fff 00001000 db651000 c027f25c c027f240 d99eaa80
    [ 55.856274] 5ee0: d9a06c00 c0146218 daf55f18 00001000 d99eaa80 db4c18c0 00000001 00000001
    [ 55.864468] 5f00: daf55f80 c0144c78 c0144c54 c0107f90 00015000 d99eaab0 00000000 00000000
    [ 55.872603] 5f20: 000051c7 00000000 db4c18c0 c04a9370 00015000 00001000 daf55f80 00001000
    [ 55.880763] 5f40: daf54000 00015000 00000000 c00e53dc db4c18c0 c00e548c 0000000d 00008124
    [ 55.888937] 5f60: 00000001 00000000 00000000 db4c18c0 db4c18c0 00001000 00015000 c00e5550
    [ 55.897099] 5f80: 00000000 00000000 00001000 00001000 00015000 00000003 00000003 c000f364
    [ 55.905239] 5fa0: 00000000 c000f1a0 00001000 00015000 00000003 00015000 00001000 0001333c
    [ 55.913399] 5fc0: 00001000 00015000 00000003 00000003 00000002 00000000 00000000 00000000
    [ 55.921560] 5fe0: 7fffe000 be999850 0000a225 b6f3c19c 60000010 00000003 00000000 00000000
    [ 55.929744] [] (charger_get_property) from [] (power_supply_show_property+0x48/0x20c)
    [ 55.939286] [] (power_supply_show_property) from [] (dev_attr_show+0x1c/0x48)
    [ 55.948130] [] (dev_attr_show) from [] (sysfs_kf_seq_show+0x84/0x104)
    [ 55.956298] [] (sysfs_kf_seq_show) from [] (kernfs_seq_show+0x24/0x28)
    [ 55.964536] [] (kernfs_seq_show) from [] (seq_read+0x1b0/0x484)
    [ 55.972172] [] (seq_read) from [] (__vfs_read+0x18/0x4c)
    [ 55.979188] [] (__vfs_read) from [] (vfs_read+0x7c/0x100)
    [ 55.986304] [] (vfs_read) from [] (SyS_read+0x40/0x8c)
    [ 55.993164] [] (SyS_read) from [] (ret_fast_syscall+0x0/0x48)
    [ 56.000626] Code: bad PC value
    [ 56.011652] ---[ end trace 7b64343fbdae8ef1 ]---

    Signed-off-by: Krzysztof Kozlowski
    Reviewed-by: Bartlomiej Zolnierkiewicz

    [for the nvec part]
    Reviewed-by: Marc Dietrich

    [for compal-laptop.c]
    Acked-by: Darren Hart

    [for the mfd part]
    Acked-by: Lee Jones

    [for the hid part]
    Acked-by: Jiri Kosina

    [for the acpi part]
    Acked-by: Rafael J. Wysocki

    Signed-off-by: Sebastian Reichel

    Krzysztof Kozlowski
     
  • Add new structure 'power_supply_config' for holding run-time
    initialization data like of_node, supplies and private driver data.

    The power_supply_register() function is changed so all power supply
    drivers need updating.

    When registering the power supply this new 'power_supply_config' should be
    used instead of directly initializing 'struct power_supply'. This allows
    changing the ownership of power_supply structure from driver to the
    power supply core in next patches.

    When a driver does not use of_node or supplies then it should use NULL
    as config. If driver uses of_node or supplies then it should allocate
    config on stack and initialize it with proper values.

    Signed-off-by: Krzysztof Kozlowski
    Reviewed-by: Bartlomiej Zolnierkiewicz
    Acked-by: Pavel Machek

    [for the nvec part]
    Reviewed-by: Marc Dietrich

    [for drivers/platform/x86/compal-laptop.c]
    Reviewed-by: Darren Hart

    [for drivers/hid/*]
    Reviewed-by: Jiri Kosina

    Signed-off-by: Sebastian Reichel

    Krzysztof Kozlowski
     

23 Feb, 2015

1 commit