23 Commits

Author SHA1 Message Date
Lucas Wei
38b773b493 Merge android-4.9-q (4.9.270) into android-msm-pixel-4.9-lts
Merge 4.9.270 into android-4.9-q
Linux 4.9.270
  * Bluetooth: SMP: Fail if remote and local public keys are identical
      net/bluetooth/smp.c
    video: hgafb: correctly handle card detect failure during probe
    iio: tsl2583: Fix division by a zero lux_val
  * tty: vt: always invoke vc->vc_sw->con_resize callback
      drivers/tty/vt/vt.c
  * vt: Fix character height handling with VT_RESIZEX
      drivers/tty/vt/vt_ioctl.c
      include/linux/console_struct.h
    vgacon: Record video mode changes with VT_RESIZEX
    video: hgafb: fix potential NULL pointer dereference
    qlcnic: Add null check after calling netdev_alloc_skb
    leds: lp5523: check return value of lp5xx_read and jump to cleanup code
    net: rtlwifi: properly check for alloc_workqueue() failure
    net: stmicro: handle clk_prepare() failure during init
    ethernet: sun: niu: fix missing checks of niu_pci_eeprom_read()
    Revert "niu: fix missing checks of niu_pci_eeprom_read"
    Revert "qlcnic: Avoid potential NULL pointer dereference"
    Revert "rtlwifi: fix a potential NULL pointer dereference"
    cdrom: gdrom: initialize global variable at init time
    cdrom: gdrom: deallocate struct gdrom_unit fields in remove_gdrom
    Revert "gdrom: fix a memory leak bug"
  * Revert "ecryptfs: replace BUG_ON with error handling code"
      fs/ecryptfs/crypto.c
    Revert "video: imsttfb: fix potential NULL pointer dereferences"
    Revert "hwmon: (lm80) fix a missing check of bus read in lm80 probe"
    Revert "leds: lp5523: fix a missing check of return value of lp55xx_read"
    Revert "net: stmicro: fix a missing check of clk_prepare"
    Revert "video: hgafb: fix potential NULL pointer dereference"
    dm snapshot: fix crash with transient storage and zero chunk size
    xen-pciback: reconfigure also from backend watch handler
    rapidio: handle create_workqueue() failure
    Revert "rapidio: fix a NULL pointer dereference when create_workqueue() fails"
    Revert "ALSA: sb8: add a check for request_region"
  * ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro
      sound/firewire/Kconfig
  * ALSA: usb-audio: Validate MS endpoint descriptors
      sound/usb/midi.c
    ALSA: line6: Fix racy initialization of LINE6 MIDI
    cifs: fix memory leak in smb2_copychunk_range
  * ptrace: make ptrace() fail if the tracee changed its pid unexpectedly
      kernel/ptrace.c
    scsi: qla2xxx: Fix error return code in qla82xx_write_flash_dword()
    RDMA/rxe: Clear all QP fields if creation failed
    openrisc: Fix a memory leak
    Merge 4.9.269 into android-4.9-q
Linux 4.9.269
  * ipv6: remove extra dev_hold() for fallback tunnels
      net/ipv6/ip6_tunnel.c
      net/ipv6/ip6_vti.c
      net/ipv6/sit.c
  * xhci: Do not use GFP_KERNEL in (potentially) atomic context
      drivers/usb/host/xhci.c
  * ip6_tunnel: sit: proper dev_{hold|put} in ndo_[un]init methods
      net/ipv6/ip6_tunnel.c
  * sit: proper dev_{hold|put} in ndo_[un]init methods
      net/ipv6/sit.c
    lib: stackdepot: turn depot_lock spinlock to raw_spinlock
    ALSA: hda: generic: change the DAC ctl name for LO+SPK or LO+HP
    ceph: fix fscache invalidation
    um: Mark all kernel symbols as local
    Input: silead - add workaround for x86 BIOS-es which bring the chip up in a stuck state
    ACPI / hotplug / PCI: Fix reference count leak in enable_slot()
    isdn: capi: fix mismatched prototypes
    cxgb4: Fix the -Wmisleading-indentation warning
    usb: sl811-hcd: improve misleading indentation
    kgdb: fix gcc-11 warning on indentation
    extcon: adc-jack: Fix incompatible pointer type warning
    x86/msr: Fix wr/rdmsr_safe_regs_on_cpu() prototypes
    clk: exynos7: Mark aclk_fsys1_200 as critical
  * netfilter: conntrack: Make global sysctls readonly in non-init netns
      net/netfilter/nf_conntrack_standalone.c
  * kobject_uevent: remove warning in init_uevent_argv()
      lib/kobject_uevent.c
  * dm ioctl: fix out of bounds array access when no devices
      drivers/md/dm-ioctl.c
    thermal/core/fair share: Lock the thermal zone while looping over instances
    MIPS: Avoid handcoded DIVU in `__div64_32' altogether
    MIPS: Avoid DIVU in `__div64_32' is result would be zero
    MIPS: Reinstate platform `__div64_32' handler
  * FDDI: defxx: Make MMIO the configuration default except for EISA
      drivers/net/fddi/Kconfig
    KVM: x86: Cancel pvclock_gtod_work on module removal
  * usb: core: hub: fix race condition about TRSMRCY of resume
      drivers/usb/core/hub.c
    usb: dwc2: Fix gadget DMA unmap direction
  * usb: xhci: Increase timeout for HC halt
      drivers/usb/host/xhci-ext-caps.h
    ACPI: scan: Fix a memory leak in an error handling path
    usb: fotg210-hcd: Fix an error message
    iio: proximity: pulsedlight: Fix rumtime PM imbalance on error
    squashfs: fix divide error in calculate_skip()
    powerpc/64s: Fix crashes when toggling entry flush barrier
    ARC: entry: fix off-by-one error in syscall number validation
    kernel: kexec_file: fix error return code of kexec_calculate_store_digests()
    ksm: fix potential missing rmap_item for stable_node
    mm/hugeltb: handle the error case in hugetlb_fix_reserve_counts()
    khugepaged: fix wrong result value for trace_mm_collapse_huge_page_isolate()
    drm/radeon: Fix off-by-one power_state index heap overwrite
    sctp: fix a SCTP_MIB_CURRESTAB leak in sctp_sf_do_dupcook_b
    NFSv4.2 fix handling of sr_eof in SEEK's reply
    pNFS/flexfiles: fix incorrect size check in decode_nfs_fh()
    NFS: Deal correctly with attribute generation counter overflow
    NFSv4.2: Always flush out writes in nfs42_proc_fallocate()
    ARM: 9064/1: hw_breakpoint: Do not directly check the event's overflow_handler hook
  * PCI: Release OF node in pci_scan_device()'s error path
      drivers/pci/probe.c
  * f2fs: fix a redundant call to f2fs_balance_fs if an error occurs
      fs/f2fs/inline.c
    ASoC: rt286: Make RT286_SET_GPIO_* readable and writable
    net: ethernet: mtk_eth_soc: fix RX VLAN offload
    powerpc/iommu: Annotate nested lock for lockdep
    wl3501_cs: Fix out-of-bounds warnings in wl3501_mgmt_join
    wl3501_cs: Fix out-of-bounds warnings in wl3501_send_pkt
    powerpc/pseries: Stop calling printk in rtas_stop_self()
    samples/bpf: Fix broken tracex1 due to kprobe argument change
    ASoC: rt286: Generalize support for ALC3263 codec
    sctp: Fix out-of-bounds warning in sctp_process_asconf_param()
    kconfig: nconf: stop endless search loops
    selftests: Set CC to clang in lib.mk if LLVM is set
    cuse: prevent clone
    mac80211: clear the beacon's CRC after channel switch
  * ip6_vti: proper dev_{hold|put} in ndo_[un]init methods
      net/ipv6/ip6_vti.c
  * Bluetooth: initialize skb_queue_head at l2cap_chan_create()
      net/bluetooth/l2cap_core.c
  * Bluetooth: Set CONF_NOT_COMPLETE as l2cap_chan default
      net/bluetooth/l2cap_core.c
    ALSA: rme9652: don't disable if not enabled
    ALSA: hdspm: don't disable if not enabled
    ALSA: hdsp: don't disable if not enabled
    net: stmmac: Set FIFO sizes for ipq806x
    tipc: convert dest node's address to network order
    fs: dlm: fix debugfs dump
  * Revert "fdt: Properly handle "no-map" field in the memory region"
      drivers/of/fdt.c
  * Revert "of/fdt: Make sure no-map does not remove already reserved regions"
      drivers/of/fdt.c
    sctp: delay auto_asconf init until binding the first addr
    Revert "net/sctp: fix race condition in sctp_destroy_sock"
    kfifo: fix ternary sign extension bugs
    net:nfc:digital: Fix a double free in digital_tg_recv_dep_req
    net:emac/emac-mac: Fix a use after free in emac_mac_tx_buf_send
    powerpc/52xx: Fix an invalid ASM expression ('addi' used instead of 'add')
    ath9k: Fix error check in ath9k_hw_read_revisions() for PCI devices
    net: davinci_emac: Fix incorrect masking of tx and rx error channel
    RDMA/i40iw: Fix error unwinding when i40iw_hmc_sd_one fails
    vsock/vmci: log once the failed queue pair allocation
    mwl8k: Fix a double Free in mwl8k_probe_hw
    i2c: sh7760: fix IRQ error path
    powerpc/pseries: extract host bridge from pci_bus prior to bus removal
    MIPS: pci-legacy: stop using of_pci_range_to_resource
    i2c: sh7760: add IRQ check
    i2c: jz4780: add IRQ check
    i2c: emev2: add IRQ check
    i2c: cadence: add IRQ check
    net: thunderx: Fix unintentional sign extension issue
    mt7601u: fix always true expression
    mac80211: bail out if cipher schemes are invalid
    powerpc: iommu: fix build when neither PCI or IBMVIO is set
    powerpc/perf: Fix PMU constraint check for EBB events
    liquidio: Fix unintented sign extension of a left shift of a u16
  * ALSA: usb-audio: Add error checks for usb_driver_claim_interface() calls
      sound/usb/card.c
      sound/usb/quirks.c
      sound/usb/usbaudio.h
    nfc: pn533: prevent potential memory corruption
  * ALSA: core: remove redundant spin_lock pair in snd_card_disconnect
      sound/core/init.c
    powerpc/prom: Mark identical_pvr_fixup as __init
    net: lapbether: Prevent racing when checking whether the netif is running
    perf symbols: Fix dso__fprintf_symbols_by_name() to return the number of printed chars
  * HID: plantronics: Workaround for double volume key presses
      drivers/hid/hid-ids.h
      drivers/hid/hid-plantronics.c
      include/linux/hid.h
    x86/events/amd/iommu: Fix sysfs type mismatch
    HSI: core: fix resource leaks in hsi_add_client_from_dt()
    scsi: sni_53c710: Add IRQ check
    scsi: sun3x_esp: Add IRQ check
    scsi: jazz_esp: Add IRQ check
    clk: uniphier: Fix potential infinite loop
    media: dvb-usb-remote: fix dvb_usb_nec_rc_key_to_event type mismatch
    scsi: fcoe: Fix mismatched fcoe_wwn_from_mac declaration
    ata: libahci_platform: fix IRQ check
    sata_mv: add IRQ checks
    pata_ipx4xx_cf: fix IRQ check
    pata_arasan_cf: fix IRQ check
    media: m88rs6000t: avoid potential out-of-bounds reads on arrays
    media: omap4iss: return error code when omap4iss_get() failed
    media: vivid: fix assignment of dev->fbuf_out_flags
    ttyprintk: Add TTY hangup callback.
    Drivers: hv: vmbus: Increase wait time for VMbus unload
    x86/platform/uv: Fix !KEXEC build failure
  * firmware: qcom-scm: Fix QCOM_SCM configuration
      drivers/firmware/Kconfig
  * tty: fix return value for unsupported ioctls
      drivers/tty/tty_io.c
      include/linux/tty_driver.h
  * tty: actually undefine superseded ASYNC flags
      include/uapi/linux/tty_flags.h
    USB: cdc-acm: fix unprivileged TIOCCSERIAL
    usb: gadget: r8a66597: Add missing null check on return from platform_get_resource
    crypto: qat - Fix a double free in adf_create_ring
    staging: greybus: uart: fix unprivileged TIOCCSERIAL
    staging: rtl8192u: Fix potential infinite loop
    mtd: rawnand: gpmi: Fix a double free in gpmi_nand_init
    crypto: qat - fix error path in adf_isr_resource_alloc()
    bus: qcom: Put child node before return
    mtd: require write permissions for locking and badblock ioctls
    fotg210-udc: Complete OUT requests on short packets
    fotg210-udc: Don't DMA more than the buffer can take
    fotg210-udc: Mask GRP2 interrupts we don't handle
    fotg210-udc: Remove a dubious condition leading to fotg210_done
    fotg210-udc: Fix EP0 IN requests bigger than two packets
    fotg210-udc: Fix DMA on EP0 for length > max packet size
    crypto: qat - ADF_STATUS_PF_RUNNING should be set after adf_dev_init
    crypto: qat - don't release uninitialized resources
    usb: gadget: pch_udc: Check for DMA mapping error
    usb: gadget: pch_udc: Check if driver is present before calling ->setup()
    usb: gadget: pch_udc: Replace cpu_to_le32() by lower_32_bits()
    serial: stm32: fix incorrect characters on console
    ARM: dts: exynos: correct PMIC interrupt trigger level on Snow
    ARM: dts: exynos: correct PMIC interrupt trigger level on SMDK5250
    memory: gpmc: fix out of bounds read and dereference on gpmc_cs[]
    usb: gadget: pch_udc: Revert d3cb25a121 completely
    ALSA: hda/realtek: Remove redundant entry for ALC861 Haier/Uniwill devices
    ALSA: hda/realtek: Re-order ALC269 Lenovo quirk table entries
    ALSA: hda/realtek: Re-order ALC269 Sony quirk table entries
    ALSA: hda/realtek: Re-order ALC882 Sony quirk table entries
    ALSA: hda/realtek: Re-order ALC882 Acer quirk table entries
    drm/radeon: fix copy of uninitialized variable back to userspace
  * cfg80211: scan: drop entry from hidden_list on overflow
      net/wireless/scan.c
    ipw2x00: potential buffer overflow in libipw_wx_set_encodeext()
    md: md_open returns -EBUSY when entering racing area
    md: factor out a mddev_find_locked helper from mddev_find
    md-cluster: fix use-after-free issue when removing rdev
  * tracing: Restructure trace_clock_global() to never block
      kernel/trace/trace_clock.c
  * tracing: Map all PIDs to command lines
      kernel/trace/trace.c
  * tracing: Use strlcpy() instead of strcpy() in __trace_find_cmdline()
      kernel/trace/trace.c
  * tracing: Treat recording comm for idle task as a success
      kernel/trace/trace.c
    misc: vmw_vmci: explicitly initialize vmci_datagram payload
    misc: vmw_vmci: explicitly initialize vmci_notify_bm_set_msg struct
    misc: lis3lv02d: Fix false-positive WARN on various HP models
    FDDI: defxx: Bail out gracefully with unassigned PCI resource for CSR
    net/nfc: fix use-after-free llcp_sock_bind/connect
  * bluetooth: eliminate the potential race condition when removing the HCI controller
      net/bluetooth/hci_request.c
    hsr: use netdev_err() instead of WARN_ONCE()
  * Bluetooth: verify AMP hci_chan before amp_destroy
      include/net/bluetooth/hci_core.h
      net/bluetooth/hci_event.c
  * dm rq: fix double free of blk_mq_tag_set in dev remove after table load fails
      drivers/md/dm-rq.c
    dm space map common: fix division bug in sm_ll_find_free_block()
    dm persistent data: packed struct should have an aligned() attribute too
  * usb: gadget/function/f_fs string table fix for multiple languages
      drivers/usb/gadget/function/f_fs.c
  * usb: gadget: Fix double free of device descriptor pointers
      drivers/usb/gadget/config.c
    usb: gadget: dummy_hcd: fix gpf in gadget_setup
  * media: dvbdev: Fix memory leak in dvb_media_device_free()
      drivers/media/dvb-core/dvbdev.c
  * ext4: fix error code in ext4_commit_super
      fs/ext4/super.c
  * ext4: fix check to prevent false positive report of incorrect used inodes
      fs/ext4/ialloc.c
    ftrace: Handle commands when closing set_ftrace_filter file
  * Revert 337f13046f ("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op")
      kernel/futex.c
    jffs2: check the validity of dstlen in jffs2_zlib_compress()
    powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h
    powerpc/eeh: Fix EEH handling for hugepages in ioremap space.
    jffs2: Fix kasan slab-out-of-bounds problem
    NFSv4: Don't discard segments marked for return in _pnfs_return_layout()
    openvswitch: fix stack OOB read while fragmenting IPv4 packets
  * arm64/vdso: Discard .note.gnu.property sections in vDSO
      arch/arm64/kernel/vdso/vdso.lds.S
    ALSA: sb: Fix two use after free in snd_sb_qsound_build
    ALSA: emu8000: Fix a use after free in snd_emu8000_create_mixer
    scsi: libfc: Fix a format specifier
    scsi: lpfc: Fix crash when a REG_RPI mailbox fails triggering a LOGO response
    drm/amdgpu: fix NULL pointer dereference
    drm/msm/mdp5: Configure PP_SYNC_HEIGHT to double the vtotal
    media: gscpa/stv06xx: fix memory leak
    media: dvb-usb: fix memory leak in dvb_usb_adapter_init
    media: i2c: adv7842: fix possible use-after-free in adv7842_remove()
    media: i2c: adv7511-v4l2: fix possible use-after-free in adv7511_remove()
    media: adv7604: fix possible use-after-free in adv76xx_remove()
    power: supply: s3c_adc_battery: fix possible use-after-free in s3c_adc_bat_remove()
    power: supply: generic-adc-battery: fix possible use-after-free in gab_remove()
    clk: socfpga: arria10: Fix memory leak of socfpga_clk on error return
    media: em28xx: fix memory leak
    scsi: scsi_dh_alua: Remove check for ASC 24h in alua_rtpg()
    scsi: qla2xxx: Always check the return value of qla24xx_get_isp_stats()
    power: supply: Use IRQF_ONESHOT
    media: gspca/sq905.c: fix uninitialized variable
    media: media/saa7164: fix saa7164_encoder_register() memory leak bugs
    extcon: arizona: Fix some issues when HPDET IRQ fires after the jack has been unplugged
    media: ite-cir: check for receive overflow
    scsi: target: pscsi: Fix warning in pscsi_complete_cmd()
    btrfs: convert logic BUG_ON()'s in replace_path to ASSERT()'s
    phy: phy-twl4030-usb: Fix possible use-after-free in twl4030_usb_remove()
    intel_th: Consistency and off-by-one fix
    spi: omap-100k: Fix reference leak to master
    spi: dln2: Fix reference leak to master
    x86/build: Propagate $(CLANG_FLAGS) to $(REALMODE_FLAGS)
  * PCI: PM: Do not read power state in pci_enable_device_flags()
      drivers/pci/pci.c
  * usb: xhci: Fix port minor revision
      drivers/usb/host/xhci-mem.c
  * usb: dwc3: gadget: Ignore EP queue requests during bus reset
      drivers/usb/dwc3/gadget.c
    usb: gadget: uvc: add bInterval checking for HS mode
    staging: wimax/i2400m: fix byte-order issue
  * fbdev: zero-fill colormap in fbcmap.c
      drivers/video/fbdev/core/fbcmap.c
    btrfs: fix metadata extent leak after failure to create subvolume
  * mmc: core: Set read only for SD cards with permanent write protect bit
      drivers/mmc/core/sd.c
  * mmc: core: Do a power cycle when the CMD11 fails
      drivers/mmc/core/core.c
  * ecryptfs: fix kernel panic with null dev_name
      fs/ecryptfs/main.c
    arm64: dts: mt8173: fix property typo of 'phys' in dsi node
    ACPI: custom_method: fix a possible memory leak
    ACPI: custom_method: fix potential use-after-free issue
    s390/disassembler: increase ebpf disasm buffer size
    platform/x86: thinkpad_acpi: Correct thermal sensor allocation
  * USB: Add reset-resume quirk for WD19's Realtek Hub
      drivers/usb/core/quirks.c
  * USB: Add LPM quirk for Lenovo ThinkPad USB-C Dock Gen2 Ethernet
      drivers/usb/core/quirks.c
  * ALSA: usb-audio: Add MIDI quirk for Vox ToneLab EX
      sound/usb/quirks-table.h
    iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_enqueue_hcmd()
  * net: usb: ax88179_178a: initialize local variables before use
      drivers/net/usb/ax88179_178a.c

Bug: 189791081
Change-Id: Icfd08a4c79a6563b6e98de8a9295114e919fc8f3
Signed-off-by: Lucas Wei <lucaswei@google.com>
2021-06-14 17:32:34 +08:00
Peter Foley
cb7d2be7f2 extcon: adc-jack: Fix incompatible pointer type warning
commit 8a522bf2d4f788306443d36b26b54f0aedcdfdbe upstream.

This patch fixes the incompatible warning of extcon-adc-jack.c driver
when calling devm_extcon_dev_allocate().

Signed-off-by: Peter Foley <pefoley2@pefoley.com>
[cw00.choi: Modify the patch title and descritpion]
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-05-22 10:40:33 +02:00
Subhash Jadavani
e5371bdd86 extcon: gpio: add support to parse platform data from device tree
extcon-gpio driver currently doesn't support passing the platfroom data via
device tree, we are adding this support so extcon-gpio driver can be used
with platforms using the DT from platform data. We are also fixing the
issue where we were passing the supported_cable incorrect way to
extcon_dev_allocate() API.

Change-Id: I035c2f6c43d6c5140bc9a3088da7c1b3f2f108f1
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
2017-05-15 12:08:11 -07:00
Chanwoo Choi
a7da72eeec extcon: adc-jack: Remove the usage of extcon_set_state()
This patch removes the usage of extcon_set_state() because it uses the bit
masking to change the state of external connectors. The extcon framework
should handle the state by extcon_set/get_cable_state_() with extcon id.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2016-08-08 10:58:35 +09:00
Venkat Reddy Talla
1b6cf31010 extcon: adc-jack: add suspend/resume support
adding suspend and resume funtionality for extcon-adc-jack
driver to configure system wake up for extcon events,
also adding support to enable/disable system wakeup
through flag wakeup_source based on platform requirement.

Signed-off-by: Venkat Reddy Talla <vreddytalla@nvidia.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2016-07-02 14:31:34 +09:00
Chanwoo Choi
6ba129974a extcon: gpio: Fix minor coding style and remove the unused fields.
This patch fixes the minor coding style about indentation and removes the
unused fields from struct gpio_extcon_platform_data.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2015-09-30 19:22:50 +09:00
Chanwoo Choi
ce6f749605 extcon: gpio: Add the missing supported_cable parameter to devm_extcon_dev_allocate()
The commit 2a9de9c0 ("extcon: Use the unique id for external connector instead
of string") defines the unique id of each external connector to identify the
type of external connector instead of string name. So, devm_extcon_dev_allocate()
should include the second parameter (unsigned int *supported_cable). This patch
adds the supported_cable parameter which is passed by platform data.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2015-09-30 19:22:49 +09:00
Chanwoo Choi
2a9de9c0f0 extcon: Use the unique id for external connector instead of string
This patch uses the unique id to identify the type of external connector instead
of string name. The string name have the many potential issues. So, this patch
defines the 'extcon' enumeration which includes all supported external connector
on EXTCON subsystem. If new external connector is necessary, the unique id of
new connector have to be added in 'extcon' enumeration. There are current
supported external connector in 'enum extcon' as following:

enum extcon {
	EXTCON_NONE		= 0x0,

	/* USB external connector */
	EXTCON_USB		= 0x1,
	EXTCON_USB_HOST		= 0x2,

	/* Charger external connector */
	EXTCON_TA		= 0x10,
	EXTCON_FAST_CHARGER	= 0x11,
	EXTCON_SLOW_CHARGER	= 0x12,
	EXTCON_CHARGE_DOWNSTREAM = 0x13,

	/* Audio and video external connector */
	EXTCON_LINE_IN		= 0x20,
	EXTCON_LINE_OUT		= 0x21,
	EXTCON_MICROPHONE	= 0x22,
	EXTCON_HEADPHONE	= 0x23,

	EXTCON_HDMI		= 0x30,
	EXTCON_MHL		= 0x31,
	EXTCON_DVI		= 0x32,
	EXTCON_VGA		= 0x33,
	EXTCON_SPDIF_IN		= 0x34,
	EXTCON_SPDIF_OUT	= 0x35,
	EXTCON_VIDEO_IN		= 0x36,
	EXTCON_VIDEO_OUT	= 0x37,

	/* Miscellaneous external connector */
	EXTCON_DOCK		= 0x50,
	EXTCON_JIG		= 0x51,
	EXTCON_MECHANICAL	= 0x52,

	EXTCON_END,
};

For example in extcon-arizona.c:
To use unique id removes the potential issue about handling
the inconsistent name of external connector with string.
- Previously, use the string to register the type of arizona jack connector
static const char *arizona_cable[] = {
	"Mechanical",
	"Microphone",
	"Headphone",
	"Line-out",
};
- Newly, use the unique id to register the type of arizona jack connector
static const enum extcon arizona_cable[] = {
	EXTCON_MECHANICAL,
	EXTCON_MICROPHONE,
	EXTCON_HEADPHONE,
	EXTCON_LINE_OUT,

	EXTCON_NONE,
};

And this patch modify the prototype of extcon_{get|set}_cable_state_() which
uses the 'enum extcon id' instead of 'cable_index'. Because although one more
extcon drivers support USB cable, each extcon driver might has the differnt
'cable_index' for USB cable. All extcon drivers can use the unique id number
for same external connector with modified extcon_{get|set}_cable_state_().

- Previously, use 'cable_index' on these functions:
extcon_get_cable_state_(struct extcon_dev*, int cable_index)
extcon_set_cable_state_(struct extcon_dev*, int cable_index, bool state)

-Newly, use 'enum extcon id' on these functions:
extcon_get_cable_state_(struct extcon_dev*, enum extcon id)
extcon_set_cable_state_(struct extcon_dev*, enum extcon id, bool state)

Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Felipe Balbi <balbi@ti.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Acked-by: Roger Quadros <rogerq@ti.com>
Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
Acked-by: Ramakrishna Pallala <ramakrishna.pallala@intel.com>
Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
[arnd: Report the build break about drivers/usb/phy/phy-tahvo.c after using the
unique id for external connector insteadf of string]
Reported-by: Arnd Bergmann <arnd@arndb.de>
[dan.carpenter: Report the build warning of extcon_{set|get}_cable_state_()]
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
2015-05-22 18:58:44 +09:00
George Cherian
62364357c1 extcon: gpio: Fix code cleanup
This patch fixes following minor cleanup:
 - Order the include files in alphabetical order.
 - Fix description of state_off in extcon_gpio.h
 - Add a descrition for check_on_resume in extcon_gpio.h

Signed-off-by: George Cherian <george.cherian@ti.com>
[Modify the name/description of patch to keep standary codiyg style by Chanwoo Choi]
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2014-09-22 16:48:47 +09:00
Chanwoo Choi
ca2a07e45d extcon: sm5502: Move sm5502.h header file to extcon directory
This patch move sm5502.h header file from 'include/linux/extcon' to
'driver/extcon' because sm5502.h is used for driver/extcon/extcon-sm5502.c.
and remove duplicate license description.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2014-09-22 11:43:08 +09:00
Chanwoo Choi
a75fed2ee6 extcon: sm5502: Change internal hardware switch according to cable type
This patch changes internal hardware DP_CON/DM_CON switch according to
cable type. The SM5502 MUIC device can set hardware switch as following:
- OPEN (not connected state) / USB / UART / AUDIO
Also, this patch set VBUSIN switch according to cable type.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2014-07-23 10:22:35 +09:00
Chanwoo Choi
914b881f94 extcon: sm5502: Add support new SM5502 extcon device driver
This patch add new SM5502 MUIC(Micro-USB Interface Controller) device by using
EXTCON subsystem. The extcon-sm5502 driver is capable of identifying the type
of the external power source and attached accessory. An external power sources,
such as Deticated Charger or a standard USB port, are able to charge the battery
in the smart phone via the connector.

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2014-07-23 10:22:30 +09:00
Chanwoo Choi
1ad94ffef2 extcon: Move OF helper function to extcon core and change function name
This patch move simply OF helper function to extcon core and change function
name as following:
- of_extcon_get_extcon_dev() -> extcon_get_edev_by_phandle()

Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Acked-by: Felipe Balbi <balbi@ti.com>
2014-03-19 14:41:58 +09:00
Rongjun Ying
6544dfa579 extcon: gpio: Add power resume support
When system on the suspend state, Some SoC can't get gpio interrupt.
After system resume, need send extcon uevent to userspace.

Signed-off-by: Rongjun Ying <rongjun.ying@csr.com>
Reviewed-by: Barry Song <Baohua.Song@csr.com>
Acked-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2014-01-09 09:53:30 +09:00
Guenter Roeck
5bfbdc9caa extcon: gpio: Add support for active-low presence to detect pins
This patch add 'gpio_active_low' field to 'struct gpio_extcon_data'
to check whether gpio active state is 1(high) or 0(low).

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
2013-09-27 09:37:01 +09:00
Chanwoo Choi
a75e1c73a4 extcon: Fix indentation coding style to improve readability
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
2013-09-27 09:37:00 +09:00
Kishon Vijay Abraham I
6eee5b3b49 extcon: Add an API to get extcon device from dt node
Added an API of_extcon_get_extcon_dev() to be used by drivers to get
extcon device in the case of dt boot (this can be used instead of
extcon_get_extcon_dev()).

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
2013-08-05 08:52:45 +09:00
Chanwoo Choi
fd116066d9 extcon: gpio: Rename filename of extcon-gpio.c according to kernel naming style
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-02-13 08:35:43 -08:00
anish kumar
19939860dc extcon: adc_jack: adc-jack driver to support 3.5 pi or simliar devices
External connector devices that decides connection information based on
ADC values may use adc-jack device driver. The user simply needs to
provide a table of adc range and connection states. Then, extcon
framework will automatically notify others.

Changes in V1:
added Lars-Peter Clausen suggested changes:
Using macros to get rid of boiler plate code such as devm_kzalloc
and module_platform_driver.Other changes suggested are related to
coding guidelines.

Changes in V2:
Removed some unnecessary checks and changed the way we are un-regitering
extcon and freeing the irq while removing.

Changes in V3:
Renamed the files to comply with extcon naming.

Changes in V4:
Added the cancel_work_sync during removing of driver.

Changes in V5:
Added the dependency of IIO in Kconfig.

Changes in V6:
Some nitpicks related to naming.

Changes in this version:
V6 patch version patch broke the build:
ERROR: "extcon_cable_name" [drivers/extcon/extcon-adc-jack.ko] undefined!

Fixed it in this version.

Acked-by: Jonathan Cameron <jic23@kernel.org>
Reviewed-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: anish kumar <anish.singh@samsung.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-09-05 12:20:49 -07:00
Greg Kroah-Hartman
3afebf577d Revert "Extcon: adc_jack: adc-jack driver to support 3.5 pi or simliar devices"
This reverts commit 980d792981 as it
breaks the build with the error:
	ERROR: "extcon_cable_name" [drivers/extcon/extcon-adc-jack.ko] undefined!

Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: anish kumar <anish.singh@samsung.com>
Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-08-16 10:40:32 -07:00
anish kumar
980d792981 Extcon: adc_jack: adc-jack driver to support 3.5 pi or simliar devices
External connector devices that decides connection information based on
ADC values may use adc-jack device driver. The user simply needs to
provide a table of adc range and connection states. Then, extcon
framework will automatically notify others.

Changes in V1:
added Lars-Peter Clausen suggested changes:
Using macros to get rid of boiler plate code such as devm_kzalloc
and module_platform_driver.Other changes suggested are related to
coding guidelines.

Changes in V2:
Removed some unnecessary checks and changed the way we are un-regitering
extcon and freeing the irq while removing.

Changes in V3:
Renamed the files to comply with extcon naming.

Changes in V4:
Added the cancel_work_sync during removing of driver.

Changes in V5:
Added the dependency of IIO in Kconfig.

Changes in V6:
Some nitpicks related to naming.

Reviewed-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: anish kumar <anish.singh@samsung.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-08-16 10:37:00 -07:00
Peter Meerwald
47610d98e8 extcon: spelling of detach in function doc
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-07-17 09:32:14 -07:00
MyungJoo Ham
be48308a24 Extcon: support generic GPIO extcon driver
The generic GPIO extcon driver (an external connector device based on
GPIO control) and imported from Android kernel.

switch: switch class and GPIO drivers. (splitted)
Author: Mike Lockwood <lockwood@android.com>

switch: gpio: Don't call request_irq with interrupts disabled
Author: Arve Hjønnevåg <arve@android.com>

switch_gpio: Add missing #include <linux/interrupt.h>
Author: Mike Lockwood <lockwood@android.com>

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

--
Changed from v7:
- Style updates mentioned by Stephen Boyd and Mark Brown
Changed from v5:
- Splitted at v5 from the main extcon patch.
- Added debounce time for irq handlers.
- Use request_any_context_irq instead of request_irq
- User needs to specify irq flags for GPIO interrupts (was fixed to
IRQF_TRIGGER_LOW before)
- Use module_platform_driver().
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-04-20 09:22:02 -07:00