summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* ipack/devices/ipoctal: remove wait_queue and atomic_t board_writeSamuel Iglesias Gonsalvez2013-01-151-16/+3
| | | | | | | Don't block the TTY client when sending characters. Signed-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* ipack/devices/ipoctal: fix kernel bug when using pppdSamuel Iglesias Gonsalvez2013-01-151-19/+2
| | | | | | | | | | | Trying to setup the pppd server to use ipoctal's serial ports, it says the ports are busy the first time. If the operation is repeated, a kernel bug due to a dereference of a NULL pointer appears. Removing the one-access-only setup from the driver, removes this kernel bug. Signed-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* ipack/devices/ipoctal: don't check if nb_bytes is < 0Alberto Garcia2013-01-151-3/+1
| | | | | | | | It is an unsigned int so that check is pointless. Signed-off-by: Alberto Garcia <agarcia@igalia.com> Signed-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* ipack/devices/ipoctal: Fix race condition during TxAlberto Garcia2013-01-151-7/+4
| | | | | | | | | | | | | In order to transmit data, the driver enables Tx and sleeps until *board_write is set to 1 by the interrupt handler. It can happen, though, that the data is sent even before the process is asleep. In this case *board_write must be set to 1 anyway, otherwise we will be waiting for a condition that will never be true. Signed-off-by: Alberto Garcia <agarcia@igalia.com> Signed-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: drop the warning when cl is not initialized during unlinkingTomas Winkler2013-01-141-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On systems where wd and amthif is not initialized we will hit cl->dev == NULL. This condition is okay so we don't need to be laud about it. Fixes the follwing warning during suspend [ 137.061985] WARNING: at drivers/misc/mei/client.c:315 mei_cl_unlink+0x86/0x90 [mei]() [ 137.061986] Hardware name: 530U3BI/530U4BI/530U4BH [ 137.062140] Modules linked in: snd_hda_codec_hdmi snd_hda_codec_realtek joydev coretemp kvm_intel snd_hda_intel snd_hda_codec kvm arc4 iwldvm snd_hwdep i915 snd_pcm mac80211 ghash_clmulni_intel snd_page_alloc aesni_intel snd_seq_midi xts snd_seq_midi_event aes_x86_64 rfcomm snd_rawmidi parport_pc bnep lrw snd_seq uvcvideo i2c_algo_bit ppdev gf128mul iwlwifi snd_timer drm_kms_helper ablk_helper cryptd drm snd_seq_device videobuf2_vmalloc psmouse videobuf2_memops snd cfg80211 btusb videobuf2_core soundcore videodev lp bluetooth samsung_laptop wmi microcode mei serio_raw mac_hid video hid_generic lpc_ich parport usbhid hid r8169 [ 137.062143] Pid: 2706, comm: kworker/u:15 Tainted: G D W 3.8.0-rc2-next20130109-1-iniza-generic #1 [ 137.062144] Call Trace: [ 137.062156] [<ffffffff8105860f>] warn_slowpath_common+0x7f/0xc0 [ 137.062159] [<ffffffff8135b1ea>] ? ioread32+0x3a/0x40 [ 137.062162] [<ffffffff8105866a>] warn_slowpath_null+0x1a/0x20 [ 137.062168] [<ffffffffa0076be6>] mei_cl_unlink+0x86/0x90 [mei] [ 137.062173] [<ffffffffa0071325>] mei_reset+0xc5/0x240 [mei] [ 137.062178] [<ffffffffa0073703>] mei_pci_resume+0xa3/0x110 [mei] [ 137.062183] [<ffffffff81379cae>] pci_pm_resume+0x7e/0xe0 [ 137.062185] [<ffffffff81379c30>] ? pci_pm_thaw+0x80/0x80 [ 137.062189] [<ffffffff8145a415>] dpm_run_callback.isra.6+0x25/0x50 [ 137.062192] [<ffffffff8145a6cf>] device_resume+0x9f/0x140 [ 137.062194] [<ffffffff8145a791>] async_resume+0x21/0x50 [ 137.062200] [<ffffffff810858b0>] async_run_entry_fn+0x90/0x1c0 [ 137.062203] [<ffffffff810778e5>] process_one_work+0x155/0x460 [ 137.062207] [<ffffffff81078578>] worker_thread+0x168/0x400 [ 137.062210] [<ffffffff81078410>] ? manage_workers+0x2b0/0x2b0 [ 137.062214] [<ffffffff8107d9f0>] kthread+0xc0/0xd0 [ 137.062218] [<ffffffff8107d930>] ? flush_kthread_worker+0xb0/0xb0 [ 137.062222] [<ffffffff816bac6c>] ret_from_fork+0x7c/0xb0 [ 137.062228] [<ffffffff8107d930>] ? flush_kthread_worker+0xb0/0xb0 Reported-by: Sedat Dilek <sedat.dilek@gmail.com> Tested-by: Sedat Dilek <sedat.dilek@gmail.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: move work initialization to mei_device_initTomas Winkler2013-01-082-2/+4
| | | | | | | Let mei_device_init initialize all the software constructs. Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: make host csr and me csr internal to hw-meTomas Winkler2013-01-084-53/+37
| | | | | | | | | | | Move csr reading into me hardware functional calls. Since we gave up on registers caching we remove some of the unnecessary queries in mei_hw_init ane mei_reset functions. We add mei_hw_config function to wrap up host buffer depth configuration. Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: reenable mei_hcsr_set abstractionTomas Winkler2013-01-082-24/+15
| | | | | | | | | Now when mei_hcsr_set is local to hw-me.c we can benefit form the fact that it wraps H_IS removal from the host csr. Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: abstract host and device readienessTomas Winkler2013-01-084-18/+54
| | | | | | | | Add mei_host_set_ready function to enable the device and is_ready function to query the host and me readiness Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: use non cached hcsr for interrupt enablementTomas Winkler2013-01-083-9/+12
| | | | | Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: don't use cached value for hcsr in mei_hw_resetTomas Winkler2013-01-083-28/+36
| | | | | | | | | | Open code mei_hw_reset to avoid using cached hcsr. Using cached hcsr can cause unwanted side effects. Move mei_hw_restet function to hw-me.c as it is hw dependent Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: remove mei_csr_clear_his prototypeTomas Winkler2013-01-081-2/+1
| | | | | | | The function mei_csr_clear_his is not implemented Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: remove write only need_reset member of struct mei_deviceTomas Winkler2013-01-082-6/+1
| | | | | | | need_reset is not used anymore Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: hw-me.c fix kernel docTomas Winkler2013-01-081-9/+18
| | | | | | | Fix the kernel doc for the functions in hw-me.c Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: move MEI_IAMTHIF_IDLE to amthif host init functionTomas Winkler2013-01-082-1/+2
| | | | | | | | Since the amthif state is not examined until amthif is connected we can safely move it to the amthif host init function Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: normalize me host client linking routinesTomas Winkler2013-01-087-75/+98
| | | | | | | | | | | | | In order we can use the same code pattern for in-kernel and user space host clients we replace mei_cl_link_to_me with mei_cl_link function. We then have to keep me client lookupout of the new link function. The unlinking cannot be yet symetric due to amthif connection handling Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: rename remaining amthi strings to amthifTomas Winkler2013-01-084-36/+36
| | | | | | | | the only real thing that left was mei_amthi_guid the rest was in the strings and comments Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: mei_dev.h - remove prototypes of dropped functionsTomas Winkler2013-01-081-4/+0
| | | | | | | | mei_task_initialize_clients and mei_initialize_clients are no longer among us Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: move me client storage allocation to hbm.cTomas Winkler2013-01-083-41/+38
| | | | | | | | rename function to mei_me_cl_allocate to match the current names convention: mei_hbm_me_cl_allocate Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: drop read_pending member form struct mei_clTomas Winkler2013-01-083-5/+2
| | | | | | | read_pending never changes, it is a leftover from the old code. Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: rename interface to hw-meTomas Winkler2013-01-0813-210/+208
| | | | | | | | | | Rename hw-me.h to hw-me-regs.h as this file contains only register definitions. Files hw-me.[ch] now contains ME hw dependant functionality Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: move watchdog prototypes to mei_dev.h from interface.hTomas Winkler2013-01-082-20/+17
| | | | | | | interface.h contains lower layer functionality Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: implement mei_cl_connect functionTomas Winkler2013-01-083-159/+163
| | | | | | | | | | | Implement mei_cl_connect that warps host client parts of the connection and leave the ioctl specifics in the mei_ioctl_connect_client function. Move mei_ioctl_connect_client to main.c where it belongs Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: fix client functions namesTomas Winkler2013-01-089-198/+267
| | | | | | | | | | | | | | | | | Use common prefix for function names: mei_cl_ - for host clients mei_me_ - for me clients mei_io_ - for io callback functions Because mei_cl holds mei_device back pointer we can also drop the dev argument from the client functions add client.h header to export the clients API Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: move client functions to client.cTomas Winkler2013-01-084-366/+361
| | | | | | | | | This file now contains me and host client functions and also io callback helpers We also kill iorw.c which is no longer needed Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: add new hbm.h header to export hbm protocolTomas Winkler2013-01-089-15/+47
| | | | | | | | hbm.h provides access host bus messaging functionality for other MEI layers Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* VMCI: Some header and config files.George Zhang2013-01-086-0/+985
| | | | | | | | | | | VMCI head config patch Adds all the necessary files to enable building of the VMCI module with the Linux Makefiles and Kconfig systems. Also adds the header files used for building modules against the driver. Signed-off-by: George Zhang <georgezhang@vmware.com> Acked-by: Andy king <acking@vmware.com> Acked-by: Dmitry Torokhov <dtor@vmware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* VMCI: host side driver implementation.George Zhang2013-01-081-0/+1042
| | | | | | | | | VMCI host side driver code implementation. Signed-off-by: George Zhang <georgezhang@vmware.com> Acked-by: Andy king <acking@vmware.com> Acked-by: Dmitry Torokhov <dtor@vmware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* VMCI: guest side driver implementation.George Zhang2013-01-081-0/+759
| | | | | | | | | VMCI guest side driver code implementation. Signed-off-by: George Zhang <georgezhang@vmware.com> Acked-by: Andy king <acking@vmware.com> Acked-by: Dmitry Torokhov <dtor@vmware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* VMCI: routing implementation.George Zhang2013-01-082-0/+256
| | | | | | | | | | VMCI routing code is responsible for routing between various hosts/guests as well as routing in nested scenarios. Signed-off-by: George Zhang <georgezhang@vmware.com> Acked-by: Andy king <acking@vmware.com> Acked-by: Dmitry Torokhov <dtor@vmware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* VMCI: resource object implementation.George Zhang2013-01-082-0/+288
| | | | | | | | | VMCI resource tracks all used resources within the vmci code. Signed-off-by: George Zhang <georgezhang@vmware.com> Acked-by: Andy king <acking@vmware.com> Acked-by: Dmitry Torokhov <dtor@vmware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* VMCI: queue pairs implementation.George Zhang2013-01-082-0/+3611
| | | | | | | | | VMCI queue pairs allow for bi-directional ordered communication between host and guests. Signed-off-by: George Zhang <georgezhang@vmware.com> Acked-by: Andy king <acking@vmware.com> Acked-by: Dmitry Torokhov <dtor@vmware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* VMCI: handle array implementation.George Zhang2013-01-082-0/+194
| | | | | | | | | VMCI handle code adds support for dynamic arrays that will grow if they need to. Signed-off-by: George Zhang <georgezhang@vmware.com> Acked-by: Andy king <acking@vmware.com> Acked-by: Dmitry Torokhov <dtor@vmware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* VMCI: event handling implementation.George Zhang2013-01-082-0/+249
| | | | | | | | | | VMCI event code that manages event handlers and handles callbacks when specific events fire. Signed-off-by: George Zhang <georgezhang@vmware.com> Acked-by: Andy king <acking@vmware.com> Acked-by: Dmitry Torokhov <dtor@vmware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* VMCI: device driver implementaton.George Zhang2013-01-082-0/+167
| | | | | | | | | VMCI driver code implementes both the host and guest personalities of the VMCI driver. Signed-off-by: George Zhang <georgezhang@vmware.com> Acked-by: Andy king <acking@vmware.com> Acked-by: Dmitry Torokhov <dtor@vmware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* VMCI: doorbell implementation.George Zhang2013-01-082-0/+655
| | | | | | | | | VMCI doorbell code allows for notifcations between host and guest. Signed-off-by: George Zhang <georgezhang@vmware.com> Acked-by: Andy king <acking@vmware.com> Acked-by: Dmitry Torokhov <dtor@vmware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* VMCI: datagram implementation.George Zhang2013-01-082-0/+552
| | | | | | | | | VMCI datagram Implements datagrams to allow data to be sent between host and guest. Signed-off-by: George Zhang <georgezhang@vmware.com> Acked-by: Andy king <acking@vmware.com> Acked-by: Dmitry Torokhov <dtor@vmware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* VMCI: context implementation.George Zhang2013-01-082-0/+1396
| | | | | | | | | | VMCI Context code maintains state for vmci and allows the driver to communicate with multiple VMs. Signed-off-by: George Zhang <georgezhang@vmware.com> Acked-by: Andy king <acking@vmware.com> Acked-by: Dmitry Torokhov <dtor@vmware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: move hbm responses from interrupt.c to hbm.cTomas Winkler2013-01-073-220/+186
| | | | | | | | | 1. Add common prefix mei_hbm_ to all handlers and made them static 2. Drop now useless function same_flow_addr Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: add common prefix to hbm functionTomas Winkler2013-01-078-50/+53
| | | | | | | | | 1. use mei_hbm_ for basic host bus message function 2. use mei_hbm_cl prefix for host bus messages that operation on behalf of a client Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: use structured buffer for the write bufferTomas Winkler2013-01-075-105/+108
| | | | | | | | | | We can drop useless castings and use proper types. We remove the casting in mei_hbm_hdr function and add new function mei_hbm_stop_request_prepare that utilize the new structure Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: simplify preparing client host bus messagesTomas Winkler2013-01-072-56/+70
| | | | | | | | | | Define a new parent type mei_hbm_cl_cmd for hbm commands that are sent on behalf of specific ME client. This allows us compacting boilerplate code via mei_hbm_cl_hdr function Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: drop nonexistent function prototypeTomas Winkler2013-01-071-3/+0
| | | | | | | | mei_amthif_read_message prototype was not dropped in one of the moving/renaming patches Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: move host bus message handling to hbm.cTomas Winkler2013-01-076-419/+456
| | | | | | | | for sake of more layered design we move host bus message handling to the new hbm.c file Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: move hw dependent functions to interface.cTomas Winkler2013-01-074-93/+97
| | | | | | | | | | 1. move direct register handling to interface.c and make them static 2. add new function mei_clear_interrupts that wraps direct register access 3. export other functions in mei_dev.h Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: mei_me_client is not hw API move to mei_dev.hTomas Winkler2013-01-072-6/+13
| | | | | | | | | Move struct mei_me_client from hw.h to mei_dev.h as it is not part of the hardware API. The structutre doesn't have to be packed. Add kdoc for this structure. Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: kill not used BAR0 length and base variablesTomas Winkler2013-01-071-5/+2
| | | | | | | | | 1. mem_base and mem_length are not used so we can delete them 2. add kdoc for mem_addr member of mei_device Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: include local headers after the system onesTomas Winkler2013-01-077-12/+13
| | | | | | | | first include linux/mei.h then only local headers to avoid possible false dependencies Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: extract device dependent constants into hw-me.hTomas Winkler2013-01-073-98/+169
| | | | | Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* mei: move internal host clients ids to mei_dev.h from hw.hTomas Winkler2013-01-072-5/+6
| | | | | | | | Internal clients numbers are implementation choice and not defined by the hardware. Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>