Commit 4aa1b825 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull pcmcia updates from Dominik Brodowski:
 "A number of odd cleanups and fixes, including one for a small race in
  the handling of the pccardd kernel thread"

* 'pcmcia-next' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux:
  pcmcia: fix setting of kthread task states
  MAINTAINERS: update PCMCIA tree
  pcmcia: use sysfs_emit{,_at} for sysfs output
  pcmcia: make pcmcia_release_io() void, as no-one is interested in return value
  pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in nonstatic_find_mem_region()
  pcmcia: rsrc_nonstatic: Fix a NULL pointer dereference in __nonstatic_find_io_region()
  pcmcia: comment out unused exca_readw() function
  pcmcia: Make use of the helper macro SET_NOIRQ_SYSTEM_SLEEP_PM_OPS()
  pcmcia: clean up dead drivers for CompuLab CM-X255/CM-X270 boards
parents c288ea67 fbb3485f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -15014,7 +15014,7 @@ F: drivers/pci/controller/dwc/*spear*
PCMCIA SUBSYSTEM
M:	Dominik Brodowski <linux@dominikbrodowski.net>
S:	Odd Fixes
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia.git
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/brodo/linux.git
F:	Documentation/pcmcia/
F:	drivers/pcmcia/
F:	include/pcmcia/
+1 −1
Original line number Diff line number Diff line
@@ -209,7 +209,7 @@ config PCMCIA_PXA2XX
	tristate "PXA2xx support"
	depends on ARM && ARCH_PXA && PCMCIA
	depends on (ARCH_LUBBOCK || MACH_MAINSTONE || PXA_SHARPSL \
		    || MACH_ARMCORE || ARCH_PXA_PALM || TRIZEPS_PCMCIA \
		    || ARCH_PXA_PALM || TRIZEPS_PCMCIA \
		    || ARCOM_PCMCIA || ARCH_PXA_ESERIES || MACH_STARGATE2 \
		    || MACH_VPAC270 || MACH_BALLOON3 || MACH_COLIBRI \
		    || MACH_COLIBRI320 || MACH_H4700)
+0 −2
Original line number Diff line number Diff line
@@ -48,10 +48,8 @@ sa1100_cs-$(CONFIG_SA1100_H3100) += sa1100_h3600.o
sa1100_cs-$(CONFIG_SA1100_H3600)		+= sa1100_h3600.o
sa1100_cs-$(CONFIG_SA1100_SIMPAD)		+= sa1100_simpad.o

pxa2xx_cm_x2xx_cs-y				+= pxa2xx_cm_x2xx.o pxa2xx_cm_x255.o pxa2xx_cm_x270.o
pxa2xx-obj-$(CONFIG_MACH_MAINSTONE)		+= pxa2xx_mainstone.o
pxa2xx-obj-$(CONFIG_PXA_SHARPSL)		+= pxa2xx_sharpsl.o
pxa2xx-obj-$(CONFIG_MACH_ARMCORE)		+= pxa2xx_cm_x2xx_cs.o
pxa2xx-obj-$(CONFIG_ARCOM_PCMCIA)		+= pxa2xx_viper.o
pxa2xx-obj-$(CONFIG_TRIZEPS_PCMCIA)		+= pxa2xx_trizeps4.o
pxa2xx-obj-$(CONFIG_MACH_PALMTX)		+= pxa2xx_palmtx.o
+3 −5
Original line number Diff line number Diff line
@@ -666,18 +666,16 @@ static int pccardd(void *__skt)
		if (events || sysfs_events)
			continue;

		set_current_state(TASK_INTERRUPTIBLE);
		if (kthread_should_stop())
			break;

		set_current_state(TASK_INTERRUPTIBLE);

		schedule();

		/* make sure we are running */
		__set_current_state(TASK_RUNNING);

		try_to_freeze();
	}
	/* make sure we are running before we exit */
	__set_current_state(TASK_RUNNING);

	/* shut down socket, if a device is still present */
	if (skt->state & SOCKET_PRESENT) {
+9 −11
Original line number Diff line number Diff line
@@ -998,7 +998,7 @@ static int runtime_resume(struct device *dev)
static ssize_t field##_show (struct device *dev, struct device_attribute *attr, char *buf)		\
{									\
	struct pcmcia_device *p_dev = to_pcmcia_dev(dev);		\
	return p_dev->test ? sprintf(buf, format, p_dev->field) : -ENODEV; \
	return p_dev->test ? sysfs_emit(buf, format, p_dev->field) : -ENODEV; \
}									\
static DEVICE_ATTR_RO(field);

@@ -1006,7 +1006,7 @@ static DEVICE_ATTR_RO(field);
static ssize_t name##_show (struct device *dev, struct device_attribute *attr, char *buf)		\
{									\
	struct pcmcia_device *p_dev = to_pcmcia_dev(dev);		\
	return p_dev->field ? sprintf(buf, "%s\n", p_dev->field) : -ENODEV; \
	return p_dev->field ? sysfs_emit(buf, "%s\n", p_dev->field) : -ENODEV; \
}									\
static DEVICE_ATTR_RO(name);

@@ -1022,7 +1022,7 @@ static ssize_t function_show(struct device *dev, struct device_attribute *attr,
			     char *buf)
{
	struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
	return p_dev->socket ? sprintf(buf, "0x%02x\n", p_dev->func) : -ENODEV;
	return p_dev->socket ? sysfs_emit(buf, "0x%02x\n", p_dev->func) : -ENODEV;
}
static DEVICE_ATTR_RO(function);

@@ -1030,13 +1030,12 @@ static ssize_t resources_show(struct device *dev,
			      struct device_attribute *attr, char *buf)
{
	struct pcmcia_device *p_dev = to_pcmcia_dev(dev);
	char *str = buf;
	int i;
	int i, at = 0;

	for (i = 0; i < PCMCIA_NUM_RESOURCES; i++)
		str += sprintf(str, "%pr\n", p_dev->resource[i]);
		at += sysfs_emit_at(buf, at, "%pr\n", p_dev->resource[i]);

	return str - buf;
	return at;
}
static DEVICE_ATTR_RO(resources);

@@ -1045,9 +1044,9 @@ static ssize_t pm_state_show(struct device *dev, struct device_attribute *attr,
	struct pcmcia_device *p_dev = to_pcmcia_dev(dev);

	if (p_dev->suspended)
		return sprintf(buf, "off\n");
		return sysfs_emit(buf, "off\n");
	else
		return sprintf(buf, "on\n");
		return sysfs_emit(buf, "on\n");
}

static ssize_t pm_state_store(struct device *dev, struct device_attribute *attr,
@@ -1081,8 +1080,7 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *attr,
		hash[i] = crc32(0, p_dev->prod_id[i],
				strlen(p_dev->prod_id[i]));
	}
	return sprintf(buf, "pcmcia:m%04Xc%04Xf%02Xfn%02Xpfn%02X"
				"pa%08Xpb%08Xpc%08Xpd%08X\n",
	return sysfs_emit(buf, "pcmcia:m%04Xc%04Xf%02Xfn%02Xpfn%02Xpa%08Xpb%08Xpc%08Xpd%08X\n",
				p_dev->has_manf_id ? p_dev->manf_id : 0,
				p_dev->has_card_id ? p_dev->card_id : 0,
				p_dev->has_func_id ? p_dev->func_id : 0,
Loading