kernel: bump 5.4 to 5.4.119
Removed because in upstream generic/backport-5.4/050-gro-fix-napi_gro_frags-Fast-GRO-breakage-due-to-IP-a.patch ath79/patches-5.4/0050-spi-ath79-remove-spi-master-setup-and-cleanup-assign.patch ramips/patches-5.4/999-fix-pci-init-mt7620.patch Manually rebased ath79/patches-5.4/0033-spi-ath79-drop-pdata-support.patch All others updated automatically. Compile-tested on: x86/64, ath79/generic Runtime-tested on: x86/64, ath79/generic Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
		| @@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL | |||||||
|   KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) |   KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) | ||||||
| endif | endif | ||||||
|  |  | ||||||
| LINUX_VERSION-5.4 = .117 | LINUX_VERSION-5.4 = .119 | ||||||
|  |  | ||||||
| LINUX_KERNEL_HASH-5.4.117 = 4e989b5775830092e5c76b5cca65ebff862ad0c87d0b58c3a20d415c3d4ec770 | LINUX_KERNEL_HASH-5.4.119 = 71e7decf1e8149a8aed88d30df4f2a62a6c6b168111de6b261685ac7c0ecb2a0 | ||||||
|  |  | ||||||
| remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) | remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) | ||||||
| sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) | sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1))))))) | ||||||
|   | |||||||
| @@ -23,7 +23,7 @@ produce a noisy warning. | |||||||
|  		xhci->quirks |= XHCI_RESET_ON_RESUME; |  		xhci->quirks |= XHCI_RESET_ON_RESUME; | ||||||
| --- a/drivers/usb/host/xhci.c | --- a/drivers/usb/host/xhci.c | ||||||
| +++ b/drivers/usb/host/xhci.c | +++ b/drivers/usb/host/xhci.c | ||||||
| @@ -423,10 +423,14 @@ static int xhci_try_enable_msi(struct us | @@ -427,10 +427,14 @@ static int xhci_try_enable_msi(struct us | ||||||
|  		free_irq(hcd->irq, hcd); |  		free_irq(hcd->irq, hcd); | ||||||
|  	hcd->irq = 0; |  	hcd->irq = 0; | ||||||
|   |   | ||||||
|   | |||||||
| @@ -52,7 +52,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
|  	unsigned long rate; |  	unsigned long rate; | ||||||
|  	int ret; |  	int ret; | ||||||
|   |   | ||||||
| @@ -152,16 +150,10 @@ static int ath79_spi_probe(struct platfo | @@ -152,15 +150,9 @@ static int ath79_spi_probe(struct platfo | ||||||
|  	master->dev.of_node = pdev->dev.of_node; |  	master->dev.of_node = pdev->dev.of_node; | ||||||
|  	platform_set_drvdata(pdev, sp); |  	platform_set_drvdata(pdev, sp); | ||||||
|   |   | ||||||
| @@ -60,8 +60,7 @@ Signed-off-by: John Crispin <john@phrozen.org> | |||||||
| - | - | ||||||
|  	master->use_gpio_descriptors = true; |  	master->use_gpio_descriptors = true; | ||||||
|  	master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32); |  	master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32); | ||||||
|  	master->setup = spi_bitbang_setup; |  	master->flags = SPI_MASTER_GPIO_SS; | ||||||
|  	master->cleanup = spi_bitbang_cleanup; |  | ||||||
| -	if (pdata) { | -	if (pdata) { | ||||||
| -		master->bus_num = pdata->bus_num; | -		master->bus_num = pdata->bus_num; | ||||||
| -		master->num_chipselect = pdata->num_chipselect; | -		master->num_chipselect = pdata->num_chipselect; | ||||||
|   | |||||||
| @@ -1,28 +0,0 @@ | |||||||
| From b142b1beb199f62d47370c98a3dd8e13f792e9c0 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: David Bauer <mail@david-bauer.net> |  | ||||||
| Date: Thu, 27 Feb 2020 23:03:20 +0100 |  | ||||||
| Subject: [PATCH] spi: ath79: remove spi-master setup and cleanup assignment |  | ||||||
|  |  | ||||||
| This removes the assignment of setup and cleanup functions for the ath79 |  | ||||||
| target. Assigning the setup-method will lead to 'setup_transfer' not |  | ||||||
| being assigned in spi_bitbang_init. |  | ||||||
|  |  | ||||||
| Also drop the redundant cleanup assignment, as this also happens in |  | ||||||
| spi_bitbang_init. |  | ||||||
|  |  | ||||||
| Signed-off-by: David Bauer <mail@david-bauer.net> |  | ||||||
| --- |  | ||||||
|  drivers/spi/spi-ath79.c | 2 -- |  | ||||||
|  1 file changed, 2 deletions(-) |  | ||||||
|  |  | ||||||
| --- a/drivers/spi/spi-ath79.c |  | ||||||
| +++ b/drivers/spi/spi-ath79.c |  | ||||||
| @@ -152,8 +152,6 @@ static int ath79_spi_probe(struct platfo |  | ||||||
|   |  | ||||||
|  	master->use_gpio_descriptors = true; |  | ||||||
|  	master->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32); |  | ||||||
| -	master->setup = spi_bitbang_setup; |  | ||||||
| -	master->cleanup = spi_bitbang_cleanup; |  | ||||||
|   |  | ||||||
|  	sp->bitbang.master = master; |  | ||||||
|  	sp->bitbang.chipselect = ath79_spi_chipselect; |  | ||||||
| @@ -58,7 +58,7 @@ Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com> | |||||||
|  static int ath79_spi_probe(struct platform_device *pdev) |  static int ath79_spi_probe(struct platform_device *pdev) | ||||||
|  { |  { | ||||||
|  	struct spi_master *master; |  	struct spi_master *master; | ||||||
| @@ -163,6 +197,7 @@ static int ath79_spi_probe(struct platfo | @@ -164,6 +198,7 @@ static int ath79_spi_probe(struct platfo | ||||||
|  		ret = PTR_ERR(sp->base); |  		ret = PTR_ERR(sp->base); | ||||||
|  		goto err_put_master; |  		goto err_put_master; | ||||||
|  	} |  	} | ||||||
|   | |||||||
| @@ -222,7 +222,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com> | |||||||
|  static inline int mmc_blk_part_switch(struct mmc_card *card, |  static inline int mmc_blk_part_switch(struct mmc_card *card, | ||||||
|  				      unsigned int part_type); |  				      unsigned int part_type); | ||||||
|   |   | ||||||
| @@ -2868,6 +2875,7 @@ static int mmc_blk_probe(struct mmc_card | @@ -2884,6 +2891,7 @@ static int mmc_blk_probe(struct mmc_card | ||||||
|  { |  { | ||||||
|  	struct mmc_blk_data *md, *part_md; |  	struct mmc_blk_data *md, *part_md; | ||||||
|  	char cap_str[10]; |  	char cap_str[10]; | ||||||
| @@ -230,7 +230,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com> | |||||||
|   |   | ||||||
|  	/* |  	/* | ||||||
|  	 * Check that the card supports the command class(es) we need. |  	 * Check that the card supports the command class(es) we need. | ||||||
| @@ -2875,7 +2883,16 @@ static int mmc_blk_probe(struct mmc_card | @@ -2891,7 +2899,16 @@ static int mmc_blk_probe(struct mmc_card | ||||||
|  	if (!(card->csd.cmdclass & CCC_BLOCK_READ)) |  	if (!(card->csd.cmdclass & CCC_BLOCK_READ)) | ||||||
|  		return -ENODEV; |  		return -ENODEV; | ||||||
|   |   | ||||||
| @@ -248,7 +248,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com> | |||||||
|   |   | ||||||
|  	card->complete_wq = alloc_workqueue("mmc_complete", |  	card->complete_wq = alloc_workqueue("mmc_complete", | ||||||
|  					WQ_MEM_RECLAIM | WQ_HIGHPRI, 0); |  					WQ_MEM_RECLAIM | WQ_HIGHPRI, 0); | ||||||
| @@ -2890,9 +2907,14 @@ static int mmc_blk_probe(struct mmc_card | @@ -2906,9 +2923,14 @@ static int mmc_blk_probe(struct mmc_card | ||||||
|   |   | ||||||
|  	string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2, |  	string_get_size((u64)get_capacity(md->disk), 512, STRING_UNITS_2, | ||||||
|  			cap_str, sizeof(cap_str)); |  			cap_str, sizeof(cap_str)); | ||||||
| @@ -279,7 +279,7 @@ Signed-off-by: Yaroslav Rosomakho <yaroslavros@gmail.com> | |||||||
|  } |  } | ||||||
| --- a/drivers/mmc/core/host.c | --- a/drivers/mmc/core/host.c | ||||||
| +++ b/drivers/mmc/core/host.c | +++ b/drivers/mmc/core/host.c | ||||||
| @@ -397,15 +397,30 @@ struct mmc_host *mmc_alloc_host(int extr | @@ -434,15 +434,30 @@ struct mmc_host *mmc_alloc_host(int extr | ||||||
|  { |  { | ||||||
|  	int err; |  	int err; | ||||||
|  	struct mmc_host *host; |  	struct mmc_host *host; | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org> | |||||||
|  |  | ||||||
| --- a/drivers/usb/host/xhci.c | --- a/drivers/usb/host/xhci.c | ||||||
| +++ b/drivers/usb/host/xhci.c | +++ b/drivers/usb/host/xhci.c | ||||||
| @@ -1464,6 +1464,103 @@ command_cleanup: | @@ -1468,6 +1468,103 @@ command_cleanup: | ||||||
|  } |  } | ||||||
|   |   | ||||||
|  /* |  /* | ||||||
| @@ -119,7 +119,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org> | |||||||
|   * non-error returns are a promise to giveback() the urb later |   * non-error returns are a promise to giveback() the urb later | ||||||
|   * we drop ownership so next owner (or urb unlink) can get it |   * we drop ownership so next owner (or urb unlink) can get it | ||||||
|   */ |   */ | ||||||
| @@ -5345,6 +5442,7 @@ static const struct hc_driver xhci_hc_dr | @@ -5357,6 +5454,7 @@ static const struct hc_driver xhci_hc_dr | ||||||
|  	.endpoint_reset =	xhci_endpoint_reset, |  	.endpoint_reset =	xhci_endpoint_reset, | ||||||
|  	.check_bandwidth =	xhci_check_bandwidth, |  	.check_bandwidth =	xhci_check_bandwidth, | ||||||
|  	.reset_bandwidth =	xhci_reset_bandwidth, |  	.reset_bandwidth =	xhci_reset_bandwidth, | ||||||
|   | |||||||
| @@ -33,7 +33,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org> | |||||||
|  #define USB_VENDOR_ID_BELKIN		0x050d |  #define USB_VENDOR_ID_BELKIN		0x050d | ||||||
|  #define USB_DEVICE_ID_FLIP_KVM		0x3201 |  #define USB_DEVICE_ID_FLIP_KVM		0x3201 | ||||||
|   |   | ||||||
| @@ -1258,6 +1261,9 @@ | @@ -1259,6 +1262,9 @@ | ||||||
|  #define USB_VENDOR_ID_XAT	0x2505 |  #define USB_VENDOR_ID_XAT	0x2505 | ||||||
|  #define USB_DEVICE_ID_XAT_CSR	0x0220 |  #define USB_DEVICE_ID_XAT_CSR	0x0220 | ||||||
|   |   | ||||||
|   | |||||||
| @@ -22,7 +22,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org> | |||||||
|  |  | ||||||
| --- a/drivers/usb/host/xhci-mem.c | --- a/drivers/usb/host/xhci-mem.c | ||||||
| +++ b/drivers/usb/host/xhci-mem.c | +++ b/drivers/usb/host/xhci-mem.c | ||||||
| @@ -2503,9 +2503,11 @@ int xhci_mem_init(struct xhci_hcd *xhci, | @@ -2512,9 +2512,11 @@ int xhci_mem_init(struct xhci_hcd *xhci, | ||||||
|  	 * Event ring setup: Allocate a normal ring, but also setup |  	 * Event ring setup: Allocate a normal ring, but also setup | ||||||
|  	 * the event ring segment table (ERST).  Section 4.9.3. |  	 * the event ring segment table (ERST).  Section 4.9.3. | ||||||
|  	 */ |  	 */ | ||||||
| @@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org> | |||||||
|  	if (!xhci->event_ring) |  	if (!xhci->event_ring) | ||||||
|  		goto fail; |  		goto fail; | ||||||
|  	if (xhci_check_trb_in_td_math(xhci) < 0) |  	if (xhci_check_trb_in_td_math(xhci) < 0) | ||||||
| @@ -2518,7 +2520,7 @@ int xhci_mem_init(struct xhci_hcd *xhci, | @@ -2527,7 +2529,7 @@ int xhci_mem_init(struct xhci_hcd *xhci, | ||||||
|  	/* set ERST count with the number of entries in the segment table */ |  	/* set ERST count with the number of entries in the segment table */ | ||||||
|  	val = readl(&xhci->ir_set->erst_size); |  	val = readl(&xhci->ir_set->erst_size); | ||||||
|  	val &= ERST_SIZE_MASK; |  	val &= ERST_SIZE_MASK; | ||||||
|   | |||||||
| @@ -31,7 +31,7 @@ Signed-off-by: Christoph Hellwig <hch@lst.de> | |||||||
|  |  | ||||||
| --- a/arch/x86/Kconfig | --- a/arch/x86/Kconfig | ||||||
| +++ b/arch/x86/Kconfig | +++ b/arch/x86/Kconfig | ||||||
| @@ -708,7 +708,6 @@ config X86_SUPPORTS_MEMORY_FAILURE | @@ -709,7 +709,6 @@ config X86_SUPPORTS_MEMORY_FAILURE | ||||||
|  config STA2X11 |  config STA2X11 | ||||||
|  	bool "STA2X11 Companion Chip Support" |  	bool "STA2X11 Companion Chip Support" | ||||||
|  	depends on X86_32_NON_STANDARD && PCI |  	depends on X86_32_NON_STANDARD && PCI | ||||||
|   | |||||||
| @@ -39,7 +39,7 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> | |||||||
|  	default: |  	default: | ||||||
|  		return -EINVAL; |  		return -EINVAL; | ||||||
|  	} |  	} | ||||||
| @@ -2423,6 +2429,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s | @@ -2431,6 +2437,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s | ||||||
|  	case V4L2_CTRL_TYPE_VP8_FRAME_HEADER: |  	case V4L2_CTRL_TYPE_VP8_FRAME_HEADER: | ||||||
|  		elem_size = sizeof(struct v4l2_ctrl_vp8_frame_header); |  		elem_size = sizeof(struct v4l2_ctrl_vp8_frame_header); | ||||||
|  		break; |  		break; | ||||||
| @@ -49,7 +49,7 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> | |||||||
|  	default: |  	default: | ||||||
|  		if (type < V4L2_CTRL_COMPOUND_TYPES) |  		if (type < V4L2_CTRL_COMPOUND_TYPES) | ||||||
|  			elem_size = sizeof(s32); |  			elem_size = sizeof(s32); | ||||||
| @@ -4087,6 +4096,18 @@ int __v4l2_ctrl_s_ctrl_string(struct v4l | @@ -4098,6 +4107,18 @@ int __v4l2_ctrl_s_ctrl_string(struct v4l | ||||||
|  } |  } | ||||||
|  EXPORT_SYMBOL(__v4l2_ctrl_s_ctrl_string); |  EXPORT_SYMBOL(__v4l2_ctrl_s_ctrl_string); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -820,7 +820,7 @@ Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> | |||||||
|  	default: |  	default: | ||||||
|  		return -EINVAL; |  		return -EINVAL; | ||||||
|  	} |  	} | ||||||
| @@ -2434,6 +2532,15 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s | @@ -2442,6 +2540,15 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s | ||||||
|  	case V4L2_CTRL_TYPE_VP8_FRAME_HEADER: |  	case V4L2_CTRL_TYPE_VP8_FRAME_HEADER: | ||||||
|  		elem_size = sizeof(struct v4l2_ctrl_vp8_frame_header); |  		elem_size = sizeof(struct v4l2_ctrl_vp8_frame_header); | ||||||
|  		break; |  		break; | ||||||
|   | |||||||
| @@ -106,7 +106,7 @@ Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net> | |||||||
|  	case V4L2_CTRL_TYPE_AREA: |  	case V4L2_CTRL_TYPE_AREA: | ||||||
|  		area = p; |  		area = p; | ||||||
|  		if (!area->width || !area->height) |  		if (!area->width || !area->height) | ||||||
| @@ -2541,6 +2548,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s | @@ -2549,6 +2556,9 @@ static struct v4l2_ctrl *v4l2_ctrl_new(s | ||||||
|  	case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS: |  	case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS: | ||||||
|  		elem_size = sizeof(struct v4l2_ctrl_hevc_slice_params); |  		elem_size = sizeof(struct v4l2_ctrl_hevc_slice_params); | ||||||
|  		break; |  		break; | ||||||
|   | |||||||
| @@ -22,7 +22,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|   |   | ||||||
|  #define MAX_TUNING_LOOP 40 |  #define MAX_TUNING_LOOP 40 | ||||||
|   |   | ||||||
| @@ -2756,7 +2756,7 @@ static void sdhci_timeout_timer(struct t | @@ -2758,7 +2758,7 @@ static void sdhci_timeout_timer(struct t | ||||||
|  	spin_lock_irqsave(&host->lock, flags); |  	spin_lock_irqsave(&host->lock, flags); | ||||||
|   |   | ||||||
|  	if (host->cmd && !sdhci_data_line_cmd(host->cmd)) { |  	if (host->cmd && !sdhci_data_line_cmd(host->cmd)) { | ||||||
| @@ -31,7 +31,7 @@ Signed-off-by: Maxime Ripard <maxime@cerno.tech> | |||||||
|  		       mmc_hostname(host->mmc)); |  		       mmc_hostname(host->mmc)); | ||||||
|  		sdhci_dumpregs(host); |  		sdhci_dumpregs(host); | ||||||
|   |   | ||||||
| @@ -2778,7 +2778,7 @@ static void sdhci_timeout_data_timer(str | @@ -2780,7 +2780,7 @@ static void sdhci_timeout_data_timer(str | ||||||
|   |   | ||||||
|  	if (host->data || host->data_cmd || |  	if (host->data || host->data_cmd || | ||||||
|  	    (host->cmd && sdhci_data_line_cmd(host->cmd))) { |  	    (host->cmd && sdhci_data_line_cmd(host->cmd))) { | ||||||
|   | |||||||
| @@ -23,7 +23,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com> | |||||||
|  |  | ||||||
| --- a/drivers/spi/spi.c | --- a/drivers/spi/spi.c | ||||||
| +++ b/drivers/spi/spi.c | +++ b/drivers/spi/spi.c | ||||||
| @@ -3115,6 +3115,7 @@ static int __spi_validate_bits_per_word( | @@ -3110,6 +3110,7 @@ static int __spi_validate_bits_per_word( | ||||||
|   */ |   */ | ||||||
|  int spi_setup(struct spi_device *spi) |  int spi_setup(struct spi_device *spi) | ||||||
|  { |  { | ||||||
| @@ -31,7 +31,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com> | |||||||
|  	unsigned	bad_bits, ugly_bits; |  	unsigned	bad_bits, ugly_bits; | ||||||
|  	int		status; |  	int		status; | ||||||
|   |   | ||||||
| @@ -3132,6 +3133,14 @@ int spi_setup(struct spi_device *spi) | @@ -3127,6 +3128,14 @@ int spi_setup(struct spi_device *spi) | ||||||
|  		(SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL | |  		(SPI_TX_DUAL | SPI_TX_QUAD | SPI_TX_OCTAL | | ||||||
|  		 SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL))) |  		 SPI_RX_DUAL | SPI_RX_QUAD | SPI_RX_OCTAL))) | ||||||
|  		return -EINVAL; |  		return -EINVAL; | ||||||
|   | |||||||
| @@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com> | |||||||
|  |  | ||||||
| --- a/drivers/spi/spi.c | --- a/drivers/spi/spi.c | ||||||
| +++ b/drivers/spi/spi.c | +++ b/drivers/spi/spi.c | ||||||
| @@ -3127,8 +3127,8 @@ int spi_setup(struct spi_device *spi) | @@ -3122,8 +3122,8 @@ int spi_setup(struct spi_device *spi) | ||||||
|   |   | ||||||
|  	if (ctlr->use_gpio_descriptors && ctlr->cs_gpiods && |  	if (ctlr->use_gpio_descriptors && ctlr->cs_gpiods && | ||||||
|  	    ctlr->cs_gpiods[spi->chip_select] && !(spi->mode & SPI_CS_HIGH)) { |  	    ctlr->cs_gpiods[spi->chip_select] && !(spi->mode & SPI_CS_HIGH)) { | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> | |||||||
|   |   | ||||||
|  #define dprintk(vdev, fmt, arg...) do {					\ |  #define dprintk(vdev, fmt, arg...) do {					\ | ||||||
|  	if (!WARN_ON(!(vdev)) && ((vdev)->dev_debug & V4L2_DEV_DEBUG_CTRL)) \ |  	if (!WARN_ON(!(vdev)) && ((vdev)->dev_debug & V4L2_DEV_DEBUG_CTRL)) \ | ||||||
| @@ -4578,3 +4579,42 @@ __poll_t v4l2_ctrl_poll(struct file *fil | @@ -4589,3 +4590,42 @@ __poll_t v4l2_ctrl_poll(struct file *fil | ||||||
|  	return 0; |  	return 0; | ||||||
|  } |  } | ||||||
|  EXPORT_SYMBOL(v4l2_ctrl_poll); |  EXPORT_SYMBOL(v4l2_ctrl_poll); | ||||||
|   | |||||||
| @@ -90,7 +90,7 @@ it on BCM4708 family. | |||||||
|  /* |  /* | ||||||
|   * Reset a halted HC. |   * Reset a halted HC. | ||||||
|   * |   * | ||||||
| @@ -604,10 +647,20 @@ static int xhci_init(struct usb_hcd *hcd | @@ -608,10 +651,20 @@ static int xhci_init(struct usb_hcd *hcd | ||||||
|   |   | ||||||
|  static int xhci_run_finished(struct xhci_hcd *xhci) |  static int xhci_run_finished(struct xhci_hcd *xhci) | ||||||
|  { |  { | ||||||
| @@ -114,7 +114,7 @@ it on BCM4708 family. | |||||||
|  	xhci->shared_hcd->state = HC_STATE_RUNNING; |  	xhci->shared_hcd->state = HC_STATE_RUNNING; | ||||||
|  	xhci->cmd_ring_state = CMD_RING_STATE_RUNNING; |  	xhci->cmd_ring_state = CMD_RING_STATE_RUNNING; | ||||||
|   |   | ||||||
| @@ -617,6 +670,10 @@ static int xhci_run_finished(struct xhci | @@ -621,6 +674,10 @@ static int xhci_run_finished(struct xhci | ||||||
|  	xhci_dbg_trace(xhci, trace_xhci_dbg_init, |  	xhci_dbg_trace(xhci, trace_xhci_dbg_init, | ||||||
|  			"Finished xhci_run for USB3 roothub"); |  			"Finished xhci_run for USB3 roothub"); | ||||||
|  	return 0; |  	return 0; | ||||||
|   | |||||||
| @@ -183,7 +183,7 @@ Link: https://lore.kernel.org/linux-mtd/20200522121524.4161539-6-noltari@gmail.c | |||||||
|  	nand_writereg(ctrl, acc_control_offs, tmp); |  	nand_writereg(ctrl, acc_control_offs, tmp); | ||||||
|   |   | ||||||
|  	brcmnand_set_sector_size_1k(host, cfg->sector_size_1k); |  	brcmnand_set_sector_size_1k(host, cfg->sector_size_1k); | ||||||
| @@ -2524,6 +2589,8 @@ const struct dev_pm_ops brcmnand_pm_ops | @@ -2530,6 +2595,8 @@ const struct dev_pm_ops brcmnand_pm_ops | ||||||
|  EXPORT_SYMBOL_GPL(brcmnand_pm_ops); |  EXPORT_SYMBOL_GPL(brcmnand_pm_ops); | ||||||
|   |   | ||||||
|  static const struct of_device_id brcmnand_of_match[] = { |  static const struct of_device_id brcmnand_of_match[] = { | ||||||
|   | |||||||
| @@ -19,9 +19,9 @@ Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> | |||||||
|  |  | ||||||
| --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c | --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c | ||||||
| +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c | +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c | ||||||
| @@ -2426,6 +2426,12 @@ static int brcmnand_attach_chip(struct n | @@ -2432,6 +2432,12 @@ static int brcmnand_attach_chip(struct n | ||||||
|   |  		chip->ecc.read_oob = brcmnand_read_oob_raw; | ||||||
|  	ret = brcmstb_choose_ecc_layout(host); |  	} | ||||||
|   |   | ||||||
| +	/* If OOB is written with ECC enabled it will cause ECC errors */ | +	/* If OOB is written with ECC enabled it will cause ECC errors */ | ||||||
| +	if (is_hamming_ecc(host->ctrl, &host->hwcfg)) { | +	if (is_hamming_ecc(host->ctrl, &host->hwcfg)) { | ||||||
|   | |||||||
| @@ -1,75 +0,0 @@ | |||||||
| From 3007b05df4301aad179acc6ca1c3645785576df6 Mon Sep 17 00:00:00 2001 |  | ||||||
| From: Alexander Lobakin <alobakin@pm.me> |  | ||||||
| Date: Mon, 19 Apr 2021 12:53:06 +0000 |  | ||||||
| Subject: gro: fix napi_gro_frags() Fast GRO breakage due to IP |  | ||||||
|  alignment check |  | ||||||
|  |  | ||||||
| Commit 7ad18ff6449cbd6beb26b53128ddf56d2685aa93 upstream. |  | ||||||
|  |  | ||||||
| Commit 38ec4944b593 ("gro: ensure frag0 meets IP header alignment") |  | ||||||
| did the right thing, but missed the fact that napi_gro_frags() logics |  | ||||||
| calls for skb_gro_reset_offset() *before* pulling Ethernet header |  | ||||||
| to the skb linear space. |  | ||||||
| That said, the introduced check for frag0 address being aligned to 4 |  | ||||||
| always fails for it as Ethernet header is obviously 14 bytes long, |  | ||||||
| and in case with NET_IP_ALIGN its start is not aligned to 4. |  | ||||||
|  |  | ||||||
| Fix this by adding @nhoff argument to skb_gro_reset_offset() which |  | ||||||
| tells if an IP header is placed right at the start of frag0 or not. |  | ||||||
| This restores Fast GRO for napi_gro_frags() that became very slow |  | ||||||
| after the mentioned commit, and preserves the introduced check to |  | ||||||
| avoid silent unaligned accesses. |  | ||||||
|  |  | ||||||
| From v1 [0]: |  | ||||||
|  - inline tiny skb_gro_reset_offset() to let the code be optimized |  | ||||||
|    more efficively (esp. for the !NET_IP_ALIGN case) (Eric); |  | ||||||
|  - pull in Reviewed-by from Eric. |  | ||||||
|  |  | ||||||
| [0] https://lore.kernel.org/netdev/20210418114200.5839-1-alobakin@pm.me |  | ||||||
|  |  | ||||||
| Fixes: 38ec4944b593 ("gro: ensure frag0 meets IP header alignment") |  | ||||||
| Reviewed-by: Eric Dumazet <edumazet@google.com> |  | ||||||
| Signed-off-by: Alexander Lobakin <alobakin@pm.me> |  | ||||||
| Signed-off-by: David S. Miller <davem@davemloft.net> |  | ||||||
| --- |  | ||||||
|  net/core/dev.c | 8 ++++---- |  | ||||||
|  1 file changed, 4 insertions(+), 4 deletions(-) |  | ||||||
|  |  | ||||||
| --- a/net/core/dev.c |  | ||||||
| +++ b/net/core/dev.c |  | ||||||
| @@ -5395,7 +5395,7 @@ static struct list_head *gro_list_prepar |  | ||||||
|  	return head; |  | ||||||
|  } |  | ||||||
|   |  | ||||||
| -static void skb_gro_reset_offset(struct sk_buff *skb) |  | ||||||
| +static inline void skb_gro_reset_offset(struct sk_buff *skb, u32 nhoff) |  | ||||||
|  { |  | ||||||
|  	const struct skb_shared_info *pinfo = skb_shinfo(skb); |  | ||||||
|  	const skb_frag_t *frag0 = &pinfo->frags[0]; |  | ||||||
| @@ -5407,7 +5407,7 @@ static void skb_gro_reset_offset(struct |  | ||||||
|  	if (skb_mac_header(skb) == skb_tail_pointer(skb) && |  | ||||||
|  	    pinfo->nr_frags && |  | ||||||
|  	    !PageHighMem(skb_frag_page(frag0)) && |  | ||||||
| -	    (!NET_IP_ALIGN || !(skb_frag_off(frag0) & 3))) { |  | ||||||
| +	    (!NET_IP_ALIGN || !((skb_frag_off(frag0) + nhoff) & 3))) { |  | ||||||
|  		NAPI_GRO_CB(skb)->frag0 = skb_frag_address(frag0); |  | ||||||
|  		NAPI_GRO_CB(skb)->frag0_len = min_t(unsigned int, |  | ||||||
|  						    skb_frag_size(frag0), |  | ||||||
| @@ -5640,7 +5640,7 @@ gro_result_t napi_gro_receive(struct nap |  | ||||||
|  	skb_mark_napi_id(skb, napi); |  | ||||||
|  	trace_napi_gro_receive_entry(skb); |  | ||||||
|   |  | ||||||
| -	skb_gro_reset_offset(skb); |  | ||||||
| +	skb_gro_reset_offset(skb, 0); |  | ||||||
|   |  | ||||||
|  	ret = napi_skb_finish(napi, skb, dev_gro_receive(napi, skb)); |  | ||||||
|  	trace_napi_gro_receive_exit(ret); |  | ||||||
| @@ -5733,7 +5733,7 @@ static struct sk_buff *napi_frags_skb(st |  | ||||||
|  	napi->skb = NULL; |  | ||||||
|   |  | ||||||
|  	skb_reset_mac_header(skb); |  | ||||||
| -	skb_gro_reset_offset(skb); |  | ||||||
| +	skb_gro_reset_offset(skb, hlen); |  | ||||||
|   |  | ||||||
|  	if (unlikely(skb_gro_header_hard(skb, hlen))) { |  | ||||||
|  		eth = skb_gro_header_slow(skb, hlen, 0); |  | ||||||
| @@ -24,7 +24,7 @@ Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> | |||||||
|  |  | ||||||
| --- a/arch/x86/Makefile | --- a/arch/x86/Makefile | ||||||
| +++ b/arch/x86/Makefile | +++ b/arch/x86/Makefile | ||||||
| @@ -197,9 +197,10 @@ avx2_instr :=$(call as-instr,vpbroadcast | @@ -198,9 +198,10 @@ avx2_instr :=$(call as-instr,vpbroadcast | ||||||
|  avx512_instr :=$(call as-instr,vpmovm2b %k1$(comma)%zmm5,-DCONFIG_AS_AVX512=1) |  avx512_instr :=$(call as-instr,vpmovm2b %k1$(comma)%zmm5,-DCONFIG_AS_AVX512=1) | ||||||
|  sha1_ni_instr :=$(call as-instr,sha1msg1 %xmm0$(comma)%xmm1,-DCONFIG_AS_SHA1_NI=1) |  sha1_ni_instr :=$(call as-instr,sha1msg1 %xmm0$(comma)%xmm1,-DCONFIG_AS_SHA1_NI=1) | ||||||
|  sha256_ni_instr :=$(call as-instr,sha256msg1 %xmm0$(comma)%xmm1,-DCONFIG_AS_SHA256_NI=1) |  sha256_ni_instr :=$(call as-instr,sha256msg1 %xmm0$(comma)%xmm1,-DCONFIG_AS_SHA256_NI=1) | ||||||
|   | |||||||
| @@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  config MODULES_TREE_LOOKUP |  config MODULES_TREE_LOOKUP | ||||||
| --- a/kernel/module.c | --- a/kernel/module.c | ||||||
| +++ b/kernel/module.c | +++ b/kernel/module.c | ||||||
| @@ -3224,9 +3224,11 @@ static int setup_load_info(struct load_i | @@ -3252,9 +3252,11 @@ static int setup_load_info(struct load_i | ||||||
|   |   | ||||||
|  static int check_modinfo(struct module *mod, struct load_info *info, int flags) |  static int check_modinfo(struct module *mod, struct load_info *info, int flags) | ||||||
|  { |  { | ||||||
| @@ -125,7 +125,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  	if (flags & MODULE_INIT_IGNORE_VERMAGIC) |  	if (flags & MODULE_INIT_IGNORE_VERMAGIC) | ||||||
|  		modmagic = NULL; |  		modmagic = NULL; | ||||||
|   |   | ||||||
| @@ -3247,6 +3249,7 @@ static int check_modinfo(struct module * | @@ -3275,6 +3277,7 @@ static int check_modinfo(struct module * | ||||||
|  				mod->name); |  				mod->name); | ||||||
|  		add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK); |  		add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK); | ||||||
|  	} |  	} | ||||||
|   | |||||||
| @@ -396,7 +396,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name> | |||||||
|  } |  } | ||||||
| --- a/net/ipv4/route.c | --- a/net/ipv4/route.c | ||||||
| +++ b/net/ipv4/route.c | +++ b/net/ipv4/route.c | ||||||
| @@ -409,6 +409,9 @@ static struct pernet_operations ip_rt_pr | @@ -410,6 +410,9 @@ static struct pernet_operations ip_rt_pr | ||||||
|   |   | ||||||
|  static int __init ip_rt_proc_init(void) |  static int __init ip_rt_proc_init(void) | ||||||
|  { |  { | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com> | |||||||
|  |  | ||||||
| --- a/drivers/mtd/mtdcore.c | --- a/drivers/mtd/mtdcore.c | ||||||
| +++ b/drivers/mtd/mtdcore.c | +++ b/drivers/mtd/mtdcore.c | ||||||
| @@ -1050,6 +1050,44 @@ out_unlock: | @@ -1053,6 +1053,44 @@ out_unlock: | ||||||
|  } |  } | ||||||
|  EXPORT_SYMBOL_GPL(get_mtd_device_nm); |  EXPORT_SYMBOL_GPL(get_mtd_device_nm); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -4133,7 +4133,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> | |||||||
| + | + | ||||||
| --- a/arch/mips/pci/pci-legacy.c | --- a/arch/mips/pci/pci-legacy.c | ||||||
| +++ b/arch/mips/pci/pci-legacy.c | +++ b/arch/mips/pci/pci-legacy.c | ||||||
| @@ -308,3 +308,30 @@ char *__init pcibios_setup(char *str) | @@ -313,3 +313,30 @@ char *__init pcibios_setup(char *str) | ||||||
|  		return pcibios_plat_setup(str); |  		return pcibios_plat_setup(str); | ||||||
|  	return str; |  	return str; | ||||||
|  } |  } | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> | |||||||
|  |  | ||||||
| --- a/drivers/net/phy/intel-xway.c | --- a/drivers/net/phy/intel-xway.c | ||||||
| +++ b/drivers/net/phy/intel-xway.c | +++ b/drivers/net/phy/intel-xway.c | ||||||
| @@ -145,6 +145,51 @@ | @@ -157,6 +157,51 @@ | ||||||
|  #define PHY_ID_PHY11G_VR9_1_2		0xD565A409 |  #define PHY_ID_PHY11G_VR9_1_2		0xD565A409 | ||||||
|  #define PHY_ID_PHY22F_VR9_1_2		0xD565A419 |  #define PHY_ID_PHY22F_VR9_1_2		0xD565A419 | ||||||
|   |   | ||||||
| @@ -65,7 +65,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> | |||||||
|  static int xway_gphy_config_init(struct phy_device *phydev) |  static int xway_gphy_config_init(struct phy_device *phydev) | ||||||
|  { |  { | ||||||
|  	int err; |  	int err; | ||||||
| @@ -183,6 +228,7 @@ static int xway_gphy_config_init(struct | @@ -204,6 +249,7 @@ static int xway_gphy_config_init(struct | ||||||
|  	phy_write_mmd(phydev, MDIO_MMD_VEND2, XWAY_MMD_LED2H, ledxh); |  	phy_write_mmd(phydev, MDIO_MMD_VEND2, XWAY_MMD_LED2H, ledxh); | ||||||
|  	phy_write_mmd(phydev, MDIO_MMD_VEND2, XWAY_MMD_LED2L, ledxl); |  	phy_write_mmd(phydev, MDIO_MMD_VEND2, XWAY_MMD_LED2L, ledxl); | ||||||
|   |   | ||||||
|   | |||||||
| @@ -54,7 +54,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com> | |||||||
|  	 * All 3.1 IP version constants are greater than the 3.0 IP |  	 * All 3.1 IP version constants are greater than the 3.0 IP | ||||||
| --- a/drivers/usb/dwc3/gadget.c | --- a/drivers/usb/dwc3/gadget.c | ||||||
| +++ b/drivers/usb/dwc3/gadget.c | +++ b/drivers/usb/dwc3/gadget.c | ||||||
| @@ -3558,6 +3558,10 @@ int dwc3_gadget_init(struct dwc3 *dwc) | @@ -3568,6 +3568,10 @@ int dwc3_gadget_init(struct dwc3 *dwc) | ||||||
|  	dwc->gadget.sg_supported	= true; |  	dwc->gadget.sg_supported	= true; | ||||||
|  	dwc->gadget.name		= "dwc3-gadget"; |  	dwc->gadget.name		= "dwc3-gadget"; | ||||||
|  	dwc->gadget.lpm_capable		= true; |  	dwc->gadget.lpm_capable		= true; | ||||||
|   | |||||||
| @@ -174,7 +174,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com> | |||||||
|   * bursts that are required to move all packets in this TD.  Only SuperSpeed |   * bursts that are required to move all packets in this TD.  Only SuperSpeed | ||||||
| --- a/drivers/usb/host/xhci.c | --- a/drivers/usb/host/xhci.c | ||||||
| +++ b/drivers/usb/host/xhci.c | +++ b/drivers/usb/host/xhci.c | ||||||
| @@ -5372,6 +5372,7 @@ static const struct hc_driver xhci_hc_dr | @@ -5384,6 +5384,7 @@ static const struct hc_driver xhci_hc_dr | ||||||
|  	.disable_usb3_lpm_timeout =	xhci_disable_usb3_lpm_timeout, |  	.disable_usb3_lpm_timeout =	xhci_disable_usb3_lpm_timeout, | ||||||
|  	.find_raw_port_number =	xhci_find_raw_port_number, |  	.find_raw_port_number =	xhci_find_raw_port_number, | ||||||
|  	.clear_tt_buffer_complete = xhci_clear_tt_buffer_complete, |  	.clear_tt_buffer_complete = xhci_clear_tt_buffer_complete, | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ Signed-off-by: Peter Chen <peter.chen@nxp.com> | |||||||
|  |  | ||||||
| --- a/drivers/usb/host/xhci.c | --- a/drivers/usb/host/xhci.c | ||||||
| +++ b/drivers/usb/host/xhci.c | +++ b/drivers/usb/host/xhci.c | ||||||
| @@ -5393,6 +5393,8 @@ void xhci_init_driver(struct hc_driver * | @@ -5405,6 +5405,8 @@ void xhci_init_driver(struct hc_driver * | ||||||
|  			drv->check_bandwidth = over->check_bandwidth; |  			drv->check_bandwidth = over->check_bandwidth; | ||||||
|  		if (over->reset_bandwidth) |  		if (over->reset_bandwidth) | ||||||
|  			drv->reset_bandwidth = over->reset_bandwidth; |  			drv->reset_bandwidth = over->reset_bandwidth; | ||||||
|   | |||||||
| @@ -82,7 +82,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com> | |||||||
|  	pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>; |  	pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>; | ||||||
| --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi | --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi | ||||||
| +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi | +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi | ||||||
| @@ -317,7 +317,7 @@ | @@ -318,7 +318,7 @@ | ||||||
|   |   | ||||||
|  				pcie_reset_pins: pcie-reset-pins { |  				pcie_reset_pins: pcie-reset-pins { | ||||||
|  					groups = "pcie1"; |  					groups = "pcie1"; | ||||||
|   | |||||||
| @@ -47,7 +47,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com> | |||||||
|  	status = "disabled"; |  	status = "disabled"; | ||||||
| --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi | --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi | ||||||
| +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi | +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi | ||||||
| @@ -493,6 +493,7 @@ | @@ -494,6 +494,7 @@ | ||||||
|  					<0 0 0 2 &pcie_intc 1>, |  					<0 0 0 2 &pcie_intc 1>, | ||||||
|  					<0 0 0 3 &pcie_intc 2>, |  					<0 0 0 3 &pcie_intc 2>, | ||||||
|  					<0 0 0 4 &pcie_intc 3>; |  					<0 0 0 4 &pcie_intc 3>; | ||||||
|   | |||||||
| @@ -34,7 +34,7 @@ Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com> | |||||||
|  	/* enabled by U-Boot if PCIe module is present */ |  	/* enabled by U-Boot if PCIe module is present */ | ||||||
| --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi | --- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi | ||||||
| +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi | +++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi | ||||||
| @@ -493,6 +493,7 @@ | @@ -494,6 +494,7 @@ | ||||||
|  					<0 0 0 2 &pcie_intc 1>, |  					<0 0 0 2 &pcie_intc 1>, | ||||||
|  					<0 0 0 3 &pcie_intc 2>, |  					<0 0 0 3 &pcie_intc 2>, | ||||||
|  					<0 0 0 4 &pcie_intc 3>; |  					<0 0 0 4 &pcie_intc 3>; | ||||||
|   | |||||||
| @@ -1,21 +0,0 @@ | |||||||
| --- a/arch/mips/pci/pci-mt7620.c |  | ||||||
| +++ b/arch/mips/pci/pci-mt7620.c |  | ||||||
| @@ -32,6 +32,7 @@ |  | ||||||
|  #define PPLL_CFG1			0x9c |  | ||||||
|   |  | ||||||
|  #define PPLL_DRV			0xa0 |  | ||||||
| +#define PPLL_LD			BIT(23) |  | ||||||
|  #define PDRV_SW_SET			BIT(31) |  | ||||||
|  #define LC_CKDRVPD			BIT(19) |  | ||||||
|  #define LC_CKDRVOHZ			BIT(18) |  | ||||||
| @@ -239,8 +240,8 @@ static int mt7620_pci_hw_init(struct pla |  | ||||||
|  	rt_sysc_m32(0, RALINK_PCIE0_CLK_EN, RALINK_CLKCFG1); |  | ||||||
|  	mdelay(100); |  | ||||||
|   |  | ||||||
| -	if (!(rt_sysc_r32(PPLL_CFG1) & PDRV_SW_SET)) { |  | ||||||
| -		dev_err(&pdev->dev, "MT7620 PPLL unlock\n"); |  | ||||||
| +	if (!(rt_sysc_r32(PPLL_CFG1) & PPLL_LD)) { |  | ||||||
| +		dev_err(&pdev->dev, "MT7620 PPLL is unlocked, aborting init\n"); |  | ||||||
|  		reset_control_assert(rstpcie0); |  | ||||||
|  		rt_sysc_m32(RALINK_PCIE0_CLK_EN, 0, RALINK_CLKCFG1); |  | ||||||
|  		return -1; |  | ||||||
| @@ -10,7 +10,7 @@ | |||||||
|  platforms += sgi-ip27 |  platforms += sgi-ip27 | ||||||
| --- a/arch/mips/Kconfig | --- a/arch/mips/Kconfig | ||||||
| +++ b/arch/mips/Kconfig | +++ b/arch/mips/Kconfig | ||||||
| @@ -630,6 +630,26 @@ config RALINK | @@ -631,6 +631,26 @@ config RALINK | ||||||
|  	select ARCH_HAS_RESET_CONTROLLER |  	select ARCH_HAS_RESET_CONTROLLER | ||||||
|  	select RESET_CONTROLLER |  	select RESET_CONTROLLER | ||||||
|   |   | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Hauke Mehrtens
					Hauke Mehrtens