mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
Char/Misc driver patches for 4.2-rc1
Here's the big char/misc driver pull request for 4.2-rc1. Lots of mei, extcon, coresight, uio, mic, and other driver updates in here. Full details in the shortlog. All of these have been in linux-next for some time with no reported problems. Signed-off-by: Greg Kroah-Hartman <[email protected]> -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iEYEABECAAYFAlWNn0gACgkQMUfUDdst+ykCCQCgvdF4F2+Hy9+RATdk22ak1uq1 JDMAoJTf4oyaIEdaiOKfEIWg9MasS42B =H5wD -----END PGP SIGNATURE----- Merge tag 'char-misc-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc driver updates from Greg KH: "Here's the big char/misc driver pull request for 4.2-rc1. Lots of mei, extcon, coresight, uio, mic, and other driver updates in here. Full details in the shortlog. All of these have been in linux-next for some time with no reported problems" * tag 'char-misc-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (176 commits) mei: me: wait for power gating exit confirmation mei: reset flow control on the last client disconnection MAINTAINERS: mei: add mei_cl_bus.h to maintained file list misc: sram: sort and clean up included headers misc: sram: move reserved block logic out of probe function misc: sram: add private struct device and virt_base members misc: sram: report correct SRAM pool size misc: sram: bump error message level on unclean driver unbinding misc: sram: fix device node reference leak on error misc: sram: fix enabled clock leak on error path misc: mic: Fix reported static checker warning misc: mic: Fix randconfig build error by including errno.h uio: pruss: Drop depends on ARCH_DAVINCI_DA850 from config uio: pruss: Add CONFIG_HAS_IOMEM dependence uio: pruss: Include <linux/sizes.h> extcon: Redefine the unique id of supported external connectors without 'enum extcon' type char:xilinx_hwicap:buffer_icap - change 1/0 to true/false for bool type variable in function buffer_icap_set_configuration(). Drivers: hv: vmbus: Allocate ring buffer memory in NUMA aware fashion parport: check exclusive access before register w1: use correct lock on error in w1_seq_show() ...
This commit is contained in:
commit
d87823813f
172 changed files with 15485 additions and 5653 deletions
|
|
@ -46,6 +46,9 @@ struct i2c_par {
|
|||
|
||||
static LIST_HEAD(adapter_list);
|
||||
static DEFINE_MUTEX(adapter_list_lock);
|
||||
#define MAX_DEVICE 4
|
||||
static int parport[MAX_DEVICE] = {0, -1, -1, -1};
|
||||
|
||||
|
||||
/* ----- Low-level parallel port access ----------------------------------- */
|
||||
|
||||
|
|
@ -163,17 +166,34 @@ static void i2c_parport_irq(void *data)
|
|||
static void i2c_parport_attach(struct parport *port)
|
||||
{
|
||||
struct i2c_par *adapter;
|
||||
int i;
|
||||
struct pardev_cb i2c_parport_cb;
|
||||
|
||||
for (i = 0; i < MAX_DEVICE; i++) {
|
||||
if (parport[i] == -1)
|
||||
continue;
|
||||
if (port->number == parport[i])
|
||||
break;
|
||||
}
|
||||
if (i == MAX_DEVICE) {
|
||||
pr_debug("i2c-parport: Not using parport%d.\n", port->number);
|
||||
return;
|
||||
}
|
||||
|
||||
adapter = kzalloc(sizeof(struct i2c_par), GFP_KERNEL);
|
||||
if (adapter == NULL) {
|
||||
printk(KERN_ERR "i2c-parport: Failed to kzalloc\n");
|
||||
return;
|
||||
}
|
||||
memset(&i2c_parport_cb, 0, sizeof(i2c_parport_cb));
|
||||
i2c_parport_cb.flags = PARPORT_FLAG_EXCL;
|
||||
i2c_parport_cb.irq_func = i2c_parport_irq;
|
||||
i2c_parport_cb.private = adapter;
|
||||
|
||||
pr_debug("i2c-parport: attaching to %s\n", port->name);
|
||||
parport_disable_irq(port);
|
||||
adapter->pdev = parport_register_device(port, "i2c-parport",
|
||||
NULL, NULL, i2c_parport_irq, PARPORT_FLAG_EXCL, adapter);
|
||||
adapter->pdev = parport_register_dev_model(port, "i2c-parport",
|
||||
&i2c_parport_cb, i);
|
||||
if (!adapter->pdev) {
|
||||
printk(KERN_ERR "i2c-parport: Unable to register with parport\n");
|
||||
goto err_free;
|
||||
|
|
@ -267,9 +287,10 @@ static void i2c_parport_detach(struct parport *port)
|
|||
}
|
||||
|
||||
static struct parport_driver i2c_parport_driver = {
|
||||
.name = "i2c-parport",
|
||||
.attach = i2c_parport_attach,
|
||||
.detach = i2c_parport_detach,
|
||||
.name = "i2c-parport",
|
||||
.match_port = i2c_parport_attach,
|
||||
.detach = i2c_parport_detach,
|
||||
.devmodel = true,
|
||||
};
|
||||
|
||||
/* ----- Module loading, unloading and information ------------------------ */
|
||||
|
|
@ -298,5 +319,12 @@ MODULE_AUTHOR("Jean Delvare <[email protected]>");
|
|||
MODULE_DESCRIPTION("I2C bus over parallel port");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
module_param_array(parport, int, NULL, 0);
|
||||
MODULE_PARM_DESC(parport,
|
||||
"List of parallel ports to bind to, by index.\n"
|
||||
" Atmost " __stringify(MAX_DEVICE) " devices are supported.\n"
|
||||
" Default is one device connected to parport0.\n"
|
||||
);
|
||||
|
||||
module_init(i2c_parport_init);
|
||||
module_exit(i2c_parport_exit);
|
||||
|
|
|
|||
Loading…
Reference in a new issue