@@ -213,13 +213,11 @@ struct wbcir_data {
213213
214214 /* RX state */
215215 enum wbcir_rxstate rxstate ;
216- struct led_trigger * rxtrigger ;
217216 int carrier_report_enabled ;
218217 u32 pulse_duration ;
219218
220219 /* TX state */
221220 enum wbcir_txstate txstate ;
222- struct led_trigger * txtrigger ;
223221 u32 txlen ;
224222 u32 txoff ;
225223 u32 * txbuf ;
@@ -366,14 +364,11 @@ wbcir_idle_rx(struct rc_dev *dev, bool idle)
366364{
367365 struct wbcir_data * data = dev -> priv ;
368366
369- if (!idle && data -> rxstate == WBCIR_RXSTATE_INACTIVE ) {
367+ if (!idle && data -> rxstate == WBCIR_RXSTATE_INACTIVE )
370368 data -> rxstate = WBCIR_RXSTATE_ACTIVE ;
371- led_trigger_event (data -> rxtrigger , LED_FULL );
372- }
373369
374370 if (idle && data -> rxstate != WBCIR_RXSTATE_INACTIVE ) {
375371 data -> rxstate = WBCIR_RXSTATE_INACTIVE ;
376- led_trigger_event (data -> rxtrigger , LED_OFF );
377372
378373 if (data -> carrier_report_enabled )
379374 wbcir_carrier_report (data );
@@ -425,7 +420,6 @@ wbcir_irq_tx(struct wbcir_data *data)
425420 case WBCIR_TXSTATE_INACTIVE :
426421 /* TX FIFO empty */
427422 space = 16 ;
428- led_trigger_event (data -> txtrigger , LED_FULL );
429423 break ;
430424 case WBCIR_TXSTATE_ACTIVE :
431425 /* TX FIFO low (3 bytes or less) */
@@ -464,7 +458,6 @@ wbcir_irq_tx(struct wbcir_data *data)
464458 /* Clear TX underrun bit */
465459 outb (WBCIR_TX_UNDERRUN , data -> sbase + WBCIR_REG_SP3_ASCR );
466460 wbcir_set_irqmask (data , WBCIR_IRQ_RX | WBCIR_IRQ_ERR );
467- led_trigger_event (data -> txtrigger , LED_OFF );
468461 kfree (data -> txbuf );
469462 data -> txbuf = NULL ;
470463 data -> txstate = WBCIR_TXSTATE_INACTIVE ;
@@ -878,15 +871,13 @@ wbcir_shutdown(struct pnp_dev *device)
878871 */
879872 wbcir_set_irqmask (data , WBCIR_IRQ_NONE );
880873 disable_irq (data -> irq );
881-
882- /* Disable LED */
883- led_trigger_event (data -> rxtrigger , LED_OFF );
884- led_trigger_event (data -> txtrigger , LED_OFF );
885874}
886875
887876static int
888877wbcir_suspend (struct pnp_dev * device , pm_message_t state )
889878{
879+ struct wbcir_data * data = pnp_get_drvdata (device );
880+ led_classdev_suspend (& data -> led );
890881 wbcir_shutdown (device );
891882 return 0 ;
892883}
@@ -1015,6 +1006,7 @@ wbcir_resume(struct pnp_dev *device)
10151006
10161007 wbcir_init_hw (data );
10171008 enable_irq (data -> irq );
1009+ led_classdev_resume (& data -> led );
10181010
10191011 return 0 ;
10201012}
@@ -1058,25 +1050,13 @@ wbcir_probe(struct pnp_dev *device, const struct pnp_device_id *dev_id)
10581050 "(w: 0x%lX, e: 0x%lX, s: 0x%lX, i: %u)\n" ,
10591051 data -> wbase , data -> ebase , data -> sbase , data -> irq );
10601052
1061- led_trigger_register_simple ("cir-tx" , & data -> txtrigger );
1062- if (!data -> txtrigger ) {
1063- err = - ENOMEM ;
1064- goto exit_free_data ;
1065- }
1066-
1067- led_trigger_register_simple ("cir-rx" , & data -> rxtrigger );
1068- if (!data -> rxtrigger ) {
1069- err = - ENOMEM ;
1070- goto exit_unregister_txtrigger ;
1071- }
1072-
10731053 data -> led .name = "cir::activity" ;
1074- data -> led .default_trigger = "cir-rx " ;
1054+ data -> led .default_trigger = "rc-feedback " ;
10751055 data -> led .brightness_set = wbcir_led_brightness_set ;
10761056 data -> led .brightness_get = wbcir_led_brightness_get ;
10771057 err = led_classdev_register (& device -> dev , & data -> led );
10781058 if (err )
1079- goto exit_unregister_rxtrigger ;
1059+ goto exit_free_data ;
10801060
10811061 data -> dev = rc_allocate_device ();
10821062 if (!data -> dev ) {
@@ -1156,10 +1136,6 @@ wbcir_probe(struct pnp_dev *device, const struct pnp_device_id *dev_id)
11561136 rc_free_device (data -> dev );
11571137exit_unregister_led :
11581138 led_classdev_unregister (& data -> led );
1159- exit_unregister_rxtrigger :
1160- led_trigger_unregister_simple (data -> rxtrigger );
1161- exit_unregister_txtrigger :
1162- led_trigger_unregister_simple (data -> txtrigger );
11631139exit_free_data :
11641140 kfree (data );
11651141 pnp_set_drvdata (device , NULL );
@@ -1187,8 +1163,6 @@ wbcir_remove(struct pnp_dev *device)
11871163
11881164 rc_unregister_device (data -> dev );
11891165
1190- led_trigger_unregister_simple (data -> rxtrigger );
1191- led_trigger_unregister_simple (data -> txtrigger );
11921166 led_classdev_unregister (& data -> led );
11931167
11941168 /* This is ok since &data->led isn't actually used */
0 commit comments