Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 317540
b: refs/heads/master
c: f5e3352
h: refs/heads/master
v: v3
  • Loading branch information
Marc Dietrich authored and Greg Kroah-Hartman committed Jun 25, 2012
1 parent 4c4de04 commit 1f84c69
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 41 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 59d6a29e554d891a513476c13a6657825f8be270
refs/heads/master: f5e3352e5185ef37700da9a51c333559381fe8fd
44 changes: 15 additions & 29 deletions trunk/drivers/staging/nvec/nvec.c
Original file line number Diff line number Diff line change
Expand Up @@ -719,10 +719,9 @@ static int __devinit tegra_nvec_probe(struct platform_device *pdev)
struct nvec_chip *nvec;
struct nvec_msg *msg;
struct resource *res;
struct resource *iomem;
void __iomem *base;

nvec = kzalloc(sizeof(struct nvec_chip), GFP_KERNEL);
nvec = devm_kzalloc(&pdev->dev, sizeof(struct nvec_chip), GFP_KERNEL);
if (nvec == NULL) {
dev_err(&pdev->dev, "failed to reserve memory\n");
return -ENOMEM;
Expand All @@ -737,15 +736,15 @@ static int __devinit tegra_nvec_probe(struct platform_device *pdev)
nvec->gpio = of_get_named_gpio(nvec->dev->of_node, "request-gpios", 0);
if (nvec->gpio < 0) {
dev_err(&pdev->dev, "no gpio specified");
goto failed;
return -ENODEV;
}
if (of_property_read_u32(nvec->dev->of_node, "slave-addr", &nvec->i2c_addr)) {
dev_err(&pdev->dev, "no i2c address specified");
goto failed;
return -ENODEV;
}
} else {
dev_err(&pdev->dev, "no platform data\n");
goto failed;
return -ENODEV;
}

res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
Expand All @@ -754,13 +753,7 @@ static int __devinit tegra_nvec_probe(struct platform_device *pdev)
return -ENODEV;
}

iomem = request_mem_region(res->start, resource_size(res), pdev->name);
if (!iomem) {
dev_err(&pdev->dev, "I2C region already claimed\n");
return -EBUSY;
}

base = ioremap(iomem->start, resource_size(iomem));
base = devm_request_and_ioremap(&pdev->dev, res);
if (!base) {
dev_err(&pdev->dev, "Can't ioremap I2C region\n");
return -ENOMEM;
Expand All @@ -769,14 +762,13 @@ static int __devinit tegra_nvec_probe(struct platform_device *pdev)
res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
if (!res) {
dev_err(&pdev->dev, "no irq resource?\n");
ret = -ENODEV;
goto err_iounmap;
return -ENODEV;
}

i2c_clk = clk_get_sys("tegra-i2c.2", NULL);
if (IS_ERR(i2c_clk)) {
dev_err(nvec->dev, "failed to get controller clock\n");
goto err_iounmap;
return -ENODEV;
}

nvec->base = base;
Expand All @@ -797,16 +789,20 @@ static int __devinit tegra_nvec_probe(struct platform_device *pdev)
INIT_WORK(&nvec->tx_work, nvec_request_master);
nvec->wq = alloc_workqueue("nvec", WQ_NON_REENTRANT, 2);

err = gpio_request_one(nvec->gpio, GPIOF_OUT_INIT_HIGH, "nvec gpio");
err = devm_gpio_request_one(&pdev->dev, nvec->gpio, GPIOF_OUT_INIT_HIGH,
"nvec gpio");
if (err < 0) {
dev_err(nvec->dev, "couldn't request gpio\n");
goto failed;
destroy_workqueue(nvec->wq);
return -ENODEV;
}

err = request_irq(nvec->irq, nvec_interrupt, 0, "nvec", nvec);
err = devm_request_irq(&pdev->dev, nvec->irq, nvec_interrupt, 0,
"nvec", nvec);
if (err) {
dev_err(nvec->dev, "couldn't request irq\n");
goto failed;
destroy_workqueue(nvec->wq);
return -ENODEV;
}
disable_irq(nvec->irq);

Expand Down Expand Up @@ -851,12 +847,6 @@ static int __devinit tegra_nvec_probe(struct platform_device *pdev)
nvec_write_async(nvec, "\x01\x01\x01\x00\x00\x80\x00", 7);

return 0;

err_iounmap:
iounmap(base);
failed:
kfree(nvec);
return -ENOMEM;
}

static int __devexit tegra_nvec_remove(struct platform_device *pdev)
Expand All @@ -865,11 +855,7 @@ static int __devexit tegra_nvec_remove(struct platform_device *pdev)

nvec_write_async(nvec, EC_DISABLE_EVENT_REPORTING, 3);
mfd_remove_devices(nvec->dev);
free_irq(nvec->irq, &nvec_interrupt);
iounmap(nvec->base);
gpio_free(nvec->gpio);
destroy_workqueue(nvec->wq);
kfree(nvec);

return 0;
}
Expand Down
10 changes: 3 additions & 7 deletions trunk/drivers/staging/nvec/nvec_leds.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ static int __devinit nvec_led_probe(struct platform_device *pdev)
struct nvec_led *led;
int ret = 0;

led = kzalloc(sizeof(*led), GFP_KERNEL);
led = devm_kzalloc(&pdev->dev, sizeof(*led), GFP_KERNEL);
if (led == NULL)
return -ENOMEM;

Expand All @@ -64,24 +64,20 @@ static int __devinit nvec_led_probe(struct platform_device *pdev)

ret = led_classdev_register(&pdev->dev, &led->cdev);
if (ret < 0)
goto err_led;
return ret;

/* to expose the default value to userspace */
led->cdev.brightness = 0;

return 0;

err_led:
kfree(led);
return ret;
}

static int __devexit nvec_led_remove(struct platform_device *pdev)
{
struct nvec_led *led = platform_get_drvdata(pdev);

led_classdev_unregister(&led->cdev);
kfree(led);

return 0;
}

Expand Down
8 changes: 5 additions & 3 deletions trunk/drivers/staging/nvec/nvec_power.c
Original file line number Diff line number Diff line change
Expand Up @@ -371,10 +371,13 @@ static void nvec_power_poll(struct work_struct *work)
static int __devinit nvec_power_probe(struct platform_device *pdev)
{
struct power_supply *psy;
struct nvec_power *power =
kzalloc(sizeof(struct nvec_power), GFP_NOWAIT);
struct nvec_power *power;
struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent);

power = devm_kzalloc(&pdev->dev, sizeof(struct nvec_power), GFP_NOWAIT);
if (power == NULL)
return -ENOMEM;

dev_set_drvdata(&pdev->dev, power);
power->nvec = nvec;

Expand All @@ -393,7 +396,6 @@ static int __devinit nvec_power_probe(struct platform_device *pdev)
power->notifier.notifier_call = nvec_power_bat_notifier;
break;
default:
kfree(power);
return -ENODEV;
}

Expand Down
6 changes: 5 additions & 1 deletion trunk/drivers/staging/nvec/nvec_ps2.c
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,11 @@ static int nvec_ps2_notifier(struct notifier_block *nb,
static int __devinit nvec_mouse_probe(struct platform_device *pdev)
{
struct nvec_chip *nvec = dev_get_drvdata(pdev->dev.parent);
struct serio *ser_dev = kzalloc(sizeof(struct serio), GFP_KERNEL);
struct serio *ser_dev;

ser_dev = devm_kzalloc(&pdev->dev, sizeof(struct serio), GFP_KERNEL);
if (ser_dev == NULL)
return -ENOMEM;

ser_dev->id.type = SERIO_PS_PSTHRU;
ser_dev->write = ps2_sendcommand;
Expand Down

0 comments on commit 1f84c69

Please sign in to comment.