patch "Revert "Staging: panel: usleep_range is preferred over udelay"" added to staging-linus
Subsystems (2)
This is a note to let you know that I've just added the patch titled
Revert "Staging: panel: usleep_range is preferred over udelay"
to my staging git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
in the staging-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
Quoted 1 line
From
b64a1cbef6df47c986ad622b5b2e4d3d1940070cMon Sep 17 00:00:00 2001
From: Sudip Mukherjee <[email protected]>
Date: Sat, 23 Jan 2016 14:49:20 +0530
Subject: Revert "Staging: panel: usleep_range is preferred over udelay"
This reverts commit ebd43516d3879f882a403836bba8bc5791f26a28.
We should not be sleeping inside spin_lock.
--- drivers/staging/panel/panel.c | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-)
drivers/staging/panel/panel.c +15 -19
@@ -825,8 +825,7 @@ static void lcd_write_cmd_s(int cmd)lcd_send_serial (0x1F );/* R/W=W, RS=0 */ lcd_send_serial (cmd &0x0F );lcd_send_serial ((cmd >>4 ) &0x0F ); -/* the shortest command takes at least 40 us */ -usleep_range (40 ,100 ); +udelay (40 );/* the shortest command takes at least 40 us */ spin_unlock_irq (&pprt_lock); }
@@ -837,8 +836,7 @@ static void lcd_write_data_s(int data)lcd_send_serial (0x5F );/* R/W=W, RS=1 */ lcd_send_serial (data &0x0F );lcd_send_serial ((data >>4 ) &0x0F ); -/* the shortest data takes at least 40 us */ -usleep_range (40 ,100 ); +udelay (40 );/* the shortest data takes at least 40 us */ spin_unlock_irq (&pprt_lock); }
@@ -848,20 +846,19 @@ static void lcd_write_cmd_p8(int cmd)spin_lock_irq (&pprt_lock);/* present the data to the data port */ w_dtr (pprt, cmd); -/* maintain the data during 20 us before the strobe */ -usleep_range (20 ,100 ); +udelay (20 );/* maintain the data during 20 us before the strobe */ bits.e =BIT_SET ; bits.rs =BIT_CLR ; bits.rw =BIT_CLR ;set_ctrl_bits (); -usleep_range (40 ,100 );/* maintain the strobe during 40 us */ +udelay (40 );/* maintain the strobe during 40 us */ bits.e =BIT_CLR ;set_ctrl_bits (); -usleep_range (120 ,500 );/* the shortest command takes at least 120 us */ +udelay (120 );/* the shortest command takes at least 120 us */ spin_unlock_irq (&pprt_lock); }
@@ -871,20 +868,19 @@ static void lcd_write_data_p8(int data)spin_lock_irq (&pprt_lock);/* present the data to the data port */ w_dtr (pprt, data); -/* maintain the data during 20 us before the strobe */ -usleep_range (20 ,100 ); +udelay (20 );/* maintain the data during 20 us before the strobe */ bits.e =BIT_SET ; bits.rs =BIT_SET ; bits.rw =BIT_CLR ;set_ctrl_bits (); -usleep_range (40 ,100 );/* maintain the strobe during 40 us */ +udelay (40 );/* maintain the strobe during 40 us */ bits.e =BIT_CLR ;set_ctrl_bits (); -usleep_range (45 ,100 );/* the shortest data takes at least 45 us */ +udelay (45 );/* the shortest data takes at least 45 us */ spin_unlock_irq (&pprt_lock); }
@@ -894,7 +890,7 @@ static void lcd_write_cmd_tilcd(int cmd)spin_lock_irq (&pprt_lock);/* present the data to the control port */ w_ctr (pprt, cmd); -usleep_range (60 ,120 ); +udelay (60 );spin_unlock_irq (&pprt_lock); }
@@ -904,7 +900,7 @@ static void lcd_write_data_tilcd(int data)spin_lock_irq (&pprt_lock);/* present the data to the data port */ w_dtr (pprt, data); -usleep_range (60 ,120 ); +udelay (60 );spin_unlock_irq (&pprt_lock); }
@@ -947,7 +943,7 @@ static void lcd_clear_fast_s(void)lcd_send_serial (0x5F );/* R/W=W, RS=1 */ lcd_send_serial (' ' &0x0F );lcd_send_serial ((' ' >>4 ) &0x0F ); -usleep_range (40 ,100 );/* the shortest data takes at least 40 us */ +udelay (40 );/* the shortest data takes at least 40 us */ }spin_unlock_irq (&pprt_lock);
@@ -971,7 +967,7 @@ static void lcd_clear_fast_p8(void)w_dtr (pprt,' ' );/* maintain the data during 20 us before the strobe */ -usleep_range (20 ,100 ); +udelay (20 ); bits.e =BIT_SET ; bits.rs =BIT_SET ;
@@ -979,13 +975,13 @@ static void lcd_clear_fast_p8(void)set_ctrl_bits ();/* maintain the strobe during 40 us */ -usleep_range (40 ,100 ); +udelay (40 ); bits.e =BIT_CLR ;set_ctrl_bits ();/* the shortest data takes at least 45 us */ -usleep_range (45 ,100 ); +udelay (45 ); }spin_unlock_irq (&pprt_lock);
@@ -1007,7 +1003,7 @@ static void lcd_clear_fast_tilcd(void)for (pos =0 ; pos < lcd.height * lcd.hwidth; pos++) {/* present the data to the data port */ w_dtr (pprt,' ' ); -usleep_range (60 ,120 ); +udelay (60 ); }spin_unlock_irq (&pprt_lock);
Signature · 1 line
2.7.0