Thread (9 messages) 9 messages, 3 authors, 2009-10-06

Re: [PATCH v2] fbdev: bfin-lq035q1-fb: new Blackfin Landscape LCD EZ-Extender driver

From: Mike Frysinger <hidden>
Date: 2009-09-25 20:48:44
Also in: lkml

On Fri, Sep 25, 2009 at 16:24, Mike Frysinger wrote:
On Thu, Sep 24, 2009 at 19:32, Andrew Morton wrote:
quoted
On Thu, 17 Sep 2009 17:37:06 -0400 Mike Frysinger wrote:
quoted
+static int lq035q1_control(unsigned char reg, unsigned short value)
+{
+     int ret;
+     u8 regs[3] = {LQ035_INDEX, 0, 0};
+     u8 dat[3] = {LQ035_DATA, 0, 0};
+
+     if (spi_control.spidev) {
+             regs[2] = reg;
+             dat[1] = value >> 8;
+             dat[2] = value & 0xFF;
+
+             ret = spi_write(spi_control.spidev, regs, ARRAY_SIZE(regs));
+             ret |= spi_write(spi_control.spidev, dat, ARRAY_SIZE(dat));
+     } else
+             return -ENODEV;
+
+     return ret;
+}
I am suspecting that this function (and the similar ones below) rely
upon state within the hardware and will hence misbehave if two
instances are run concurrently.

Is that correct>  If so, is there locking to prevent this from occurring?
if by "instances" you mean "users" as in "multiple programs
reading/writing the framebuffer concurrently", then probably.  rather
than handle the locking ourselves, it can be pushed to the SPI bus by
having the regs/dat be transfers in a single message.
hmm there shouldnt be any locking problems here actually.  the spi
access is only to initialize/shutdown, and there is a dedicated CS for
each device.  so i dont think anything here really needs changing
(other than to allocate the spi_control global variable dynamically in
the probe).
-mike
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help