mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
This commit is contained in:
commit
7f46b1343f
2400 changed files with 559938 additions and 49536 deletions
|
|
@ -50,7 +50,7 @@ static void wake_up_event_readers(struct service_processor *sp)
|
|||
* Store the event in the circular event buffer, wake up any sleeping
|
||||
* event readers.
|
||||
* There is no reader marker in the buffer, therefore readers are
|
||||
* responsible for keeping up with the writer, or they will loose events.
|
||||
* responsible for keeping up with the writer, or they will lose events.
|
||||
*/
|
||||
void ibmasm_receive_event(struct service_processor *sp, void *data, unsigned int data_size)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -104,8 +104,7 @@ static int __devinit ibmasm_init_one(struct pci_dev *pdev, const struct pci_devi
|
|||
}
|
||||
|
||||
sp->irq = pdev->irq;
|
||||
sp->base_address = ioremap(pci_resource_start(pdev, 0),
|
||||
pci_resource_len(pdev, 0));
|
||||
sp->base_address = pci_ioremap_bar(pdev, 0);
|
||||
if (!sp->base_address) {
|
||||
dev_err(sp->dev, "Failed to ioremap pci memory\n");
|
||||
result = -ENODEV;
|
||||
|
|
|
|||
|
|
@ -269,6 +269,16 @@ ioc4_variant(struct ioc4_driver_data *idd)
|
|||
return IOC4_VARIANT_PCI_RT;
|
||||
}
|
||||
|
||||
static void
|
||||
ioc4_load_modules(struct work_struct *work)
|
||||
{
|
||||
/* arg just has to be freed */
|
||||
|
||||
request_module("sgiioc4");
|
||||
|
||||
kfree(work);
|
||||
}
|
||||
|
||||
/* Adds a new instance of an IOC4 card */
|
||||
static int
|
||||
ioc4_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
|
||||
|
|
@ -378,6 +388,30 @@ ioc4_probe(struct pci_dev *pdev, const struct pci_device_id *pci_id)
|
|||
}
|
||||
mutex_unlock(&ioc4_mutex);
|
||||
|
||||
/* Request sgiioc4 IDE driver on boards that bring that functionality
|
||||
* off of IOC4. The root filesystem may be hosted on a drive connected
|
||||
* to IOC4, so we need to make sure the sgiioc4 driver is loaded as it
|
||||
* won't be picked up by modprobes due to the ioc4 module owning the
|
||||
* PCI device.
|
||||
*/
|
||||
if (idd->idd_variant != IOC4_VARIANT_PCI_RT) {
|
||||
struct work_struct *work;
|
||||
work = kzalloc(sizeof(struct work_struct), GFP_KERNEL);
|
||||
if (!work) {
|
||||
printk(KERN_WARNING
|
||||
"%s: IOC4 unable to allocate memory for "
|
||||
"load of sub-modules.\n", __func__);
|
||||
} else {
|
||||
/* Request the module from a work procedure as the
|
||||
* modprobe goes out to a userland helper and that
|
||||
* will hang if done directly from ioc4_probe().
|
||||
*/
|
||||
printk(KERN_INFO "IOC4 loading sgiioc4 submodule\n");
|
||||
INIT_WORK(work, ioc4_load_modules);
|
||||
schedule_work(work);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
out_misc_region:
|
||||
|
|
@ -462,6 +496,8 @@ ioc4_init(void)
|
|||
static void __devexit
|
||||
ioc4_exit(void)
|
||||
{
|
||||
/* Ensure ioc4_load_modules() has completed before exiting */
|
||||
flush_scheduled_work();
|
||||
pci_unregister_driver(&ioc4_driver);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* You need an userspace library to cooperate with this driver. It (and other
|
||||
* You need a userspace library to cooperate with this driver. It (and other
|
||||
* info) may be obtained here:
|
||||
* http://www.fi.muni.cz/~xslaby/phantom.html
|
||||
* or alternatively, you might use OpenHaptics provided by Sensable.
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ static struct device_driver gru_driver = {
|
|||
};
|
||||
|
||||
static struct device gru_device = {
|
||||
.bus_id = {0},
|
||||
.init_name = "",
|
||||
.driver = &gru_driver,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ struct device_driver xp_dbg_name = {
|
|||
};
|
||||
|
||||
struct device xp_dbg_subname = {
|
||||
.bus_id = {0}, /* set to "" */
|
||||
.init_name = "", /* set to "" */
|
||||
.driver = &xp_dbg_name
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -59,12 +59,12 @@ struct device_driver xpc_dbg_name = {
|
|||
};
|
||||
|
||||
struct device xpc_part_dbg_subname = {
|
||||
.bus_id = {0}, /* set to "part" at xpc_init() time */
|
||||
.init_name = "", /* set to "part" at xpc_init() time */
|
||||
.driver = &xpc_dbg_name
|
||||
};
|
||||
|
||||
struct device xpc_chan_dbg_subname = {
|
||||
.bus_id = {0}, /* set to "chan" at xpc_init() time */
|
||||
.init_name = "", /* set to "chan" at xpc_init() time */
|
||||
.driver = &xpc_dbg_name
|
||||
};
|
||||
|
||||
|
|
@ -1258,8 +1258,8 @@ xpc_init(void)
|
|||
int ret;
|
||||
struct task_struct *kthread;
|
||||
|
||||
snprintf(xpc_part->bus_id, BUS_ID_SIZE, "part");
|
||||
snprintf(xpc_chan->bus_id, BUS_ID_SIZE, "chan");
|
||||
dev_set_name(xpc_part, "part");
|
||||
dev_set_name(xpc_chan, "chan");
|
||||
|
||||
if (is_shub()) {
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ struct device_driver xpnet_dbg_name = {
|
|||
};
|
||||
|
||||
struct device xpnet_dbg_subname = {
|
||||
.bus_id = {0}, /* set to "" */
|
||||
.init_name = "", /* set to "" */
|
||||
.driver = &xpnet_dbg_name
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ static void tifm_7xx1_switch_media(struct work_struct *work)
|
|||
if (sock) {
|
||||
printk(KERN_INFO
|
||||
"%s : demand removing card from socket %u:%u\n",
|
||||
fm->dev.bus_id, fm->id, cnt);
|
||||
dev_name(&fm->dev), fm->id, cnt);
|
||||
fm->sockets[cnt] = NULL;
|
||||
sock_addr = sock->addr;
|
||||
spin_unlock_irqrestore(&fm->lock, flags);
|
||||
|
|
@ -354,8 +354,7 @@ static int tifm_7xx1_probe(struct pci_dev *dev,
|
|||
fm->has_ms_pif = tifm_7xx1_has_ms_pif;
|
||||
pci_set_drvdata(dev, fm);
|
||||
|
||||
fm->addr = ioremap(pci_resource_start(dev, 0),
|
||||
pci_resource_len(dev, 0));
|
||||
fm->addr = pci_ioremap_bar(dev, 0);
|
||||
if (!fm->addr)
|
||||
goto err_out_free;
|
||||
|
||||
|
|
|
|||
|
|
@ -203,7 +203,7 @@ int tifm_add_adapter(struct tifm_adapter *fm)
|
|||
if (rc)
|
||||
return rc;
|
||||
|
||||
snprintf(fm->dev.bus_id, BUS_ID_SIZE, "tifm%u", fm->id);
|
||||
dev_set_name(&fm->dev, "tifm%u", fm->id);
|
||||
rc = device_add(&fm->dev);
|
||||
if (rc) {
|
||||
spin_lock(&tifm_adapter_lock);
|
||||
|
|
@ -266,9 +266,8 @@ struct tifm_dev *tifm_alloc_device(struct tifm_adapter *fm, unsigned int id,
|
|||
sock->dev.dma_mask = fm->dev.parent->dma_mask;
|
||||
sock->dev.release = tifm_free_device;
|
||||
|
||||
snprintf(sock->dev.bus_id, BUS_ID_SIZE,
|
||||
"tifm_%s%u:%u", tifm_media_type_name(type, 2),
|
||||
fm->id, id);
|
||||
dev_set_name(&sock->dev, "tifm_%s%u:%u",
|
||||
tifm_media_type_name(type, 2), fm->id, id);
|
||||
printk(KERN_INFO DRIVER_NAME
|
||||
": %s card detected in socket %u:%u\n",
|
||||
tifm_media_type_name(type, 0), fm->id, id);
|
||||
|
|
|
|||
Loading…
Reference in a new issue