Lines Matching +full:ascii +full:- +full:based

1 // SPDX-License-Identifier: GPL-2.0
6 * Based on usbled.c by Greg Kroah-Hartman (greg@kroah.com)
32 static const char *display_textmodes[] = {"raw", "hex", "ascii"};
57 if (count > 0 && buf[count-1] == '\n') in my_memlen()
58 return count - 1; in my_memlen()
67 if (mydev->powered && !mydev->has_interface_pm) { in update_display_powered()
68 rc = usb_autopm_get_interface(mydev->intf); in update_display_powered()
71 mydev->has_interface_pm = 1; in update_display_powered()
74 if (mydev->shadow_power != 1) in update_display_powered()
77 rc = usb_control_msg_send(mydev->udev, 0, 0x12, 0x48, in update_display_powered()
79 (0x00 * 0x100) + (mydev->powered ? 1 : 0), in update_display_powered()
82 dev_dbg(&mydev->udev->dev, "power retval = %d\n", rc); in update_display_powered()
84 if (!mydev->powered && mydev->has_interface_pm) { in update_display_powered()
85 usb_autopm_put_interface(mydev->intf); in update_display_powered()
86 mydev->has_interface_pm = 0; in update_display_powered()
94 if(mydev->shadow_power != 1) in update_display_mode()
97 rc = usb_control_msg_send(mydev->udev, 0, 0x12, 0x48, in update_display_mode()
99 (mydev->mode_msb * 0x100) + mydev->mode_lsb, in update_display_mode()
103 dev_dbg(&mydev->udev->dev, "mode retval = %d\n", rc); in update_display_mode()
113 if(mydev->shadow_power != 1) in update_display_visual()
117 for (i = 0; i < mydev->textlength; i++) in update_display_visual()
118 buffer[i] = mydev->text[mydev->textlength-1-i]; in update_display_visual()
120 rc = usb_control_msg_send(mydev->udev, 0, 0x12, 0x48, in update_display_visual()
122 (0 * 0x100) + mydev->textmode, /* mode */ in update_display_visual()
123 &buffer, mydev->textlength, 2000, mf); in update_display_visual()
126 dev_dbg(&mydev->udev->dev, "write retval = %d\n", rc); in update_display_visual()
129 for (i = 0; i < sizeof(mydev->decimals); i++) in update_display_visual()
130 decimals |= mydev->decimals[i] << i; in update_display_visual()
132 rc = usb_control_msg_send(mydev->udev, 0, 0x12, 0x48, in update_display_visual()
138 dev_dbg(&mydev->udev->dev, "decimal retval = %d\n", rc); in update_display_visual()
148 return sprintf(buf, "%u\n", mydev->name); \
157 mydev->name = simple_strtoul(buf, NULL, 10); \
170 return sysfs_emit(buf, "%s\n", mydev->text); in text_show()
180 if (end > sizeof(mydev->text)) in text_store()
181 return -EINVAL; in text_store()
183 memset(mydev->text, 0, sizeof(mydev->text)); in text_store()
184 mydev->textlength = end; in text_store()
187 memcpy(mydev->text, buf, end); in text_store()
203 for (i = 0; i < sizeof(mydev->decimals); i++) { in decimals_show()
204 pos = sizeof(mydev->decimals) - 1 - i; in decimals_show()
205 if (mydev->decimals[i] == 0) in decimals_show()
207 else if (mydev->decimals[i] == 1) in decimals_show()
213 buf[sizeof(mydev->decimals)] = '\n'; in decimals_show()
214 return sizeof(mydev->decimals) + 1; in decimals_show()
225 if (end > sizeof(mydev->decimals)) in decimals_store()
226 return -EINVAL; in decimals_store()
230 return -EINVAL; in decimals_store()
232 memset(mydev->decimals, 0, sizeof(mydev->decimals)); in decimals_store()
235 mydev->decimals[end-1-i] = 1; in decimals_store()
254 if (mydev->textmode == i) { in textmode_show()
281 mydev->textmode = i; in textmode_store()
309 int rc = -ENOMEM; in sevseg_probe()
315 mydev->udev = usb_get_dev(udev); in sevseg_probe()
316 mydev->intf = interface; in sevseg_probe()
320 mydev->shadow_power = 1; /* currently active */ in sevseg_probe()
321 mydev->has_interface_pm = 0; /* have not issued autopm_get */ in sevseg_probe()
324 mydev->textmode = 0x02; /* ascii mode */ in sevseg_probe()
325 mydev->mode_msb = 0x06; /* 6 characters */ in sevseg_probe()
326 mydev->mode_lsb = 0x3f; /* scanmode for 6 chars */ in sevseg_probe()
328 dev_info(&interface->dev, "USB 7 Segment device now attached\n"); in sevseg_probe()
341 usb_put_dev(mydev->udev); in sevseg_disconnect()
343 dev_info(&interface->dev, "USB 7 Segment now disconnected\n"); in sevseg_disconnect()
351 mydev->shadow_power = 0; in sevseg_suspend()
361 mydev->shadow_power = 1; in sevseg_resume()
373 mydev->shadow_power = 1; in sevseg_reset_resume()