Date: | 2011-07-07 01:50:53 (12 years 8 months ago) |
---|---|
Author: | Werner Almesberger |
Commit: | b003725a33d5181611edf5d00e80e40563d277ab |
Message: | atusb: adjusted dev_* severity levels The driver should now be quiet after initialization unless there's some problem. Signed-off-by: Werner Almesberger <werner@almesberger.net> |
Files: |
drivers/spi/atusb.c (21 diffs) |
Change Details
drivers/spi/atusb.c | ||
---|---|---|
15 | 15 | * - check URB killing in atusb_disconnect for races |
16 | 16 | * - switch from bulk to interrupt endpoint |
17 | 17 | * - implement buffer read without extra copy |
18 | * - decrease debug chatter | |
19 | 18 | * - harmonize indentation style |
20 | 19 | * - mv atusb.c ../ieee802.15.4/spi_atusb.c, or maybe atrf_atusb.c or such |
21 | 20 | * - check module load/unload |
21 | * - review dev_* severity levels | |
22 | 22 | */ |
23 | 23 | |
24 | 24 | #include <linux/kernel.h> |
... | ... | |
165 | 165 | { |
166 | 166 | struct urb *urb = (void *) data; |
167 | 167 | |
168 | printk(KERN_INFO "atusb_timer\n"); | |
168 | dev_vdbg(&urb->dev->dev, "atusb_timer\n"); | |
169 | 169 | atusb_async_finish(urb); |
170 | 170 | } |
171 | 171 | |
... | ... | |
237 | 237 | retval = usb_submit_urb(urb, GFP_KERNEL); |
238 | 238 | if (!retval) |
239 | 239 | return 0; |
240 | dev_info(&dev->dev, "failed submitting read urb, error %d", | |
240 | dev_warn(&dev->dev, "failed submitting read urb, error %d", | |
241 | 241 | retval); |
242 | 242 | retval = retval == -ENOMEM ? retval : -EIO; |
243 | 243 | |
... | ... | |
255 | 255 | static int atusb_read1(struct atusb_local *atusb, |
256 | 256 | uint8_t tx, uint8_t *rx, int len) |
257 | 257 | { |
258 | dev_info(&atusb->udev->dev, "atusb_read1: tx = 0x%x\n", tx); | |
258 | dev_dbg(&atusb->udev->dev, "atusb_read1: tx = 0x%x\n", tx); | |
259 | 259 | return submit_control_msg(atusb, |
260 | 260 | ATUSB_SPI_READ1, ATUSB_FROM_DEV, tx, 0, |
261 | 261 | rx, 1, atusb_ctrl_cb, atusb); |
... | ... | |
264 | 264 | static int atusb_read_fb(struct atusb_local *atusb, |
265 | 265 | uint8_t tx, uint8_t *rx0, uint8_t *rx, int len) |
266 | 266 | { |
267 | dev_info(&atusb->udev->dev, "atusb_read_fb: tx = 0x%x\n", tx); | |
267 | dev_dbg(&atusb->udev->dev, "atusb_read_fb: tx = 0x%x\n", tx); | |
268 | 268 | return submit_control_msg(atusb, |
269 | 269 | ATUSB_SPI_READ1, ATUSB_FROM_DEV, tx, 0, |
270 | 270 | atusb->buffer, len+1, atusb_read_fb_cb, atusb); |
... | ... | |
275 | 275 | { |
276 | 276 | usb_complete_t cb = atusb_ctrl_cb; |
277 | 277 | |
278 | dev_info(&atusb->udev->dev, "atusb_write: tx[0] = 0x%x\n", tx0); | |
279 | dev_info(&atusb->udev->dev, "atusb_write: tx[1] = 0x%x\n", tx1); | |
278 | dev_dbg(&atusb->udev->dev, | |
279 | "atusb_write: tx0 = 0x%x tx1 = 0x%x\n", tx0, tx1); | |
280 | 280 | |
281 | 281 | /* |
282 | 282 | * The AT86RF230 driver sometimes requires a transceiver state |
... | ... | |
317 | 317 | n = 0; |
318 | 318 | list_for_each_entry(xfer, &msg->transfers, transfer_list) { |
319 | 319 | if (n == ARRAY_SIZE(x)) { |
320 | dev_info(&atusb->udev->dev, "too many transfers\n"); | |
320 | dev_err(&atusb->udev->dev, "too many transfers\n"); | |
321 | 321 | return -EINVAL; |
322 | 322 | } |
323 | 323 | x[n] = xfer; |
... | ... | |
334 | 334 | goto bad_req; |
335 | 335 | if (n == 1) { |
336 | 336 | if (rx) { |
337 | dev_info(&atusb->udev->dev, "read 1\n"); | |
337 | dev_dbg(&atusb->udev->dev, "read 1\n"); | |
338 | 338 | retval = atusb_read1(atusb, tx[0], rx+1, len-1); |
339 | 339 | } else { |
340 | dev_info(&atusb->udev->dev, "write 2\n"); | |
340 | dev_dbg(&atusb->udev->dev, "write 2\n"); | |
341 | 341 | /* |
342 | 342 | * Don't take our clock away !! ;-) |
343 | 343 | */ |
... | ... | |
353 | 353 | if (x[0]->rx_buf) { |
354 | 354 | if (x[1]->tx_buf || !x[1]->rx_buf) |
355 | 355 | goto bad_req; |
356 | dev_info(&atusb->udev->dev, "read 1+\n"); | |
356 | dev_dbg(&atusb->udev->dev, "read 1+\n"); | |
357 | 357 | retval = atusb_read_fb(atusb, tx[0], rx+1, |
358 | 358 | x[1]->rx_buf, x[1]->len); |
359 | 359 | } else { |
360 | 360 | if (!x[1]->tx_buf ||x[1]->rx_buf) |
361 | 361 | goto bad_req; |
362 | dev_info(&atusb->udev->dev, "write 2+n\n"); | |
362 | dev_dbg(&atusb->udev->dev, "write 2+n\n"); | |
363 | 363 | retval = atusb_write(atusb, tx[0], tx[1], |
364 | 364 | x[1]->tx_buf, x[1]->len); |
365 | 365 | } |
... | ... | |
367 | 367 | return retval; |
368 | 368 | |
369 | 369 | bad_req: |
370 | dev_info(&atusb->udev->dev, "unrecognized request:\n"); | |
370 | dev_err(&atusb->udev->dev, "unrecognized request:\n"); | |
371 | 371 | list_for_each_entry(xfer, &msg->transfers, transfer_list) |
372 | dev_info(&atusb->udev->dev, "%stx %srx len %u\n", | |
372 | dev_err(&atusb->udev->dev, "%stx %srx len %u\n", | |
373 | 373 | xfer->tx_buf ? "" : "!", xfer->rx_buf ? " " : "!", |
374 | 374 | xfer->len); |
375 | 375 | return -EINVAL; |
... | ... | |
395 | 395 | { |
396 | 396 | struct atusb_local *atusb = urb->context; |
397 | 397 | |
398 | printk(KERN_INFO "atusb_irq (%d)\n", urb->status); | |
398 | dev_dbg(&urb->dev->dev, "atusb_irq (%d)\n", urb->status); | |
399 | 399 | usb_free_urb(urb); |
400 | 400 | atusb->irq_urb = NULL; |
401 | 401 | tasklet_schedule(&atusb->task); |
... | ... | |
409 | 409 | |
410 | 410 | BUG_ON(atusb->irq_urb); |
411 | 411 | |
412 | printk(KERN_INFO "atusb_arm_interrupt\n"); | |
412 | dev_vdbg(&dev->dev, "atusb_arm_interrupt\n"); | |
413 | 413 | urb = usb_alloc_urb(0, GFP_KERNEL); |
414 | 414 | if (!urb) { |
415 | 415 | dev_err(&dev->dev, |
... | ... | |
436 | 436 | { |
437 | 437 | struct atusb_local *atusb = irq_data_get_irq_chip_data(data); |
438 | 438 | |
439 | printk(KERN_INFO "atusb_irq_mask\n"); | |
439 | dev_vdbg(&atusb->udev->dev, "atusb_irq_mask\n"); | |
440 | 440 | tasklet_disable_nosync(&atusb->task); |
441 | 441 | } |
442 | 442 | |
... | ... | |
444 | 444 | { |
445 | 445 | struct atusb_local *atusb = irq_data_get_irq_chip_data(data); |
446 | 446 | |
447 | printk(KERN_INFO "atusb_irq_unmask\n"); | |
447 | dev_vdbg(&atusb->udev->dev, "atusb_irq_unmask\n"); | |
448 | 448 | tasklet_enable(&atusb->task); |
449 | 449 | } |
450 | 450 | |
... | ... | |
452 | 452 | { |
453 | 453 | struct atusb_local *atusb = irq_data_get_irq_chip_data(data); |
454 | 454 | |
455 | printk(KERN_INFO "atusb_irq_ack\n"); | |
455 | dev_vdbg(&atusb->udev->dev, "atusb_irq_ack\n"); | |
456 | 456 | atusb_arm_interrupt(atusb); |
457 | 457 | } |
458 | 458 | |
... | ... | |
477 | 477 | ATUSB_RF_RESET, ATUSB_TO_DEV, 0, 0, |
478 | 478 | NULL, 0, 1000); |
479 | 479 | if (retval < 0) { |
480 | dev_info(&atusb->udev->dev, | |
480 | dev_err(&atusb->udev->dev, | |
481 | 481 | "%s: error doing reset retval = %d\n", |
482 | 482 | __func__, retval); |
483 | 483 | } |
... | ... | |
525 | 525 | ATUSB_BUILD, ATUSB_FROM_DEV, 0, 0, |
526 | 526 | build, ATUSB_BUILD_SIZE, 1000); |
527 | 527 | if (retval < 0) { |
528 | dev_info(&dev->dev, | |
528 | dev_err(&dev->dev, | |
529 | 529 | "failed submitting urb for ATUSB_BUILD, error %d\n", |
530 | 530 | retval); |
531 | 531 | return retval == -ENOMEM ? retval : -EIO; |
... | ... | |
571 | 571 | */ |
572 | 572 | if (interface->cur_altsetting->desc.bInterfaceClass != |
573 | 573 | USB_CLASS_VENDOR_SPEC) { |
574 | dev_info(&udev->dev, | |
574 | dev_dbg(&udev->dev, | |
575 | 575 | "Ignoring interface with class 0x%02x\n", |
576 | 576 | interface->cur_altsetting->desc.bInterfaceClass); |
577 | 577 | return -ENODEV; |
... | ... | |
596 | 596 | |
597 | 597 | atusb->slave_irq = irq_alloc_desc(numa_node_id()); |
598 | 598 | if (atusb->slave_irq < 0) { |
599 | dev_info(&udev->dev, "can't allocate slave irq\n"); | |
599 | dev_err(&udev->dev, "can't allocate slave irq\n"); | |
600 | 600 | retval = -ENXIO; |
601 | 601 | goto err_free; |
602 | 602 | } |
... | ... | |
609 | 609 | |
610 | 610 | retval = spi_register_master(master); |
611 | 611 | if (retval < 0) { |
612 | dev_info(&udev->dev, "can't register spi master\n"); | |
612 | dev_err(&udev->dev, "can't register spi master\n"); | |
613 | 613 | goto err_slave_irq; |
614 | 614 | } |
615 | 615 | |
... | ... | |
632 | 632 | |
633 | 633 | atusb->spi = spi_new_device(master, &board_info); |
634 | 634 | if (!atusb->spi) { |
635 | dev_info(&udev->dev, "can't create new device for %s\n", | |
635 | dev_err(&udev->dev, "can't create new device for %s\n", | |
636 | 636 | board_info.modalias); |
637 | 637 | goto err_master; |
638 | 638 | } |
Branches:
ben-wpan
ben-wpan-stefan
5396a9238205f20f811ea57898980d3ca82df0b6
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9