staging: sm750fb: Merge ddk750_help.* into ddk750_chip.*.
Subsystems (2)
PATCH v2 1/1 staging: sm750fb: Merge ddk750_help.* into ddk750_chip.*.
The file ddk750_help.c contained only one function declaration, so it was merged into ddk750_chip.c to simplify the driver.
Also, ddk750_help.h was merged into ddk750_chip.h to keep consistency.
With these changes a few global variables are removed and the function ddk750_set_mmio is rewritten, so its purpose in the code is clearer.
---
v2: Global variables revId750 and devId750 were removed.
They were set only once and used to return the chip type, so they were replaced with a static variable chip that holds the chip type.
Function ddk750_set_mmio() was removed, it was used to set mmio750 and to set the chip type, what wasn't explict in its name. It was replaced with sm750_set_chip_type() to set the chip type. Global variable mmio750 now is set in the function that called ddk750_set_mmio() previously.
drivers/staging/sm750fb/Makefile | 2 +- drivers/staging/sm750fb/ddk750.h | 1 - drivers/staging/sm750fb/ddk750_chip.c | 23 +++++++++++------------ drivers/staging/sm750fb/ddk750_chip.h | 10 +++++++++- drivers/staging/sm750fb/ddk750_display.c | 2 +- drivers/staging/sm750fb/ddk750_dvi.c | 2 +- drivers/staging/sm750fb/ddk750_help.c | 17 ----------------- drivers/staging/sm750fb/ddk750_help.h | 21 --------------------- drivers/staging/sm750fb/ddk750_hwi2c.c | 2 +- drivers/staging/sm750fb/ddk750_mode.c | 1 - drivers/staging/sm750fb/ddk750_power.c | 2 +- drivers/staging/sm750fb/ddk750_swi2c.c | 2 +- drivers/staging/sm750fb/sm750_hw.c | 5 ++++- 13 files changed, 30 insertions(+), 60 deletions(-) delete mode 100644 drivers/staging/sm750fb/ddk750_help.c delete mode 100644 drivers/staging/sm750fb/ddk750_help.h
drivers/staging/sm750fb/Makefile +1 -1
@@ -1,4 +1,4 @@ obj-$(CONFIG_FB_SM750) += sm750fb.o sm750fb-objs := sm750.o sm750_hw.o sm750_accel.o sm750_cursor.o ddk750_chip.o ddk750_power.o ddk750_mode.o -sm750fb-objs += ddk750_display.o ddk750_help.o ddk750_swi2c.o ddk750_sii164.o ddk750_dvi.o ddk750_hwi2c.o +sm750fb-objs += ddk750_display.o ddk750_swi2c.o ddk750_sii164.o ddk750_dvi.o ddk750_hwi2c.o
drivers/staging/sm750fb/ddk750.h +0 -1
@@ -16,7 +16,6 @@#include "ddk750_chip.h" #include "ddk750_display.h" #include "ddk750_power.h" -#include "ddk750_help.h" #ifdef USE_HW_I2C #include "ddk750_hwi2c.h" #endif
drivers/staging/sm750fb/ddk750_chip.c +11 -12
@@ -1,33 +1,32 @@#include <linux/kernel.h> #include <linux/sizes.h> -#include "ddk750_help.h" #include "ddk750_reg.h" #include "ddk750_chip.h" #include "ddk750_power.h" #define MHz (x) ((x) * 1000000) +static logical_chip_type_t chip; +logical_chip_type_t sm750_get_chip_type (void ) { -unsigned short physicalID; -char physicalRev; -logical_chip_type_t chip; - - physicalID = devId750;/* either 0x718 or 0x750 */ - physicalRev = revId750; +return chip; +} -if (physicalID ==0x718 ) +void sm750_set_chip_type (unsigned short devId,char revId) +{ +if (devId ==0x718 ) chip =SM718 ; -else if (physicalID ==0x750 ) { +else if (devId ==0x750 ) { chip =SM750 ;/* SM750 and SM750LE are different in their revision ID only. */ -if (physicalRev ==SM750LE_REVISION_ID ) +if (revId ==SM750LE_REVISION_ID ) { chip =SM750LE ; +pr_info ("found sm750le\n" ); + } }else chip =SM_UNKNOWN ; - -return chip; }static unsigned int get_mxclk_freq (void )
drivers/staging/sm750fb/ddk750_chip.h +9 -1
@@ -6,6 +6,14 @@#endif #include <linux/io.h> +#include <linux/ioport.h> +#include <linux/uaccess.h> + +/* software control endianness */ +#define PEEK32 (addr) readl(addr + mmio750) +#define POKE32 (addr, data) writel(data, addr + mmio750) + +extern void __iomem *mmio750;/* This is all the chips recognized by this library */ typedef enum _logical_chip_type_t {
@@ -68,9 +76,9 @@ struct initchip_param { };logical_chip_type_t sm750_get_chip_type (void ); +void sm750_set_chip_type (unsigned short devId,char revId);unsigned int calcPllValue (unsigned int request,struct pll_value *pll);unsigned int formatPllReg (struct pll_value *pPLL); -void ddk750_set_mmio (void __iomem *,unsigned short ,char );unsigned int ddk750_getVMSize (void );int ddk750_initHw (struct initchip_param *);
drivers/staging/sm750fb/ddk750_display.c +1 -1
@@ -1,5 +1,5 @@#include "ddk750_reg.h" -#include "ddk750_help.h" +#include "ddk750_chip.h" #include "ddk750_display.h" #include "ddk750_power.h" #include "ddk750_dvi.h"
drivers/staging/sm750fb/ddk750_dvi.c +1 -1
@@ -1,6 +1,6 @@#define USE_DVICHIP #ifdef USE_DVICHIP -#include "ddk750_help.h" +#include "ddk750_chip.h" #include "ddk750_reg.h" #include "ddk750_dvi.h" #include "ddk750_sii164.h"
drivers/staging/sm750fb/ddk750_help.c deleted +0 -17
@@ -1,17 +0,0 @@ -#include "ddk750_help.h" - -void __iomem *mmio750; -char revId750; -unsigned short devId750; - -/* after driver mapped io registers, use this function first */ -void ddk750_set_mmio (void __iomem *addr,unsigned short devId,char revId) -{ - mmio750 = addr; - devId750 = devId; - revId750 = revId; -if (revId ==0xfe ) -pr_info ("found sm750le\n" ); -} - -
drivers/staging/sm750fb/ddk750_help.h deleted +0 -21
@@ -1,21 +0,0 @@ -#ifndef DDK750_HELP_H__ -#define DDK750_HELP_H__ -#include "ddk750_chip.h" -#ifndef USE_INTERNAL_REGISTER_ACCESS - -#include <linux/ioport.h> -#include <linux/io.h> -#include <linux/uaccess.h> - -/* software control endianness */ -#define PEEK32 (addr) readl(addr + mmio750) -#define POKE32 (addr, data) writel(data, addr + mmio750) - -extern void __iomem *mmio750; -extern char revId750; -extern unsigned short devId750; -#else -/* implement if you want use it*/ -#endif - -#endif
drivers/staging/sm750fb/ddk750_hwi2c.c +1 -1
@@ -1,6 +1,6 @@#define USE_HW_I2C #ifdef USE_HW_I2C -#include "ddk750_help.h" +#include "ddk750_chip.h" #include "ddk750_reg.h" #include "ddk750_hwi2c.h" #include "ddk750_power.h"
drivers/staging/sm750fb/ddk750_mode.c +0 -1
@@ -1,5 +1,4 @@ -#include "ddk750_help.h" #include "ddk750_reg.h" #include "ddk750_mode.h" #include "ddk750_chip.h"
drivers/staging/sm750fb/ddk750_power.c +1 -1
@@ -1,4 +1,4 @@ -#include "ddk750_help.h" +#include "ddk750_chip.h" #include "ddk750_reg.h" #include "ddk750_power.h"
drivers/staging/sm750fb/ddk750_swi2c.c +1 -1
@@ -10,7 +10,7 @@* implementation. * *******************************************************************/ -#include "ddk750_help.h" +#include "ddk750_chip.h" #include "ddk750_reg.h" #include "ddk750_swi2c.h" #include "ddk750_power.h"
drivers/staging/sm750fb/sm750_hw.c +4 -1
@@ -23,6 +23,8 @@#include "ddk750.h" #include "sm750_accel.h" +void __iomem *mmio750; +int hw_sm750_map (struct sm750_dev *sm750_dev,struct pci_dev *pdev) {int ret;
@@ -59,7 +61,8 @@ int hw_sm750_map(struct sm750_dev *sm750_dev, struct pci_dev *pdev) sm750_dev->accel.dprBase = sm750_dev->pvReg +DE_BASE_ADDR_TYPE1 ; sm750_dev->accel.dpPortBase = sm750_dev->pvReg +DE_PORT_ADDR_TYPE1 ; -ddk750_set_mmio (sm750_dev->pvReg, sm750_dev->devid, sm750_dev->revid); + mmio750 = sm750_dev->pvReg; +sm750_set_chip_type (sm750_dev->devid, sm750_dev->revid); sm750_dev->vidmem_start =pci_resource_start (pdev,0 );/* don't use pdev_resource[x].end - resource[x].start to
Signature · 1 line
2.7.4
Greg KH
maintainerQuoted 9 lines · Elise Lennion
The file
ddk750_help.ccontained only one function declaration, so it was merged intoddk750_chip.cto simplify the driver.Also,
ddk750_help.hwas merged intoddk750_chip.hto keep consistency.With these changes a few global variables are removed and the function
ddk750_set_mmiois rewritten, so its purpose in the code is clearer.Signed-off-by Elise Lennion <[email protected]>
Nice cleanups and changes, thanks for doing this.
greg k-h