@@ -521,7 +521,7 @@ static ssize_t vpu_debug_help(struct class *class,
521521static ssize_t vpu_clk_debug (struct class * class , struct class_attribute * attr ,
522522 const char * buf , size_t count )
523523{
524- unsigned int ret ;
524+ unsigned int ret = 0 ;
525525 unsigned int tmp [2 ], n ;
526526 unsigned int fclk_type ;
527527
@@ -533,54 +533,60 @@ static ssize_t vpu_clk_debug(struct class *class, struct class_attribute *attr,
533533 case 's' : /* set */
534534 tmp [0 ] = 4 ;
535535 ret = sscanf (buf , "set %u" , & tmp [0 ]);
536- if (tmp [0 ] > 100 )
537- VPUPR ("set clk frequency: %uHz\n" , tmp [0 ]);
538- else
539- VPUPR ("set clk level: %u\n" , tmp [0 ]);
540- set_vpu_clk (tmp [0 ]);
536+ if (ret == 1 ) {
537+ if (tmp [0 ] > 100 )
538+ VPUPR ("set clk frequency: %uHz\n" , tmp [0 ]);
539+ else
540+ VPUPR ("set clk level: %u\n" , tmp [0 ]);
541+ set_vpu_clk (tmp [0 ]);
542+ } else {
543+ VPUERR ("invalid parameters\n" );
544+ }
541545 break ;
542546 case 'r' :
543547 if (buf [2 ] == 'q' ) { /* request */
544548 tmp [0 ] = 0 ;
545549 tmp [1 ] = VPU_MAX ;
546550 ret = sscanf (buf , "request %u %u" , & tmp [0 ], & tmp [1 ]);
547- request_vpu_clk_vmod (tmp [0 ], tmp [1 ]);
551+ if (ret == 2 )
552+ request_vpu_clk_vmod (tmp [0 ], tmp [1 ]);
553+ else
554+ VPUERR ("invalid parameters\n" );
548555 } else if (buf [2 ] == 'l' ) { /* release */
549556 tmp [0 ] = VPU_MAX ;
550557 ret = sscanf (buf , "release %u" , & tmp [0 ]);
551- release_vpu_clk_vmod (tmp [0 ]);
558+ if (ret == 1 )
559+ release_vpu_clk_vmod (tmp [0 ]);
560+ else
561+ VPUERR ("invalid parameters\n" );
552562 }
553563 break ;
554564 case 'd' :
555565 tmp [0 ] = VPU_MAX ;
556566 ret = sscanf (buf , "dump %u" , & tmp [0 ]);
557- if (tmp [0 ] == VPU_MAX ) {
567+ if (ret == 1 ) {
568+ VPUPR ("clk holdings:\n" );
569+ pr_info ("%s: %uHz(%u)\n" , vpu_mod_table [tmp [0 ]],
570+ vpu_clk_table [clk_vmod [tmp [0 ]]][0 ],
571+ clk_vmod [tmp [0 ]]);
572+ } else {
558573 n = get_vpu_clk_level_max_vmod ();
559574 VPUPR ("clk max holdings: %uHz(%u)\n" ,
560575 vpu_clk_table [n ][0 ], n );
561- } else {
562- VPUPR ("clk holdings:\n" );
563- pr_info ("%s: %uHz(%u)\n" , vpu_mod_table [tmp [0 ]],
564- vpu_clk_table [clk_vmod [tmp [0 ]]][0 ],
565- clk_vmod [tmp [0 ]]);
566576 }
567577 break ;
568578 default :
569579 VPUERR ("wrong debug command\n" );
570580 break ;
571581 }
572582
573- if (ret != 1 || ret != 2 )
574- return - EINVAL ;
575-
576583 return count ;
577- /* return 0; */
578584}
579585
580586static ssize_t vpu_mem_debug (struct class * class , struct class_attribute * attr ,
581587 const char * buf , size_t count )
582588{
583- unsigned int ret ;
589+ unsigned int ret = 0 ;
584590 unsigned int tmp [2 ];
585591 unsigned int _reg0 , _reg1 , _reg2 ;
586592
@@ -603,28 +609,29 @@ static ssize_t vpu_mem_debug(struct class *class, struct class_attribute *attr,
603609 break ;
604610 case 'w' :
605611 ret = sscanf (buf , "w %u %u" , & tmp [0 ], & tmp [1 ]);
606- tmp [0 ] = (tmp [0 ] > VPU_MAX ) ? VPU_MAX : tmp [0 ];
607- tmp [1 ] = (tmp [1 ] == VPU_MEM_POWER_ON ) ? 0 : 1 ;
608- VPUPR ("switch_vpu_mem_pd: %s %s\n" ,
609- vpu_mod_table [tmp [0 ]], (tmp [1 ] ? "DOWN" : "ON" ));
610- switch_vpu_mem_pd_vmod (tmp [0 ], tmp [1 ]);
612+ if (ret == 2 ) {
613+ tmp [0 ] = (tmp [0 ] > VPU_MAX ) ? VPU_MAX : tmp [0 ];
614+ tmp [1 ] = (tmp [1 ] == VPU_MEM_POWER_ON ) ? 0 : 1 ;
615+ VPUPR ("switch_vpu_mem_pd: %s %s\n" ,
616+ vpu_mod_table [tmp [0 ]],
617+ (tmp [1 ] ? "DOWN" : "ON" ));
618+ switch_vpu_mem_pd_vmod (tmp [0 ], tmp [1 ]);
619+ } else {
620+ VPUERR ("invalid parameters\n" );
621+ }
611622 break ;
612623 default :
613624 VPUERR ("wrong mem_pd command\n" );
614625 break ;
615626 }
616627
617- if (ret != 1 || ret != 2 )
618- return - EINVAL ;
619-
620628 return count ;
621- /* return 0; */
622629}
623630
624631static ssize_t vpu_clk_gate_debug (struct class * class ,
625632 struct class_attribute * attr , const char * buf , size_t count )
626633{
627- unsigned int ret ;
634+ unsigned int ret = 0 ;
628635 unsigned int tmp [2 ];
629636
630637 switch (buf [0 ]) {
@@ -652,22 +659,22 @@ static ssize_t vpu_clk_gate_debug(struct class *class,
652659 break ;
653660 case 'w' :
654661 ret = sscanf (buf , "w %u %u" , & tmp [0 ], & tmp [1 ]);
655- tmp [0 ] = (tmp [0 ] > VPU_MAX ) ? VPU_MAX : tmp [0 ];
656- tmp [1 ] = (tmp [1 ] == VPU_CLK_GATE_ON ) ? 1 : 0 ;
657- VPUPR ("switch_vpu_clk_gate: %s %s\n" ,
658- vpu_mod_table [tmp [0 ]], (tmp [1 ] ? "ON" : "OFF" ));
659- switch_vpu_clk_gate_vmod (tmp [0 ], tmp [1 ]);
662+ if (ret == 2 ) {
663+ tmp [0 ] = (tmp [0 ] > VPU_MAX ) ? VPU_MAX : tmp [0 ];
664+ tmp [1 ] = (tmp [1 ] == VPU_CLK_GATE_ON ) ? 1 : 0 ;
665+ VPUPR ("switch_vpu_clk_gate: %s %s\n" ,
666+ vpu_mod_table [tmp [0 ]], (tmp [1 ] ? "ON" : "OFF" ));
667+ switch_vpu_clk_gate_vmod (tmp [0 ], tmp [1 ]);
668+ } else {
669+ VPUERR ("invalid parameters\n" );
670+ }
660671 break ;
661672 default :
662673 VPUERR ("wrong clk_gate command\n" );
663674 break ;
664675 }
665676
666- if (ret != 1 || ret != 2 )
667- return - EINVAL ;
668-
669677 return count ;
670- /* return 0; */
671678}
672679
673680static unsigned int vcbus_reg [] = {
@@ -712,15 +719,9 @@ static void vcbus_test(void)
712719static ssize_t vpu_test_debug (struct class * class , struct class_attribute * attr ,
713720 const char * buf , size_t count )
714721{
715- unsigned int ret ;
716-
717722 vcbus_test ();
718723
719- if (ret != 1 || ret != 2 )
720- return - EINVAL ;
721-
722724 return count ;
723- /* return 0; */
724725}
725726
726727static ssize_t vpu_print_debug (struct class * class ,
@@ -741,7 +742,7 @@ static struct class_attribute vpu_debug_class_attrs[] = {
741742 __ATTR (gate , 0644 , vpu_debug_help , vpu_clk_gate_debug ),
742743 __ATTR (test , 0644 , vpu_debug_help , vpu_test_debug ),
743744 __ATTR (print , 0644 , vpu_debug_help , vpu_print_debug ),
744- __ATTR (help , 0644 , vpu_debug_help , NULL ),
745+ __ATTR (help , 0444 , vpu_debug_help , NULL ),
745746};
746747
747748static struct class * vpu_debug_class ;
0 commit comments