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

Commit 2fb90b12 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
  [PARPORT] SUNBPP: Fix OOPS when debugging is enabled.
  [SPARC] openprom: Switch to ref counting PCI API
parents 707abb79 5a68b2e3
Loading
Loading
Loading
Loading
+6 −4
Original line number Original line Diff line number Diff line
@@ -126,7 +126,7 @@ static unsigned char status_sunbpp_to_pc(struct parport *p)
	if (!(value_tcr & P_TCR_BUSY))
	if (!(value_tcr & P_TCR_BUSY))
		bits |= PARPORT_STATUS_BUSY;
		bits |= PARPORT_STATUS_BUSY;


	dprintk((KERN_DEBUG "tcr 0x%x ir 0x%x\n", regs->p_tcr, regs->p_ir));
	dprintk((KERN_DEBUG "tcr 0x%x ir 0x%x\n", value_tcr, value_ir));
	dprintk((KERN_DEBUG "read status 0x%x\n", bits));
	dprintk((KERN_DEBUG "read status 0x%x\n", bits));
	return bits;
	return bits;
}
}
@@ -147,7 +147,7 @@ static unsigned char control_sunbpp_to_pc(struct parport *p)
	if (value_or & P_OR_SLCT_IN)
	if (value_or & P_OR_SLCT_IN)
		bits |= PARPORT_CONTROL_SELECT;
		bits |= PARPORT_CONTROL_SELECT;


	dprintk((KERN_DEBUG "tcr 0x%x or 0x%x\n", regs->p_tcr, regs->p_or));
	dprintk((KERN_DEBUG "tcr 0x%x or 0x%x\n", value_tcr, value_or));
	dprintk((KERN_DEBUG "read control 0x%x\n", bits));
	dprintk((KERN_DEBUG "read control 0x%x\n", bits));
	return bits;
	return bits;
}
}
@@ -165,7 +165,8 @@ static unsigned char parport_sunbpp_frob_control(struct parport *p,
	unsigned char value_tcr = sbus_readb(&regs->p_tcr);
	unsigned char value_tcr = sbus_readb(&regs->p_tcr);
	unsigned char value_or = sbus_readb(&regs->p_or);
	unsigned char value_or = sbus_readb(&regs->p_or);


	dprintk((KERN_DEBUG "frob1: tcr 0x%x or 0x%x\n", regs->p_tcr, regs->p_or));
	dprintk((KERN_DEBUG "frob1: tcr 0x%x or 0x%x\n",
		 value_tcr, value_or));
	if (mask & PARPORT_CONTROL_STROBE) {
	if (mask & PARPORT_CONTROL_STROBE) {
		if (val & PARPORT_CONTROL_STROBE) {
		if (val & PARPORT_CONTROL_STROBE) {
			value_tcr &= ~P_TCR_DS;
			value_tcr &= ~P_TCR_DS;
@@ -197,7 +198,8 @@ static unsigned char parport_sunbpp_frob_control(struct parport *p,


	sbus_writeb(value_or, &regs->p_or);
	sbus_writeb(value_or, &regs->p_or);
	sbus_writeb(value_tcr, &regs->p_tcr);
	sbus_writeb(value_tcr, &regs->p_tcr);
	dprintk((KERN_DEBUG "frob2: tcr 0x%x or 0x%x\n", regs->p_tcr, regs->p_or));
	dprintk((KERN_DEBUG "frob2: tcr 0x%x or 0x%x\n",
		 value_tcr, value_or));
	return parport_sunbpp_read_control(p);
	return parport_sunbpp_read_control(p);
}
}


+2 −1
Original line number Original line Diff line number Diff line
@@ -249,7 +249,7 @@ static int oprompci2node(void __user *argp, struct device_node *dp, struct openp
#ifdef CONFIG_PCI
#ifdef CONFIG_PCI
		struct pci_dev *pdev;
		struct pci_dev *pdev;
		struct pcidev_cookie *pcp;
		struct pcidev_cookie *pcp;
		pdev = pci_find_slot (((int *) op->oprom_array)[0],
		pdev = pci_get_bus_and_slot (((int *) op->oprom_array)[0],
				      ((int *) op->oprom_array)[1]);
				      ((int *) op->oprom_array)[1]);


		pcp = pdev->sysdata;
		pcp = pdev->sysdata;
@@ -260,6 +260,7 @@ static int oprompci2node(void __user *argp, struct device_node *dp, struct openp
			op->oprom_size = sizeof(int);
			op->oprom_size = sizeof(int);
			err = copyout(argp, op, bufsize + sizeof(int));
			err = copyout(argp, op, bufsize + sizeof(int));
		}
		}
		pci_dev_put(pdev);
#endif
#endif
	}
	}