diff options
Diffstat (limited to 'drivers/media/mmc/siano/smssdio.c')
| -rw-r--r-- | drivers/media/mmc/siano/smssdio.c | 59 |
1 files changed, 16 insertions, 43 deletions
diff --git a/drivers/media/mmc/siano/smssdio.c b/drivers/media/mmc/siano/smssdio.c index 912c2814c6cf..8199077faf36 100644 --- a/drivers/media/mmc/siano/smssdio.c +++ b/drivers/media/mmc/siano/smssdio.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0-or-later /* * smssdio.c - Siano 1xxx SDIO interface driver * @@ -6,12 +7,6 @@ * Based on code by Siano Mobile Silicon, Inc., * Copyright (C) 2006-2008, Uri Shkolnik * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * * This hardware is a bit odd in that all transfers should be done * to/from the SMSSDIO_DATA register, yet the "increase address" bit * always needs to be set. @@ -32,6 +27,8 @@ * Fix stop command */ +#include "smscoreapi.h" + #include <linux/moduleparam.h> #include <linux/slab.h> #include <linux/firmware.h> @@ -41,7 +38,6 @@ #include <linux/mmc/sdio_ids.h> #include <linux/module.h> -#include "smscoreapi.h" #include "sms-cards.h" #include "smsendian.h" @@ -62,15 +58,15 @@ static const struct sdio_device_id smssdio_ids[] = { .driver_data = SMS1XXX_BOARD_SIANO_VEGA}, {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, SDIO_DEVICE_ID_SIANO_VENICE), .driver_data = SMS1XXX_BOARD_SIANO_VEGA}, - {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, 0x302), + {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, SDIO_DEVICE_ID_SIANO_MING), .driver_data = SMS1XXX_BOARD_SIANO_MING}, - {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, 0x500), + {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, SDIO_DEVICE_ID_SIANO_PELE), .driver_data = SMS1XXX_BOARD_SIANO_PELE}, - {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, 0x600), + {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, SDIO_DEVICE_ID_SIANO_RIO), .driver_data = SMS1XXX_BOARD_SIANO_RIO}, - {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, 0x700), + {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, SDIO_DEVICE_ID_SIANO_DENVER_2160), .driver_data = SMS1XXX_BOARD_SIANO_DENVER_2160}, - {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, 0x800), + {SDIO_DEVICE(SDIO_VENDOR_ID_SIANO, SDIO_DEVICE_ID_SIANO_DENVER_1530), .driver_data = SMS1XXX_BOARD_SIANO_DENVER_1530}, { /* end: all zeroes */ }, }; @@ -141,14 +137,14 @@ static void smssdio_interrupt(struct sdio_func *func) */ (void)sdio_readb(func, SMSSDIO_INT, &ret); if (ret) { - sms_err("Unable to read interrupt register!\n"); + pr_err("Unable to read interrupt register!\n"); return; } if (smsdev->split_cb == NULL) { cb = smscore_getbuffer(smsdev->coredev); if (!cb) { - sms_err("Unable to allocate data buffer!\n"); + pr_err("Unable to allocate data buffer!\n"); return; } @@ -157,7 +153,7 @@ static void smssdio_interrupt(struct sdio_func *func) SMSSDIO_DATA, SMSSDIO_BLOCK_SIZE); if (ret) { - sms_err("Error %d reading initial block!\n", ret); + pr_err("Error %d reading initial block!\n", ret); return; } @@ -198,7 +194,7 @@ static void smssdio_interrupt(struct sdio_func *func) size); if (ret && ret != -EINVAL) { smscore_putbuffer(smsdev->coredev, cb); - sms_err("Error %d reading data from card!\n", ret); + pr_err("Error %d reading data from card!\n", ret); return; } @@ -216,8 +212,8 @@ static void smssdio_interrupt(struct sdio_func *func) smsdev->func->cur_blksize); if (ret) { smscore_putbuffer(smsdev->coredev, cb); - sms_err("Error %d reading " - "data from card!\n", ret); + pr_err("Error %d reading data from card!\n", + ret); return; } @@ -278,7 +274,7 @@ static int smssdio_probe(struct sdio_func *func, goto free; } - ret = smscore_register_device(¶ms, &smsdev->coredev); + ret = smscore_register_device(¶ms, &smsdev->coredev, GFP_DMA, NULL); if (ret < 0) goto free; @@ -348,30 +344,7 @@ static struct sdio_driver smssdio_driver = { .probe = smssdio_probe, .remove = smssdio_remove, }; - -/*******************************************************************/ -/* Module functions */ -/*******************************************************************/ - -static int __init smssdio_module_init(void) -{ - int ret = 0; - - printk(KERN_INFO "smssdio: Siano SMS1xxx SDIO driver\n"); - printk(KERN_INFO "smssdio: Copyright Pierre Ossman\n"); - - ret = sdio_register_driver(&smssdio_driver); - - return ret; -} - -static void __exit smssdio_module_exit(void) -{ - sdio_unregister_driver(&smssdio_driver); -} - -module_init(smssdio_module_init); -module_exit(smssdio_module_exit); +module_sdio_driver(smssdio_driver); MODULE_DESCRIPTION("Siano SMS1xxx SDIO driver"); MODULE_AUTHOR("Pierre Ossman"); |
