RE: ci_hdrc_tegra hard locks kernel when set to dr_mode = "otg"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 
> >>
> >> I have prepped the patch for the tegra-udc driver to fail out in host
> >> mode and load as a peripheral in otg mode.
> 
> Just to be clear, this part is good to me. Although, doesn't CI driver operates by
> default in a peripheral mode when drm_mode=otg?
> 

Sorry to reply late due to National Holiday. The CI driver will not configure any
modes if dr_mode = otg, and the VBus and Id interrupt will be enabled to wait
external events.

Peter

> >> My reasoning for this is as follows:
> >> host mode allows devices to enumerate, but data cannot transmit
> >> correctly otg mode allows mode switching which is broken and was
> >> never supported peripheral mode is the only function that behaves
> >> correctly
> >>
> >> My presumption is this is caused by the chipidea driver not handling
> >> the tegra specific quirks.
> >> Reading through how nice and clean the tegra-ehci driver is, I'm
> >> wondering if it would be better to simply pull the requisite gadget
> >> stuff into the ehci driver, vice trying to wedge into the chipidea
> >> driver.
> >>
> >> What do y'all think?
> >
> > Not possible. The ChipIdea driver supports multiple vendors, it is
> > universal and should have all functionality needed by the host mode.
> > There is no point in duplicating the effort.
> >
> > Looking at host.c of CI driver I even see that it has references to
> > the tegra-ehci driver. I may take a look at what it would take to
> > replace tegra-ehci driver with the CI, then there will one less USB
> > driver for the same hardware (IIRC, the fsl-usb2-udc also potentially
> > could be squashed into the CI driver).
> >
> >> On Mon, Sep 30, 2019 at 1:55 PM Dmitry Osipenko <digetx@xxxxxxxxx> wrote:
> >>>
> >>> 30.09.2019 20:46, Peter Geis пишет:
> >>>> On Mon, Sep 30, 2019 at 1:42 PM Dmitry Osipenko <digetx@xxxxxxxxx>
> wrote:
> >>>>>
> >>>>> 30.09.2019 18:54, Peter Geis пишет:
> >>>>>> Dmitry,
> >>>>>>
> >>>>>> As far as I can tell the cpuidle drivers work perfectly, but I
> >>>>>> don't have full power management yet on either my T20 device nor
> >>>>>> my T30 device.
> >>>>>> They aren't the cause of this though.
> >>>>>>
> >>>>>> I've been sticking to the mainline release code since 5.3 landed,
> >>>>>> as something was merged into linux-next that breaks
> >>>>>> brcm4329/brcm4330 firmware loading.
> >>>>>>
> >>>>>> Jumping to linux-next to test your driver just revealed the behavior.
> >>>>>>
> >>>>>> On my T20 device I haven't encountered issues, but that operates
> >>>>>> almost exclusively in gadget mode.
> >>>>>> On my T30 device tegra-udc is misbehaving, especially on linux-next.
> >>>>>>
> >>>>>> By removing the hardcoded LL_DEBUG config and moving to a command
> >>>>>> line earlycon statement, I seem to be making progress in
> >>>>>> capturing what's going on.
> >>>>>> With the following actions, I got a panic crash dump:
> >>>>>> phy set to peripheral, boot with tegra-ehci in host mode, usb hub plugged
> in.
> >>>>>> Booted successfully, hub enumerated, passed data through attached
> >>>>>> ethernet device.
> >>>>>> Unbind the tegra-ehci driver, bind the tegra-udc driver.
> >>>>>> Hub enumerates, as well as attached ethernet device, but writes
> >>>>>> to the device throw constant errors.
> >>>>>
> >>>>> Is the host mode working properly when booting with the tegra-udc
> >>>>> as a primary driver?
> >>>>
> >>>> I actually got it working <once>.
> >>>> It threw constant reset errors though.
> >>>> Afterwards a soft reboot caused the kernel to crash with an irq-init error.
> >>>> tegra-ehci is the only stable host driver.
> >>>
> >>> Okay, I guess the host mode requires some extra configuration (or
> >>> some
> >>> quirk) that is currently missing in the tegra-udc. You may try to
> >>> compare what tegra-ehci and tegra-udc do differently and then figure
> >>> out how make it to work, for now I don't have any better advises.
> >>>
> >>>>>> Unbind the tegra-udc driver, produces the following panic:
> >>>>>
> >>>>> Looks like it is a CI driver bug, perhaps timer's tear down isn't
> >>>>> performed correctly. Maybe it is related to the errors you're
> >>>>> seeing and something getting stuck with the offending timer being
> >>>>> active during of the driver's unbinding..
> >>>>>
> >>>>> Probably Peter Chen could help with that.
> >>>>>
> >>>>> [snip]
> >>>
> >





[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux