Linux Serial subsystem development
 help / color / mirror / Atom feed
* Re: [PATCH v3 2/4] soc: qcom: Add GENI based QUP Wrapper driver
From: Robin Murphy @ 2018-03-08 13:24 UTC (permalink / raw)
  To: Karthik Ramasubramanian, Stephen Boyd, Stephen Boyd,
	andy.gross-QSEj5FYQhm4dnm+yROfE0A, corbet-T1hC0tSOHrs,
	david.brown-QSEj5FYQhm4dnm+yROfE0A,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, mark.rutland-5wv7dgnIgG8,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A, wsa-z923LK4zBo2bacvFa/9K2g,
	hch-jcswGhMUV9g, m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Girish Mahadevan,
	acourbot-F7+t8E8rja9g9hUCZPvPmw, linux-doc-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA,
	evgreen-F7+t8E8rja9g9hUCZPvPmw,
	iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA,
	linux-serial-u79uwXL29TY76Z2rM5mHXA, jslaby-IBi9RG/b67k,
	Sagar Dharia
In-Reply-To: <945b6c00-dde6-6ec7-4577-4cc0d034796b-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>

On 08/03/18 06:46, Karthik Ramasubramanian wrote:
> 
> 
> On 3/6/2018 2:56 PM, Stephen Boyd wrote:
>> Quoting Karthik Ramasubramanian (2018-03-02 16:58:23)
>>
>>>>> +       return iova;
>>>>> +}
>>>>> +EXPORT_SYMBOL(geni_se_tx_dma_prep);
>>>>> +
>>>>> +/**
>>>>> + * geni_se_rx_dma_prep() - Prepare the Serial Engine for RX DMA 
>>>>> transfer
>>>>> + * @se:                        Pointer to the concerned Serial 
>>>>> Engine.
>>>>> + * @buf:               Pointer to the RX buffer.
>>>>> + * @len:               Length of the RX buffer.
>>>>> + *
>>>>> + * This function is used to prepare the buffers for DMA RX.
>>>>> + *
>>>>> + * Return: Mapped DMA Address of the buffer on success, NULL on 
>>>>> failure.
>>>>> + */
>>>>> +dma_addr_t geni_se_rx_dma_prep(struct geni_se *se, void *buf, 
>>>>> size_t len)
>>>>> +{
>>>>> +       dma_addr_t iova;
>>>>> +       struct geni_wrapper *wrapper = se->wrapper;
>>>>> +       u32 val;
>>>>> +
>>>>> +       iova = dma_map_single(wrapper->dev, buf, len, 
>>>>> DMA_FROM_DEVICE);
>>>>> +       if (dma_mapping_error(wrapper->dev, iova))
>>>>> +               return (dma_addr_t)NULL;
>>>>
>>>> Can't return a dma_mapping_error address to the caller and have them
>>>> figure it out?
>>> Earlier we used to return the DMA_ERROR_CODE which has been removed
>>> recently in arm64 architecture. If we return the dma_mapping_error, then
>>> the caller also needs the device which encountered the mapping error.
>>> The serial interface drivers can use their parent currently to resolve
>>> the mapping error. Once the wrapper starts mapping using IOMMU context
>>> bank, then the serial interface drivers do not know which device to use
>>> to know if there is an error.
>>>
>>> Having said that, the dma_ops suggestion might help with handling this
>>> situation. I will look into it further.
>>
>> Ok, thanks.
>>
>>>>> +{
>>>>> +       struct geni_wrapper *wrapper = se->wrapper;
>>>>> +
>>>>> +       if (iova)
>>>>> +               dma_unmap_single(wrapper->dev, iova, len, 
>>>>> DMA_FROM_DEVICE);
>>>>> +}
>>>>> +EXPORT_SYMBOL(geni_se_rx_dma_unprep);
>>>>
>>>> Instead of having the functions exported, could we set the dma_ops on
>>>> all child devices of the wrapper that this driver populates and then
>>>> implement the DMA ops for those devices here? I assume that there's
>>>> never another DMA master between the wrapper and the serial engine, 
>>>> so I
>>>> think it would work.
>>> This suggestion looks like it will work.
>>
>> It would be a good idea to check with some other people on the dma_ops
>> suggestion. Maybe add the DMA mapping subsystem folks to help out here
> I have added the DMA mapping subsystem folks to help out here.
> 
> To present an overview, we have a wrapper controller which is composed 
> of several serial engines. The serial engines are programmed with UART, 
> I2C or SPI protocol and support DMA transfer. When the serial engines 
> perform DMA transfer, the wrapper controller device is used to perform 
> the mapping. The reason wrapper device is used is because of IOMMU and 
> there is only one IOMMU context bank to perform the translation for the 
> entire wrapper controller. So the wrapper controller exports map and 
> unmap functions to the individual protocol drivers.
> 
> There is a suggestion to make the parent wrapper controller implement 
> the dma_map_ops, instead of exported map/unmap functions and populate 
> those dma_map_ops on all the children serial engines. Can you please 
> provide your inputs regarding this suggestion?

Implementing dma_map_ops inside a driver for real hardware is almost 
always the wrong thing to do.

Based on what I could infer about the hardware from looking through the 
whole series in the linux-arm-msm archive, this is probably more like a 
multi-channel DMA controller where each "channel" has a configurable 
serial interface on the other end, as opposed to an actual bus where the 
serial engines are individually distinct AHB masters routed through the 
wrapper. If that's true, then using the QUP platform device for DMA API 
calls is the appropriate thing to do. Personally I'd be inclined not to 
abstract the dma_{map,unmap} calls at all, and just have the protocol 
drivers make them directly using dev->parent/wrapper->dev/whatever, but 
if you do want to abstract those then just give the abstraction a saner 
interface, i.e. pass the DMA handle by reference and return a regular 
int for error/success status.

Robin.
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

^ permalink raw reply

* Re: [PATCH v3 2/4] soc: qcom: Add GENI based QUP Wrapper driver
From: Christoph Hellwig @ 2018-03-08 14:41 UTC (permalink / raw)
  To: Robin Murphy
  Cc: mark.rutland-5wv7dgnIgG8, wsa-z923LK4zBo2bacvFa/9K2g,
	david.brown-QSEj5FYQhm4dnm+yROfE0A, Karthik Ramasubramanian,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA, hch-jcswGhMUV9g,
	corbet-T1hC0tSOHrs, linux-doc-u79uwXL29TY76Z2rM5mHXA,
	evgreen-F7+t8E8rja9g9hUCZPvPmw,
	linux-serial-u79uwXL29TY76Z2rM5mHXA, jslaby-IBi9RG/b67k,
	andy.gross-QSEj5FYQhm4dnm+yROfE0A, Stephen Boyd,
	devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Stephen Boyd,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A, Sagar Dharia, Girish Mahadevan,
	acourbot-F7+t8E8rja9g9hUCZPvPmw,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
	iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA
In-Reply-To: <8567be1b-1431-4f1d-cb41-6a7eaa434438-5wv7dgnIgG8@public.gmane.org>

On Thu, Mar 08, 2018 at 01:24:45PM +0000, Robin Murphy wrote:
> Implementing dma_map_ops inside a driver for real hardware is almost always 
> the wrong thing to do.

Agreed.  dma_map_ops should be a platform decision based on the bus.

Even our dma_virt_ops basically just works around bad driver layering.

^ permalink raw reply

* Re: [PATCH v3 2/4] soc: qcom: Add GENI based QUP Wrapper driver
From: Karthik Ramasubramanian @ 2018-03-08 18:18 UTC (permalink / raw)
  To: Robin Murphy, Stephen Boyd, Stephen Boyd,
	andy.gross-QSEj5FYQhm4dnm+yROfE0A, corbet-T1hC0tSOHrs,
	david.brown-QSEj5FYQhm4dnm+yROfE0A,
	gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r, mark.rutland-5wv7dgnIgG8,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A, wsa-z923LK4zBo2bacvFa/9K2g,
	hch-jcswGhMUV9g, m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Girish Mahadevan,
	acourbot-F7+t8E8rja9g9hUCZPvPmw, linux-doc-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA,
	evgreen-F7+t8E8rja9g9hUCZPvPmw,
	iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA,
	linux-serial-u79uwXL29TY76Z2rM5mHXA, jslaby-IBi9RG/b67k,
	Sagar Dharia
In-Reply-To: <8567be1b-1431-4f1d-cb41-6a7eaa434438-5wv7dgnIgG8@public.gmane.org>



On 3/8/2018 6:24 AM, Robin Murphy wrote:
> On 08/03/18 06:46, Karthik Ramasubramanian wrote:
>>
>>
>> On 3/6/2018 2:56 PM, Stephen Boyd wrote:
>>> Quoting Karthik Ramasubramanian (2018-03-02 16:58:23)
>>>
>>>>>> +       return iova;
>>>>>> +}
>>>>>> +EXPORT_SYMBOL(geni_se_tx_dma_prep);
>>>>>> +
>>>>>> +/**
>>>>>> + * geni_se_rx_dma_prep() - Prepare the Serial Engine for RX DMA 
>>>>>> transfer
>>>>>> + * @se:                        Pointer to the concerned Serial 
>>>>>> Engine.
>>>>>> + * @buf:               Pointer to the RX buffer.
>>>>>> + * @len:               Length of the RX buffer.
>>>>>> + *
>>>>>> + * This function is used to prepare the buffers for DMA RX.
>>>>>> + *
>>>>>> + * Return: Mapped DMA Address of the buffer on success, NULL on 
>>>>>> failure.
>>>>>> + */
>>>>>> +dma_addr_t geni_se_rx_dma_prep(struct geni_se *se, void *buf, 
>>>>>> size_t len)
>>>>>> +{
>>>>>> +       dma_addr_t iova;
>>>>>> +       struct geni_wrapper *wrapper = se->wrapper;
>>>>>> +       u32 val;
>>>>>> +
>>>>>> +       iova = dma_map_single(wrapper->dev, buf, len, 
>>>>>> DMA_FROM_DEVICE);
>>>>>> +       if (dma_mapping_error(wrapper->dev, iova))
>>>>>> +               return (dma_addr_t)NULL;
>>>>>
>>>>> Can't return a dma_mapping_error address to the caller and have them
>>>>> figure it out?
>>>> Earlier we used to return the DMA_ERROR_CODE which has been removed
>>>> recently in arm64 architecture. If we return the dma_mapping_error, 
>>>> then
>>>> the caller also needs the device which encountered the mapping error.
>>>> The serial interface drivers can use their parent currently to resolve
>>>> the mapping error. Once the wrapper starts mapping using IOMMU context
>>>> bank, then the serial interface drivers do not know which device to use
>>>> to know if there is an error.
>>>>
>>>> Having said that, the dma_ops suggestion might help with handling this
>>>> situation. I will look into it further.
>>>
>>> Ok, thanks.
>>>
>>>>>> +{
>>>>>> +       struct geni_wrapper *wrapper = se->wrapper;
>>>>>> +
>>>>>> +       if (iova)
>>>>>> +               dma_unmap_single(wrapper->dev, iova, len, 
>>>>>> DMA_FROM_DEVICE);
>>>>>> +}
>>>>>> +EXPORT_SYMBOL(geni_se_rx_dma_unprep);
>>>>>
>>>>> Instead of having the functions exported, could we set the dma_ops on
>>>>> all child devices of the wrapper that this driver populates and then
>>>>> implement the DMA ops for those devices here? I assume that there's
>>>>> never another DMA master between the wrapper and the serial engine, 
>>>>> so I
>>>>> think it would work.
>>>> This suggestion looks like it will work.
>>>
>>> It would be a good idea to check with some other people on the dma_ops
>>> suggestion. Maybe add the DMA mapping subsystem folks to help out here
>> I have added the DMA mapping subsystem folks to help out here.
>>
>> To present an overview, we have a wrapper controller which is composed 
>> of several serial engines. The serial engines are programmed with 
>> UART, I2C or SPI protocol and support DMA transfer. When the serial 
>> engines perform DMA transfer, the wrapper controller device is used to 
>> perform the mapping. The reason wrapper device is used is because of 
>> IOMMU and there is only one IOMMU context bank to perform the 
>> translation for the entire wrapper controller. So the wrapper 
>> controller exports map and unmap functions to the individual protocol 
>> drivers.
>>
>> There is a suggestion to make the parent wrapper controller implement 
>> the dma_map_ops, instead of exported map/unmap functions and populate 
>> those dma_map_ops on all the children serial engines. Can you please 
>> provide your inputs regarding this suggestion?
> 
> Implementing dma_map_ops inside a driver for real hardware is almost 
> always the wrong thing to do.
> 
> Based on what I could infer about the hardware from looking through the 
> whole series in the linux-arm-msm archive, this is probably more like a 
> multi-channel DMA controller where each "channel" has a configurable 
> serial interface on the other end, as opposed to an actual bus where the 
> serial engines are individually distinct AHB masters routed through the 
> wrapper. If that's true, then using the QUP platform device for DMA API 
> calls is the appropriate thing to do. Personally I'd be inclined not to 
> abstract the dma_{map,unmap} calls at all, and just have the protocol 
> drivers make them directly using dev->parent/wrapper->dev/whatever, but 
> if you do want to abstract those then just give the abstraction a saner 
> interface, i.e. pass the DMA handle by reference and return a regular 
> int for error/success status.
> 
> Robin.
Thank you Robin & Christoph for your inputs. The wrapper driver used to 
provide the recommended abstraction until v2 of this patch series. In v3 
it was tweaked to address a comment. If there are no objections, I will 
revive it back.

Regards,
Karthik.
-- 
Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

^ permalink raw reply

* Re: [PATCH] Bluetooth: btusb: Restore QCA Rome suspend/resume fix with a "rewritten" version
From: Leif Liddy @ 2018-03-09  0:56 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Brian Norris, Marcel Holtmann, Gustavo F. Padovan, Johan Hedberg,
	Bluez mailing list, linux-serial, ACPI Devel Maling List, stable,
	Matthias Kaehlcke, Daniel Drake, Kai-Heng Feng, Matadeen Mishra,
	Linux Kernel Mailing List, Greg Kroah-Hartman, Guenter Roeck
In-Reply-To: <1711ebe8-8d1a-7d96-bcbe-17238988557a@redhat.com>

Sorry for being a bit slow to respond to this.

I'm the original author of commit:
https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/commit/drivers/bluetooth/btusb.c?id=fd865802c66bc451dc515ed89360f84376ce1a56

> Says: "There's been numerous reported instances where BTUSB_QCA_ROME
> bluetooth controllers stop functioning upon resume from suspend."

> So it may be platform specific but it is not just limited to 1 or
>2 platforms I think.

This issue might very well be limited to just a few platforms.
Here's a link to the original bug report I submitted.

https://bugzilla.kernel.org/show_bug.cgi?id=193571

There was a number of people who reported they were having similar
issues with various QCA Rome bluetooth devices.
The userspace fix that seemed to work for everyone was resetting the usb device.

ie

#!/bin/bash
echo 0 > /sys/bus/usb/devices/1-4/authorized
echo 1 > /sys/bus/usb/devices/1-4/authorized

or

#!/usr/bin/python
from usb.core import find as finddev
dev = finddev(idVendor=0x0cf3, idProduct=0xe300)
dev.reset()

It's difficult to ascertain what the underlying issue was for each
person (and associated device) who commented. I can only speak
authoritatively for my own device.
It's a Samsung ATIV Book 9 12.2 (2015) laptop that contains an
integrated bluetooth controller that's attached to the internal usb
bus.

# lsusb
Bus 001 Device 005: ID 0cf3:e300 Atheros Communications, Inc.

After suspending the laptop for an extended length of time (sometimes
it would take an hour or two before issue occurred), and resuming
--the bluetooth controller would not come back on-line. After reading
through various forums, I suspected the issue I was experiencing was
due to the bluetooth device losing it's firmware during suspend.
The original patch I created did fix the issue. (I do realize that
targeting all QCA Rome chipset's was the wrong decision). Hans de
Goede's rewritten version (commit: 61f5acea8737) also worked for my
device. Since, some people think that the underlying issue may been
fixed elsewhere in the kernel. I'm going to remove Hans' commit and
see if the issue persists (with kernel 4.15.6). I'll report back
tomorrow with the results.


-Leif

On Wed, Feb 28, 2018 at 11:54 AM, Hans de Goede <hdegoede@redhat.com> wrote:
> Hi,
>
>
> On 27-02-18 15:07, Hans de Goede wrote:
>>
>> Hi,
>>
>> On 27-02-18 03:29, Brian Norris wrote:
>>>
>>> On Thu, Feb 22, 2018 at 11:14 PM, Hans de Goede <hdegoede@redhat.com>
>>> wrote:
>>>>
>>>> On 23-02-18 04:12, Brian Norris wrote:
>>>>>
>>>>> Hmm? I'm not sure I completely follow here when you say "he was not
>>>>> hitting the firmware loading race". If things were functioning fine
>>>>> with
>>>>> system suspend (but not with autosuspend), then he's not seeing the
>>>>> controller (quoting commit fd865802c66b) "losing power during suspend".
>>>>
>>>>
>>>>
>>>> He was running a kernel with the original "fd865802c66b Bluetooth:
>>>> btusb:
>>>> fix QCA Rome suspend/resume" commit, which fixes regular suspend for
>>>> devices which are "losing power during suspend", but does nothing for
>>>> runtime-suspend.
>>>>
>>>> He ran tests both with and without runtime-pm enabled with that same
>>>> kernel
>>>> and he needed to disable runtime-pm to get working bluetooth.
>>>
>>>
>>> Did he ever test with commit fd865802c66b reverted?
>>>
>>> My symptoms were exactly the same as you described. BT was broken as
>>> of v4.14 if I had runtime suspend enabled. Things were fine if I
>>> either (a) reverted the patch or (b) disabled runtime suspend. I
>>> obviously preferred (a), which is why I continued to complain :)
>>>
>>> Did your tester ever try (a)? If not, then I don't think you've really
>>> ensured that he really needed a "fixed" version; he may not have
>>> needed the patch at all.
>>>
>>> Or an alternative question: did that system work on an older Fedora
>>> release (and presumably an older kernel)? If so, then he probably also
>>> did not need that patch.
>>>
>>>>> So, that would suggest he could only be seeing the race (as I was), and
>>>>> that his machine does not deserve a RESET_RESUME quirk?
>>>>
>>>>
>>>>
>>>> I hope my above answer helps to clarify why I believe the quirk is
>>>> necessary on his machine.
>>>
>>>
>>> I'm sorry, but no it doesn't. If anything, it suggests to me even more
>>> that it may not have been necessary.
>>
>>
>> Ok, I've started another test-kernel build for the reporter this time
>> without any quirks at all and I've asked him to test.
>
>
> You were right, the Yoga 920 works fine without any quirks, thank you
> for being persistent on getting this tested properly.
>
> I will submit a patch dropping the Yoga 920 from the
> btusb_needs_reset_resume_table.
>
> Regards,
>
> Hans

^ permalink raw reply

* Re: [PATCH 1/2] dt-bindings: serial: stm32: add RS485 optional properties
From: Greg Kroah-Hartman @ 2018-03-09 18:58 UTC (permalink / raw)
  To: Bich HEMON
  Cc: Rob Herring, Mark Rutland, Maxime Coquelin, Alexandre TORGUE,
	Jiri Slaby, linux-serial@vger.kernel.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
In-Reply-To: <1519815373-22940-2-git-send-email-bich.hemon@st.com>

On Wed, Feb 28, 2018 at 10:56:18AM +0000, Bich HEMON wrote:
> Add options for enabling RS485 hardware control and configuring
> Driver Enable signal:
> - rs485-rts-delay
> - rs485-rx-during-tx
> - rs485-rts-active-low
> - linux,rs485-enabled-at-boot-time
> 
> Signed-off-by: Bich Hemon <bich.hemon@st.com>
> Reviewed-by: Rob Herring <robh@kernel.org>
> ---
>  Documentation/devicetree/bindings/serial/st,stm32-usart.txt | 2 ++
>  1 file changed, 2 insertions(+)

This series does not apply to my tty-next tree at all.  Can you rebase
and resend?

thanks,

greg k-h

^ permalink raw reply

* Re: [PATCH] Bluetooth: btusb: Restore QCA Rome suspend/resume fix with a "rewritten" version
From: Leif Liddy @ 2018-03-10  2:42 UTC (permalink / raw)
  To: Hans de Goede
  Cc: Brian Norris, Marcel Holtmann, Gustavo F. Padovan, Johan Hedberg,
	Bluez mailing list, linux-serial, ACPI Devel Maling List, stable,
	Matthias Kaehlcke, Daniel Drake, Kai-Heng Feng, Matadeen Mishra,
	Linux Kernel Mailing List, Greg Kroah-Hartman, Guenter Roeck
In-Reply-To: <CAAbRKOsejuTNdRBJ7g1omS_07DSHuPHpwW2JEsADNOhG6fnWDA@mail.gmail.com>

Hans,

Everything is now working perfectly fine without commit 61f5acea8737.
I suspended the laptop for hours at a time, the bluetooth controller
comes up fine every time. Whatever the underlying issue was, it's been
resolved elsewhere in the kernel.  There's no longer any need to
implement any sort of RESET_RESUME logic for this device (0cf3:e300).
I appreciate all of the work that you and other developers do. Thanks
for staying on top of this issue!

-Leif


On Fri, Mar 9, 2018 at 1:56 AM, Leif Liddy <leif.linux@gmail.com> wrote:
> Sorry for being a bit slow to respond to this.
>
> I'm the original author of commit:
> https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git/commit/drivers/bluetooth/btusb.c?id=fd865802c66bc451dc515ed89360f84376ce1a56
>
>> Says: "There's been numerous reported instances where BTUSB_QCA_ROME
>> bluetooth controllers stop functioning upon resume from suspend."
>
>> So it may be platform specific but it is not just limited to 1 or
>>2 platforms I think.
>
> This issue might very well be limited to just a few platforms.
> Here's a link to the original bug report I submitted.
>
> https://bugzilla.kernel.org/show_bug.cgi?id=193571
>
> There was a number of people who reported they were having similar
> issues with various QCA Rome bluetooth devices.
> The userspace fix that seemed to work for everyone was resetting the usb device.
>
> ie
>
> #!/bin/bash
> echo 0 > /sys/bus/usb/devices/1-4/authorized
> echo 1 > /sys/bus/usb/devices/1-4/authorized
>
> or
>
> #!/usr/bin/python
> from usb.core import find as finddev
> dev = finddev(idVendor=0x0cf3, idProduct=0xe300)
> dev.reset()
>
> It's difficult to ascertain what the underlying issue was for each
> person (and associated device) who commented. I can only speak
> authoritatively for my own device.
> It's a Samsung ATIV Book 9 12.2 (2015) laptop that contains an
> integrated bluetooth controller that's attached to the internal usb
> bus.
>
> # lsusb
> Bus 001 Device 005: ID 0cf3:e300 Atheros Communications, Inc.
>
> After suspending the laptop for an extended length of time (sometimes
> it would take an hour or two before issue occurred), and resuming
> --the bluetooth controller would not come back on-line. After reading
> through various forums, I suspected the issue I was experiencing was
> due to the bluetooth device losing it's firmware during suspend.
> The original patch I created did fix the issue. (I do realize that
> targeting all QCA Rome chipset's was the wrong decision). Hans de
> Goede's rewritten version (commit: 61f5acea8737) also worked for my
> device. Since, some people think that the underlying issue may been
> fixed elsewhere in the kernel. I'm going to remove Hans' commit and
> see if the issue persists (with kernel 4.15.6). I'll report back
> tomorrow with the results.
>
>
> -Leif
>
> On Wed, Feb 28, 2018 at 11:54 AM, Hans de Goede <hdegoede@redhat.com> wrote:
>> Hi,
>>
>>
>> On 27-02-18 15:07, Hans de Goede wrote:
>>>
>>> Hi,
>>>
>>> On 27-02-18 03:29, Brian Norris wrote:
>>>>
>>>> On Thu, Feb 22, 2018 at 11:14 PM, Hans de Goede <hdegoede@redhat.com>
>>>> wrote:
>>>>>
>>>>> On 23-02-18 04:12, Brian Norris wrote:
>>>>>>
>>>>>> Hmm? I'm not sure I completely follow here when you say "he was not
>>>>>> hitting the firmware loading race". If things were functioning fine
>>>>>> with
>>>>>> system suspend (but not with autosuspend), then he's not seeing the
>>>>>> controller (quoting commit fd865802c66b) "losing power during suspend".
>>>>>
>>>>>
>>>>>
>>>>> He was running a kernel with the original "fd865802c66b Bluetooth:
>>>>> btusb:
>>>>> fix QCA Rome suspend/resume" commit, which fixes regular suspend for
>>>>> devices which are "losing power during suspend", but does nothing for
>>>>> runtime-suspend.
>>>>>
>>>>> He ran tests both with and without runtime-pm enabled with that same
>>>>> kernel
>>>>> and he needed to disable runtime-pm to get working bluetooth.
>>>>
>>>>
>>>> Did he ever test with commit fd865802c66b reverted?
>>>>
>>>> My symptoms were exactly the same as you described. BT was broken as
>>>> of v4.14 if I had runtime suspend enabled. Things were fine if I
>>>> either (a) reverted the patch or (b) disabled runtime suspend. I
>>>> obviously preferred (a), which is why I continued to complain :)
>>>>
>>>> Did your tester ever try (a)? If not, then I don't think you've really
>>>> ensured that he really needed a "fixed" version; he may not have
>>>> needed the patch at all.
>>>>
>>>> Or an alternative question: did that system work on an older Fedora
>>>> release (and presumably an older kernel)? If so, then he probably also
>>>> did not need that patch.
>>>>
>>>>>> So, that would suggest he could only be seeing the race (as I was), and
>>>>>> that his machine does not deserve a RESET_RESUME quirk?
>>>>>
>>>>>
>>>>>
>>>>> I hope my above answer helps to clarify why I believe the quirk is
>>>>> necessary on his machine.
>>>>
>>>>
>>>> I'm sorry, but no it doesn't. If anything, it suggests to me even more
>>>> that it may not have been necessary.
>>>
>>>
>>> Ok, I've started another test-kernel build for the reporter this time
>>> without any quirks at all and I've asked him to test.
>>
>>
>> You were right, the Yoga 920 works fine without any quirks, thank you
>> for being persistent on getting this tested properly.
>>
>> I will submit a patch dropping the Yoga 920 from the
>> btusb_needs_reset_resume_table.
>>
>> Regards,
>>
>> Hans

^ permalink raw reply

* Re: [PATCH] can: m_can: select pinctrl state in each suspend/resume function
From: Bich HEMON @ 2018-03-12  8:50 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Mark Rutland, Maxime Coquelin,
	Alexandre TORGUE, Jiri Slaby, linux-serial@vger.kernel.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
In-Reply-To: <1519907380-15135-1-git-send-email-bich.hemon@st.com>

Hi all,

On 03/01/2018 01:29 PM, Bich HEMON wrote:
> Make sure to apply the correct pin state in suspend/resume callbacks.
> Putting pins in sleep state saves power.
> 
> Signed-off-by: Bich Hemon <bich.hemon@st.com>
> ---
>   drivers/net/can/m_can/m_can.c | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c
> index 2594f77..a86ef69 100644
> --- a/drivers/net/can/m_can/m_can.c
> +++ b/drivers/net/can/m_can/m_can.c
> @@ -1700,6 +1700,8 @@ static __maybe_unused int m_can_suspend(struct device *dev)
>   		m_can_clk_stop(priv);
>   	}
>   
> +	pinctrl_pm_select_sleep_state(dev);
> +
>   	priv->can.state = CAN_STATE_SLEEPING;
>   
>   	return 0;
> @@ -1710,6 +1712,8 @@ static __maybe_unused int m_can_resume(struct device *dev)
>   	struct net_device *ndev = dev_get_drvdata(dev);
>   	struct m_can_priv *priv = netdev_priv(ndev);
>   
> +	pinctrl_pm_select_default_state(dev);
> +
>   	m_can_init_ram(priv);
>   
>   	priv->can.state = CAN_STATE_ERROR_ACTIVE;
> 

Sorry, my mistake. Of course this is the wrong mailing list. Please 
ignore this patch.

Best regards,

Bich

^ permalink raw reply

* [PATCH v2 1/2] dt-bindings: serial: stm32: add RS485 optional properties
From: Bich HEMON @ 2018-03-12  9:50 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Mark Rutland, Maxime Coquelin,
	Alexandre TORGUE, Jiri Slaby, linux-serial@vger.kernel.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
  Cc: Bich HEMON, Yves COPPEAUX
In-Reply-To: <1520848188-7343-1-git-send-email-bich.hemon@st.com>

Add options for enabling RS485 hardware control and configuring
Driver Enable signal:
- rs485-rts-delay
- rs485-rx-during-tx
- rs485-rts-active-low
- linux,rs485-enabled-at-boot-time

Signed-off-by: Bich Hemon <bich.hemon@st.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---
 Documentation/devicetree/bindings/serial/st,stm32-usart.txt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/serial/st,stm32-usart.txt b/Documentation/devicetree/bindings/serial/st,stm32-usart.txt
index d150b04..9d3efed 100644
--- a/Documentation/devicetree/bindings/serial/st,stm32-usart.txt
+++ b/Documentation/devicetree/bindings/serial/st,stm32-usart.txt
@@ -15,6 +15,8 @@ Required properties:
 Optional properties:
 - pinctrl: The reference on the pins configuration
 - st,hw-flow-ctrl: bool flag to enable hardware flow control.
+- rs485-rts-delay, rs485-rx-during-tx, rs485-rts-active-low,
+  linux,rs485-enabled-at-boot-time: see rs485.txt.
 - dmas: phandle(s) to DMA controller node(s). Refer to stm32-dma.txt
 - dma-names: "rx" and/or "tx"
 
-- 
1.9.1

^ permalink raw reply related

* [PATCH v2 0/2] Add support for RS485
From: Bich HEMON @ 2018-03-12  9:50 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Mark Rutland, Maxime Coquelin,
	Alexandre TORGUE, Jiri Slaby, linux-serial@vger.kernel.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
  Cc: Bich HEMON, Yves COPPEAUX

v2:
- Patch series rebased on gregkh/tty/tty-next

This patchset updates existing stm32 usart driver by adding support for RS485.

Bich Hemon (2):
  dt-bindings: serial: stm32: add RS485 optional properties
  serial: stm32: add support for RS485 hardware control mode

 .../devicetree/bindings/serial/st,stm32-usart.txt  |   2 +
 drivers/tty/serial/stm32-usart.c                   | 130 ++++++++++++++++++++-
 drivers/tty/serial/stm32-usart.h                   |   3 +
 3 files changed, 134 insertions(+), 1 deletion(-)

-- 
1.9.1

^ permalink raw reply

* [PATCH v2 2/2] serial: stm32: add support for RS485 hardware control mode
From: Bich HEMON @ 2018-03-12  9:50 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Rob Herring, Mark Rutland, Maxime Coquelin,
	Alexandre TORGUE, Jiri Slaby, linux-serial@vger.kernel.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
  Cc: Bich HEMON, Yves COPPEAUX
In-Reply-To: <1520848188-7343-1-git-send-email-bich.hemon@st.com>

Implement Driver Enable signal (DE) to activate the transmission mode
of the external transceiver.

Signed-off-by: Yves Coppeaux <yves.coppeaux@st.com>
Signed-off-by: Bich Hemon <bich.hemon@st.com>
---
 drivers/tty/serial/stm32-usart.c | 130 ++++++++++++++++++++++++++++++++++++++-
 drivers/tty/serial/stm32-usart.h |   3 +
 2 files changed, 132 insertions(+), 1 deletion(-)

diff --git a/drivers/tty/serial/stm32-usart.c b/drivers/tty/serial/stm32-usart.c
index 0fa735b..345fbf3 100644
--- a/drivers/tty/serial/stm32-usart.c
+++ b/drivers/tty/serial/stm32-usart.c
@@ -62,6 +62,113 @@ static void stm32_clr_bits(struct uart_port *port, u32 reg, u32 bits)
 	writel_relaxed(val, port->membase + reg);
 }
 
+static void stm32_config_reg_rs485(u32 *cr1, u32 *cr3, u32 delay_ADE,
+				   u32 delay_DDE, u32 baud)
+{
+	u32 rs485_deat_dedt;
+	u32 rs485_deat_dedt_max = (USART_CR1_DEAT_MASK >> USART_CR1_DEAT_SHIFT);
+	bool over8;
+
+	*cr3 |= USART_CR3_DEM;
+	over8 = *cr1 & USART_CR1_OVER8;
+
+	if (over8)
+		rs485_deat_dedt = delay_ADE * baud * 8;
+	else
+		rs485_deat_dedt = delay_ADE * baud * 16;
+
+	rs485_deat_dedt = DIV_ROUND_CLOSEST(rs485_deat_dedt, 1000);
+	rs485_deat_dedt = rs485_deat_dedt > rs485_deat_dedt_max ?
+			  rs485_deat_dedt_max : rs485_deat_dedt;
+	rs485_deat_dedt = (rs485_deat_dedt << USART_CR1_DEAT_SHIFT) &
+			   USART_CR1_DEAT_MASK;
+	*cr1 |= rs485_deat_dedt;
+
+	if (over8)
+		rs485_deat_dedt = delay_DDE * baud * 8;
+	else
+		rs485_deat_dedt = delay_DDE * baud * 16;
+
+	rs485_deat_dedt = DIV_ROUND_CLOSEST(rs485_deat_dedt, 1000);
+	rs485_deat_dedt = rs485_deat_dedt > rs485_deat_dedt_max ?
+			  rs485_deat_dedt_max : rs485_deat_dedt;
+	rs485_deat_dedt = (rs485_deat_dedt << USART_CR1_DEDT_SHIFT) &
+			   USART_CR1_DEDT_MASK;
+	*cr1 |= rs485_deat_dedt;
+}
+
+static int stm32_config_rs485(struct uart_port *port,
+			      struct serial_rs485 *rs485conf)
+{
+	struct stm32_port *stm32_port = to_stm32_port(port);
+	struct stm32_usart_offsets *ofs = &stm32_port->info->ofs;
+	struct stm32_usart_config *cfg = &stm32_port->info->cfg;
+	u32 usartdiv, baud, cr1, cr3;
+	bool over8;
+	unsigned long flags;
+
+	spin_lock_irqsave(&port->lock, flags);
+	stm32_clr_bits(port, ofs->cr1, BIT(cfg->uart_enable_bit));
+
+	port->rs485 = *rs485conf;
+
+	rs485conf->flags |= SER_RS485_RX_DURING_TX;
+
+	if (rs485conf->flags & SER_RS485_ENABLED) {
+		cr1 = readl_relaxed(port->membase + ofs->cr1);
+		cr3 = readl_relaxed(port->membase + ofs->cr3);
+		usartdiv = readl_relaxed(port->membase + ofs->brr);
+		usartdiv = usartdiv & GENMASK(15, 0);
+		over8 = cr1 & USART_CR1_OVER8;
+
+		if (over8)
+			usartdiv = usartdiv | (usartdiv & GENMASK(4, 0))
+				   << USART_BRR_04_R_SHIFT;
+
+		baud = DIV_ROUND_CLOSEST(port->uartclk, usartdiv);
+		stm32_config_reg_rs485(&cr1, &cr3,
+				       rs485conf->delay_rts_before_send,
+				       rs485conf->delay_rts_after_send, baud);
+
+		if (rs485conf->flags & SER_RS485_RTS_ON_SEND) {
+			cr3 &= ~USART_CR3_DEP;
+			rs485conf->flags &= ~SER_RS485_RTS_AFTER_SEND;
+		} else {
+			cr3 |= USART_CR3_DEP;
+			rs485conf->flags |= SER_RS485_RTS_AFTER_SEND;
+		}
+
+		writel_relaxed(cr3, port->membase + ofs->cr3);
+		writel_relaxed(cr1, port->membase + ofs->cr1);
+	} else {
+		stm32_clr_bits(port, ofs->cr3, USART_CR3_DEM | USART_CR3_DEP);
+		stm32_clr_bits(port, ofs->cr1,
+			       USART_CR1_DEDT_MASK | USART_CR1_DEAT_MASK);
+	}
+
+	stm32_set_bits(port, ofs->cr1, BIT(cfg->uart_enable_bit));
+	spin_unlock_irqrestore(&port->lock, flags);
+
+	return 0;
+}
+
+static int stm32_init_rs485(struct uart_port *port,
+			    struct platform_device *pdev)
+{
+	struct serial_rs485 *rs485conf = &port->rs485;
+
+	rs485conf->flags = 0;
+	rs485conf->delay_rts_before_send = 0;
+	rs485conf->delay_rts_after_send = 0;
+
+	if (!pdev->dev.of_node)
+		return -ENODEV;
+
+	uart_get_rs485_mode(&pdev->dev, rs485conf);
+
+	return 0;
+}
+
 static int stm32_pending_rx(struct uart_port *port, u32 *sr, int *last_res,
 			    bool threaded)
 {
@@ -498,6 +605,7 @@ static void stm32_set_termios(struct uart_port *port, struct ktermios *termios,
 	struct stm32_port *stm32_port = to_stm32_port(port);
 	struct stm32_usart_offsets *ofs = &stm32_port->info->ofs;
 	struct stm32_usart_config *cfg = &stm32_port->info->cfg;
+	struct serial_rs485 *rs485conf = &port->rs485;
 	unsigned int baud;
 	u32 usartdiv, mantissa, fraction, oversampling;
 	tcflag_t cflag = termios->c_cflag;
@@ -515,7 +623,7 @@ static void stm32_set_termios(struct uart_port *port, struct ktermios *termios,
 	writel_relaxed(0, port->membase + ofs->cr1);
 
 	cr1 = USART_CR1_TE | USART_CR1_RE | USART_CR1_RXNEIE;
-	cr1 |= BIT(cfg->uart_enable_bit);
+
 	if (stm32_port->fifoen)
 		cr1 |= USART_CR1_FIFOEN;
 	cr2 = 0;
@@ -553,9 +661,11 @@ static void stm32_set_termios(struct uart_port *port, struct ktermios *termios,
 	 */
 	if (usartdiv < 16) {
 		oversampling = 8;
+		cr1 |= USART_CR1_OVER8;
 		stm32_set_bits(port, ofs->cr1, USART_CR1_OVER8);
 	} else {
 		oversampling = 16;
+		cr1 &= ~USART_CR1_OVER8;
 		stm32_clr_bits(port, ofs->cr1, USART_CR1_OVER8);
 	}
 
@@ -592,10 +702,28 @@ static void stm32_set_termios(struct uart_port *port, struct ktermios *termios,
 	if (stm32_port->rx_ch)
 		cr3 |= USART_CR3_DMAR;
 
+	if (rs485conf->flags & SER_RS485_ENABLED) {
+		stm32_config_reg_rs485(&cr1, &cr3,
+				       rs485conf->delay_rts_before_send,
+				       rs485conf->delay_rts_after_send, baud);
+		if (rs485conf->flags & SER_RS485_RTS_ON_SEND) {
+			cr3 &= ~USART_CR3_DEP;
+			rs485conf->flags &= ~SER_RS485_RTS_AFTER_SEND;
+		} else {
+			cr3 |= USART_CR3_DEP;
+			rs485conf->flags |= SER_RS485_RTS_AFTER_SEND;
+		}
+
+	} else {
+		cr3 &= ~(USART_CR3_DEM | USART_CR3_DEP);
+		cr1 &= ~(USART_CR1_DEDT_MASK | USART_CR1_DEAT_MASK);
+	}
+
 	writel_relaxed(cr3, port->membase + ofs->cr3);
 	writel_relaxed(cr2, port->membase + ofs->cr2);
 	writel_relaxed(cr1, port->membase + ofs->cr1);
 
+	stm32_set_bits(port, ofs->cr1, BIT(cfg->uart_enable_bit));
 	spin_unlock_irqrestore(&port->lock, flags);
 }
 
diff --git a/drivers/tty/serial/stm32-usart.h b/drivers/tty/serial/stm32-usart.h
index 2294d0f..6f294e2 100644
--- a/drivers/tty/serial/stm32-usart.h
+++ b/drivers/tty/serial/stm32-usart.h
@@ -135,6 +135,7 @@ struct stm32_usart_info stm32h7_info = {
 #define USART_BRR_DIV_F_MASK	GENMASK(3, 0)
 #define USART_BRR_DIV_M_MASK	GENMASK(15, 4)
 #define USART_BRR_DIV_M_SHIFT	4
+#define USART_BRR_04_R_SHIFT	1
 
 /* USART_CR1 */
 #define USART_CR1_SBK		BIT(0)
@@ -162,6 +163,8 @@ struct stm32_usart_info stm32h7_info = {
 #define USART_CR1_M1		BIT(28)		/* F7 */
 #define USART_CR1_IE_MASK	(GENMASK(8, 4) | BIT(14) | BIT(26) | BIT(27))
 #define USART_CR1_FIFOEN	BIT(29)		/* H7 */
+#define USART_CR1_DEAT_SHIFT 21
+#define USART_CR1_DEDT_SHIFT 16
 
 /* USART_CR2 */
 #define USART_CR2_ADD_MASK	GENMASK(3, 0)	/* F4 */
-- 
1.9.1

^ permalink raw reply related

* [PATCH 1/3] serial: 8250_early: Add earlycon support for AMD Carrizo / Stoneyridge
From: Daniel Kurtz @ 2018-03-14  0:36 UTC (permalink / raw)
  Cc: adurbin, Daniel Kurtz, Greg Kroah-Hartman, Jiri Slaby,
	Marc Gonzalez, Douglas Anderson, Matt Redfearn, Jeffy Chen,
	open list:SERIAL DRIVERS, open list
In-Reply-To: <20180314003655.12141-1-djkurtz@chromium.org>

AMD Carrizo / Stoneyridge use a DesignWare 8250 UART that uses a 48 MHz
input clock.

Allow these platforms to set up this clock by specifying a kernel command
line like:
earlycon=amdcz,mmio32,0xfedc6000,115200

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
---
 drivers/tty/serial/8250/8250_early.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/tty/serial/8250/8250_early.c b/drivers/tty/serial/8250/8250_early.c
index ae6a256524d8..c6bf971a6038 100644
--- a/drivers/tty/serial/8250/8250_early.c
+++ b/drivers/tty/serial/8250/8250_early.c
@@ -195,3 +195,18 @@ static int __init early_au_setup(struct earlycon_device *dev, const char *opt)
 OF_EARLYCON_DECLARE(palmchip, "ralink,rt2880-uart", early_au_setup);
 
 #endif
+
+#ifdef CONFIG_SERIAL_8250_DW
+static int __init early_amdcz_setup(struct earlycon_device *dev,
+				    const char *opt)
+{
+	struct uart_port *port = &dev->port;
+
+	port->uartclk = 48000000;
+
+	return early_serial8250_setup(dev, opt);
+}
+
+EARLYCON_DECLARE(amdcz, early_amdcz_setup);
+
+#endif
-- 
2.16.2.804.g6dcf76e118-goog

^ permalink raw reply related

* [PATCH 3/3] serial: core: Allow skipping old serial port initialization
From: Daniel Kurtz @ 2018-03-14  0:36 UTC (permalink / raw)
  Cc: adurbin, Daniel Kurtz, Greg Kroah-Hartman, Jiri Slaby,
	Andy Shevchenko, Matthias Brugger, Vignesh R, Kees Cook,
	Allen Pais, Sean Young, Matt Redfearn, Douglas Anderson,
	Jeffy Chen, Marc Gonzalez, open list:SERIAL DRIVERS, open list
In-Reply-To: <20180314003655.12141-1-djkurtz@chromium.org>

The old_serial_port global array in 8250_core is supposed to hold an entry
for each serial port on the system that cannot be discovered via a
standard enumeration mechanism (aka ACPI/PCI/DTS).  The array is populated
at compile-time from the value specified in the SERIAL_PORT_DFNS macro.
This macro is defined in arch/serial.h.

For x86, this macro is currently unconditionally initialized to supply
four ioport UARTs (0x3F8, 0x2F8, 0x3E8, 0x2E8).

However, not all x86 CPUs have these four ioport UARTs.  For example, the
UARTs on AMD Carrizo and later are separate memory mapped Designware IP
blocks.

Fairly early in boot the console_initcall univ8250_console_init iterates
over this array and installs these old UARTs into the global array
serial8250_ports.  Further, it attempts to register them for use as
the console.  In other words, if, for example, the kernel commandline has
console=ttyS0, the console will be switched over to one of these
non-existent UARTs.  Only later, when the real UART drivers are probed
and their devices are instantiated will the console switch back over to
the proper UART.

This is most noticeable when using earlycon, since part of the serial
console log will appear to disappear (when the bogus old takes over) and
then re-appear (when the real UART finally gets registered for the
console).

Create a global variable to allow skipping old serial port initialization
and wire it up to the special amdcz earlycon setup handler.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
---
 drivers/tty/serial/8250/8250_core.c  | 6 ++++++
 drivers/tty/serial/8250/8250_early.c | 1 +
 include/linux/serial_8250.h          | 2 ++
 3 files changed, 9 insertions(+)

diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c
index 9342fc2ee7df..91ee206096f1 100644
--- a/drivers/tty/serial/8250/8250_core.c
+++ b/drivers/tty/serial/8250/8250_core.c
@@ -66,6 +66,9 @@ static unsigned int skip_txen_test; /* force skip of txen test at init time */
 #define SERIAL_PORT_DFNS
 #endif
 
+bool skip_old_serial_ports;
+EXPORT_SYMBOL(skip_old_serial_ports);
+
 static const struct old_serial_port old_serial_port[] = {
 	SERIAL_PORT_DFNS /* defined in asm/serial.h */
 };
@@ -537,6 +540,9 @@ static void __init serial8250_isa_init_ports(void)
 	if (share_irqs)
 		irqflag = IRQF_SHARED;
 
+	if (skip_old_serial_ports)
+		return;
+
 	for (i = 0, up = serial8250_ports;
 	     i < ARRAY_SIZE(old_serial_port) && i < nr_uarts;
 	     i++, up++) {
diff --git a/drivers/tty/serial/8250/8250_early.c b/drivers/tty/serial/8250/8250_early.c
index c6bf971a6038..8511b8e25b3f 100644
--- a/drivers/tty/serial/8250/8250_early.c
+++ b/drivers/tty/serial/8250/8250_early.c
@@ -202,6 +202,7 @@ static int __init early_amdcz_setup(struct earlycon_device *dev,
 {
 	struct uart_port *port = &dev->port;
 
+	skip_old_serial_ports = true;
 	port->uartclk = 48000000;
 
 	return early_serial8250_setup(dev, opt);
diff --git a/include/linux/serial_8250.h b/include/linux/serial_8250.h
index a27ef5f56431..cb6fd144529c 100644
--- a/include/linux/serial_8250.h
+++ b/include/linux/serial_8250.h
@@ -146,6 +146,8 @@ void serial8250_unregister_port(int line);
 void serial8250_suspend_port(int line);
 void serial8250_resume_port(int line);
 
+extern bool skip_old_serial_ports;
+
 extern int early_serial_setup(struct uart_port *port);
 
 extern int early_serial8250_setup(struct earlycon_device *device,
-- 
2.16.2.804.g6dcf76e118-goog

^ permalink raw reply related

* [PATCH] serial: samsung: macros with complex values should be enclosed in parentheses
From: YOUNGKEUN OH @ 2018-03-14  2:17 UTC (permalink / raw)
  To: gregkh; +Cc: jslaby, linux-serial, linux-kernel, kernel-janitors, YOUNGKEUN OH
In-Reply-To: <CGME20180314021710epcas1p3766602fe312f87d916cab69af2acf203@epcas1p3.samsung.com>

Cleanup checkpatch error:
ERROR: Macros with complex values should be enclosed in parentheses

Signed-off-by: YOUNGKEUN OH <y.k.oh@samsung.com>
---
 drivers/tty/serial/samsung.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
index 3f2f8c1..da9bddb1 100644
--- a/drivers/tty/serial/samsung.c
+++ b/drivers/tty/serial/samsung.c
@@ -1455,7 +1455,7 @@ static int __init s3c24xx_serial_console_init(void)
 }
 console_initcall(s3c24xx_serial_console_init);

-#define S3C24XX_SERIAL_CONSOLE &s3c24xx_serial_console
+#define S3C24XX_SERIAL_CONSOLE (&s3c24xx_serial_console)
 #else
 #define S3C24XX_SERIAL_CONSOLE NULL
 #endif
@@ -2198,7 +2198,7 @@ static void s3c24xx_serial_put_poll_char(struct uart_port *port,
 };
 #define S3C2410_SERIAL_DRV_DATA ((kernel_ulong_t)&s3c2410_serial_drv_data)
 #else
-#define S3C2410_SERIAL_DRV_DATA (kernel_ulong_t)NULL
+#define S3C2410_SERIAL_DRV_DATA ((kernel_ulong_t)NULL)
 #endif

 #ifdef CONFIG_CPU_S3C2412
@@ -2226,7 +2226,7 @@ static void s3c24xx_serial_put_poll_char(struct uart_port *port,
 };
 #define S3C2412_SERIAL_DRV_DATA ((kernel_ulong_t)&s3c2412_serial_drv_data)
 #else
-#define S3C2412_SERIAL_DRV_DATA (kernel_ulong_t)NULL
+#define S3C2412_SERIAL_DRV_DATA ((kernel_ulong_t)NULL)
 #endif

 #if defined(CONFIG_CPU_S3C2440) || defined(CONFIG_CPU_S3C2416) || \
@@ -2255,7 +2255,7 @@ static void s3c24xx_serial_put_poll_char(struct uart_port *port,
 };
 #define S3C2440_SERIAL_DRV_DATA ((kernel_ulong_t)&s3c2440_serial_drv_data)
 #else
-#define S3C2440_SERIAL_DRV_DATA (kernel_ulong_t)NULL
+#define S3C2440_SERIAL_DRV_DATA ((kernel_ulong_t)NULL)
 #endif

 #if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
@@ -2283,7 +2283,7 @@ static void s3c24xx_serial_put_poll_char(struct uart_port *port,
 };
 #define S3C6400_SERIAL_DRV_DATA ((kernel_ulong_t)&s3c6400_serial_drv_data)
 #else
-#define S3C6400_SERIAL_DRV_DATA (kernel_ulong_t)NULL
+#define S3C6400_SERIAL_DRV_DATA ((kernel_ulong_t)NULL)
 #endif

 #ifdef CONFIG_CPU_S5PV210
@@ -2311,7 +2311,7 @@ static void s3c24xx_serial_put_poll_char(struct uart_port *port,
 };
 #define S5PV210_SERIAL_DRV_DATA ((kernel_ulong_t)&s5pv210_serial_drv_data)
 #else
-#define S5PV210_SERIAL_DRV_DATA	(kernel_ulong_t)NULL
+#define S5PV210_SERIAL_DRV_DATA	((kernel_ulong_t)NULL)
 #endif

 #if defined(CONFIG_ARCH_EXYNOS)
@@ -2350,8 +2350,8 @@ static void s3c24xx_serial_put_poll_char(struct uart_port *port,
 #define EXYNOS4210_SERIAL_DRV_DATA ((kernel_ulong_t)&exynos4210_serial_drv_data)
 #define EXYNOS5433_SERIAL_DRV_DATA ((kernel_ulong_t)&exynos5433_serial_drv_data)
 #else
-#define EXYNOS4210_SERIAL_DRV_DATA (kernel_ulong_t)NULL
-#define EXYNOS5433_SERIAL_DRV_DATA (kernel_ulong_t)NULL
+#define EXYNOS4210_SERIAL_DRV_DATA ((kernel_ulong_t)NULL)
+#define EXYNOS5433_SERIAL_DRV_DATA ((kernel_ulong_t)NULL)
 #endif

 static const struct platform_device_id s3c24xx_serial_driver_ids[] = {
--
1.9.1

^ permalink raw reply related

* Re: [PATCH 1/3] serial: 8250_early: Add earlycon support for AMD Carrizo / Stoneyridge
From: Andy Shevchenko @ 2018-03-14 10:35 UTC (permalink / raw)
  To: Daniel Kurtz
  Cc: Aaron Durbin, Greg Kroah-Hartman, Jiri Slaby, Marc Gonzalez,
	Douglas Anderson, Matt Redfearn, Jeffy Chen,
	open list:SERIAL DRIVERS, open list
In-Reply-To: <20180314003655.12141-2-djkurtz@chromium.org>

On Wed, Mar 14, 2018 at 2:36 AM, Daniel Kurtz <djkurtz@chromium.org> wrote:
> AMD Carrizo / Stoneyridge use a DesignWare 8250 UART that uses a 48 MHz
> input clock.
>
> Allow these platforms to set up this clock by specifying a kernel command
> line like:
> earlycon=amdcz,mmio32,0xfedc6000,115200
>

Thanks, this is what I meant.
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>

Suggested-by: ?

> Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
> ---
>  drivers/tty/serial/8250/8250_early.c | 15 +++++++++++++++
>  1 file changed, 15 insertions(+)
>
> diff --git a/drivers/tty/serial/8250/8250_early.c b/drivers/tty/serial/8250/8250_early.c
> index ae6a256524d8..c6bf971a6038 100644
> --- a/drivers/tty/serial/8250/8250_early.c
> +++ b/drivers/tty/serial/8250/8250_early.c
> @@ -195,3 +195,18 @@ static int __init early_au_setup(struct earlycon_device *dev, const char *opt)
>  OF_EARLYCON_DECLARE(palmchip, "ralink,rt2880-uart", early_au_setup);
>
>  #endif
> +
> +#ifdef CONFIG_SERIAL_8250_DW
> +static int __init early_amdcz_setup(struct earlycon_device *dev,
> +                                   const char *opt)
> +{
> +       struct uart_port *port = &dev->port;
> +
> +       port->uartclk = 48000000;
> +
> +       return early_serial8250_setup(dev, opt);
> +}
> +
> +EARLYCON_DECLARE(amdcz, early_amdcz_setup);
> +
> +#endif
> --
> 2.16.2.804.g6dcf76e118-goog
>



-- 
With Best Regards,
Andy Shevchenko

^ permalink raw reply

* Re: [PATCH 1/3] serial: 8250_early: Add earlycon support for AMD Carrizo / Stoneyridge
From: Ricardo Ribalda Delgado @ 2018-03-14 10:53 UTC (permalink / raw)
  To: Daniel Kurtz
  Cc: adurbin, Greg Kroah-Hartman, Jiri Slaby, Marc Gonzalez,
	Douglas Anderson, Matt Redfearn, Jeffy Chen,
	open list:SERIAL DRIVERS, open list
In-Reply-To: <20180314003655.12141-2-djkurtz@chromium.org>

Hi Daniel


On Wed, Mar 14, 2018 at 1:36 AM, Daniel Kurtz <djkurtz@chromium.org> wrote:
>
> AMD Carrizo / Stoneyridge use a DesignWare 8250 UART that uses a 48 MHz
> input clock.
>
> Allow these platforms to set up this clock by specifying a kernel command
> line like:
> earlycon=amdcz,mmio32,0xfedc6000,115200


If the port and the mode (mmio32) is always fixed, couldn't we just
add those two into
early_amdcz_setup?


Thanks!

^ permalink raw reply

* [GIT PULL] TTY/Serial fixes for 4.16-rc6
From: Greg KH @ 2018-03-14 11:30 UTC (permalink / raw)
  To: Linus Torvalds, Jiri Slaby
  Cc: Stephen Rothwell, Andrew Morton, linux-kernel, linux-serial

The following changes since commit 4a3928c6f8a53fa1aed28ccba227742486e8ddcb:

  Linux 4.16-rc3 (2018-02-25 18:50:41 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git/ tags/tty-4.16-rc6

for you to fetch changes up to 5d7f77ec72d10c421bc33958f06a5583f2d27ed6:

  serial: imx: fix bogus dev_err (2018-02-28 13:48:21 +0100)

----------------------------------------------------------------
TTY/Serial driver fixes for 4.16-rc6

Here are some small TTY core and Serial driver fixes for 4.16-rc6.

They resolve some newly reported bugs, as well as some very old ones,
which is always nice to see.  There is also a new device id added in
here for good measure.

All of these have been in linux-next for a while with no reported
issues.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

----------------------------------------------------------------
Andy Shevchenko (1):
      serial: 8250_pci: Don't fail on multiport card class

Greentime Hu (1):
      earlycon: add reg-offset to physical address before mapping

Jonas Danielsson (1):
      tty/serial: atmel: add new version check for usart

Nikola Ciprich (1):
      serial: 8250_pci: Add Brainboxes UC-260 4 port serial device

Sebastian Andrzej Siewior (1):
      serial: core: mark port as initialized in autoconfig

Tejun Heo (1):
      tty: make n_tty_read() always abort if hangup is in progress

Ulrich Hecht (1):
      serial: sh-sci: prevent lockup on full TTY buffers

phil eichinger (1):
      serial: imx: fix bogus dev_err

 drivers/tty/n_tty.c                |  6 ++++++
 drivers/tty/serial/8250/8250_pci.c | 21 ++++++++++++++++++---
 drivers/tty/serial/atmel_serial.c  |  1 +
 drivers/tty/serial/earlycon.c      |  3 ++-
 drivers/tty/serial/imx.c           |  2 +-
 drivers/tty/serial/serial_core.c   |  2 ++
 drivers/tty/serial/sh-sci.c        |  2 ++
 drivers/tty/tty_io.c               |  9 +++++++++
 include/linux/tty.h                |  1 +
 9 files changed, 42 insertions(+), 5 deletions(-)

^ permalink raw reply

* Re: [PATCH v4 3/3] ARM: dts: STi: Remove "console=ttyASN" from bootargs for STi boards
From: Greg KH @ 2018-03-14 13:57 UTC (permalink / raw)
  To: patrice.chotard
  Cc: robh+dt, mark.rutland, linux, linux-arm-kernel, linux-kernel,
	devicetree, jslaby, linux-serial
In-Reply-To: <1520444134-30144-4-git-send-email-patrice.chotard@st.com>

On Wed, Mar 07, 2018 at 06:35:34PM +0100, patrice.chotard@st.com wrote:
> From: Patrice Chotard <patrice.chotard@st.com>
> 
> As serial interface is already specified into stdout-path property,
> "console=ttyASN,115200" from bootargs can be removed.
> 
> Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
> ---
> v4: _ none
> v3: _ remove "console=serialN,115200" from bootargs and use prefered 
>       stdout-path property
> v2: _ none
> 

This patch does not apply at all, are you sure you made it correctly?

Can you please fix it up and resend?

thanks,

greg k-h

^ permalink raw reply

* Re: [PATCH] serial: samsung: macros with complex values should be enclosed in parentheses
From: Greg KH @ 2018-03-14 13:58 UTC (permalink / raw)
  To: YOUNGKEUN OH; +Cc: jslaby, linux-serial, linux-kernel, kernel-janitors
In-Reply-To: <1520993825-8605-1-git-send-email-y.k.oh@samsung.com>

On Wed, Mar 14, 2018 at 11:17:05AM +0900, YOUNGKEUN OH wrote:
> Cleanup checkpatch error:
> ERROR: Macros with complex values should be enclosed in parentheses
> 
> Signed-off-by: YOUNGKEUN OH <y.k.oh@samsung.com>
> ---
>  drivers/tty/serial/samsung.c | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
> index 3f2f8c1..da9bddb1 100644
> --- a/drivers/tty/serial/samsung.c
> +++ b/drivers/tty/serial/samsung.c
> @@ -1455,7 +1455,7 @@ static int __init s3c24xx_serial_console_init(void)
>  }
>  console_initcall(s3c24xx_serial_console_init);
> 
> -#define S3C24XX_SERIAL_CONSOLE &s3c24xx_serial_console
> +#define S3C24XX_SERIAL_CONSOLE (&s3c24xx_serial_console)

That's not a complex macro!

Please use checkpatch as a hint, not the "truth".

thanks,

greg k-h

^ permalink raw reply

* [RESEND PATCH v4 3/3] ARM: dts: STi: Remove console=ttyASN from bootargs for STi boards] ARM: dts: STi: Remove "console=ttyASN" from bootargs for STi boards
From: patrice.chotard @ 2018-03-14 14:52 UTC (permalink / raw)
  To: robh+dt, mark.rutland, linux, linux-arm-kernel, linux-kernel,
	devicetree, gregkh, jslaby, linux-serial
  Cc: patrice.chotard

From: Patrice Chotard <patrice.chotard@st.com>

As serial interface is already specified into stdout-path property,
"console=ttyASN,115200" from bootargs can be removed.

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
---

v4: _ none
v3: _ remove "console=serialN,115200" from bootargs and use prefered 
      stdout-path property
v2: _ none

 arch/arm/boot/dts/stih407-b2120.dts | 2 +-
 arch/arm/boot/dts/stih410-b2120.dts | 2 +-
 arch/arm/boot/dts/stih410-b2260.dts | 2 +-
 arch/arm/boot/dts/stih418-b2199.dts | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/boot/dts/stih407-b2120.dts b/arch/arm/boot/dts/stih407-b2120.dts
index 37f2ddbfa099..a7a0f76e9cbc 100644
--- a/arch/arm/boot/dts/stih407-b2120.dts
+++ b/arch/arm/boot/dts/stih407-b2120.dts
@@ -14,7 +14,7 @@
 	compatible = "st,stih407-b2120", "st,stih407";
 
 	chosen {
-		bootargs = "console=ttyAS0,115200 clk_ignore_unused";
+		bootargs = "clk_ignore_unused";
 		linux,stdout-path = &sbc_serial0;
 	};
 
diff --git a/arch/arm/boot/dts/stih410-b2120.dts b/arch/arm/boot/dts/stih410-b2120.dts
index a6f00a6687a9..6c6b4cc37e97 100644
--- a/arch/arm/boot/dts/stih410-b2120.dts
+++ b/arch/arm/boot/dts/stih410-b2120.dts
@@ -14,7 +14,7 @@
 	compatible = "st,stih410-b2120", "st,stih410";
 
 	chosen {
-		bootargs = "console=ttyAS0,115200 clk_ignore_unused";
+		bootargs = "clk_ignore_unused";
 		linux,stdout-path = &sbc_serial0;
 	};
 
diff --git a/arch/arm/boot/dts/stih410-b2260.dts b/arch/arm/boot/dts/stih410-b2260.dts
index 62770496e328..50d36758391c 100644
--- a/arch/arm/boot/dts/stih410-b2260.dts
+++ b/arch/arm/boot/dts/stih410-b2260.dts
@@ -15,7 +15,7 @@
 	compatible = "st,stih410-b2260", "st,stih410";
 
 	chosen {
-		bootargs = "console=ttyAS1,115200 clk_ignore_unused";
+		bootargs = "clk_ignore_unused";
 		linux,stdout-path = &uart1;
 	};
 
diff --git a/arch/arm/boot/dts/stih418-b2199.dts b/arch/arm/boot/dts/stih418-b2199.dts
index 36f40f58155d..7f5f3252bfc7 100644
--- a/arch/arm/boot/dts/stih418-b2199.dts
+++ b/arch/arm/boot/dts/stih418-b2199.dts
@@ -14,7 +14,7 @@
 	compatible = "st,stih418-b2199", "st,stih418";
 
 	chosen {
-		bootargs = "console=ttyAS0,115200 clk_ignore_unused";
+		bootargs = "clk_ignore_unused";
 		linux,stdout-path = &sbc_serial0;
 	};
 
-- 
1.9.1

^ permalink raw reply related

* Re: [PATCH v4 3/3] ARM: dts: STi: Remove "console=ttyASN" from bootargs for STi boards
From: Patrice CHOTARD @ 2018-03-14 14:53 UTC (permalink / raw)
  To: Greg KH
  Cc: mark.rutland@arm.com, devicetree@vger.kernel.org,
	linux@armlinux.org.uk, linux-kernel@vger.kernel.org,
	robh+dt@kernel.org, linux-serial@vger.kernel.org, jslaby@suse.com,
	linux-arm-kernel@lists.infradead.org
In-Reply-To: <20180314135701.GA20286@kroah.com>

Hi Greg

On 03/14/2018 02:57 PM, Greg KH wrote:
> On Wed, Mar 07, 2018 at 06:35:34PM +0100, patrice.chotard@st.com wrote:
>> From: Patrice Chotard <patrice.chotard@st.com>
>>
>> As serial interface is already specified into stdout-path property,
>> "console=ttyASN,115200" from bootargs can be removed.
>>
>> Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
>> ---
>> v4: _ none
>> v3: _ remove "console=serialN,115200" from bootargs and use prefered
>>        stdout-path property
>> v2: _ none
>>
> 
> This patch does not apply at all, are you sure you made it correctly?
> 
> Can you please fix it up and resend?

No problem, the patch has just been sent.

Thanks

Patrice

> 
> thanks,
> 
> greg k-h
> 

^ permalink raw reply

* [PATCH 00/47] arch-removal: device drivers
From: Arnd Bergmann @ 2018-03-14 15:35 UTC (permalink / raw)
  To: linux-kernel
  Cc: ulf.hansson, linux-usb, wsa, linux-iio, viresh.kumar,
	linus.walleij, alexandre.belloni, linux-ide, netdev, linux-mtd,
	linux-i2c, linux-rtc, lars, herbert, corbet, linux-doc, stern,
	linux-serial, jslaby, linux-mmc, shli, wg, linux-crypto,
	alsa-devel, linux-pwm, linux-watchdog, Arnd Bergmann,
	b.zolnierkie, linux-input, linux-can, linux-raid, boris.brezillon,
	broonie, bp, linux-fbdev

Hi driver maintainers,

I just posted one series with the removal of eight architectures,
see https://lkml.org/lkml/2018/3/14/505 for details, or
https://lwn.net/Articles/748074/ for more background.

These are the device drivers that go along with them. I have already
picked up the drivers for arch/metag/ into my tree, they were reviewed
earlier.

Please let me know if you have any concerns with the patch, or if you
prefer to pick up the patches in your respective trees.  I created
the patches with 'git format-patch -D', so they will not apply without
manually removing those files.

For anything else, I'd keep the removal patches in my asm-generic tree
and will send a pull request for 4.17 along with the actual arch removal.

       Arnd

Arnd Bergmann
  edac: remove tile driver
  net: tile: remove ethernet drivers
  net: adi: remove blackfin ethernet drivers
  net: 8390: remove m32r specific bits
  net: remove cris etrax ethernet driver
  net: smsc: remove m32r specific smc91x configuration
  raid: remove tile specific raid6 implementation
  rtc: remove tile driver
  rtc: remove bfin driver
  char: remove obsolete ds1302 rtc driver
  char: remove tile-srom.c
  char: remove blackfin OTP driver
  pcmcia: remove m32r drivers
  pcmcia: remove blackfin driver
  ASoC: remove blackfin drivers
  video/logo: remove obsolete logo files
  fbdev: remove blackfin drivers
  fbdev: s1d13xxxfb: remove m32r specific hacks
  crypto: remove blackfin CRC driver
  media: platform: remove blackfin capture driver
  media: platform: remove m32r specific arv driver
  cpufreq: remove blackfin driver
  cpufreq: remove cris specific drivers
  gpio: remove etraxfs driver
  pinctrl: remove adi2/blackfin drivers
  ata: remove bf54x driver
  input: keyboard: remove bf54x driver
  input: misc: remove blackfin rotary driver
  mmc: remove bfin_sdh driver
  can: remove bfin_can driver
  watchdog: remove bfin_wdt driver
  mtd: maps: remove bfin-async-flash driver
  mtd: nand: remove bf5xx_nand driver
  spi: remove blackfin related host drivers
  i2c: remove bfin-twi driver
  pwm: remobe pwm-bfin driver
  usb: host: remove tilegx platform glue
  usb: musb: remove blackfin port
  usb: isp1362: remove blackfin arch glue
  serial: remove cris/etrax uart drivers
  serial: remove blackfin drivers
  serial: remove m32r_sio driver
  serial: remove tile uart driver
  tty: remove bfin_jtag_comm and hvc_bfin_jtag drivers
  tty: hvc: remove tile driver
  staging: irda: remove bfin_sir driver
  staging: iio: remove iio-trig-bfin-timer driver

 .../devicetree/bindings/gpio/gpio-etraxfs.txt      |   22 -
 .../bindings/serial/axis,etraxfs-uart.txt          |   22 -
 Documentation/watchdog/watchdog-parameters.txt     |    5 -
 MAINTAINERS                                        |    8 -
 drivers/ata/Kconfig                                |    9 -
 drivers/ata/Makefile                               |    1 -
 drivers/ata/pata_bf54x.c                           | 1703 --------
 drivers/char/Kconfig                               |   48 -
 drivers/char/Makefile                              |    3 -
 drivers/char/bfin-otp.c                            |  237 --
 drivers/char/ds1302.c                              |  357 --
 drivers/char/tile-srom.c                           |  475 ---
 drivers/cpufreq/Makefile                           |    3 -
 drivers/cpufreq/blackfin-cpufreq.c                 |  217 -
 drivers/cpufreq/cris-artpec3-cpufreq.c             |   93 -
 drivers/cpufreq/cris-etraxfs-cpufreq.c             |   92 -
 drivers/crypto/Kconfig                             |    7 -
 drivers/crypto/Makefile                            |    1 -
 drivers/crypto/bfin_crc.c                          |  753 ----
 drivers/crypto/bfin_crc.h                          |  124 -
 drivers/edac/Kconfig                               |    8 -
 drivers/edac/Makefile                              |    2 -
 drivers/edac/tile_edac.c                           |  265 --
 drivers/gpio/Kconfig                               |    9 -
 drivers/gpio/Makefile                              |    1 -
 drivers/gpio/gpio-etraxfs.c                        |  475 ---
 drivers/i2c/busses/Kconfig                         |   18 -
 drivers/i2c/busses/Makefile                        |    1 -
 drivers/i2c/busses/i2c-bfin-twi.c                  |  737 ----
 drivers/input/keyboard/Kconfig                     |    9 -
 drivers/input/keyboard/Makefile                    |    1 -
 drivers/input/keyboard/bf54x-keys.c                |  396 --
 drivers/input/misc/Kconfig                         |    9 -
 drivers/input/misc/Makefile                        |    1 -
 drivers/input/misc/bfin_rotary.c                   |  294 --
 drivers/media/platform/Kconfig                     |   22 -
 drivers/media/platform/Makefile                    |    4 -
 drivers/media/platform/arv.c                       |  884 ----
 drivers/media/platform/blackfin/Kconfig            |   16 -
 drivers/media/platform/blackfin/Makefile           |    2 -
 drivers/media/platform/blackfin/bfin_capture.c     |  983 -----
 drivers/media/platform/blackfin/ppi.c              |  361 --
 drivers/mmc/host/Kconfig                           |   19 -
 drivers/mmc/host/Makefile                          |    1 -
 drivers/mmc/host/bfin_sdh.c                        |  679 ----
 drivers/mtd/maps/Kconfig                           |   10 -
 drivers/mtd/maps/Makefile                          |    1 -
 drivers/mtd/maps/bfin-async-flash.c                |  196 -
 drivers/mtd/nand/raw/Kconfig                       |   32 -
 drivers/mtd/nand/raw/Makefile                      |    1 -
 drivers/mtd/nand/raw/bf5xx_nand.c                  |  861 ----
 drivers/net/Makefile                               |    1 -
 drivers/net/can/Kconfig                            |    9 -
 drivers/net/can/Makefile                           |    1 -
 drivers/net/can/bfin_can.c                         |  784 ----
 drivers/net/cris/Makefile                          |    1 -
 drivers/net/cris/eth_v10.c                         | 1742 --------
 drivers/net/ethernet/8390/Kconfig                  |    3 +-
 drivers/net/ethernet/8390/ne.c                     |   23 +-
 drivers/net/ethernet/Kconfig                       |    2 -
 drivers/net/ethernet/Makefile                      |    2 -
 drivers/net/ethernet/adi/Kconfig                   |   66 -
 drivers/net/ethernet/adi/Makefile                  |    5 -
 drivers/net/ethernet/adi/bfin_mac.c                | 1881 ---------
 drivers/net/ethernet/adi/bfin_mac.h                |  104 -
 drivers/net/ethernet/smsc/Kconfig                  |    4 +-
 drivers/net/ethernet/smsc/smc91x.h                 |   26 -
 drivers/net/ethernet/tile/Kconfig                  |   18 -
 drivers/net/ethernet/tile/Makefile                 |   11 -
 drivers/net/ethernet/tile/tilegx.c                 | 2279 -----------
 drivers/net/ethernet/tile/tilepro.c                | 2397 -----------
 drivers/pcmcia/Kconfig                             |   26 -
 drivers/pcmcia/Makefile                            |    3 -
 drivers/pcmcia/bfin_cf_pcmcia.c                    |  316 --
 drivers/pcmcia/m32r_cfc.c                          |  786 ----
 drivers/pcmcia/m32r_cfc.h                          |   88 -
 drivers/pcmcia/m32r_pcc.c                          |  763 ----
 drivers/pcmcia/m32r_pcc.h                          |   66 -
 drivers/pinctrl/Kconfig                            |   19 -
 drivers/pinctrl/Makefile                           |    3 -
 drivers/pinctrl/pinctrl-adi2-bf54x.c               |  588 ---
 drivers/pinctrl/pinctrl-adi2-bf60x.c               |  517 ---
 drivers/pinctrl/pinctrl-adi2.c                     | 1114 -----
 drivers/pinctrl/pinctrl-adi2.h                     |   75 -
 drivers/pwm/Kconfig                                |    9 -
 drivers/pwm/Makefile                               |    1 -
 drivers/pwm/pwm-bfin.c                             |  157 -
 drivers/rtc/Kconfig                                |   17 -
 drivers/rtc/Makefile                               |    2 -
 drivers/rtc/rtc-bfin.c                             |  448 ---
 drivers/rtc/rtc-tile.c                             |  143 -
 drivers/spi/Kconfig                                |   19 -
 drivers/spi/Makefile                               |    3 -
 drivers/spi/spi-adi-v3.c                           |  984 -----
 drivers/spi/spi-bfin-sport.c                       |  919 -----
 drivers/spi/spi-bfin5xx.c                          | 1462 -------
 drivers/staging/iio/Kconfig                        |    1 -
 drivers/staging/iio/Makefile                       |    1 -
 drivers/staging/iio/trigger/Kconfig                |   19 -
 drivers/staging/iio/trigger/Makefile               |    5 -
 drivers/staging/iio/trigger/iio-trig-bfin-timer.c  |  292 --
 drivers/staging/iio/trigger/iio-trig-bfin-timer.h  |   25 -
 drivers/staging/irda/drivers/Kconfig               |   45 -
 drivers/staging/irda/drivers/Makefile              |    1 -
 drivers/staging/irda/drivers/bfin_sir.c            |  819 ----
 drivers/staging/irda/drivers/bfin_sir.h            |   93 -
 drivers/tty/Kconfig                                |   13 -
 drivers/tty/Makefile                               |    1 -
 drivers/tty/bfin_jtag_comm.c                       |  353 --
 drivers/tty/hvc/Kconfig                            |    9 -
 drivers/tty/hvc/Makefile                           |    2 -
 drivers/tty/hvc/hvc_bfin_jtag.c                    |  104 -
 drivers/tty/hvc/hvc_tile.c                         |  196 -
 drivers/tty/serial/Kconfig                         |  198 -
 drivers/tty/serial/Makefile                        |    6 -
 drivers/tty/serial/bfin_sport_uart.c               |  937 -----
 drivers/tty/serial/bfin_sport_uart.h               |   86 -
 drivers/tty/serial/bfin_uart.c                     | 1551 -------
 drivers/tty/serial/crisv10.c                       | 4248 --------------------
 drivers/tty/serial/crisv10.h                       |  133 -
 drivers/tty/serial/etraxfs-uart.c                  |  960 -----
 drivers/tty/serial/m32r_sio.c                      | 1053 -----
 drivers/tty/serial/m32r_sio_reg.h                  |  150 -
 drivers/tty/serial/tilegx.c                        |  689 ----
 drivers/usb/host/Kconfig                           |    1 +
 drivers/usb/host/ehci-hcd.c                        |    5 -
 drivers/usb/host/ehci-tilegx.c                     |  207 -
 drivers/usb/host/isp1362.h                         |   44 -
 drivers/usb/host/ohci-hcd.c                        |   18 -
 drivers/usb/host/ohci-tilegx.c                     |  196 -
 drivers/usb/musb/Kconfig                           |   10 +-
 drivers/usb/musb/Makefile                          |    1 -
 drivers/usb/musb/blackfin.c                        |  623 ---
 drivers/usb/musb/blackfin.h                        |   81 -
 drivers/usb/musb/musb_core.c                       |    5 -
 drivers/usb/musb/musb_core.h                       |   30 -
 drivers/usb/musb/musb_debugfs.c                    |    2 -
 drivers/usb/musb/musb_dma.h                        |   11 -
 drivers/usb/musb/musb_gadget.c                     |   35 -
 drivers/usb/musb/musb_regs.h                       |  182 -
 drivers/usb/musb/musbhsdma.c                       |    5 -
 drivers/usb/musb/musbhsdma.h                       |   64 -
 drivers/video/fbdev/Kconfig                        |  103 -
 drivers/video/fbdev/Makefile                       |    5 -
 drivers/video/fbdev/bf537-lq035.c                  |  891 ----
 drivers/video/fbdev/bf54x-lq043fb.c                |  764 ----
 drivers/video/fbdev/bfin-lq035q1-fb.c              |  864 ----
 drivers/video/fbdev/bfin-t350mcqb-fb.c             |  669 ---
 drivers/video/fbdev/bfin_adv7393fb.c               |  828 ----
 drivers/video/fbdev/bfin_adv7393fb.h               |  319 --
 drivers/video/fbdev/s1d13xxxfb.c                   |   10 -
 drivers/video/logo/Kconfig                         |   15 -
 drivers/video/logo/Makefile                        |    3 -
 drivers/video/logo/logo.c                          |   12 -
 drivers/video/logo/logo_blackfin_clut224.ppm       | 1127 ------
 drivers/video/logo/logo_blackfin_vga16.ppm         | 1127 ------
 drivers/video/logo/logo_m32r_clut224.ppm           | 1292 ------
 drivers/watchdog/Kconfig                           |   17 -
 drivers/watchdog/Makefile                          |    7 -
 drivers/watchdog/bfin_wdt.c                        |  476 ---
 include/linux/bfin_mac.h                           |   30 -
 include/linux/linux_logo.h                         |    3 -
 include/linux/platform_data/bfin_rotary.h          |  117 -
 include/linux/platform_data/pinctrl-adi2.h         |   40 -
 include/linux/raid/pq.h                            |    1 -
 include/linux/usb/musb.h                           |    7 -
 include/linux/usb/tilegx.h                         |   35 -
 include/media/blackfin/bfin_capture.h              |   39 -
 include/media/blackfin/ppi.h                       |   94 -
 lib/raid6/Makefile                                 |    6 -
 lib/raid6/algos.c                                  |    3 -
 lib/raid6/test/Makefile                            |    7 -
 lib/raid6/tilegx.uc                                |   87 -
 sound/soc/Kconfig                                  |    1 -
 sound/soc/Makefile                                 |    1 -
 sound/soc/blackfin/Kconfig                         |  205 -
 sound/soc/blackfin/Makefile                        |   40 -
 sound/soc/blackfin/bf5xx-ac97-pcm.c                |  480 ---
 sound/soc/blackfin/bf5xx-ac97.c                    |  388 --
 sound/soc/blackfin/bf5xx-ac97.h                    |   57 -
 sound/soc/blackfin/bf5xx-ad1836.c                  |  109 -
 sound/soc/blackfin/bf5xx-ad193x.c                  |  131 -
 sound/soc/blackfin/bf5xx-ad1980.c                  |  109 -
 sound/soc/blackfin/bf5xx-ad73311.c                 |  212 -
 sound/soc/blackfin/bf5xx-i2s-pcm.c                 |  373 --
 sound/soc/blackfin/bf5xx-i2s-pcm.h                 |   17 -
 sound/soc/blackfin/bf5xx-i2s.c                     |  391 --
 sound/soc/blackfin/bf5xx-sport.c                   | 1102 -----
 sound/soc/blackfin/bf5xx-sport.h                   |  174 -
 sound/soc/blackfin/bf5xx-ssm2602.c                 |  126 -
 sound/soc/blackfin/bf6xx-i2s.c                     |  239 --
 sound/soc/blackfin/bf6xx-sport.c                   |  425 --
 sound/soc/blackfin/bf6xx-sport.h                   |   82 -
 sound/soc/blackfin/bfin-eval-adau1373.c            |  173 -
 sound/soc/blackfin/bfin-eval-adau1701.c            |  113 -
 sound/soc/blackfin/bfin-eval-adau1x61.c            |  142 -
 sound/soc/blackfin/bfin-eval-adau1x81.c            |  129 -
 sound/soc/blackfin/bfin-eval-adav80x.c             |  145 -
 198 files changed, 7 insertions(+), 56230 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-etraxfs.txt
 delete mode 100644 Documentation/devicetree/bindings/serial/axis,etraxfs-uart.txt
 delete mode 100644 drivers/ata/pata_bf54x.c
 delete mode 100644 drivers/char/bfin-otp.c
 delete mode 100644 drivers/char/ds1302.c
 delete mode 100644 drivers/char/tile-srom.c
 delete mode 100644 drivers/cpufreq/blackfin-cpufreq.c
 delete mode 100644 drivers/cpufreq/cris-artpec3-cpufreq.c
 delete mode 100644 drivers/cpufreq/cris-etraxfs-cpufreq.c
 delete mode 100644 drivers/crypto/bfin_crc.c
 delete mode 100644 drivers/crypto/bfin_crc.h
 delete mode 100644 drivers/edac/tile_edac.c
 delete mode 100644 drivers/gpio/gpio-etraxfs.c
 delete mode 100644 drivers/i2c/busses/i2c-bfin-twi.c
 delete mode 100644 drivers/input/keyboard/bf54x-keys.c
 delete mode 100644 drivers/input/misc/bfin_rotary.c
 delete mode 100644 drivers/media/platform/arv.c
 delete mode 100644 drivers/media/platform/blackfin/Kconfig
 delete mode 100644 drivers/media/platform/blackfin/Makefile
 delete mode 100644 drivers/media/platform/blackfin/bfin_capture.c
 delete mode 100644 drivers/media/platform/blackfin/ppi.c
 delete mode 100644 drivers/mmc/host/bfin_sdh.c
 delete mode 100644 drivers/mtd/maps/bfin-async-flash.c
 delete mode 100644 drivers/mtd/nand/raw/bf5xx_nand.c
 delete mode 100644 drivers/net/can/bfin_can.c
 delete mode 100644 drivers/net/cris/Makefile
 delete mode 100644 drivers/net/cris/eth_v10.c
 delete mode 100644 drivers/net/ethernet/adi/Kconfig
 delete mode 100644 drivers/net/ethernet/adi/Makefile
 delete mode 100644 drivers/net/ethernet/adi/bfin_mac.c
 delete mode 100644 drivers/net/ethernet/adi/bfin_mac.h
 delete mode 100644 drivers/net/ethernet/tile/Kconfig
 delete mode 100644 drivers/net/ethernet/tile/Makefile
 delete mode 100644 drivers/net/ethernet/tile/tilegx.c
 delete mode 100644 drivers/net/ethernet/tile/tilepro.c
 delete mode 100644 drivers/pcmcia/bfin_cf_pcmcia.c
 delete mode 100644 drivers/pcmcia/m32r_cfc.c
 delete mode 100644 drivers/pcmcia/m32r_cfc.h
 delete mode 100644 drivers/pcmcia/m32r_pcc.c
 delete mode 100644 drivers/pcmcia/m32r_pcc.h
 delete mode 100644 drivers/pinctrl/pinctrl-adi2-bf54x.c
 delete mode 100644 drivers/pinctrl/pinctrl-adi2-bf60x.c
 delete mode 100644 drivers/pinctrl/pinctrl-adi2.c
 delete mode 100644 drivers/pinctrl/pinctrl-adi2.h
 delete mode 100644 drivers/pwm/pwm-bfin.c
 delete mode 100644 drivers/rtc/rtc-bfin.c
 delete mode 100644 drivers/rtc/rtc-tile.c
 delete mode 100644 drivers/spi/spi-adi-v3.c
 delete mode 100644 drivers/spi/spi-bfin-sport.c
 delete mode 100644 drivers/spi/spi-bfin5xx.c
 delete mode 100644 drivers/staging/iio/trigger/Kconfig
 delete mode 100644 drivers/staging/iio/trigger/Makefile
 delete mode 100644 drivers/staging/iio/trigger/iio-trig-bfin-timer.c
 delete mode 100644 drivers/staging/iio/trigger/iio-trig-bfin-timer.h
 delete mode 100644 drivers/staging/irda/drivers/bfin_sir.c
 delete mode 100644 drivers/staging/irda/drivers/bfin_sir.h
 delete mode 100644 drivers/tty/bfin_jtag_comm.c
 delete mode 100644 drivers/tty/hvc/hvc_bfin_jtag.c
 delete mode 100644 drivers/tty/hvc/hvc_tile.c
 delete mode 100644 drivers/tty/serial/bfin_sport_uart.c
 delete mode 100644 drivers/tty/serial/bfin_sport_uart.h
 delete mode 100644 drivers/tty/serial/bfin_uart.c
 delete mode 100644 drivers/tty/serial/crisv10.c
 delete mode 100644 drivers/tty/serial/crisv10.h
 delete mode 100644 drivers/tty/serial/etraxfs-uart.c
 delete mode 100644 drivers/tty/serial/m32r_sio.c
 delete mode 100644 drivers/tty/serial/m32r_sio_reg.h
 delete mode 100644 drivers/tty/serial/tilegx.c
 delete mode 100644 drivers/usb/host/ehci-tilegx.c
 delete mode 100644 drivers/usb/host/ohci-tilegx.c
 delete mode 100644 drivers/usb/musb/blackfin.c
 delete mode 100644 drivers/usb/musb/blackfin.h
 delete mode 100644 drivers/video/fbdev/bf537-lq035.c
 delete mode 100644 drivers/video/fbdev/bf54x-lq043fb.c
 delete mode 100644 drivers/video/fbdev/bfin-lq035q1-fb.c
 delete mode 100644 drivers/video/fbdev/bfin-t350mcqb-fb.c
 delete mode 100644 drivers/video/fbdev/bfin_adv7393fb.c
 delete mode 100644 drivers/video/fbdev/bfin_adv7393fb.h
 delete mode 100644 drivers/video/logo/logo_blackfin_clut224.ppm
 delete mode 100644 drivers/video/logo/logo_blackfin_vga16.ppm
 delete mode 100644 drivers/video/logo/logo_m32r_clut224.ppm
 delete mode 100644 drivers/watchdog/bfin_wdt.c
 delete mode 100644 include/linux/bfin_mac.h
 delete mode 100644 include/linux/platform_data/bfin_rotary.h
 delete mode 100644 include/linux/platform_data/pinctrl-adi2.h
 delete mode 100644 include/linux/usb/tilegx.h
 delete mode 100644 include/media/blackfin/bfin_capture.h
 delete mode 100644 include/media/blackfin/ppi.h
 delete mode 100644 lib/raid6/tilegx.uc
 delete mode 100644 sound/soc/blackfin/Kconfig
 delete mode 100644 sound/soc/blackfin/Makefile
 delete mode 100644 sound/soc/blackfin/bf5xx-ac97-pcm.c
 delete mode 100644 sound/soc/blackfin/bf5xx-ac97.c
 delete mode 100644 sound/soc/blackfin/bf5xx-ac97.h
 delete mode 100644 sound/soc/blackfin/bf5xx-ad1836.c
 delete mode 100644 sound/soc/blackfin/bf5xx-ad193x.c
 delete mode 100644 sound/soc/blackfin/bf5xx-ad1980.c
 delete mode 100644 sound/soc/blackfin/bf5xx-ad73311.c
 delete mode 100644 sound/soc/blackfin/bf5xx-i2s-pcm.c
 delete mode 100644 sound/soc/blackfin/bf5xx-i2s-pcm.h
 delete mode 100644 sound/soc/blackfin/bf5xx-i2s.c
 delete mode 100644 sound/soc/blackfin/bf5xx-sport.c
 delete mode 100644 sound/soc/blackfin/bf5xx-sport.h
 delete mode 100644 sound/soc/blackfin/bf5xx-ssm2602.c
 delete mode 100644 sound/soc/blackfin/bf6xx-i2s.c
 delete mode 100644 sound/soc/blackfin/bf6xx-sport.c
 delete mode 100644 sound/soc/blackfin/bf6xx-sport.h
 delete mode 100644 sound/soc/blackfin/bfin-eval-adau1373.c
 delete mode 100644 sound/soc/blackfin/bfin-eval-adau1701.c
 delete mode 100644 sound/soc/blackfin/bfin-eval-adau1x61.c
 delete mode 100644 sound/soc/blackfin/bfin-eval-adau1x81.c
 delete mode 100644 sound/soc/blackfin/bfin-eval-adav80x.c

-- 
Cc: linux@roeck-us.net
Cc: corbet@lwn.net
Cc: tj@kernel.org
Cc: gregkh@linuxfoundation.org
Cc: rjw@rjwysocki.net
Cc: viresh.kumar@linaro.org
Cc: herbert@gondor.apana.org.au
Cc: davem@davemloft.net
Cc: bp@alien8.de
Cc: mchehab@kernel.org
Cc: linus.walleij@linaro.org
Cc: wsa@the-dreams.de
Cc: dmitry.torokhov@gmail.com
Cc: ulf.hansson@linaro.org
Cc: boris.brezillon@bootlin.com
Cc: cyrille.pitchen@wedev4u.fr
Cc: wg@grandegger.com
Cc: mkl@pengutronix.de
Cc: alexandre.belloni@bootlin.com
Cc: broonie@kernel.org
Cc: jic23@kernel.org
Cc: lars@metafoo.de
Cc: jslaby@suse.com
Cc: stern@rowland.harvard.edu
Cc: b.zolnierkie@samsung.com
Cc: shli@kernel.org
Cc: linux-watchdog@vger.kernel.org
Cc: linux-doc@vger.kernel.org
Cc: linux-ide@vger.kernel.org
Cc: linux-pm@vger.kernel.org
Cc: linux-crypto@vger.kernel.org
Cc: linux-edac@vger.kernel.org
Cc: linux-gpio@vger.kernel.org
Cc: linux-i2c@vger.kernel.org
Cc: linux-input@vger.kernel.org
Cc: linux-media@vger.kernel.org
Cc: linux-mmc@vger.kernel.org
Cc: linux-mtd@lists.infradead.org
Cc: netdev@vger.kernel.org
Cc: linux-can@vger.kernel.org
Cc: linux-pwm@vger.kernel.org
Cc: linux-rtc@vger.kernel.org
Cc: linux-spi@vger.kernel.org
Cc: linux-iio@vger.kernel.org
Cc: linux-serial@vger.kernel.org
Cc: linux-usb@vger.kernel.org
Cc: linux-fbdev@vger.kernel.org
Cc: linux-raid@vger.kernel.org
Cc: alsa-devel@alsa-project.org

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

^ permalink raw reply

* [PATCH 40/47] serial: remove cris/etrax uart drivers
From: Arnd Bergmann @ 2018-03-14 15:35 UTC (permalink / raw)
  To: linux-kernel; +Cc: Arnd Bergmann, Greg Kroah-Hartman, Jiri Slaby, linux-serial
In-Reply-To: <20180314153603.3127932-1-arnd@arndb.de>

The cris architecture is getting removed, so we don't need the
uart driver any more.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 .../bindings/serial/axis,etraxfs-uart.txt          |   22 -
 drivers/tty/serial/Kconfig                         |   11 -
 drivers/tty/serial/Makefile                        |    2 -
 drivers/tty/serial/crisv10.c                       | 4248 --------------------
 drivers/tty/serial/crisv10.h                       |  133 -
 drivers/tty/serial/etraxfs-uart.c                  |  960 -----
 6 files changed, 5376 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/serial/axis,etraxfs-uart.txt
 delete mode 100644 drivers/tty/serial/crisv10.c
 delete mode 100644 drivers/tty/serial/crisv10.h
 delete mode 100644 drivers/tty/serial/etraxfs-uart.c

diff --git a/Documentation/devicetree/bindings/serial/axis,etraxfs-uart.txt b/Documentation/devicetree/bindings/serial/axis,etraxfs-uart.txt
deleted file mode 100644
index 048c3818c826..000000000000
diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 3682fd3e960c..f6e09326042d 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -1114,17 +1114,6 @@ config SERIAL_VT8500_CONSOLE
 	depends on SERIAL_VT8500=y
 	select SERIAL_CORE_CONSOLE
 
-config SERIAL_ETRAXFS
-	bool "ETRAX FS serial port support"
-	depends on ETRAX_ARCH_V32 && OF
-	select SERIAL_CORE
-	select SERIAL_MCTRL_GPIO if GPIOLIB
-
-config SERIAL_ETRAXFS_CONSOLE
-	bool "ETRAX FS serial console support"
-	depends on SERIAL_ETRAXFS
-	select SERIAL_CORE_CONSOLE
-
 config SERIAL_NETX
 	tristate "NetX serial port support"
 	depends on ARCH_NETX
diff --git a/drivers/tty/serial/Makefile b/drivers/tty/serial/Makefile
index 842d185d697e..c21835dc16b2 100644
--- a/drivers/tty/serial/Makefile
+++ b/drivers/tty/serial/Makefile
@@ -51,8 +51,6 @@ obj-$(CONFIG_SERIAL_M32R_SIO) += m32r_sio.o
 obj-$(CONFIG_SERIAL_MPSC) += mpsc.o
 obj-$(CONFIG_SERIAL_MESON) += meson_uart.o
 obj-$(CONFIG_SERIAL_SB1250_DUART) += sb1250-duart.o
-obj-$(CONFIG_ETRAX_SERIAL) += crisv10.o
-obj-$(CONFIG_SERIAL_ETRAXFS) += etraxfs-uart.o
 obj-$(CONFIG_SERIAL_SCCNXP) += sccnxp.o
 obj-$(CONFIG_SERIAL_SC16IS7XX_CORE) += sc16is7xx.o
 obj-$(CONFIG_SERIAL_JSM) += jsm/
diff --git a/drivers/tty/serial/crisv10.c b/drivers/tty/serial/crisv10.c
deleted file mode 100644
index c9458a033e3c..000000000000
diff --git a/drivers/tty/serial/crisv10.h b/drivers/tty/serial/crisv10.h
deleted file mode 100644
index 79ba2bc95d3d..000000000000
diff --git a/drivers/tty/serial/etraxfs-uart.c b/drivers/tty/serial/etraxfs-uart.c
deleted file mode 100644
index 24bf6bfb29b4..000000000000
-- 
2.9.0

^ permalink raw reply related

* [PATCH 41/47] serial: remove blackfin drivers
From: Arnd Bergmann @ 2018-03-14 15:35 UTC (permalink / raw)
  To: linux-kernel; +Cc: Arnd Bergmann, Greg Kroah-Hartman, Jiri Slaby, linux-serial
In-Reply-To: <20180314153603.3127932-1-arnd@arndb.de>

The blackfin architecture is getting removed, so both the bfin_uart
and bfin_sport_uart can be removed as well.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/tty/serial/Kconfig           |  149 ----
 drivers/tty/serial/Makefile          |    2 -
 drivers/tty/serial/bfin_sport_uart.c |  937 --------------------
 drivers/tty/serial/bfin_sport_uart.h |   86 --
 drivers/tty/serial/bfin_uart.c       | 1551 ----------------------------------
 5 files changed, 2725 deletions(-)
 delete mode 100644 drivers/tty/serial/bfin_sport_uart.c
 delete mode 100644 drivers/tty/serial/bfin_sport_uart.h
 delete mode 100644 drivers/tty/serial/bfin_uart.c

diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index f6e09326042d..031552eb3f65 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -498,92 +498,6 @@ config SERIAL_SA1100_CONSOLE
 	  your boot loader (lilo or loadlin) about how to pass options to the
 	  kernel at boot time.)
 
-config SERIAL_BFIN
-	tristate "Blackfin serial port support"
-	depends on BLACKFIN
-	select SERIAL_CORE
-	select SERIAL_BFIN_UART0 if (BF531 || BF532 || BF533 || BF561)
-	help
-	  Add support for the built-in UARTs on the Blackfin.
-
-	  To compile this driver as a module, choose M here: the
-	  module is named bfin_uart.ko.
-
-config SERIAL_BFIN_CONSOLE
-	bool "Console on Blackfin serial port"
-	depends on SERIAL_BFIN=y
-	select SERIAL_CORE_CONSOLE
-
-choice
-	prompt "UART Mode"
-	depends on SERIAL_BFIN
-	default SERIAL_BFIN_DMA
-	help
-	  This driver supports the built-in serial ports of the Blackfin family
-	  of CPUs
-
-config SERIAL_BFIN_DMA
-	bool "DMA mode"
-	depends on !DMA_UNCACHED_NONE && KGDB_SERIAL_CONSOLE=n
-	help
-	  This driver works under DMA mode. If this option is selected, the
-	  blackfin simple dma driver is also enabled.
-
-config SERIAL_BFIN_PIO
-	bool "PIO mode"
-	help
-	  This driver works under PIO mode.
-
-endchoice
-
-config SERIAL_BFIN_UART0
-	bool "Enable UART0"
-	depends on SERIAL_BFIN
-	help
-	  Enable UART0
-
-config BFIN_UART0_CTSRTS
-	bool "Enable UART0 hardware flow control"
-	depends on SERIAL_BFIN_UART0
-	help
-	  Enable hardware flow control in the driver.
-
-config SERIAL_BFIN_UART1
-	bool "Enable UART1"
-	depends on SERIAL_BFIN && (!BF531 && !BF532 && !BF533 && !BF561)
-	help
-	  Enable UART1
-
-config BFIN_UART1_CTSRTS
-	bool "Enable UART1 hardware flow control"
-	depends on SERIAL_BFIN_UART1
-	help
-	  Enable hardware flow control in the driver.
-
-config SERIAL_BFIN_UART2
-	bool "Enable UART2"
-	depends on SERIAL_BFIN && (BF54x || BF538 || BF539)
-	help
-	  Enable UART2
-
-config BFIN_UART2_CTSRTS
-	bool "Enable UART2 hardware flow control"
-	depends on SERIAL_BFIN_UART2
-	help
-	  Enable hardware flow control in the driver.
-
-config SERIAL_BFIN_UART3
-	bool "Enable UART3"
-	depends on SERIAL_BFIN && (BF54x)
-	help
-	  Enable UART3
-
-config BFIN_UART3_CTSRTS
-	bool "Enable UART3 hardware flow control"
-	depends on SERIAL_BFIN_UART3
-	help
-	  Enable hardware flow control in the driver.
-
 config SERIAL_IMX
 	tristate "IMX serial port support"
 	depends on HAS_DMA
@@ -1231,69 +1145,6 @@ config SERIAL_SC16IS7XX_SPI
           This is additional support to exsisting driver.
           You must select at least one bus for the driver to be built.
 
-config SERIAL_BFIN_SPORT
-	tristate "Blackfin SPORT emulate UART"
-	depends on BLACKFIN
-	select SERIAL_CORE
-	help
-	  Enable SPORT emulate UART on Blackfin series.
-
-	  To compile this driver as a module, choose M here: the
-	  module will be called bfin_sport_uart.
-
-config SERIAL_BFIN_SPORT_CONSOLE
-	bool "Console on Blackfin sport emulated uart"
-	depends on SERIAL_BFIN_SPORT=y
-	select SERIAL_CORE_CONSOLE
-
-config SERIAL_BFIN_SPORT0_UART
-	bool "Enable UART over SPORT0"
-	depends on SERIAL_BFIN_SPORT && !(BF542 || BF544)
-	help
-	  Enable UART over SPORT0
-
-config SERIAL_BFIN_SPORT0_UART_CTSRTS
-	bool "Enable UART over SPORT0 hardware flow control"
-	depends on SERIAL_BFIN_SPORT0_UART
-	help
-	  Enable hardware flow control in the driver.
-
-config SERIAL_BFIN_SPORT1_UART
-	bool "Enable UART over SPORT1"
-	depends on SERIAL_BFIN_SPORT
-	help
-	  Enable UART over SPORT1
-
-config SERIAL_BFIN_SPORT1_UART_CTSRTS
-	bool "Enable UART over SPORT1 hardware flow control"
-	depends on SERIAL_BFIN_SPORT1_UART
-	help
-	  Enable hardware flow control in the driver.
-
-config SERIAL_BFIN_SPORT2_UART
-	bool "Enable UART over SPORT2"
-	depends on SERIAL_BFIN_SPORT && (BF54x || BF538 || BF539)
-	help
-	  Enable UART over SPORT2
-
-config SERIAL_BFIN_SPORT2_UART_CTSRTS
-	bool "Enable UART over SPORT2 hardware flow control"
-	depends on SERIAL_BFIN_SPORT2_UART
-	help
-	  Enable hardware flow control in the driver.
-
-config SERIAL_BFIN_SPORT3_UART
-	bool "Enable UART over SPORT3"
-	depends on SERIAL_BFIN_SPORT && (BF54x || BF538 || BF539)
-	help
-	  Enable UART over SPORT3
-
-config SERIAL_BFIN_SPORT3_UART_CTSRTS
-	bool "Enable UART over SPORT3 hardware flow control"
-	depends on SERIAL_BFIN_SPORT3_UART
-	help
-	  Enable hardware flow control in the driver.
-
 config SERIAL_TIMBERDALE
 	tristate "Support for timberdale UART"
 	select SERIAL_CORE
diff --git a/drivers/tty/serial/Makefile b/drivers/tty/serial/Makefile
index c21835dc16b2..a9242484e821 100644
--- a/drivers/tty/serial/Makefile
+++ b/drivers/tty/serial/Makefile
@@ -29,8 +29,6 @@ obj-$(CONFIG_SERIAL_PXA_NON8250) += pxa.o
 obj-$(CONFIG_SERIAL_PNX8XXX) += pnx8xxx_uart.o
 obj-$(CONFIG_SERIAL_SA1100) += sa1100.o
 obj-$(CONFIG_SERIAL_BCM63XX) += bcm63xx_uart.o
-obj-$(CONFIG_SERIAL_BFIN) += bfin_uart.o
-obj-$(CONFIG_SERIAL_BFIN_SPORT) += bfin_sport_uart.o
 obj-$(CONFIG_SERIAL_SAMSUNG) += samsung.o
 obj-$(CONFIG_SERIAL_MAX3100) += max3100.o
 obj-$(CONFIG_SERIAL_MAX310X) += max310x.o
diff --git a/drivers/tty/serial/bfin_sport_uart.c b/drivers/tty/serial/bfin_sport_uart.c
deleted file mode 100644
index 4ccca5d22f4f..000000000000
diff --git a/drivers/tty/serial/bfin_sport_uart.h b/drivers/tty/serial/bfin_sport_uart.h
deleted file mode 100644
index 4b12f45d6580..000000000000
diff --git a/drivers/tty/serial/bfin_uart.c b/drivers/tty/serial/bfin_uart.c
deleted file mode 100644
index 4755fa696321..000000000000
-- 
2.9.0

^ permalink raw reply related

* [PATCH 42/47] serial: remove m32r_sio driver
From: Arnd Bergmann @ 2018-03-14 15:35 UTC (permalink / raw)
  To: linux-kernel; +Cc: Arnd Bergmann, Greg Kroah-Hartman, Jiri Slaby, linux-serial
In-Reply-To: <20180314153603.3127932-1-arnd@arndb.de>

The m32r architecture is getting removed, so we don't need this
any more.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/tty/serial/Kconfig        |   29 -
 drivers/tty/serial/Makefile       |    1 -
 drivers/tty/serial/m32r_sio.c     | 1053 -------------------------------------
 drivers/tty/serial/m32r_sio_reg.h |  150 ------
 4 files changed, 1233 deletions(-)
 delete mode 100644 drivers/tty/serial/m32r_sio.c
 delete mode 100644 drivers/tty/serial/m32r_sio_reg.h

diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 031552eb3f65..1a48ae6abb2c 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -905,35 +905,6 @@ config SERIAL_ICOM
 	  This driver can also be built as a module.  If so, the module
 	  will be called icom.
 
-config SERIAL_M32R_SIO
-	bool "M32R SIO I/F"
-	depends on M32R
-	default y
-	select SERIAL_CORE
-	help
-	  Say Y here if you want to use the M32R serial controller.
-
-config SERIAL_M32R_SIO_CONSOLE
-	bool "use SIO console"
-	depends on SERIAL_M32R_SIO=y
-	select SERIAL_CORE_CONSOLE
-	help
-	  Say Y here if you want to support a serial console.
-
-	  If you use an M3T-M32700UT or an OPSPUT platform,
-	  please say also y for SERIAL_M32R_PLDSIO.
-
-config SERIAL_M32R_PLDSIO
-	bool "M32R SIO I/F on a PLD"
-	depends on SERIAL_M32R_SIO=y && (PLAT_OPSPUT || PLAT_USRV || PLAT_M32700UT)
-	default n
-	help
-	  Say Y here if you want to use the M32R serial controller
-	  on a PLD (Programmable Logic Device).
-
-	  If you use an M3T-M32700UT or an OPSPUT platform,
-	  please say Y.
-
 config SERIAL_TXX9
 	bool "TMPTX39XX/49XX SIO support"
 	depends on HAS_TXX9_SERIAL
diff --git a/drivers/tty/serial/Makefile b/drivers/tty/serial/Makefile
index a9242484e821..606e746b61f1 100644
--- a/drivers/tty/serial/Makefile
+++ b/drivers/tty/serial/Makefile
@@ -45,7 +45,6 @@ obj-$(CONFIG_SERIAL_CPM) += cpm_uart/
 obj-$(CONFIG_SERIAL_IMX) += imx.o
 obj-$(CONFIG_SERIAL_MPC52xx) += mpc52xx_uart.o
 obj-$(CONFIG_SERIAL_ICOM) += icom.o
-obj-$(CONFIG_SERIAL_M32R_SIO) += m32r_sio.o
 obj-$(CONFIG_SERIAL_MPSC) += mpsc.o
 obj-$(CONFIG_SERIAL_MESON) += meson_uart.o
 obj-$(CONFIG_SERIAL_SB1250_DUART) += sb1250-duart.o
diff --git a/drivers/tty/serial/m32r_sio.c b/drivers/tty/serial/m32r_sio.c
deleted file mode 100644
index 7b83a8aab495..000000000000
diff --git a/drivers/tty/serial/m32r_sio_reg.h b/drivers/tty/serial/m32r_sio_reg.h
deleted file mode 100644
index 6eed48828f94..000000000000
-- 
2.9.0

^ permalink raw reply related

* [PATCH 43/47] serial: remove tile uart driver
From: Arnd Bergmann @ 2018-03-14 15:35 UTC (permalink / raw)
  To: linux-kernel; +Cc: Arnd Bergmann, Greg Kroah-Hartman, Jiri Slaby, linux-serial
In-Reply-To: <20180314153603.3127932-1-arnd@arndb.de>

The tile architecture is getting removed, and this driver is
useless without it.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/tty/serial/Kconfig  |   9 -
 drivers/tty/serial/Makefile |   1 -
 drivers/tty/serial/tilegx.c | 689 --------------------------------------------
 3 files changed, 699 deletions(-)
 delete mode 100644 drivers/tty/serial/tilegx.c

diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
index 1a48ae6abb2c..736720a8d84f 100644
--- a/drivers/tty/serial/Kconfig
+++ b/drivers/tty/serial/Kconfig
@@ -1330,15 +1330,6 @@ config SERIAL_EFM32_UART_CONSOLE
 	depends on SERIAL_EFM32_UART=y
 	select SERIAL_CORE_CONSOLE
 
-config SERIAL_TILEGX
-	tristate "TILE-Gx on-chip serial port support"
-	depends on TILEGX
-	select TILE_GXIO_UART
-	select SERIAL_CORE
-	---help---
-	  This device provides access to the on-chip UARTs on the TILE-Gx
-	  processor.
-
 config SERIAL_ARC
 	tristate "ARC UART driver support"
 	select SERIAL_CORE
diff --git a/drivers/tty/serial/Makefile b/drivers/tty/serial/Makefile
index 606e746b61f1..b30ee2e5d518 100644
--- a/drivers/tty/serial/Makefile
+++ b/drivers/tty/serial/Makefile
@@ -63,7 +63,6 @@ obj-$(CONFIG_SERIAL_KS8695) += serial_ks8695.o
 obj-$(CONFIG_SERIAL_OMAP) += omap-serial.o
 obj-$(CONFIG_SERIAL_ALTERA_UART) += altera_uart.o
 obj-$(CONFIG_SERIAL_ST_ASC) += st-asc.o
-obj-$(CONFIG_SERIAL_TILEGX) += tilegx.o
 obj-$(CONFIG_SERIAL_QE) += ucc_uart.o
 obj-$(CONFIG_SERIAL_TIMBERDALE)	+= timbuart.o
 obj-$(CONFIG_SERIAL_GRLIB_GAISLER_APBUART) += apbuart.o
diff --git a/drivers/tty/serial/tilegx.c b/drivers/tty/serial/tilegx.c
deleted file mode 100644
index f0a3ae57f881..000000000000
-- 
2.9.0

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox