Thanks to visit codestin.com
Credit goes to github.com

Skip to content
This repository was archived by the owner on Oct 5, 2018. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 54 commits
Commits
Show all changes
929 commits
Select commit Hold shift + click to select a range
78c059c
mfd: Fix a typo in Kconfig
steelman Mar 27, 2015
aec9038
mfd: lpc_ich: Sort IDs
andy-shev Mar 27, 2015
6e00ff0
mfd: arizona: Correct type of gpio_defaults
charleskeepax Mar 29, 2015
5cdc7f0
mfd: menelaus: Delete omap_has_menelaus
aakoskin Mar 28, 2015
1ea8684
mfd: menelaus: Drop support for SW controller VCORE
aakoskin Mar 28, 2015
dfe514b
mfd: menelaus: Use macro for magic number
aakoskin Mar 28, 2015
c31e858
mfd: axp20x: Fix duplicate const for model names
krzk Mar 24, 2015
dc716bb
mfd: qcom-spmi-pmic: Add specific compatible strings for Qualcomm's S…
Mar 17, 2015
ba867bc
mfd: twl6040: Remove wrong and unneeded "platform:twl6040" modalias
AxelLin Mar 30, 2015
6ab2b76
perf build: Disable libbabeltrace check by default
Mar 28, 2015
7b4ddfa
gfs2: incorrect check for debugfs returns
ChengyuSong Mar 24, 2015
bc917be
saner iov_iter initialization primitives
Mar 21, 2015
d631c8c
ring-buffer: Remove duplicate use of '&' in recursive code
rostedt Mar 27, 2015
73dbcd6
perf callchain: Fix kernel symbol resolution by remembering the cpumode
Mar 30, 2015
5aa0b03
perf tools: Refactor comm/tgid lookup
dsahern Mar 30, 2015
ca6c41c
perf tools: Fix ppid for synthesized fork events
dsahern Mar 30, 2015
aae59fa
perf session: Always initialize ordered_events
acmel Mar 31, 2015
9870d78
perf ordered_samples: Remove references to perf_{evlist,tool} and mac…
acmel Mar 31, 2015
bbdb38a
Input: tsc2007 - Convert msecs to jiffies only once
Mar 31, 2015
aaa9fa3
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux…
Apr 1, 2015
223aa64
Merge branch 'perf/timer' into perf/core
Apr 2, 2015
4e537f7
bpf: Make internal bpf API independent of CONFIG_BPF_SYSCALL #ifdefs
borkmann Mar 25, 2015
72cbbc8
tracing: Add kprobe flag
Mar 25, 2015
2541517
tracing, perf: Implement BPF programs attached to kprobes
Mar 25, 2015
d9847d3
tracing: Allow BPF programs to call bpf_ktime_get_ns()
Mar 25, 2015
9c959c8
tracing: Allow BPF programs to call bpf_trace_printk()
Mar 25, 2015
b896c4f
samples/bpf: Add simple non-portable kprobe filter example
Mar 25, 2015
d822a19
samples/bpf: Add counting example for kfree_skb() function calls and …
Mar 25, 2015
5c7fc2d
samples/bpf: Add IO latency analysis (iosnoop/heatmap) tool
Mar 25, 2015
9811e35
samples/bpf: Add kmem_alloc()/free() tracker tool
Mar 25, 2015
1fd29be
Merge branch 'for-4.0/upstream-fixes' into for-4.1/wacom
Apr 2, 2015
f3586d2
HID: wacom: remove hardcoded WACOM_QUIRK_MULTI_INPUT
Pinglinux Mar 20, 2015
7d059ed
HID: wacom: use wacom_wac_finger_count_touches to set touch_down
Pinglinux Mar 20, 2015
0149931
HID: wacom: set stylus_in_proximity before checking touch_down
Pinglinux Mar 20, 2015
003e817
HID: usbhid: more mice with ALWAYS_POLL
Mar 30, 2015
43faadf
HID: usbhid: yet another mouse with ALWAYS_POLL
Mar 30, 2015
9188dba
HID: logitech-hidpp: add a module parameter to keep firmware gestures
bentiss Mar 26, 2015
b4bf212
HID: wacom: Add support for Cintiq 13HD Touch
Pinglinux Mar 26, 2015
e1abf2c
bpf: Fix the build on BPF_SYSCALL=y && !CONFIG_TRACING kernels, make …
Apr 2, 2015
e8c6dea
perf: Add data_{offset,size} to user_page
virtuoso Jan 14, 2015
45bfb2e
perf: Add AUX area to ring buffer for raw data streams
Jan 14, 2015
0a4e38e
perf: Support high-order allocations for AUX space
virtuoso Jan 14, 2015
6a27923
perf: Add a capability for AUX_NO_SG pmus to do software double buffe…
virtuoso Jan 14, 2015
bed5b25
perf: Add a pmu capability for "exclusive" events
virtuoso Jan 30, 2015
68db7e9
perf: Add AUX record
virtuoso Jan 14, 2015
fdc2670
perf: Add API for PMUs to write to the AUX area
virtuoso Jan 14, 2015
2023a0d
perf: Support overwrite mode for the AUX area
virtuoso Jan 14, 2015
1a59413
perf: Add wakeup watermark control to the AUX area
virtuoso Jan 14, 2015
ec0d772
perf: Add ITRACE_START record to indicate that tracing has started
virtuoso Jan 14, 2015
ed69628
x86: Add Intel Processor Trace (INTEL_PT) cpu feature detection
virtuoso Jan 14, 2015
4807034
perf/x86: Mark Intel PT and LBR/BTS as mutually exclusive
virtuoso Jan 14, 2015
52ca9ce
perf/x86/intel/pt: Add Intel PT PMU driver
virtuoso Jan 30, 2015
8062382
perf/x86/intel/bts: Add BTS PMU driver
virtuoso Jan 30, 2015
c2b078e
Merge branch 'perf/urgent' into perf/core, before applying dependent …
Apr 2, 2015
9a5e3fb
perf/x86: Rename x86_pmu::er_flags to 'flags'
Nov 17, 2014
9041346
perf/x86: Vectorize cpuc->kfree_on_online
Nov 17, 2014
c5362c0
perf/x86: Add 3 new scheduling callbacks
mdimakopoulou Nov 17, 2014
79cba82
perf/x86: Add 'index' param to get_event_constraint() callback
Nov 17, 2014
6f6539c
perf/x86/intel: Add cross-HT counter exclusion infrastructure
mdimakopoulou Nov 17, 2014
e979121
perf/x86/intel: Implement cross-HT corruption bug workaround
mdimakopoulou Nov 17, 2014
93fcf72
perf/x86/intel: Enforce HT bug workaround for SNB/IVB/HSW
mdimakopoulou Nov 17, 2014
b63b4b4
perf/x86/intel: Enforce HT bug workaround with PEBS for SNB/IVB/HSW
mdimakopoulou Nov 17, 2014
a90738c
perf/x86/intel: Fix intel_get_event_constraints() for dynamic constra…
Nov 17, 2014
c02cdbf
perf/x86/intel: Limit to half counters when the HT workaround is enab…
Nov 17, 2014
b3738d2
watchdog: Add watchdog enable/disable all functions
Nov 17, 2014
b37609c
perf/x86/intel: Make the HT bug workaround conditional on HT enabled
Nov 17, 2014
8882edf
perf/x86/intel: Reset more state in PMU reset
Feb 27, 2015
da3e606
perf/x86: Dump DEBUGCTL in PMU dump
Feb 27, 2015
15fde11
perf/x86: Only dump PEBS register when PEBS has been detected
Feb 27, 2015
1a78d93
perf/x86/intel: Streamline LBR MSR handling in PMI
Mar 20, 2015
cd1f11d
perf/x86/intel: Avoid rewriting DEBUGCTL with the same value for LBRs
Mar 20, 2015
2e54a5b
perf/x86/intel/pt: Fix the 32-bit build
Apr 2, 2015
79628f2
perf script: No need to lookup thread twice
acmel Apr 1, 2015
f9d5d54
perf scripting: No need to pass thread twice to the scripting callbacks
acmel Apr 1, 2015
7327259
perf db-export: No need to pass thread twice to db_export__sample
acmel Apr 2, 2015
b83e868
perf db-export: No need to have ->thread twice in struct export_sample
acmel Apr 2, 2015
c727383
perf probe: Fix to track down unnamed union/structure members
mhiramathitachi Apr 2, 2015
9e3b6ec
perf evlist: Support using -f to override perf.data file ownership
Apr 2, 2015
ccaa474
perf inject: Support using -f to override perf.data file ownership
Apr 2, 2015
d1eeb77
perf kmem: Support using -f to override perf.data file ownership
Apr 2, 2015
8cc5ec1
perf kvm: Support using -f to override perf.data.guest file ownership
Apr 2, 2015
c4ac732
perf lock: Support using -f to override perf.data file ownership
Apr 2, 2015
62a1a63
perf mem: Support using -f to override perf.data file ownership
Apr 2, 2015
06af0f2
perf script: Support using -f to override perf.data file ownership
Apr 2, 2015
44f7e43
perf timechart: Support using -f to override perf.data file ownership
Apr 2, 2015
e366a6d
perf trace: Support using -f to override perf.data file ownership
Apr 2, 2015
bd05954
perf data: Support using -f to override perf.data file ownership for …
Apr 2, 2015
00ccbf2
ftrace/x86: Let dynamic trampolines call ops->func even for dynamic fops
rostedt Feb 19, 2015
6645f31
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux…
Apr 3, 2015
ba92222
i2c: jz4780: Add i2c bus controller driver for Ingenic JZ4780
Mar 31, 2015
623e4ec
i2c: i2c-mux-gpio: remove error messages for probe deferrals
Mar 30, 2015
8b6f53c
Input: tc3589x - localize platform data
linusw Mar 27, 2015
6112559
mfd: tc3589x: enforce device-tree only mode
linusw Mar 27, 2015
b832da5
HID: logitech-hidpp: fix error return code
JuliaLawall Apr 5, 2015
73e8a8e
Input: MT - make slot assignment work for overcovered solutions
bentiss Apr 5, 2015
58fd9af
Input: Revert "Revert "synaptics - use dmax in input_mt_assign_slots""
bentiss Apr 5, 2015
63c4fda
Input: synaptics - allocate 3 slots to keep stability in image sensors
bentiss Apr 5, 2015
a54aecb
Input: gscps2 - drop pci_ids dependency
mstsirkin Apr 6, 2015
ef30a40
Input: cros_ec_keyb - fix clearing keyboard state on wakeup
tomeuv Apr 6, 2015
b23157d
Input: atmel_mxt_ts - implement support for T100 touch object
ndyer Apr 6, 2015
b6d2d32
Input: atmel_mxt_ts - split out touchpad initialisation logic
sjoerdsimons Apr 6, 2015
bd88414
Input: elantech - fix absolute mode setting on some ASUS laptops
ulrikdb Apr 6, 2015
d480239
pinctrl: at91: convert __raw to endian agnostic IO
bjdooks-ct Mar 26, 2015
25a853d
Fix inconsistent spinlock of AMD GPIO driver which can be
firstbread Mar 27, 2015
0cf6f3c
pinctrl: Cleanup Meson8 driver
Mar 19, 2015
faa246d
documentation: Extend pinctrl docs for Meson8b
Mar 19, 2015
0fefcb6
pinctrl: Add support for Meson8b
Mar 29, 2015
16837f9
pinctrl: fsl: imx: Check for 0 config register
Mar 24, 2015
7981c00
pinctrl: intel: Add Intel Sunrisepoint pin controller and GPIO support
westeri Mar 30, 2015
c627589
Input - mt: Fix input_mt_get_slot_by_key
bentiss Mar 30, 2015
cec6565
pinctrl: Document "function" + "pins" pinmux binding
abrestic Mar 30, 2015
19ef697
sh-pfc: r8a7790: add EtherAVB pin groups
Mar 30, 2015
5f63e88
Merge tag 'v4.0-rc7' into next
dtor Apr 7, 2015
8eccd39
Input: ALPS - refactor alps_set_abs_params_mt()
Mar 28, 2015
3db5b9f
Input: ALPS - add support for SS4 touchpad devices
Mar 28, 2015
8d28984
Input: ALPS - V7 devices can report 5-finger taps
Mar 28, 2015
77cb2fe
tracing/drm: Remove unused TRACE_SYSTEM_STRING define
rostedt Apr 2, 2015
882156e
tracing: Add TRACE_SYSTEM_VAR to intel-sst
rostedt Apr 1, 2015
bd41202
tracing: Add TRACE_SYSTEM_VAR to kvm-s390
rostedt Apr 1, 2015
7267b23
tracing: Add TRACE_SYSTEM_VAR to xhci-hcd
rostedt Apr 1, 2015
1bc1e4d
mac80211: Move message tracepoints to their own header
rostedt Apr 7, 2015
0ea18b4
vgaarb: Stub vga_set_legacy_decoding()
awilliam Apr 7, 2015
88c0dea
vfio-pci: Add module option to disable VGA region access
awilliam Apr 7, 2015
ecaa1f6
vfio-pci: Add VGA arbiter client
awilliam Apr 7, 2015
80c7e8c
vfio-pci: Allow PCI IDs to be specified as module options
awilliam Apr 7, 2015
561d72d
vfio-pci: Remove warning if try-reset fails
awilliam Apr 7, 2015
6eb7018
vfio-pci: Move idle devices to D3hot power state
awilliam Apr 7, 2015
8ea92ce
perf evlist: Fix inverted logic in perf_mmap__empty
Apr 7, 2015
ba92732
perf kmaps: Check kmaps to make code more robust
WangNan0 Apr 7, 2015
3201f0d
tools lib traceevent: Honor operator priority
namhyung Apr 6, 2015
28939e1
perf kmem: Respect -i option
olsajiri Apr 6, 2015
0755bc4
perf sched replay: Use struct task_desc instead of struct task_task f…
Mar 31, 2015
a35e27d
perf sched replay: Increase the MAX_PID value to fix assertion failur…
Mar 31, 2015
cb06ac2
perf sched replay: Alloc the memory of pid_to_task dynamically to ada…
Mar 31, 2015
3a423a5
perf sched replay: Realloc the memory of pid_to_task stepwise to adap…
Mar 31, 2015
08097ab
perf sched replay: Fix the segmentation fault problem caused by pr_er…
Mar 31, 2015
1aff59b
perf sched replay: Handle the dead halt of sem_wait when create_tasks…
Mar 31, 2015
939cda5
perf sched replay: Fix the EMFILE error caused by the limitation of t…
Mar 31, 2015
f0dd330
perf sched replay: Support using -f to override perf.data file ownership
Mar 31, 2015
ff5f3bb
perf sched replay: Use replay_repeat to calculate the runavg of cpu u…
Mar 31, 2015
814c8c3
perf record: Add clockid parameter
Mar 30, 2015
2c5e8c5
perf tools: Merge all perf_event_attr print functions
Apr 7, 2015
c5ef935
iwlwifi: Move each system tracepoints to their own header
rostedt Apr 7, 2015
6e9dd8d
brcmsmac: Move each system tracepoints to their own header
rostedt Apr 7, 2015
acd388f
tracing: Give system name a pointer
rostedt Mar 31, 2015
8892042
tracing: Update trace-event-sample with TRACE_SYSTEM_VAR documentation
rostedt Apr 1, 2015
0c564a5
tracing: Add TRACE_DEFINE_ENUM() macro to map enums to their values
rostedt Mar 24, 2015
3673b8e
tracing: Allow for modules to convert their enums to values
rostedt Mar 25, 2015
32eb3d0
tracing/samples: Update the trace-event-sample.h with TRACE_DEFINE_EN…
rostedt Apr 1, 2015
23b9766
x86/tlb/trace: Export enums in used by tlb_flush tracepoint
rostedt Mar 24, 2015
56e1b22
net/9p/tracing: Export enums in tracepoints to userspace
rostedt Mar 27, 2015
5511b9a
f2fs: Export the enums in the tracepoints to userspace
rostedt Mar 27, 2015
f0a91b3
irq/tracing: Export enums in tracepoints to user space
rostedt Mar 27, 2015
190f0b7
mm: tracing: Export enums in tracepoints to user space
rostedt Mar 27, 2015
6ba16ee
SUNRPC: Export enums in tracepoints to user space
rostedt Mar 27, 2015
f6c1562
perf probe: Fix ARM 32 building error
WangNan0 Apr 8, 2015
54a50f9
perf tests: Fix attr tests
Apr 7, 2015
f6fcc14
perf report: Don't call map__kmap if map is NULL.
WangNan0 Apr 8, 2015
a1e12da
perf tools: Add 'I' event modifier for exclude_idle bit
olsajiri Apr 7, 2015
5a0ff17
vfio-pci: Fix use after free
awilliam Apr 8, 2015
3013317
gfs2: fix quota refresh race in do_glock()
Apr 8, 2015
b8a1938
pinctrl: bcm2835: Fix support for threaded level triggered IRQs
charleskeepax Apr 7, 2015
43d0f71
v4l: Export enums used by tracepoints to user space
rostedt Mar 27, 2015
91df608
writeback: Export enums used by tracepoint to user space
rostedt Mar 27, 2015
9828413
tracing: Add enum_map file to show enums that have been mapped
rostedt Mar 31, 2015
7414b09
pinctrl: Add support for PM8916 GPIO's and MPP's
Mar 31, 2015
51ab715
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux…
Apr 8, 2015
1dfe0d1
pinctrl: sirf: move sgpio lock into state container
linusw Apr 23, 2014
7271575
mfd: lpc_ich: Sort IDs
andy-shev Mar 31, 2015
bdb01f7
mfd: axp20x: Add support for extcon cell
Apr 2, 2015
8d2f1a9
mfd: devicetree: bindings: Add Qualcomm RPM regulator subnodes
andersson Apr 6, 2015
bb73370
mfd: tps65010: Remove incorrect __exit markups
dtor Mar 9, 2015
dcbbcba
mfd: wm5102: Remove registers for output 3R from readable list
charleskeepax Apr 3, 2015
e554a99
mfd: sec: Fix RTC alarm interrupt number on S2MPS11
krzk Apr 2, 2015
c6f77bc
backlight: 88pm860x_bl: Use of_get_child_by_name() instead of refcoun…
geertu Jan 14, 2015
b1f85c0
backlight: da9052_bl: Terminate da9052_wled_ids array with empty element
aryabinin Jan 21, 2015
7764a38
perf tools: Fix synthesizing fork_event.ppid for non-main thread
Apr 9, 2015
d998b73
perf tools: Fix error path to do closedir() when synthesizing threads
acmel Apr 8, 2015
1060ab8
perf tools: Fix cross-endian analysis
Apr 9, 2015
5e78c69
perf buildid-list: Fix segfault when show DSOs with hits
Apr 10, 2015
7afb3fa
perf probe: Support multiple probes on different binaries
mhiramathitachi Apr 1, 2015
8cb0aa4
perf probe: Check the orphaned -x option
mhiramathitachi Apr 1, 2015
7b8283b
perf evlist: Fix type for references to data_head/tail
dsahern Apr 7, 2015
8fec02a
HID: debug: fix error handling in hid_debug_events_read()
Apr 9, 2015
2b2190a
i2c: change input parameter to i2c_adapter for prepare/unprepare_reco…
grygoriyS Apr 6, 2015
2e65676
i2c: davinci: use bus recovery infrastructure
grygoriyS Apr 6, 2015
7ef97e9
i2c: davinci: use ICPFUNC to toggle I2C as gpio for bus recovery
grygoriyS Apr 6, 2015
85e4564
of: Add vendor prefix 'netlogic'
Mar 18, 2015
2bbd681
i2c: xlp9xx: Driver for Netlogic XLP9XX/5XX I2C controller
Mar 18, 2015
4a7de05
HID: sensor: Custom and Generic sensor support
spandruvada Apr 10, 2015
b2eafd7
HID: sensor: Update document for custom sensor
spandruvada Apr 10, 2015
5dafd7c
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux…
Apr 11, 2015
07f19e3
Input: ALPS - make alps_get_pkt_id_ss4_v2() and others static
Apr 11, 2015
8b8a518
Input: atkbd - document "no new force-release quirks" policy
dtor Apr 9, 2015
fd2f7cb
kill struct filename.separate
Feb 23, 2015
74eb8cc
namei.c: fold do_path_lookup() into both callers
Feb 23, 2015
9e7543e
remove incorrect comment in lookup_one_len()
Feb 23, 2015
a555ad4
whack-a-mole: no need to set_fs(USER_DS) in {start,flush}_thread()
Feb 23, 2015
74008b3
whack-a-mole: there's no point doing set_fs(USER_DS) in sigframe setup
Feb 23, 2015
2247386
constify tomoyo_realpath_from_path()
Mar 8, 2015
3f7036a
switch security_inode_getattr() to struct path *
Mar 8, 2015
e5b811e
drop bogus check in file_open_root()
Mar 9, 2015
171a020
VFS: Add iov_iter_fault_in_multipages_readable()
AntonAltaparmakov Mar 11, 2015
a632f55
NTFS: Version 2.1.32 - Update file write from aio_write to write_iter.
AntonAltaparmakov Mar 11, 2015
3d330dc
dcache: return -ESTALE not -EBUSY on distributed fs race
Feb 10, 2015
c1b8940
NFS: fix BUG() crash in notify_change() with patch to chown_common()
aweits Feb 23, 2015
c0fec3a
Merge branch 'iocb' into for-next
Apr 12, 2015
ac15ac0
lift iov_iter into {compat_,}do_readv_writev()
Mar 21, 2015
4c185ce
aio: lift iov_iter_init() into aio_setup_..._rw()
Mar 21, 2015
a96114f
aio: simplify arguments of aio_setup_..._rw()
Mar 21, 2015
36e9f65
Merge branch 'iov_iter' into for-next
Apr 12, 2015
d4fb392
kill aio_setup_single_vector()
Mar 21, 2015
345995f
vmsplice_to_user(): switch to import_iovec()
Mar 21, 2015
32a56af
aio_setup_vectored_rw(): switch to {compat_,}import_iovec()
Mar 21, 2015
0504c07
switch {compat_,}do_readv_writev() to {compat_,}import_iovec()
Mar 21, 2015
b353a1f
switch keyctl_instantiate_key_common() to iov_iter
Mar 17, 2015
17d17e7
process_vm_access: switch to {compat_,}import_iovec()
Mar 21, 2015
e272b89
sg_io(): use import_iovec()
Mar 22, 2015
8f7e885
blk_rq_map_user(): use import_single_range()
Mar 22, 2015
451a288
sg_start_req(): make sure that there's not too many elements in iovec
Mar 22, 2015
fdc81f4
sg_start_req(): use import_iovec()
Mar 22, 2015
066450b
perf/x86/intel/pt: Clean up the control flow in pt_pmu_hw_init()
Apr 12, 2015
6bcca19
Input: alps - fix touchpad buttons getting stuck when used with track…
jwrdegoede Apr 8, 2015
92bac83
Input: alps - non interleaved V2 dualpoint has separate stick button …
jwrdegoede Apr 12, 2015
00df35f
cpu: Defer smpboot kthread unparking until CPU known to scheduler
paulmck Apr 12, 2015
590ee7d
cpu: Provide smpboot_thread_init() on !CONFIG_SMP kernels as well
Apr 13, 2015
05f6d02
Merge branches 'for-4.0/upstream-fixes', 'for-4.1/genius', 'for-4.1/h…
Apr 13, 2015
2e455c2
Merge branch 'for-4.1/sensor-hub' into for-linus
Apr 13, 2015
bcf5d54
Merge branch 'for-4.1/core-noarch' into for-linus
Apr 13, 2015
09675bd
Merge branch 'for-4.1/core-s390' into for-linus
Apr 13, 2015
85a3685
Merge branch 'next' into for-linus
dtor Apr 14, 2015
8de29a3
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Apr 14, 2015
d0bbe0d
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Apr 14, 2015
9497d73
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Apr 14, 2015
3f3c73d
Merge tag 'trace-4.1-tracefs' of git://git.kernel.org/pub/scm/linux/k…
torvalds Apr 14, 2015
eeee78c
Merge tag 'trace-v4.1' of git://git.kernel.org/pub/scm/linux/kernel/g…
torvalds Apr 14, 2015
078838d
Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/lin…
torvalds Apr 14, 2015
e95e7f6
Merge branch 'timers-nohz-for-linus' of git://git.kernel.org/pub/scm/…
torvalds Apr 14, 2015
6c8a53c
Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/li…
torvalds Apr 14, 2015
ca2ec32
Merge branch 'for-linus-1' of git://git.kernel.org/pub/scm/linux/kern…
torvalds Apr 14, 2015
2cfde72
Merge tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/…
torvalds Apr 14, 2015
78d5dcd
Merge tag 'jfs-4.1' of git://github.com/kleikamp/linux-shaggy
torvalds Apr 14, 2015
80dcc31
Merge tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/k…
torvalds Apr 14, 2015
1dcf58d
Merge branch 'akpm' (patches from Andrew)
torvalds Apr 14, 2015
f0c1bc9
Merge tag 'mfd-for-linus-4.1' of git://git.kernel.org/pub/scm/linux/k…
torvalds Apr 15, 2015
b240452
Merge tag 'backlight-for-linus-4.1' of git://git.kernel.org/pub/scm/l…
torvalds Apr 15, 2015
07e492e
Merge tag 'pinctrl-v4.1-1' of git://git.kernel.org/pub/scm/linux/kern…
torvalds Apr 15, 2015
8c194f3
Merge tag 'vfio-v4.1-rc1' of git://github.com/awilliam/linux-vfio
torvalds Apr 15, 2015
c3a416a
Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/ker…
torvalds Apr 15, 2015
8691c13
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…
torvalds Apr 15, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Documentation/devicetree/bindings/i2c/i2c-davinci.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ Required properties:
Recommended properties :
- interrupts : standard interrupt property.
- clock-frequency : desired I2C bus clock frequency in Hz.
- ti,has-pfunc: boolean; if defined, it indicates that SoC supports PFUNC
registers. PFUNC registers allow to switch I2C pins to function as
GPIOs, so they can by toggled manually.

Example (enbw_cmc board):
i2c@1c22000 {
Expand Down
25 changes: 25 additions & 0 deletions Documentation/devicetree/bindings/i2c/i2c-digicolor.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
Conexant Digicolor I2C controller

Required properties:
- compatible: must be "cnxt,cx92755-i2c"
- reg: physical address and length of the device registers
- interrupts: a single interrupt specifier
- clocks: clock for the device
- #address-cells: should be <1>
- #size-cells: should be <0>

Optional properties:
- clock-frequency: the desired I2C bus clock frequency in Hz; in
absence of this property the default value is used (100 kHz).

Example:

i2c: i2c@f0000120 {
compatible = "cnxt,cx92755-i2c";
reg = <0xf0000120 0x10>;
interrupts = <28>;
clocks = <&main_clk>;
clock-frequency = <100000>;
#address-cells = <1>;
#size-cells = <0>;
};
35 changes: 35 additions & 0 deletions Documentation/devicetree/bindings/i2c/i2c-jz4780.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
* Ingenic JZ4780 I2C Bus controller

Required properties:
- compatible: should be "ingenic,jz4780-i2c"
- reg: Should contain the address & size of the I2C controller registers.
- interrupts: Should specify the interrupt provided by parent.
- clocks: Should contain a single clock specifier for the JZ4780 I2C clock.
- clock-frequency: desired I2C bus clock frequency in Hz.

Recommended properties:
- pinctrl-names: should be "default";
- pinctrl-0: phandle to pinctrl function

Optional properties:
- interrupt-parent: Should be the phandle of the interrupt controller that
delivers interrupts to the I2C block.

Example

/ {
i2c4: i2c4@0x10054000 {
compatible = "ingenic,jz4780-i2c";
reg = <0x10054000 0x1000>;

interrupt-parent = <&intc>;
interrupts = <56>;

clocks = <&cgu JZ4780_CLK_SMB4>;
clock-frequency = <100000>;
pinctrl-names = "default";
pinctrl-0 = <&pins_i2c4_data>;

};
};

22 changes: 22 additions & 0 deletions Documentation/devicetree/bindings/i2c/i2c-xlp9xx.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Device tree configuration for the I2C controller on the XLP9xx/5xx SoC

Required properties:
- compatible : should be "netlogic,xlp980-i2c"
- reg : bus address start and address range size of device
- interrupts : interrupt number

Optional properties:
- clock-frequency : frequency of bus clock in Hz
Defaults to 100 KHz when the property is not specified

Example:

i2c0: i2c@113100 {
compatible = "netlogic,xlp980-i2c";
#address-cells = <1>;
#size-cells = <0>;
reg = <0 0x113100 0x100>;
clock-frequency = <400000>;
interrupts = <30>;
interrupt-parent = <&pic>;
};
1 change: 1 addition & 0 deletions Documentation/devicetree/bindings/vendor-prefixes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ mxicy Macronix International Co., Ltd.
national National Semiconductor
neonode Neonode Inc.
netgear NETGEAR
netlogic Broadcom Corporation (formerly NetLogic Microsystems)
newhaven Newhaven Display International
nintendo Nintendo
nokia Nokia
Expand Down
14 changes: 14 additions & 0 deletions Documentation/i2c/slave-eeprom-backend
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Linux I2C slave eeprom backend
==============================

by Wolfram Sang <[email protected]> in 2014-15

This is a proof-of-concept backend which acts like an EEPROM on the connected
I2C bus. The memory contents can be modified from userspace via this file
located in sysfs:

/sys/bus/i2c/devices/<device-direcory>/slave-eeprom

As of 2015, Linux doesn't support poll on binary sysfs files, so there is no
notfication when another master changed the content.

179 changes: 179 additions & 0 deletions Documentation/i2c/slave-interface
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
Linux I2C slave interface description
=====================================

by Wolfram Sang <[email protected]> in 2014-15

Linux can also be an I2C slave in case I2C controllers have slave support.
Besides this HW requirement, one also needs a software backend providing the
actual functionality. An example for this is the slave-eeprom driver, which
acts as a dual memory driver. While another I2C master on the bus can access it
like a regular EEPROM, the Linux I2C slave can access the content via sysfs and
retrieve/provide information as needed. The software backend driver and the I2C
bus driver communicate via events. Here is a small graph visualizing the data
flow and the means by which data is transported. The dotted line marks only one
example. The backend could also use e.g. a character device, be in-kernel
only, or something completely different:


e.g. sysfs I2C slave events I/O registers
+-----------+ v +---------+ v +--------+ v +------------+
| Userspace +........+ Backend +-----------+ Driver +-----+ Controller |
+-----------+ +---------+ +--------+ +------------+
| |
----------------------------------------------------------------+-- I2C
--------------------------------------------------------------+---- Bus

Note: Technically, there is also the I2C core between the backend and the
driver. However, at this time of writing, the layer is transparent.


User manual
===========

I2C slave backends behave like standard I2C clients. So, you can instantiate
them like described in the document 'instantiating-devices'. A quick example
for instantiating the slave-eeprom driver from userspace:

# echo 0-0064 > /sys/bus/i2c/drivers/i2c-slave-eeprom/bind

Each backend should come with separate documentation to describe its specific
behaviour and setup.


Developer manual
================

I2C slave events
----------------

The bus driver sends an event to the backend using the following function:

ret = i2c_slave_event(client, event, &val)

'client' describes the i2c slave device. 'event' is one of the special event
types described hereafter. 'val' holds an u8 value for the data byte to be
read/written and is thus bidirectional. The pointer to val must always be
provided even if val is not used for an event, i.e. don't use NULL here. 'ret'
is the return value from the backend. Mandatory events must be provided by the
bus drivers and must be checked for by backend drivers.

Event types:

* I2C_SLAVE_WRITE_REQUESTED (mandatory)

'val': unused
'ret': always 0

Another I2C master wants to write data to us. This event should be sent once
our own address and the write bit was detected. The data did not arrive yet, so
there is nothing to process or return. Wakeup or initialization probably needs
to be done, though.

* I2C_SLAVE_READ_REQUESTED (mandatory)

'val': backend returns first byte to be sent
'ret': always 0

Another I2C master wants to read data from us. This event should be sent once
our own address and the read bit was detected. After returning, the bus driver
should transmit the first byte.

* I2C_SLAVE_WRITE_RECEIVED (mandatory)

'val': bus driver delivers received byte
'ret': 0 if the byte should be acked, some errno if the byte should be nacked

Another I2C master has sent a byte to us which needs to be set in 'val'. If 'ret'
is zero, the bus driver should ack this byte. If 'ret' is an errno, then the byte
should be nacked.

* I2C_SLAVE_READ_PROCESSED (mandatory)

'val': backend returns next byte to be sent
'ret': always 0

The bus driver requests the next byte to be sent to another I2C master in
'val'. Important: This does not mean that the previous byte has been acked, it
only means that the previous byte is shifted out to the bus! To ensure seamless
transmission, most hardware requests the next byte when the previous one is
still shifted out. If the master sends NACK and stops reading after the byte
currently shifted out, this byte requested here is never used. It very likely
needs to be sent again on the next I2C_SLAVE_READ_REQUEST, depending a bit on
your backend, though.

* I2C_SLAVE_STOP (mandatory)

'val': unused
'ret': always 0

A stop condition was received. This can happen anytime and the backend should
reset its state machine for I2C transfers to be able to receive new requests.


Software backends
-----------------

If you want to write a software backend:

* use a standard i2c_driver and its matching mechanisms
* write the slave_callback which handles the above slave events
(best using a state machine)
* register this callback via i2c_slave_register()

Check the i2c-slave-eeprom driver as an example.


Bus driver support
------------------

If you want to add slave support to the bus driver:

* implement calls to register/unregister the slave and add those to the
struct i2c_algorithm. When registering, you probably need to set the i2c
slave address and enable slave specific interrupts. If you use runtime pm, you
should use pm_runtime_forbid() because your device usually needs to be powered
on always to be able to detect its slave address. When unregistering, do the
inverse of the above.

* Catch the slave interrupts and send appropriate i2c_slave_events to the backend.

Check the i2c-rcar driver as an example.


About ACK/NACK
--------------

It is good behaviour to always ACK the address phase, so the master knows if a
device is basically present or if it mysteriously disappeared. Using NACK to
state being busy is troublesome. SMBus demands to always ACK the address phase,
while the I2C specification is more loose on that. Most I2C controllers also
automatically ACK when detecting their slave addresses, so there is no option
to NACK them. For those reasons, this API does not support NACK in the address
phase.

Currently, there is no slave event to report if the master did ACK or NACK a
byte when it reads from us. We could make this an optional event if the need
arises. However, cases should be extremely rare because the master is expected
to send STOP after that and we have an event for that. Also, keep in mind not
all I2C controllers have the possibility to report that event.


About buffers
-------------

During development of this API, the question of using buffers instead of just
bytes came up. Such an extension might be possible, usefulness is unclear at
this time of writing. Some points to keep in mind when using buffers:

* Buffers should be opt-in and slave drivers will always have to support
byte-based transactions as the ultimate fallback because this is how the
majority of HW works.

* For backends simulating hardware registers, buffers are not helpful because
on writes an action should be immediately triggered. For reads, the data in
the buffer might get stale.

* A master can send STOP at any time. For partially transferred buffers, this
means additional code to handle this exception. Such code tends to be
error-prone.

4 changes: 0 additions & 4 deletions Documentation/i2c/summary
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,3 @@ integrated than Algorithm and Adapter.

For a given configuration, you will need a driver for your I2C bus, and
drivers for your I2C devices (usually one driver for each device).

At this time, Linux only operates I2C (or SMBus) in master mode; you can't
use these APIs to make a Linux system behave as a slave/device, either to
speak a custom protocol or to emulate some other device.
28 changes: 28 additions & 0 deletions drivers/i2c/busses/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -485,6 +485,15 @@ config I2C_DESIGNWARE_BAYTRAIL
the platform firmware controlling it. You should say Y if running on
a BayTrail system using the AXP288.

config I2C_DIGICOLOR
tristate "Conexant Digicolor I2C driver"
depends on ARCH_DIGICOLOR
help
Support for Conexant Digicolor SoCs (CX92755) I2C controller driver.

This driver can also be built as a module. If so, the module
will be called i2c-digicolor.

config I2C_EFM32
tristate "EFM32 I2C controller"
depends on ARCH_EFM32 || COMPILE_TEST
Expand Down Expand Up @@ -574,6 +583,15 @@ config I2C_IOP3XX
This driver can also be built as a module. If so, the module
will be called i2c-iop3xx.

config I2C_JZ4780
tristate "JZ4780 I2C controller interface support"
depends on MACH_JZ4780 || COMPILE_TEST
help
If you say yes to this option, support will be included for the
Ingenic JZ4780 I2C controller.

If you don't know what to do here, say N.

config I2C_KEMPLD
tristate "Kontron COM I2C Controller"
depends on MFD_KEMPLD
Expand Down Expand Up @@ -898,6 +916,16 @@ config I2C_XLR
This driver can also be built as a module. If so, the module
will be called i2c-xlr.

config I2C_XLP9XX
tristate "XLP9XX I2C support"
depends on CPU_XLP || COMPILE_TEST
help
This driver enables support for the on-chip I2C interface of
the Broadcom XLP9xx/XLP5xx MIPS processors.

This driver can also be built as a module. If so, the module will
be called i2c-xlp9xx.

config I2C_RCAR
tristate "Renesas R-Car I2C Controller"
depends on ARCH_SHMOBILE || COMPILE_TEST
Expand Down
3 changes: 3 additions & 0 deletions drivers/i2c/busses/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ i2c-designware-platform-objs := i2c-designware-platdrv.o
i2c-designware-platform-$(CONFIG_I2C_DESIGNWARE_BAYTRAIL) += i2c-designware-baytrail.o
obj-$(CONFIG_I2C_DESIGNWARE_PCI) += i2c-designware-pci.o
i2c-designware-pci-objs := i2c-designware-pcidrv.o
obj-$(CONFIG_I2C_DIGICOLOR) += i2c-digicolor.o
obj-$(CONFIG_I2C_EFM32) += i2c-efm32.o
obj-$(CONFIG_I2C_EG20T) += i2c-eg20t.o
obj-$(CONFIG_I2C_EXYNOS5) += i2c-exynos5.o
Expand All @@ -55,6 +56,7 @@ obj-$(CONFIG_I2C_IBM_IIC) += i2c-ibm_iic.o
obj-$(CONFIG_I2C_IMG) += i2c-img-scb.o
obj-$(CONFIG_I2C_IMX) += i2c-imx.o
obj-$(CONFIG_I2C_IOP3XX) += i2c-iop3xx.o
obj-$(CONFIG_I2C_JZ4780) += i2c-jz4780.o
obj-$(CONFIG_I2C_KEMPLD) += i2c-kempld.o
obj-$(CONFIG_I2C_MESON) += i2c-meson.o
obj-$(CONFIG_I2C_MPC) += i2c-mpc.o
Expand Down Expand Up @@ -87,6 +89,7 @@ obj-$(CONFIG_I2C_WMT) += i2c-wmt.o
obj-$(CONFIG_I2C_OCTEON) += i2c-octeon.o
obj-$(CONFIG_I2C_XILINX) += i2c-xiic.o
obj-$(CONFIG_I2C_XLR) += i2c-xlr.o
obj-$(CONFIG_I2C_XLP9XX) += i2c-xlp9xx.o
obj-$(CONFIG_I2C_RCAR) += i2c-rcar.o

# External I2C/SMBus adapter drivers
Expand Down
Loading