Lirc staging cleanup
Subsystems (4)
Sean Young
maintainercover Lirc staging cleanup
This patch series promotes lirc_sir out of staging and removes lirc_sasem; this only leaves lirc_zilog in staging. I'm attempting to write a new driver for this, maybe we should keep that until that work completes.
Sean Young (8):
[media] staging: sir: fill in missing fields and fix probe [media] staging: sir: remove unselectable Tekram and Actisys [media] staging: sir: fix checkpatch strict warnings [media] staging: sir: use usleep_range() rather than busy looping [media] staging: sir: remove unnecessary messages [media] staging: sir: make sure we are ready to receive interrupts [media] rc: promote lirc_sir out of staging
[media] staging: lirc_sasem: remove
drivers/media/rc/Kconfig | 9 + drivers/media/rc/Makefile | 1 + drivers/media/rc/sir_ir.c | 451 ++++++++++++++++ drivers/staging/media/lirc/Kconfig | 12 - drivers/staging/media/lirc/Makefile | 2 - drivers/staging/media/lirc/lirc_sasem.c | 899 -------------------------------- drivers/staging/media/lirc/lirc_sir.c | 839 ----------------------------- 7 files changed, 461 insertions(+), 1752 deletions(-) create mode 100644 drivers/media/rc/sir_ir.c delete mode 100644 drivers/staging/media/lirc/lirc_sasem.c delete mode 100644 drivers/staging/media/lirc/lirc_sir.c
Signature · 1 line
2.9.3
Sean Young
maintainerPATCH 1/8 staging: sir: fill in missing fields and fix probe
Some fields are left blank.
--- drivers/staging/media/lirc/lirc_sir.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-)
drivers/staging/media/lirc/lirc_sir.c +9 -11
@@ -227,6 +227,7 @@ static int init_chrdev(void)if (!rcdev)return -ENOMEM ; + rcdev->input_name ="SIR IrDA port" ; rcdev->input_phys =KBUILD_MODNAME "/input0" ; rcdev->input_id.bustype =BUS_HOST ; rcdev->input_id.vendor =0x0001 ;
@@ -234,6 +235,7 @@ static int init_chrdev(void) rcdev->input_id.version =0x0100 ; rcdev->tx_ir = sir_tx_ir; rcdev->allowed_protocols =RC_BIT_ALL_IR_DECODER ; + rcdev->driver_name =KBUILD_MODNAME ; rcdev->map_name =RC_MAP_RC6_MCE ; rcdev->timeout =IR_DEFAULT_TIMEOUT ; rcdev->dev.parent = &sir_ir_dev->dev;
@@ -740,7 +742,13 @@ static int init_sir_ir(void)static int sir_ir_probe (struct platform_device *dev) { -return 0 ; +int retval; + + retval =init_chrdev (); +if (retval <0 ) +return retval; + +return init_sir_ir (); }static int sir_ir_remove (struct platform_device *dev)
@@ -780,18 +788,8 @@ static int __init sir_ir_init(void) goto pdev_add_fail; } - retval =init_chrdev (); -if (retval <0 ) - goto fail; - - retval =init_sir_ir (); -if (retval) - goto fail; -return 0 ; -fail: -platform_device_del (sir_ir_dev); pdev_add_fail:platform_device_put (sir_ir_dev); pdev_alloc_fail:
Signature · 1 line
2.9.3
Sean Young
maintainerPATCH 2/8 staging: sir: remove unselectable Tekram and Actisys
In reply to Sean YoungSupport for these sir ports is not compiled in by default, it has to be enabled by manually defining LIRC_TEKRAM, LIRC_SIR_ACTISYS_ACT200L or LIRC_SIR_ACTISYS_ACT220L somewhere. This cannot be done from Kconfig at all so remove them from the driver.
--- drivers/staging/media/lirc/lirc_sir.c | 334 +--------------------------------- 1 file changed, 3 insertions(+), 331 deletions(-)
drivers/staging/media/lirc/lirc_sir.c +3 -331
@@ -1,5 +1,5 @@/* -* LIRC SIR driver, (C) 2000 Milan Pikula <[email protected]> +* IR SIR driver, (C) 2000 Milan Pikula <[email protected]> * * sir_ir - Device driver for use with SIR (serial infra red) * mode of IrDA on many notebooks.
@@ -61,62 +61,18 @@#include <media/rc-core.h> /* SECTION: Definitions */ - -/*** Tekram dongle ***/ -#ifdef LIRC_SIR_TEKRAM -/* stolen from kernel source */ -/* definitions for Tekram dongle */ -#define TEKRAM_115200 0x00 -#define TEKRAM_57600 0x01 -#define TEKRAM_38400 0x02 -#define TEKRAM_19200 0x03 -#define TEKRAM_9600 0x04 -#define TEKRAM_2400 0x08 - -#define TEKRAM_PW 0x10/* Pulse select bit */ - -/* 10bit * 1s/115200bit in milliseconds = 87ms*/ -#define TIME_CONST (10000000ul/115200ul) - -#endif - -#ifdef LIRC_SIR_ACTISYS_ACT200L -static void init_act200 (void ); -#elif defined(LIRC_SIR_ACTISYS_ACT220L ) -static void init_act220 (void ); -#endif -#define PULSE '[' -#ifndef LIRC_SIR_TEKRAM /* 9bit * 1s/115200bit in milli seconds = 78.125ms*/ #define TIME_CONST (9000000ul/115200ul) -#endif -/* timeout for sequences in jiffies (=5/100s), must be longer than TIME_CONST */ #define SIR_TIMEOUT (HZ*5/100) -#ifndef LIRC_ON_SA1100 -#ifndef LIRC_IRQ -#define LIRC_IRQ 4 -#endif -#ifndef LIRC_PORT -/* for external dongles, default to com1 */ -#if defined(LIRC_SIR_ACTISYS_ACT200L ) || \ - defined(LIRC_SIR_ACTISYS_ACT220L ) || \ - defined(LIRC_SIR_TEKRAM ) -#define LIRC_PORT 0x3f8 -#else /* onboard sir ports are typically com3 */ -#define LIRC_PORT 0x3e8 -#endif -#endif - -static int io =LIRC_PORT ; -static int irq =LIRC_IRQ ; +static int io =0x3e8 ; +static int irq =4 ;static int threshold =3 ; -#endif static DEFINE_SPINLOCK (timer_lock);static struct timer_list timerlist;
@@ -392,71 +348,6 @@ static int init_hardware(void)spin_lock_irqsave (&hardware_lock, flags);/* reset UART */ -#if defined(LIRC_SIR_TEKRAM ) -/* disable FIFO */ -soutp (UART_FCR , -UART_FCR_CLEAR_RCVR | -UART_FCR_CLEAR_XMIT | -UART_FCR_TRIGGER_1 ); - -/* Set DLAB 0. */ -soutp (UART_LCR ,sinp (UART_LCR ) & (~UART_LCR_DLAB )); - -/* First of all, disable all interrupts */ -soutp (UART_IER ,sinp (UART_IER ) & - (~(UART_IER_MSI |UART_IER_RLSI |UART_IER_THRI |UART_IER_RDI ))); - -/* Set DLAB 1. */ -soutp (UART_LCR ,sinp (UART_LCR ) |UART_LCR_DLAB ); - -/* Set divisor to 12 => 9600 Baud */ -soutp (UART_DLM ,0 ); -soutp (UART_DLL ,12 ); - -/* Set DLAB 0. */ -soutp (UART_LCR ,sinp (UART_LCR ) & (~UART_LCR_DLAB )); - -/* power supply */ -soutp (UART_MCR ,UART_MCR_RTS |UART_MCR_DTR |UART_MCR_OUT2 ); -safe_udelay (50 *1000 ); - -/* -DTR low -> reset PIC */ -soutp (UART_MCR ,UART_MCR_RTS |UART_MCR_OUT2 ); -udelay (1 *1000 ); - -soutp (UART_MCR ,UART_MCR_RTS |UART_MCR_DTR |UART_MCR_OUT2 ); -udelay (100 ); - - -/* -RTS low -> send control byte */ -soutp (UART_MCR ,UART_MCR_DTR |UART_MCR_OUT2 ); -udelay (7 ); -soutp (UART_TX ,TEKRAM_115200 |TEKRAM_PW ); - -/* one byte takes ~1042 usec to transmit at 9600,8N1 */ -udelay (1500 ); - -/* back to normal operation */ -soutp (UART_MCR ,UART_MCR_RTS |UART_MCR_DTR |UART_MCR_OUT2 ); -udelay (50 ); - -udelay (1500 ); - -/* read previous control byte */ -pr_info ("0x%02x\n" ,sinp (UART_RX )); - -/* Set DLAB 1. */ -soutp (UART_LCR ,sinp (UART_LCR ) |UART_LCR_DLAB ); - -/* Set divisor to 1 => 115200 Baud */ -soutp (UART_DLM ,0 ); -soutp (UART_DLL ,1 ); - -/* Set DLAB 0, 8 Bit */ -soutp (UART_LCR ,UART_LCR_WLEN8 ); -/* enable interrupts */ -soutp (UART_IER ,sinp (UART_IER )|UART_IER_RDI ); -#else outb (0 , io +UART_MCR );outb (0 , io +UART_IER );/* init UART */
@@ -472,12 +363,6 @@ static int init_hardware(void)outb (UART_IER_RDI , io +UART_IER );/* turn on UART */ outb (UART_MCR_DTR |UART_MCR_RTS |UART_MCR_OUT2 , io +UART_MCR ); -#ifdef LIRC_SIR_ACTISYS_ACT200L -init_act200 (); -#elif defined(LIRC_SIR_ACTISYS_ACT220L ) -init_act220 (); -#endif -#endif spin_unlock_irqrestore (&hardware_lock, flags);return 0 ; }
@@ -526,208 +411,6 @@ static void drop_port(void)release_region (io,8 ); } -#ifdef LIRC_SIR_ACTISYS_ACT200L -/* Crystal/Cirrus CS8130 IR transceiver, used in Actisys Act200L dongle */ -/* some code borrowed from Linux IRDA driver */ - -/* Register 0: Control register #1 */ -#define ACT200L_REG0 0x00 -#define ACT200L_TXEN 0x01/* Enable transmitter */ -#define ACT200L_RXEN 0x02/* Enable receiver */ -#define ACT200L_ECHO 0x08/* Echo control chars */ - -/* Register 1: Control register #2 */ -#define ACT200L_REG1 0x10 -#define ACT200L_LODB 0x01/* Load new baud rate count value */ -#define ACT200L_WIDE 0x04/* Expand the maximum allowable pulse */ - -/* Register 3: Transmit mode register #2 */ -#define ACT200L_REG3 0x30 -#define ACT200L_B0 0x01/* DataBits, 0=6, 1=7, 2=8, 3=9(8P) */ -#define ACT200L_B1 0x02/* DataBits, 0=6, 1=7, 2=8, 3=9(8P) */ -#define ACT200L_CHSY 0x04/* StartBit Synced 0=bittime, 1=startbit */ - -/* Register 4: Output Power register */ -#define ACT200L_REG4 0x40 -#define ACT200L_OP0 0x01/* Enable LED1C output */ -#define ACT200L_OP1 0x02/* Enable LED2C output */ -#define ACT200L_BLKR 0x04 - -/* Register 5: Receive Mode register */ -#define ACT200L_REG5 0x50 -#define ACT200L_RWIDL 0x01/* fixed 1.6us pulse mode */ -/*.. other various IRDA bit modes, and TV remote modes..*/ - -/* Register 6: Receive Sensitivity register #1 */ -#define ACT200L_REG6 0x60 -#define ACT200L_RS0 0x01/* receive threshold bit 0 */ -#define ACT200L_RS1 0x02/* receive threshold bit 1 */ - -/* Register 7: Receive Sensitivity register #2 */ -#define ACT200L_REG7 0x70 -#define ACT200L_ENPOS 0x04/* Ignore the falling edge */ - -/* Register 8,9: Baud Rate Divider register #1,#2 */ -#define ACT200L_REG8 0x80 -#define ACT200L_REG9 0x90 - -#define ACT200L_2400 0x5f -#define ACT200L_9600 0x17 -#define ACT200L_19200 0x0b -#define ACT200L_38400 0x05 -#define ACT200L_57600 0x03 -#define ACT200L_115200 0x01 - -/* Register 13: Control register #3 */ -#define ACT200L_REG13 0xd0 -#define ACT200L_SHDW 0x01/* Enable access to shadow registers */ - -/* Register 15: Status register */ -#define ACT200L_REG15 0xf0 - -/* Register 21: Control register #4 */ -#define ACT200L_REG21 0x50 -#define ACT200L_EXCK 0x02/* Disable clock output driver */ -#define ACT200L_OSCL 0x04/* oscillator in low power, medium accuracy mode */ - -static void init_act200 (void ) -{ -int i; -__u8 control[] = { -ACT200L_REG15 , -ACT200L_REG13 |ACT200L_SHDW , -ACT200L_REG21 |ACT200L_EXCK |ACT200L_OSCL , -ACT200L_REG13 , -ACT200L_REG7 |ACT200L_ENPOS , -ACT200L_REG6 |ACT200L_RS0 |ACT200L_RS1 , -ACT200L_REG5 |ACT200L_RWIDL , -ACT200L_REG4 |ACT200L_OP0 |ACT200L_OP1 |ACT200L_BLKR , -ACT200L_REG3 |ACT200L_B0 , -ACT200L_REG0 |ACT200L_TXEN |ACT200L_RXEN , -ACT200L_REG8 | (ACT200L_115200 &0x0f ), -ACT200L_REG9 | ((ACT200L_115200 >>4 ) &0x0f ), -ACT200L_REG1 |ACT200L_LODB |ACT200L_WIDE - }; - -/* Set DLAB 1. */ -soutp (UART_LCR ,UART_LCR_DLAB |UART_LCR_WLEN8 ); - -/* Set divisor to 12 => 9600 Baud */ -soutp (UART_DLM ,0 ); -soutp (UART_DLL ,12 ); - -/* Set DLAB 0. */ -soutp (UART_LCR ,UART_LCR_WLEN8 ); -/* Set divisor to 12 => 9600 Baud */ - -/* power supply */ -soutp (UART_MCR ,UART_MCR_RTS |UART_MCR_DTR |UART_MCR_OUT2 ); -for (i =0 ; i <50 ; i++) -safe_udelay (1000 ); - -/* Reset the dongle : set RTS low for 25 ms */ -soutp (UART_MCR ,UART_MCR_DTR |UART_MCR_OUT2 ); -for (i =0 ; i <25 ; i++) -udelay (1000 ); - -soutp (UART_MCR ,UART_MCR_RTS |UART_MCR_DTR |UART_MCR_OUT2 ); -udelay (100 ); - -/* Clear DTR and set RTS to enter command mode */ -soutp (UART_MCR ,UART_MCR_RTS |UART_MCR_OUT2 ); -udelay (7 ); - -/* send out the control register settings for 115K 7N1 SIR operation */ -for (i =0 ; i <sizeof (control); i++) { -soutp (UART_TX , control[i]); -/* one byte takes ~1042 usec to transmit at 9600,8N1 */ -udelay (1500 ); - } - -/* back to normal operation */ -soutp (UART_MCR ,UART_MCR_RTS |UART_MCR_DTR |UART_MCR_OUT2 ); -udelay (50 ); - -udelay (1500 ); -soutp (UART_LCR ,sinp (UART_LCR ) |UART_LCR_DLAB ); - -/* Set DLAB 1. */ -soutp (UART_LCR ,UART_LCR_DLAB |UART_LCR_WLEN7 ); - -/* Set divisor to 1 => 115200 Baud */ -soutp (UART_DLM ,0 ); -soutp (UART_DLL ,1 ); - -/* Set DLAB 0. */ -soutp (UART_LCR ,sinp (UART_LCR ) & (~UART_LCR_DLAB )); - -/* Set DLAB 0, 7 Bit */ -soutp (UART_LCR ,UART_LCR_WLEN7 ); - -/* enable interrupts */ -soutp (UART_IER ,sinp (UART_IER )|UART_IER_RDI ); -} -#endif - -#ifdef LIRC_SIR_ACTISYS_ACT220L -/* -* Derived from linux IrDA driver (net/irda/actisys.c) -* Drop me a mail for any kind of comment: [email protected] -*/ - -void init_act220 (void ) -{ -int i; - -/* DLAB 1 */ -soutp (UART_LCR ,UART_LCR_DLAB |UART_LCR_WLEN7 ); - -/* 9600 baud */ -soutp (UART_DLM ,0 ); -soutp (UART_DLL ,12 ); - -/* DLAB 0 */ -soutp (UART_LCR ,UART_LCR_WLEN7 ); - -/* reset the dongle, set DTR low for 10us */ -soutp (UART_MCR ,UART_MCR_RTS |UART_MCR_OUT2 ); -udelay (10 ); - -/* back to normal (still 9600) */ -soutp (UART_MCR ,UART_MCR_DTR |UART_MCR_RTS |UART_MCR_OUT2 ); - -/* -* send RTS pulses until we reach 115200 -* i hope this is really the same for act220l/act220l+ -*/ -for (i =0 ; i <3 ; i++) { -udelay (10 ); -/* set RTS low for 10 us */ -soutp (UART_MCR ,UART_MCR_DTR |UART_MCR_OUT2 ); -udelay (10 ); -/* set RTS high for 10 us */ -soutp (UART_MCR ,UART_MCR_RTS |UART_MCR_DTR |UART_MCR_OUT2 ); - } - -/* back to normal operation */ -udelay (1500 );/* better safe than sorry ;) */ - -/* Set DLAB 1. */ -soutp (UART_LCR ,UART_LCR_DLAB |UART_LCR_WLEN7 ); - -/* Set divisor to 1 => 115200 Baud */ -soutp (UART_DLM ,0 ); -soutp (UART_DLL ,1 ); - -/* Set DLAB 0, 7 Bit */ -/* The dongle doesn't seem to have any problems with operation at 7N1 */ -soutp (UART_LCR ,UART_LCR_WLEN7 ); - -/* enable interrupts */ -soutp (UART_IER ,UART_IER_RDI ); -} -#endif -static int init_sir_ir (void ) {int retval;
@@ -809,19 +492,8 @@ static void __exit sir_ir_exit(void)module_init (sir_ir_init);module_exit (sir_ir_exit); -#ifdef LIRC_SIR_TEKRAM -MODULE_DESCRIPTION ("Infrared receiver driver for Tekram Irmate 210" ); -MODULE_AUTHOR ("Christoph Bartelmus" ); -#elif defined(LIRC_SIR_ACTISYS_ACT200L ) -MODULE_DESCRIPTION ("LIRC driver for Actisys Act200L" ); -MODULE_AUTHOR ("Karl Bongers" ); -#elif defined(LIRC_SIR_ACTISYS_ACT220L ) -MODULE_DESCRIPTION ("LIRC driver for Actisys Act220L(+)" ); -MODULE_AUTHOR ("Jan Roemisch" ); -#else MODULE_DESCRIPTION ("Infrared receiver driver for SIR type serial ports" );MODULE_AUTHOR ("Milan Pikula" ); -#endif MODULE_LICENSE ("GPL" );module_param (io, int,0444 );
Signature · 1 line
2.9.3
Sean Young
maintainerPATCH 3/8 staging: sir: fix checkpatch strict warnings
In reply to Sean YoungMake the code more readable and clean up the includes list.
--- drivers/staging/media/lirc/lirc_sir.c | 46 ++++++----------------------------- 1 file changed, 8 insertions(+), 38 deletions(-)
drivers/staging/media/lirc/lirc_sir.c +8 -38
@@ -9,15 +9,6 @@* the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -* * * 2000/09/16 Frank Przybylski <[email protected]> : * added timeout and relaxed pulse detection, removed gap bug
@@ -36,38 +27,23 @@#define pr_fmt (fmt) KBUILD_MODNAME ": " fmt#include <linux/module.h> -#include <linux/sched/signal.h> -#include <linux/errno.h> -#include <linux/signal.h> -#include <linux/fs.h> #include <linux/interrupt.h> -#include <linux/ioport.h> #include <linux/kernel.h> #include <linux/serial_reg.h> #include <linux/ktime.h> -#include <linux/string.h> -#include <linux/types.h> -#include <linux/wait.h> -#include <linux/mm.h> #include <linux/delay.h> -#include <linux/poll.h> -#include <linux/io.h> -#include <asm/irq.h> -#include <linux/fcntl.h> #include <linux/platform_device.h> -#include <linux/timer.h> -#include <media/rc-core.h> /* SECTION: Definitions */ #define PULSE '['/* 9bit * 1s/115200bit in milli seconds = 78.125ms*/ -#define TIME_CONST (9000000ul/115200ul) +#define TIME_CONST (9000000ul / 115200ul)/* timeout for sequences in jiffies (=5/100s), must be longer than TIME_CONST */ -#define SIR_TIMEOUT (HZ*5/100) +#define SIR_TIMEOUT (HZ * 5 / 100)/* onboard sir ports are typically com3 */ static int io =0x3e8 ;
@@ -117,7 +93,7 @@ static inline void soutp(int offset, int value)#ifndef MAX_UDELAY_MS #define MAX_UDELAY_US 5000#else -#define MAX_UDELAY_US (MAX_UDELAY_MS*1000) +#define MAX_UDELAY_US (MAX_UDELAY_MS * 1000)#endif static void safe_udelay (unsigned long usecs)
@@ -241,18 +217,12 @@ static irqreturn_t sir_interrupt(int irq, void *dev_id)int iir, lsr;while ((iir =inb (io +UART_IIR ) &UART_IIR_ID )) { -switch (iir&UART_IIR_ID ) {/* FIXME toto treba preriedit */ +switch (iir &UART_IIR_ID ) {/* FIXME toto treba preriedit */ case UART_IIR_MSI : - (void )inb (io +UART_MSR ); + (void )inb (io +UART_MSR );break ;case UART_IIR_RLSI : - (void )inb (io +UART_LSR ); -break ; -case UART_IIR_THRI : -#if 0 -if (lsr &UART_LSR_THRE )/* FIFO is empty */ - outb(data, io + UART_TX) -#endif + (void )inb (io +UART_LSR );break ;case UART_IIR_RDI :/* avoid interference with timer */
@@ -293,7 +263,7 @@ static irqreturn_t sir_interrupt(int irq, void *dev_id)* the other case is timeout */ add_read_queue (last_value, - delt-TIME_CONST ); + delt -TIME_CONST ); last_value = data; last = curr_time; last = ktime_sub_us(last,
@@ -362,7 +332,7 @@ static int init_hardware(void)/* outb(UART_IER_RLSI|UART_IER_RDI|UART_IER_THRI, io + UART_IER); */ outb (UART_IER_RDI , io +UART_IER );/* turn on UART */ -outb (UART_MCR_DTR |UART_MCR_RTS |UART_MCR_OUT2 , io +UART_MCR ); +outb (UART_MCR_DTR |UART_MCR_RTS |UART_MCR_OUT2 , io +UART_MCR );spin_unlock_irqrestore (&hardware_lock, flags);return 0 ; }
Signature · 1 line
2.9.3
Sean Young
maintainerPATCH 4/8 staging: sir: use usleep_range() rather than busy looping
In reply to Sean Youngusleep_range() is perfect for this.
--- drivers/staging/media/lirc/lirc_sir.c | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-)
drivers/staging/media/lirc/lirc_sir.c +1 -16
@@ -90,21 +90,6 @@ static inline void soutp(int offset, int value)outb (value, io + offset); } -#ifndef MAX_UDELAY_MS -#define MAX_UDELAY_US 5000 -#else -#define MAX_UDELAY_US (MAX_UDELAY_MS * 1000) -#endif - -static void safe_udelay (unsigned long usecs) -{ -while (usecs >MAX_UDELAY_US ) { -udelay (MAX_UDELAY_US ); - usecs -=MAX_UDELAY_US ; - } -udelay (usecs); -} -/* SECTION: Communication with user-space */ static int sir_tx_ir (struct rc_dev *dev,unsigned int *tx_buf,unsigned int count)
@@ -294,7 +279,7 @@ static irqreturn_t sir_interrupt(int irq, void *dev_id)static void send_space (unsigned long len) { -safe_udelay (len); +usleep_range (len, len +25 ); }static void send_pulse (unsigned long len)
Signature · 1 line
2.9.3
Sean Young
maintainerPATCH 5/8 staging: sir: remove unnecessary messages
In reply to Sean YoungNo need to warn when kmalloc fails.
--- drivers/staging/media/lirc/lirc_sir.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-)
drivers/staging/media/lirc/lirc_sir.c +3 -16
@@ -63,8 +63,6 @@ static struct platform_device *sir_ir_dev;static DEFINE_SPINLOCK (hardware_lock); -static bool debug; -/* SECTION: Prototypes */ /* Communication with user-space */
@@ -374,7 +372,6 @@ static int init_sir_ir(void)if (retval <0 )return retval;init_hardware (); -pr_info ("Installed.\n" );return 0 ; }
@@ -407,24 +404,18 @@ static int __init sir_ir_init(void)int retval; retval =platform_driver_register (&sir_ir_driver); -if (retval) { -pr_err ("Platform driver register failed!\n" ); -return -ENODEV ; - } +if (retval) +return retval; sir_ir_dev =platform_device_alloc ("sir_ir" ,0 );if (!sir_ir_dev) { -pr_err ("Platform device alloc failed!\n" ); retval = -ENOMEM ; goto pdev_alloc_fail; } retval =platform_device_add (sir_ir_dev); -if (retval) { -pr_err ("Platform device add failed!\n" ); - retval = -ENODEV ; +if (retval) goto pdev_add_fail; - }return 0 ;
@@ -441,7 +432,6 @@ static void __exit sir_ir_exit(void)drop_port ();platform_device_unregister (sir_ir_dev);platform_driver_unregister (&sir_ir_driver); -pr_info ("Uninstalled.\n" ); }module_init (sir_ir_init);
@@ -459,6 +449,3 @@ MODULE_PARM_DESC(irq, "Interrupt (4 or 3)");module_param (threshold, int,0444 );MODULE_PARM_DESC (threshold,"space detection threshold (3)" ); - -module_param (debug, bool,0644 ); -MODULE_PARM_DESC (debug,"Enable debugging messages" );
Signature · 1 line
2.9.3
Sean Young
maintainerPATCH 6/8 staging: sir: make sure we are ready to receive interrupts
In reply to Sean YoungEnsure that the timer is ready before we request interrupts.
--- drivers/staging/media/lirc/lirc_sir.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/staging/media/lirc/lirc_sir.c +2 -2
@@ -338,6 +338,8 @@ static int init_port(void) {int retval; +setup_timer (&timerlist, sir_timeout,0 ); +/* get I/O port access and IRQ line */ if (!request_region (io,8 ,KBUILD_MODNAME )) {pr_err ("i/o port 0x%.4x already in use.\n" , io);
@@ -352,8 +354,6 @@ static int init_port(void) }pr_info ("I/O port 0x%.4x, IRQ %d.\n" , io, irq); -setup_timer (&timerlist, sir_timeout,0 ); -return 0 ; }
Signature · 1 line
2.9.3
Sean Young
maintainerPATCH 7/8 rc: promote lirc_sir out of staging
In reply to Sean YoungRename lirc_sir to sir_ir in the process.
---
drivers/media/rc/Kconfig | 9 +++++++++
drivers/media/rc/Makefile | 1 +
drivers/{staging/media/lirc/lirc_sir.c => media/rc/sir_ir.c} | 0
drivers/staging/media/lirc/Kconfig | 6 ------
drivers/staging/media/lirc/Makefile | 1 -
5 files changed, 10 insertions(+), 7 deletions(-)
rename drivers/{staging/media/lirc/lirc_sir.c => media/rc/sir_ir.c} (100%)drivers/media/rc/Kconfig +9 -0
@@ -419,6 +419,15 @@ config IR_SERIAL To compile this driver as a module, choose M here: the module will be called serial-ir. +config IR_SIR + tristate "Built-in SIR IrDA port" + depends on RC_CORE + ---help--- + Say Y if you want to use a IrDA SIR port Transceivers. + + To compile this driver as a module, choose M here: the module will + be called sir-ir. + config IR_SERIAL_TRANSMITTER bool "Serial Port Transmitter" default y
drivers/media/rc/Makefile +1 -0
@@ -39,4 +39,5 @@ obj-$(CONFIG_RC_ST) += st_rc.o obj-$(CONFIG_IR_SUNXI) += sunxi-cir.o obj-$(CONFIG_IR_IMG) += img-ir/ obj-$(CONFIG_IR_SERIAL) += serial_ir.o +obj-$(CONFIG_IR_SIR) += sir_ir.o obj-$(CONFIG_IR_MTK) += mtk-cir.o
drivers/media/rc/sir_ir.c renamed from drivers/staging/media/lirc/lirc_sir.c +0 -0
drivers/staging/media/lirc/Kconfig +0 -6
@@ -18,12 +18,6 @@ config LIRC_SASEM help Driver for the Sasem OnAir Remocon-V or Dign HV5 HTPC IR/VFD Module -config LIRC_SIR - tristate "Built-in SIR IrDA port" - depends on RC_CORE - help - Driver for the SIR IrDA port - config LIRC_ZILOG tristate "Zilog/Hauppauge IR Transmitter" depends on LIRC && I2C
drivers/staging/media/lirc/Makefile +0 -1
@@ -4,5 +4,4 @@ # Each configuration option enables a list of files. obj-$(CONFIG_LIRC_SASEM) += lirc_sasem.o -obj-$(CONFIG_LIRC_SIR) += lirc_sir.o obj-$(CONFIG_LIRC_ZILOG) += lirc_zilog.o
Signature · 1 line
2.9.3
Sean Young
maintainerPATCH 8/8 staging: lirc_sasem: remove
In reply to Sean YoungThis driver was merged in 2010 and never had the necessary work done to promote it out of staging (port to rc-core), so remove it.
I have not managed to track down the hardware. If anyone has the hardware and would like a driver for it, please contact me and hopefully we can work together to write a new driver.
--- drivers/staging/media/lirc/Kconfig | 6 - drivers/staging/media/lirc/Makefile | 1 - drivers/staging/media/lirc/lirc_sasem.c | 899 -------------------------------- 3 files changed, 906 deletions(-) delete mode 100644 drivers/staging/media/lirc/lirc_sasem.c
drivers/staging/media/lirc/Kconfig +0 -6
@@ -12,12 +12,6 @@ menuconfig LIRC_STAGING if LIRC_STAGING -config LIRC_SASEM - tristate "Sasem USB IR Remote" - depends on LIRC && USB - help - Driver for the Sasem OnAir Remocon-V or Dign HV5 HTPC IR/VFD Module - config LIRC_ZILOG tristate "Zilog/Hauppauge IR Transmitter" depends on LIRC && I2C
drivers/staging/media/lirc/Makefile +0 -1
@@ -3,5 +3,4 @@ # Each configuration option enables a list of files. -obj-$(CONFIG_LIRC_SASEM) += lirc_sasem.o obj-$(CONFIG_LIRC_ZILOG) += lirc_zilog.o
drivers/staging/media/lirc/lirc_sasem.c deleted +0 -899
899 lines not on this page · raw message
Signature · 1 line
2.9.3