mz20mon-tinker その5

usb0周りをチューニング。

  • rndisなドライバーなため、デバイス認識の度にMACアドレスが変わってしまう。
  • udevで無理やりmacアドレスを変更することも可能だけど、あまり意味がなさそう。。結局は認識直後はランダムなMACアドレスになるので。。
  • というわけで、IPを手動で固定割り当てに変更。
  • 通常時のLTE⇔Wifi切り替え時は、usbパワーオフはせず、ifdownのみで行うことに。
    • LTE運用中の夜中のRefresh処理時は、usbパワーoff/onする!
  • それに伴い、scriptの整備!

あと、禁断の。。。(w

diff --git a/drivers/usb/dwc2/hcd_intr.c b/drivers/usb/dwc2/hcd_intr.c
index bda0b21b850f..ae006c0cd705 100644
--- a/drivers/usb/dwc2/hcd_intr.c
+++ b/drivers/usb/dwc2/hcd_intr.c
@@ -461,7 +461,7 @@ static int dwc2_update_urb_state(struct dwc2_hsotg *hsotg,
                                                      &short_read);

        if (urb->actual_length + xfer_length > urb->length) {
-               dev_warn(hsotg->dev, "%s(): trimming xfer length\n", __func__);
+               // dev_warn(hsotg->dev, "%s(): trimming xfer length\n", __func__);
                xfer_length = urb->length - urb->actual_length;
        }

@@ -1165,7 +1165,7 @@ static void dwc2_update_urb_state_abn(struct dwc2_hsotg *hsotg,
        u32 hctsiz;

        if (urb->actual_length + xfer_length > urb->length) {
-               dev_warn(hsotg->dev, "%s(): trimming xfer length\n", __func__);
+               // dev_warn(hsotg->dev, "%s(): trimming xfer length\n", __func__);
                xfer_length = urb->length - urb->actual_length;
        }

@@ -1897,6 +1897,7 @@ static void dwc2_hc_chhltd_intr_dma(struct dwc2_hsotg *hsotg,
                                dwc2_halt_channel(hsotg, chan, qtd,
                                        DWC2_HC_XFER_PERIODIC_INCOMPLETE);
                        } else {
+                               #if 0
                                dev_err(hsotg->dev,
                                        "%s: Channel %d - ChHltd set, but reason is unknown\n",
                                        __func__, chnum);
@@ -1904,6 +1905,7 @@ static void dwc2_hc_chhltd_intr_dma(struct dwc2_hsotg *hsotg,
                                        "hcint 0x%08x, intsts 0x%08x\n",
                                        chan->hcint,
                                        dwc2_readl(hsotg->regs + GINTSTS));
+                               #endif
                                goto error;
                        }
                }

続く~