Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 551b0bda authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6:
  mfd: Clean up max8997 IRQ namespace
  mfd: Fold irq_set_chip/irq_set_handler
  mfd: Cleanup irq namespace
  mfd: twl6030: Cleanup interrupt handling
  mfd: twl4030: Cleanup interrupt handling
  mfd: mx8925: Remove irq_desc leftovers
  mfd: htc-i2cpld: Cleanup interrupt handling
  mfd: htc-egpio: Cleanup interrupt handling
  mfd: ezx-pcap: Remvove open coded irq handling
  mfd: 88pm860x: Remove unused irq_desc leftovers
  mfd: asic3: Cleanup irq handling
  mfd: Select MFD_CORE if TPS6105X driver is configured
  mfd: Add MODULE_DEVICE_TABLE to rdc321x-southbridge
  mfd: Add MAX8997/8966 IRQ control
  mfd: Constify i2c_device_id tables
  mfd: OLPC: Clean up names to match what OLPC actually uses
  mfd: Add mfd_clone_cell(), convert cs5535-mfd/olpc-xo1 to it
parents 4329510c 8317d517
Loading
Loading
Loading
Loading
+11 −12
Original line number Diff line number Diff line
@@ -72,9 +72,9 @@ static int __devinit olpc_xo1_probe(struct platform_device *pdev)
		dev_err(&pdev->dev, "can't fetch device resource info\n");
		return -EIO;
	}
	if (strcmp(pdev->name, "olpc-xo1-pms") == 0)
	if (strcmp(pdev->name, "cs5535-pms") == 0)
		pms_base = res->start;
	else if (strcmp(pdev->name, "olpc-xo1-ac-acpi") == 0)
	else if (strcmp(pdev->name, "olpc-xo1-pm-acpi") == 0)
		acpi_base = res->start;

	/* If we have both addresses, we can override the poweroff hook */
@@ -90,9 +90,9 @@ static int __devexit olpc_xo1_remove(struct platform_device *pdev)
{
	mfd_cell_disable(pdev);

	if (strcmp(pdev->name, "olpc-xo1-pms") == 0)
	if (strcmp(pdev->name, "cs5535-pms") == 0)
		pms_base = 0;
	else if (strcmp(pdev->name, "olpc-xo1-acpi") == 0)
	else if (strcmp(pdev->name, "olpc-xo1-pm-acpi") == 0)
		acpi_base = 0;

	pm_power_off = NULL;
@@ -101,7 +101,7 @@ static int __devexit olpc_xo1_remove(struct platform_device *pdev)

static struct platform_driver cs5535_pms_drv = {
	.driver = {
		.name = "olpc-xo1-pms",
		.name = "cs5535-pms",
		.owner = THIS_MODULE,
	},
	.probe = olpc_xo1_probe,
@@ -110,7 +110,7 @@ static struct platform_driver cs5535_pms_drv = {

static struct platform_driver cs5535_acpi_drv = {
	.driver = {
		.name = "olpc-xo1-acpi",
		.name = "olpc-xo1-pm-acpi",
		.owner = THIS_MODULE,
	},
	.probe = olpc_xo1_probe,
@@ -121,22 +121,21 @@ static int __init olpc_xo1_init(void)
{
	int r;

	r = mfd_shared_platform_driver_register(&cs5535_pms_drv, "cs5535-pms");
	r = platform_driver_register(&cs5535_pms_drv);
	if (r)
		return r;

	r = mfd_shared_platform_driver_register(&cs5535_acpi_drv,
			"cs5535-acpi");
	r = platform_driver_register(&cs5535_acpi_drv);
	if (r)
		mfd_shared_platform_driver_unregister(&cs5535_pms_drv);
		platform_driver_unregister(&cs5535_pms_drv);

	return r;
}

static void __exit olpc_xo1_exit(void)
{
	mfd_shared_platform_driver_unregister(&cs5535_acpi_drv);
	mfd_shared_platform_driver_unregister(&cs5535_pms_drv);
	platform_driver_unregister(&cs5535_acpi_drv);
	platform_driver_unregister(&cs5535_pms_drv);
}

MODULE_AUTHOR("Daniel Drake <dsd@laptop.org>");
+4 −7
Original line number Diff line number Diff line
@@ -416,7 +416,6 @@ static int __devinit device_irq_init(struct pm860x_chip *chip,
				: chip->companion;
	unsigned char status_buf[INT_STATUS_NUM];
	unsigned long flags = IRQF_TRIGGER_FALLING | IRQF_ONESHOT;
	struct irq_desc *desc;
	int i, data, mask, ret = -EINVAL;
	int __irq;

@@ -468,19 +467,17 @@ static int __devinit device_irq_init(struct pm860x_chip *chip,
	if (!chip->core_irq)
		goto out;

	desc = irq_to_desc(chip->core_irq);

	/* register IRQ by genirq */
	for (i = 0; i < ARRAY_SIZE(pm860x_irqs); i++) {
		__irq = i + chip->irq_base;
		set_irq_chip_data(__irq, chip);
		set_irq_chip_and_handler(__irq, &pm860x_irq_chip,
		irq_set_chip_data(__irq, chip);
		irq_set_chip_and_handler(__irq, &pm860x_irq_chip,
					 handle_edge_irq);
		set_irq_nested_thread(__irq, 1);
		irq_set_nested_thread(__irq, 1);
#ifdef CONFIG_ARM
		set_irq_flags(__irq, IRQF_VALID);
#else
		set_irq_noprobe(__irq);
		irq_set_noprobe(__irq);
#endif
	}

+1 −0
Original line number Diff line number Diff line
@@ -133,6 +133,7 @@ config TPS6105X
	tristate "TPS61050/61052 Boost Converters"
	depends on I2C
	select REGULATOR
	select MFD_CORE
	select REGULATOR_FIXED_VOLTAGE
	help
	  This option enables a driver for the TP61050/TPS61052
+1 −1
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ obj-$(CONFIG_UCB1400_CORE) += ucb1400_core.o
obj-$(CONFIG_PMIC_DA903X)	+= da903x.o
max8925-objs			:= max8925-core.o max8925-i2c.o
obj-$(CONFIG_MFD_MAX8925)	+= max8925.o
obj-$(CONFIG_MFD_MAX8997)	+= max8997.o
obj-$(CONFIG_MFD_MAX8997)	+= max8997.o max8997-irq.o
obj-$(CONFIG_MFD_MAX8998)	+= max8998.o max8998-irq.o

pcf50633-objs			:= pcf50633-core.o pcf50633-irq.o
+6 −6
Original line number Diff line number Diff line
@@ -668,7 +668,7 @@ static int ab3550_startup_irq_enabled(struct device *dev, unsigned int irq)
	struct ab3550_platform_data *plf_data;
	bool val;

	ab = get_irq_chip_data(irq);
	ab = irq_get_chip_data(irq);
	plf_data = ab->i2c_client[0]->dev.platform_data;
	irq -= plf_data->irq.base;
	val = ((ab->startup_events[irq / 8] & BIT(irq % 8)) != 0);
@@ -1296,14 +1296,14 @@ static int __init ab3550_probe(struct i2c_client *client,
		unsigned int irq;

		irq = ab3550_plf_data->irq.base + i;
		set_irq_chip_data(irq, ab);
		set_irq_chip_and_handler(irq, &ab3550_irq_chip,
		irq_set_chip_data(irq, ab);
		irq_set_chip_and_handler(irq, &ab3550_irq_chip,
					 handle_simple_irq);
		set_irq_nested_thread(irq, 1);
		irq_set_nested_thread(irq, 1);
#ifdef CONFIG_ARM
		set_irq_flags(irq, IRQF_VALID);
#else
		set_irq_noprobe(irq);
		irq_set_noprobe(irq);
#endif
	}

Loading