linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Jung Daehwan <dh10.jung@samsung.com>
Cc: Mathias Nyman <mathias.nyman@intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"open list:USB XHCI DRIVER" <linux-usb@vger.kernel.org>,
	open list <linux-kernel@vger.kernel.org>,
	Howard Yen <howardyen@google.com>,
	Jack Pham <jackp@codeaurora.org>, Puma Hsu <pumahsu@google.com>,
	"J . Avila" <elavila@google.com>,
	sc.suh@samsung.com
Subject: Re: [PATCH v3 4/4] usb: host: add xhci-exynos driver
Date: Wed, 23 Mar 2022 09:34:14 +0100	[thread overview]
Message-ID: <94669e28-16e0-440d-e52c-b1e1dd9592b0@kernel.org> (raw)
In-Reply-To: <20220323051732.GE19041@ubuntu>

On 23/03/2022 06:17, Jung Daehwan wrote:
> On Tue, Mar 22, 2022 at 06:16:58PM +0100, Krzysztof Kozlowski wrote:
>> On 21/03/2022 09:59, Daehwan Jung wrote:
>>> This driver supports USB Audio offload with Co-processor.
>>> It only cares DCBAA, Device Context, Transfer Ring, Event Ring, and ERST.
>>> They are allocated on specific address with xhci hooks.
>>> Co-processor could use them directly without xhci driver after then.
>>>
>>> Signed-off-by: Daehwan Jung <dh10.jung@samsung.com>
>>> ---
>>>  drivers/usb/host/Kconfig       |   9 +
>>>  drivers/usb/host/Makefile      |   1 +
>>>  drivers/usb/host/xhci-exynos.c | 982 +++++++++++++++++++++++++++++++++
>>>  drivers/usb/host/xhci-exynos.h |  63 +++
>>>  4 files changed, 1055 insertions(+)
>>>  create mode 100644 drivers/usb/host/xhci-exynos.c
>>>  create mode 100644 drivers/usb/host/xhci-exynos.h
>>>
>>> diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
>>> index 57ca5f97a3dc..850e6b71fac5 100644
>>> --- a/drivers/usb/host/Kconfig
>>> +++ b/drivers/usb/host/Kconfig
>>> @@ -783,3 +783,12 @@ config USB_XEN_HCD
>>>  	  by the Xen host (usually Dom0).
>>>  	  Only needed if the kernel is running in a Xen guest and generic
>>>  	  access to a USB device is needed.
>>> +
>>> +config USB_XHCI_EXYNOS
>>> +	tristate "XHCI support for Samsung Exynos SoC Series"
>>> +	depends on ARCH_EXYNOS || COMPILE_TEST
>>> +	help
>>> +	  Enable support for the Samsung Exynos SOC's on-chip XHCI
>>> +	  controller.
>>> +
>>> +	  If unsure, say N.
>>> diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
>>> index 2948983618fb..300f22b6eb1b 100644
>>> --- a/drivers/usb/host/Makefile
>>> +++ b/drivers/usb/host/Makefile
>>> @@ -86,3 +86,4 @@ obj-$(CONFIG_USB_HCD_SSB)	+= ssb-hcd.o
>>>  obj-$(CONFIG_USB_FOTG210_HCD)	+= fotg210-hcd.o
>>>  obj-$(CONFIG_USB_MAX3421_HCD)	+= max3421-hcd.o
>>>  obj-$(CONFIG_USB_XEN_HCD)	+= xen-hcd.o
>>> +obj-$(CONFIG_USB_XHCI_EXYNOS)	+= xhci-exynos.o
>>> diff --git a/drivers/usb/host/xhci-exynos.c b/drivers/usb/host/xhci-exynos.c
>>> new file mode 100644
>>> index 000000000000..19ee21f1d024
>>> --- /dev/null
>>> +++ b/drivers/usb/host/xhci-exynos.c
>>> @@ -0,0 +1,982 @@
>>> +// SPDX-License-Identifier: GPL-2.0
>>> +/*
>>> + * xhci-exynos.c - xHCI host controller driver platform Bus Glue for Exynos.
>>> + *
>>> + * Copyright (C) 2022 Samsung Electronics Incorporated - http://www.samsung.com
>>> + * Author: Daehwan Jung <dh10.jung@samsung.com>
>>> + *
>>> + * A lot of code borrowed from the Linux xHCI driver.
>>> + */
>>> +#include <linux/clk.h>
>>> +#include <linux/dma-mapping.h>
>>> +#include <linux/module.h>
>>> +#include <linux/pci.h>
>>> +#include <linux/of.h>
>>> +#include <linux/of_device.h>
>>> +#include <linux/platform_device.h>
>>> +#include <linux/usb/phy.h>
>>> +#include <linux/slab.h>
>>> +#include <linux/acpi.h>
>>> +#include <linux/usb/of.h>
>>> +
>>> +#include "xhci.h"
>>> +#include "xhci-plat.h"
>>> +#include "xhci-mvebu.h"
>>> +#include "xhci-rcar.h"
>>
>> Could you explain why do you need RCAR and Marvell code in Exynos? Is it
>> even a real driver here? On what platforms this can be tested? Where are
>> the bindings?
> 
> 2 headers you said are not needed. I'm going to remove it on next
> submission. I tested on Exynos platform and it's real driver. I haven't
> made bindings.

This driver does not fit Linux development style at all. You duplicate
code instead of integrating with existing drivers. You call a driver
"Exynos" but include Marvell, Renesas code and actually do not include
Exynos related bindings. Usage of "generic-xhci" in Exynos-specific
driver looks like it is some hacking of downstream kernel. This driver
does not look at all like ready for submission.

There was entire team in DMC @Samsung and in Polish Samsung R&D devoted
for upstream Linux kernel work. There was in the past Open Source
Samsung Group. There were several folks from SoC division (Samsung LSI)
having significant experience in mainlining code (one of them recently
got as a co-maintainer of Exynos). I can point you to specific names, if
needed. All of them have huge experience in mainlining drivers, so
please reach them for help and get a training on working with upstream.
I mean, around 10 years ago Samsung was ramping up with open-source
submissions, so it was excused from not knowing the process and from
beginner's mistakes. After 10 years it's not a beginner anymore. It is
not expected to make beginner's mistakes anymore...

Best regards,
Krzysztof

  reply	other threads:[~2022-03-23  8:34 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20220321090202epcas2p1bfa78db059c1f6f6acbbb015e4bf991c@epcas2p1.samsung.com>
2022-03-21  8:59 ` [PATCH v3 0/4] support USB offload feature Daehwan Jung
     [not found]   ` <CGME20220321090204epcas2p31e39a4b8b6fc803ceecac5d19e6e39e9@epcas2p3.samsung.com>
2022-03-21  8:59     ` [PATCH v3 1/4] usb: host: export symbols for xhci hooks usage Daehwan Jung
2022-03-21 15:35       ` kernel test robot
2022-03-22 17:12       ` Krzysztof Kozlowski
2022-03-23  1:22         ` Jung Daehwan
     [not found]   ` <CGME20220321090204epcas2p3b2be5c6b131240e408d12d40c517395c@epcas2p3.samsung.com>
2022-03-21  8:59     ` [PATCH v3 2/4] usb: host: add xhci hooks for USB offload Daehwan Jung
2022-03-21 17:00       ` Mathias Nyman
2022-03-22  2:14         ` Jung Daehwan
     [not found]   ` <CGME20220321090205epcas2p4f3698a0aa49d251c0a8f008e85d968ba@epcas2p4.samsung.com>
2022-03-21  8:59     ` [PATCH v3 3/4] usb: host: add some to xhci overrides " Daehwan Jung
     [not found]   ` <CGME20220321090205epcas2p15ac16f281554b663062e0e31666defab@epcas2p1.samsung.com>
2022-03-21  8:59     ` [PATCH v3 4/4] usb: host: add xhci-exynos driver Daehwan Jung
2022-03-21 15:45       ` Bjørn Mork
2022-03-22  2:30         ` Jung Daehwan
2022-03-21 16:26       ` kernel test robot
2022-03-21 16:37       ` kernel test robot
2022-03-22 17:10       ` Krzysztof Kozlowski
2022-03-23  2:34         ` Jung Daehwan
2022-03-23  8:26           ` Krzysztof Kozlowski
2022-03-29  2:35             ` Jung Daehwan
2022-03-22 17:16       ` Krzysztof Kozlowski
2022-03-23  5:17         ` Jung Daehwan
2022-03-23  8:34           ` Krzysztof Kozlowski [this message]
2022-03-21  9:14   ` [PATCH v3 0/4] support USB offload feature Greg Kroah-Hartman
2022-03-21  9:24     ` Jung Daehwan
2022-03-21  9:32       ` Greg Kroah-Hartman
2022-03-21 10:06         ` Jung Daehwan
2022-03-21 10:16           ` Greg Kroah-Hartman
2022-03-22  2:17             ` Jung Daehwan
2022-03-22 17:05             ` Krzysztof Kozlowski
2022-03-23  1:31               ` Jung Daehwan
2022-03-23  8:25                 ` Krzysztof Kozlowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=94669e28-16e0-440d-e52c-b1e1dd9592b0@kernel.org \
    --to=krzk@kernel.org \
    --cc=dh10.jung@samsung.com \
    --cc=elavila@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=howardyen@google.com \
    --cc=jackp@codeaurora.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@intel.com \
    --cc=pumahsu@google.com \
    --cc=sc.suh@samsung.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).