From f70575805708cabdedea7498aaa3f710fde4d920 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Wed, 31 Jan 2024 03:29:01 +0000 Subject: [PATCH] add lvds1024*800 --- kernel/drivers/scsi/sun_esp.c | 83 ++++++++--------------------------------- 1 files changed, 16 insertions(+), 67 deletions(-) diff --git a/kernel/drivers/scsi/sun_esp.c b/kernel/drivers/scsi/sun_esp.c index 747ee64..5dc38d3 100644 --- a/kernel/drivers/scsi/sun_esp.c +++ b/kernel/drivers/scsi/sun_esp.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0-only /* sun_esp.c: ESP front-end for Sparc SBUS systems. * * Copyright (C) 2007, 2008 David S. Miller (davem@davemloft.net) @@ -80,7 +81,7 @@ static int esp_sbus_map_regs(struct esp *esp, int hme) { - struct platform_device *op = esp->dev; + struct platform_device *op = to_platform_device(esp->dev); struct resource *res; /* On HME, two reg sets exist, first is DVMA, @@ -100,11 +101,9 @@ static int esp_sbus_map_command_block(struct esp *esp) { - struct platform_device *op = esp->dev; - - esp->command_block = dma_alloc_coherent(&op->dev, 16, + esp->command_block = dma_alloc_coherent(esp->dev, 16, &esp->command_block_dma, - GFP_ATOMIC); + GFP_KERNEL); if (!esp->command_block) return -ENOMEM; return 0; @@ -113,7 +112,7 @@ static int esp_sbus_register_irq(struct esp *esp) { struct Scsi_Host *host = esp->host; - struct platform_device *op = esp->dev; + struct platform_device *op = to_platform_device(esp->dev); host->irq = op->archdata.irqs[0]; return request_irq(host->irq, scsi_esp_intr, IRQF_SHARED, "ESP", esp); @@ -121,7 +120,7 @@ static void esp_get_scsi_id(struct esp *esp, struct platform_device *espdma) { - struct platform_device *op = esp->dev; + struct platform_device *op = to_platform_device(esp->dev); struct device_node *dp; dp = op->dev.of_node; @@ -143,7 +142,7 @@ static void esp_get_differential(struct esp *esp) { - struct platform_device *op = esp->dev; + struct platform_device *op = to_platform_device(esp->dev); struct device_node *dp; dp = op->dev.of_node; @@ -155,7 +154,7 @@ static void esp_get_clock_params(struct esp *esp) { - struct platform_device *op = esp->dev; + struct platform_device *op = to_platform_device(esp->dev); struct device_node *bus_dp, *dp; int fmhz; @@ -172,7 +171,7 @@ static void esp_get_bursts(struct esp *esp, struct platform_device *dma_of) { struct device_node *dma_dp = dma_of->dev.of_node; - struct platform_device *op = esp->dev; + struct platform_device *op = to_platform_device(esp->dev); struct device_node *dp; u8 bursts, val; @@ -212,38 +211,6 @@ return sbus_readb(esp->regs + (reg * 4UL)); } -static dma_addr_t sbus_esp_map_single(struct esp *esp, void *buf, - size_t sz, int dir) -{ - struct platform_device *op = esp->dev; - - return dma_map_single(&op->dev, buf, sz, dir); -} - -static int sbus_esp_map_sg(struct esp *esp, struct scatterlist *sg, - int num_sg, int dir) -{ - struct platform_device *op = esp->dev; - - return dma_map_sg(&op->dev, sg, num_sg, dir); -} - -static void sbus_esp_unmap_single(struct esp *esp, dma_addr_t addr, - size_t sz, int dir) -{ - struct platform_device *op = esp->dev; - - dma_unmap_single(&op->dev, addr, sz, dir); -} - -static void sbus_esp_unmap_sg(struct esp *esp, struct scatterlist *sg, - int num_sg, int dir) -{ - struct platform_device *op = esp->dev; - - dma_unmap_sg(&op->dev, sg, num_sg, dir); -} - static int sbus_esp_irq_pending(struct esp *esp) { if (dma_read32(DMA_CSR) & (DMA_HNDL_INTR | DMA_HNDL_ERROR)) @@ -255,14 +222,13 @@ { int can_do_burst16, can_do_burst32, can_do_burst64; int can_do_sbus64, lim; - struct platform_device *op; + struct platform_device *op = to_platform_device(esp->dev); u32 val; can_do_burst16 = (esp->bursts & DMA_BURST16) != 0; can_do_burst32 = (esp->bursts & DMA_BURST32) != 0; can_do_burst64 = 0; can_do_sbus64 = 0; - op = esp->dev; if (sbus_can_dma_64bit()) can_do_sbus64 = 1; if (sbus_can_burst64()) @@ -474,10 +440,6 @@ static const struct esp_driver_ops sbus_esp_ops = { .esp_write8 = sbus_esp_write8, .esp_read8 = sbus_esp_read8, - .map_single = sbus_esp_map_single, - .map_sg = sbus_esp_map_sg, - .unmap_single = sbus_esp_unmap_single, - .unmap_sg = sbus_esp_unmap_sg, .irq_pending = sbus_esp_irq_pending, .reset_dma = sbus_esp_reset_dma, .dma_drain = sbus_esp_dma_drain, @@ -504,7 +466,7 @@ esp = shost_priv(host); esp->host = host; - esp->dev = op; + esp->dev = &op->dev; esp->ops = &sbus_esp_ops; if (hme) @@ -540,7 +502,7 @@ dev_set_drvdata(&op->dev, esp); - err = scsi_esp_register(esp, &op->dev); + err = scsi_esp_register(esp); if (err) goto fail_free_irq; @@ -568,11 +530,10 @@ int hme = 0; int ret; - if (dp->parent && - (!strcmp(dp->parent->name, "espdma") || - !strcmp(dp->parent->name, "dma"))) + if (of_node_name_eq(dp->parent, "espdma") || + of_node_name_eq(dp->parent, "dma")) dma_node = dp->parent; - else if (!strcmp(dp->name, "SUNW,fas")) { + else if (of_node_name_eq(dp, "SUNW,fas")) { dma_node = op->dev.of_node; hme = 1; } @@ -645,21 +606,9 @@ .probe = esp_sbus_probe, .remove = esp_sbus_remove, }; - -static int __init sunesp_init(void) -{ - return platform_driver_register(&esp_sbus_driver); -} - -static void __exit sunesp_exit(void) -{ - platform_driver_unregister(&esp_sbus_driver); -} +module_platform_driver(esp_sbus_driver); MODULE_DESCRIPTION("Sun ESP SCSI driver"); MODULE_AUTHOR("David S. Miller (davem@davemloft.net)"); MODULE_LICENSE("GPL"); MODULE_VERSION(DRV_VERSION); - -module_init(sunesp_init); -module_exit(sunesp_exit); -- Gitblit v1.6.2